Thermal controller and temperature bugfixes #266

Merged
muellerr merged 40 commits from meier/thermal-bugfixes into develop 2022-06-20 09:43:04 +02:00
12 changed files with 81 additions and 71 deletions
Showing only changes of commit 6c32ddf864 - Show all commits

View File

@ -1,7 +1,7 @@
/** /**
* @brief Auto-generated event translation file. Contains 207 translations. * @brief Auto-generated event translation file. Contains 207 translations.
* @details * @details
* Generated on: 2022-05-25 18:41:07 * Generated on: 2022-06-01 18:12:43
*/ */
#include "translateEvents.h" #include "translateEvents.h"

View File

@ -2,7 +2,7 @@
* @brief Auto-generated object translation file. * @brief Auto-generated object translation file.
* @details * @details
* Contains 131 translations. * Contains 131 translations.
* Generated on: 2022-05-25 18:41:13 * Generated on: 2022-06-01 18:12:40
*/ */
#include "translateObjects.h" #include "translateObjects.h"

View File

@ -1,7 +1,7 @@
/** /**
* @brief Auto-generated event translation file. Contains 207 translations. * @brief Auto-generated event translation file. Contains 207 translations.
* @details * @details
* Generated on: 2022-05-25 18:41:07 * Generated on: 2022-06-01 18:12:43
*/ */
#include "translateEvents.h" #include "translateEvents.h"

View File

@ -2,7 +2,7 @@
* @brief Auto-generated object translation file. * @brief Auto-generated object translation file.
* @details * @details
* Contains 131 translations. * Contains 131 translations.
* Generated on: 2022-05-25 18:41:13 * Generated on: 2022-06-01 18:12:40
*/ */
#include "translateObjects.h" #include "translateObjects.h"

View File

@ -149,13 +149,13 @@ ReturnValue_t ThermalController::initializeLocalDataPool(localpool::DataPool& lo
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_Q7S, new PoolEntry<float>({0.0})); localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_Q7S, new PoolEntry<float>({0.0}));
localDataPoolMap.emplace(thermalControllerDefinitions::BATTERY_TEMP_1, localDataPoolMap.emplace(thermalControllerDefinitions::BATTERY_TEMP_1,
new PoolEntry<float>({0.0})); new PoolEntry<int16_t>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::BATTERY_TEMP_2, localDataPoolMap.emplace(thermalControllerDefinitions::BATTERY_TEMP_2,
new PoolEntry<float>({0.0})); new PoolEntry<int16_t>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::BATTERY_TEMP_3, localDataPoolMap.emplace(thermalControllerDefinitions::BATTERY_TEMP_3,
new PoolEntry<float>({0.0})); new PoolEntry<int16_t>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::BATTERY_TEMP_4, localDataPoolMap.emplace(thermalControllerDefinitions::BATTERY_TEMP_4,
new PoolEntry<float>({0.0})); new PoolEntry<int16_t>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_RW1, new PoolEntry<int32_t>({0})); localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_RW1, new PoolEntry<int32_t>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_RW2, new PoolEntry<int32_t>({0})); localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_RW2, new PoolEntry<int32_t>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_RW3, new PoolEntry<int32_t>({0})); localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_RW3, new PoolEntry<int32_t>({0}));
@ -163,17 +163,17 @@ ReturnValue_t ThermalController::initializeLocalDataPool(localpool::DataPool& lo
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_STAR_TRACKER, localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_STAR_TRACKER,
new PoolEntry<float>({0.0})); new PoolEntry<float>({0.0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_SYRLINKS_POWER_AMPLIFIER, localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_SYRLINKS_POWER_AMPLIFIER,
new PoolEntry<float>({0.0})); new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_SYRLINKS_BASEBAND_BOARD, localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_SYRLINKS_BASEBAND_BOARD,
new PoolEntry<float>({0.0})); new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_MGT, new PoolEntry<float>({0})); localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_MGT, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_ACU, new PoolEntry<int16_t>({0})); localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_ACU, new PoolEntry<float>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_PDU1, new PoolEntry<int16_t>({0})); localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_PDU1, new PoolEntry<float>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_PDU2, new PoolEntry<int16_t>({0})); localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_PDU2, new PoolEntry<float>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_1_P60DOCK, localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_1_P60DOCK,
new PoolEntry<int16_t>({0})); new PoolEntry<float>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_2_P60DOCK, localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_2_P60DOCK,
new PoolEntry<int16_t>({0})); new PoolEntry<float>({0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_GYRO_0_SIDE_A, localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_GYRO_0_SIDE_A,
new PoolEntry<float>({0.0})); new PoolEntry<float>({0.0}));
localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_GYRO_1_SIDE_A, localDataPoolMap.emplace(thermalControllerDefinitions::TEMP_GYRO_1_SIDE_A,
@ -202,6 +202,8 @@ LocalPoolDataSetBase* ThermalController::getDataSetHandle(sid_t sid) {
return &sensorTemperatures; return &sensorTemperatures;
case thermalControllerDefinitions::SUS_TEMPERATURES: case thermalControllerDefinitions::SUS_TEMPERATURES:
return &susTemperatures; return &susTemperatures;
case thermalControllerDefinitions::DEVICE_TEMPERATURES:
return &deviceTemperatures;
default: default:
return nullptr; return nullptr;
} }
@ -507,8 +509,7 @@ void ThermalController::copyDevices() {
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to commit" << std::endl; sif::warning << "ThermalController: Failed to commit" << std::endl;
} }
lp_var_t<int16_t> battTemp1 = lp_var_t<int16_t>(objects::BPX_BATT_HANDLER, BpxBattery::BATT_TEMP_1);
lp_var_t<float> battTemp1 = lp_var_t<float>(objects::BPX_BATT_HANDLER, BpxBattery::BATT_TEMP_1);
result = battTemp1.read(); result = battTemp1.read();
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to read battery temperature 1" << std::endl; sif::warning << "ThermalController: Failed to read battery temperature 1" << std::endl;
@ -523,7 +524,7 @@ void ThermalController::copyDevices() {
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to commit" << std::endl; sif::warning << "ThermalController: Failed to commit" << std::endl;
} }
lp_var_t<float> battTemp2 = lp_var_t<float>(objects::BPX_BATT_HANDLER, BpxBattery::BATT_TEMP_2); lp_var_t<int16_t> battTemp2 = lp_var_t<int16_t>(objects::BPX_BATT_HANDLER, BpxBattery::BATT_TEMP_2);
result = battTemp2.read(); result = battTemp2.read();
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to read battery temperature 2" << std::endl; sif::warning << "ThermalController: Failed to read battery temperature 2" << std::endl;
@ -538,7 +539,7 @@ void ThermalController::copyDevices() {
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to commit" << std::endl; sif::warning << "ThermalController: Failed to commit" << std::endl;
} }
lp_var_t<float> battTemp3 = lp_var_t<float>(objects::BPX_BATT_HANDLER, BpxBattery::BATT_TEMP_3); lp_var_t<int16_t> battTemp3 = lp_var_t<int16_t>(objects::BPX_BATT_HANDLER, BpxBattery::BATT_TEMP_3);
result = battTemp3.read(); result = battTemp3.read();
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to read battery temperature 3" << std::endl; sif::warning << "ThermalController: Failed to read battery temperature 3" << std::endl;
@ -553,7 +554,7 @@ void ThermalController::copyDevices() {
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to commit" << std::endl; sif::warning << "ThermalController: Failed to commit" << std::endl;
} }
lp_var_t<float> battTemp4 = lp_var_t<float>(objects::BPX_BATT_HANDLER, BpxBattery::BATT_TEMP_4); lp_var_t<int16_t> battTemp4 = lp_var_t<int16_t>(objects::BPX_BATT_HANDLER, BpxBattery::BATT_TEMP_4);
result = battTemp4.read(); result = battTemp4.read();
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to read battery temperature 4" << std::endl; sif::warning << "ThermalController: Failed to read battery temperature 4" << std::endl;
@ -644,8 +645,8 @@ void ThermalController::copyDevices() {
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to commit" << std::endl; sif::warning << "ThermalController: Failed to commit" << std::endl;
} }
lp_var_t<float> tempSyrlinksPowerAmplifier = lp_var_t<uint16_t> tempSyrlinksPowerAmplifier =
lp_var_t<float>(objects::SYRLINKS_HK_HANDLER, syrlinks::TEMP_POWER_AMPLIFIER); lp_var_t<uint16_t>(objects::SYRLINKS_HK_HANDLER, syrlinks::TEMP_POWER_AMPLIFIER);
result = tempSyrlinksPowerAmplifier.read(); result = tempSyrlinksPowerAmplifier.read();
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to read syrlinks power amplifier temperature" << std::endl; sif::warning << "ThermalController: Failed to read syrlinks power amplifier temperature" << std::endl;
@ -660,8 +661,8 @@ void ThermalController::copyDevices() {
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to commit" << std::endl; sif::warning << "ThermalController: Failed to commit" << std::endl;
} }
lp_var_t<float> tempSyrlinksBasebandBoard = lp_var_t<uint16_t> tempSyrlinksBasebandBoard =
lp_var_t<float>(objects::SYRLINKS_HK_HANDLER, syrlinks::TEMP_BASEBAND_BOARD); lp_var_t<uint16_t>(objects::SYRLINKS_HK_HANDLER, syrlinks::TEMP_BASEBAND_BOARD);
result = tempSyrlinksBasebandBoard.read(); result = tempSyrlinksBasebandBoard.read();
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to read syrlinks baseband board temperature" << std::endl; sif::warning << "ThermalController: Failed to read syrlinks baseband board temperature" << std::endl;
@ -676,8 +677,8 @@ void ThermalController::copyDevices() {
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to commit" << std::endl; sif::warning << "ThermalController: Failed to commit" << std::endl;
} }
lp_var_t<float> tempMgt = lp_var_t<uint16_t> tempMgt =
lp_var_t<float>(objects::IMTQ_HANDLER, IMTQ::MCU_TEMPERATURE); lp_var_t<uint16_t>(objects::IMTQ_HANDLER, IMTQ::MCU_TEMPERATURE);
result = tempMgt.read(); result = tempMgt.read();
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to read MGT temperature" << std::endl; sif::warning << "ThermalController: Failed to read MGT temperature" << std::endl;
@ -692,8 +693,8 @@ void ThermalController::copyDevices() {
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to commit" << std::endl; sif::warning << "ThermalController: Failed to commit" << std::endl;
} }
lp_vec_t<int16_t, 3> tempAcu = lp_vec_t<float, 3> tempAcu =
lp_vec_t<int16_t, 3>(objects::ACU_HANDLER, P60System::pool::ACU_TEMPERATURES); lp_vec_t<float, 3>(objects::ACU_HANDLER, P60System::pool::ACU_TEMPERATURES);
result = tempAcu.read(); result = tempAcu.read();
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to read ACU temperatures" << std::endl; sif::warning << "ThermalController: Failed to read ACU temperatures" << std::endl;
@ -710,13 +711,13 @@ void ThermalController::copyDevices() {
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to commit" << std::endl; sif::warning << "ThermalController: Failed to commit" << std::endl;
} }
lp_var_t<int16_t> tempPdu1 = lp_var_t<float> tempPdu1 =
lp_var_t<int16_t>(objects::PDU1_HANDLER, P60System::pool::PDU_TEMPERATURE); lp_var_t<float>(objects::PDU1_HANDLER, P60System::pool::PDU_TEMPERATURE);
result = tempPdu1.read(); result = tempPdu1.read();
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to read PDU1 temperature" << std::endl; sif::warning << "ThermalController: Failed to read PDU1 temperature" << std::endl;
deviceTemperatures.pdu1.setValid(false); deviceTemperatures.pdu1.setValid(false);
deviceTemperatures.pdu1 = static_cast<int16_t>(INVALID_TEMPERATURE); deviceTemperatures.pdu1 = static_cast<float>(INVALID_TEMPERATURE);
} }
else { else {
deviceTemperatures.pdu1.setValid(tempPdu1.isValid()); deviceTemperatures.pdu1.setValid(tempPdu1.isValid());
@ -726,13 +727,13 @@ void ThermalController::copyDevices() {
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to commit" << std::endl; sif::warning << "ThermalController: Failed to commit" << std::endl;
} }
lp_var_t<int16_t> tempPdu2 = lp_var_t<float> tempPdu2 =
lp_var_t<int16_t>(objects::PDU2_HANDLER, P60System::pool::PDU_TEMPERATURE); lp_var_t<float>(objects::PDU2_HANDLER, P60System::pool::PDU_TEMPERATURE);
result = tempPdu2.read(); result = tempPdu2.read();
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to read PDU2 temperature" << std::endl; sif::warning << "ThermalController: Failed to read PDU2 temperature" << std::endl;
deviceTemperatures.pdu2.setValid(false); deviceTemperatures.pdu2.setValid(false);
deviceTemperatures.pdu2 = static_cast<int16_t>(INVALID_TEMPERATURE); deviceTemperatures.pdu2 = static_cast<float>(INVALID_TEMPERATURE);
} }
else { else {
deviceTemperatures.pdu2.setValid(tempPdu1.isValid()); deviceTemperatures.pdu2.setValid(tempPdu1.isValid());
@ -742,13 +743,13 @@ void ThermalController::copyDevices() {
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to commit" << std::endl; sif::warning << "ThermalController: Failed to commit" << std::endl;
} }
lp_var_t<int16_t> temp1P60dock = lp_var_t<float> temp1P60dock =
lp_var_t<int16_t>(objects::P60DOCK_HANDLER, P60System::pool::P60DOCK_TEMPERATURE_1); lp_var_t<float>(objects::P60DOCK_HANDLER, P60System::pool::P60DOCK_TEMPERATURE_1);
result = temp1P60dock.read(); result = temp1P60dock.read();
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to read P60 dock temperature 1" << std::endl; sif::warning << "ThermalController: Failed to read P60 dock temperature 1" << std::endl;
deviceTemperatures.temp1P60dock.setValid(false); deviceTemperatures.temp1P60dock.setValid(false);
deviceTemperatures.temp1P60dock = static_cast<int16_t>(INVALID_TEMPERATURE); deviceTemperatures.temp1P60dock = static_cast<float>(INVALID_TEMPERATURE);
} }
else { else {
deviceTemperatures.temp1P60dock.setValid(temp1P60dock.isValid()); deviceTemperatures.temp1P60dock.setValid(temp1P60dock.isValid());
@ -758,13 +759,13 @@ void ThermalController::copyDevices() {
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to commit" << std::endl; sif::warning << "ThermalController: Failed to commit" << std::endl;
} }
lp_var_t<int16_t> temp2P60dock = lp_var_t<float> temp2P60dock =
lp_var_t<int16_t>(objects::P60DOCK_HANDLER, P60System::pool::P60DOCK_TEMPERATURE_2); lp_var_t<float>(objects::P60DOCK_HANDLER, P60System::pool::P60DOCK_TEMPERATURE_2);
result = temp2P60dock.read(); result = temp2P60dock.read();
if (result != RETURN_OK) { if (result != RETURN_OK) {
sif::warning << "ThermalController: Failed to read P60 dock temperature 2" << std::endl; sif::warning << "ThermalController: Failed to read P60 dock temperature 2" << std::endl;
deviceTemperatures.temp2P60dock.setValid(false); deviceTemperatures.temp2P60dock.setValid(false);
deviceTemperatures.temp2P60dock = static_cast<int16_t>(INVALID_TEMPERATURE); deviceTemperatures.temp2P60dock = static_cast<float>(INVALID_TEMPERATURE);
} }
else { else {
deviceTemperatures.temp2P60dock.setValid(temp2P60dock.isValid()); deviceTemperatures.temp2P60dock.setValid(temp2P60dock.isValid());

View File

@ -127,25 +127,25 @@ class DeviceTemperatures : public StaticLocalDataSet<ENTRIES_DEVICE_TEMPERATURE_
: StaticLocalDataSet(sid_t(objectId, DEVICE_TEMPERATURES)) {} : StaticLocalDataSet(sid_t(objectId, DEVICE_TEMPERATURES)) {}
lp_var_t<float> q7s = lp_var_t<float>(sid.objectId, PoolIds::TEMP_Q7S, this); lp_var_t<float> q7s = lp_var_t<float>(sid.objectId, PoolIds::TEMP_Q7S, this);
lp_var_t<float> batteryTemp1 = lp_var_t<float>(sid.objectId, PoolIds::BATTERY_TEMP_1, this); lp_var_t<int16_t> batteryTemp1 = lp_var_t<int16_t>(sid.objectId, PoolIds::BATTERY_TEMP_1, this);
lp_var_t<float> batteryTemp2 = lp_var_t<float>(sid.objectId, PoolIds::BATTERY_TEMP_2, this); lp_var_t<int16_t> batteryTemp2 = lp_var_t<int16_t>(sid.objectId, PoolIds::BATTERY_TEMP_2, this);
lp_var_t<float> batteryTemp3 = lp_var_t<float>(sid.objectId, PoolIds::BATTERY_TEMP_3, this); lp_var_t<int16_t> batteryTemp3 = lp_var_t<int16_t>(sid.objectId, PoolIds::BATTERY_TEMP_3, this);
lp_var_t<float> batteryTemp4 = lp_var_t<float>(sid.objectId, PoolIds::BATTERY_TEMP_4, this); lp_var_t<int16_t> batteryTemp4 = lp_var_t<int16_t>(sid.objectId, PoolIds::BATTERY_TEMP_4, this);
lp_var_t<int32_t> rw1 = lp_var_t<int32_t>(sid.objectId, PoolIds::TEMP_RW1, this); lp_var_t<int32_t> rw1 = lp_var_t<int32_t>(sid.objectId, PoolIds::TEMP_RW1, this);
lp_var_t<int32_t> rw2 = lp_var_t<int32_t>(sid.objectId, PoolIds::TEMP_RW2, this); lp_var_t<int32_t> rw2 = lp_var_t<int32_t>(sid.objectId, PoolIds::TEMP_RW2, this);
lp_var_t<int32_t> rw3 = lp_var_t<int32_t>(sid.objectId, PoolIds::TEMP_RW3, this); lp_var_t<int32_t> rw3 = lp_var_t<int32_t>(sid.objectId, PoolIds::TEMP_RW3, this);
lp_var_t<int32_t> rw4 = lp_var_t<int32_t>(sid.objectId, PoolIds::TEMP_RW4, this); lp_var_t<int32_t> rw4 = lp_var_t<int32_t>(sid.objectId, PoolIds::TEMP_RW4, this);
lp_var_t<float> startracker = lp_var_t<float>(sid.objectId, PoolIds::TEMP_STAR_TRACKER, this); lp_var_t<float> startracker = lp_var_t<float>(sid.objectId, PoolIds::TEMP_STAR_TRACKER, this);
lp_var_t<float> syrlinksPowerAmplifier = lp_var_t<uint16_t> syrlinksPowerAmplifier =
lp_var_t<float>(sid.objectId, PoolIds::TEMP_SYRLINKS_POWER_AMPLIFIER, this); lp_var_t<uint16_t>(sid.objectId, PoolIds::TEMP_SYRLINKS_POWER_AMPLIFIER, this);
lp_var_t<float> syrlinksBasebandBoard = lp_var_t<uint16_t> syrlinksBasebandBoard =
lp_var_t<float>(sid.objectId, PoolIds::TEMP_SYRLINKS_BASEBAND_BOARD, this); lp_var_t<uint16_t>(sid.objectId, PoolIds::TEMP_SYRLINKS_BASEBAND_BOARD, this);
lp_var_t<float> mgt = lp_var_t<float>(sid.objectId, PoolIds::TEMP_MGT, this); lp_var_t<uint16_t> mgt = lp_var_t<uint16_t>(sid.objectId, PoolIds::TEMP_MGT, this);
lp_vec_t<int16_t, 3> acu = lp_vec_t<int16_t, 3>(sid.objectId, PoolIds::TEMP_ACU, this); lp_vec_t<float, 3> acu = lp_vec_t<float, 3>(sid.objectId, PoolIds::TEMP_ACU, this);
lp_var_t<int16_t> pdu1 = lp_var_t<int16_t>(sid.objectId, PoolIds::TEMP_PDU1, this); lp_var_t<float> pdu1 = lp_var_t<float>(sid.objectId, PoolIds::TEMP_PDU1, this);
lp_var_t<int16_t> pdu2 = lp_var_t<int16_t>(sid.objectId, PoolIds::TEMP_PDU2, this); lp_var_t<float> pdu2 = lp_var_t<float>(sid.objectId, PoolIds::TEMP_PDU2, this);
lp_var_t<int16_t> temp1P60dock = lp_var_t<int16_t>(sid.objectId, PoolIds::TEMP_1_P60DOCK, this); lp_var_t<float> temp1P60dock = lp_var_t<float>(sid.objectId, PoolIds::TEMP_1_P60DOCK, this);
lp_var_t<int16_t> temp2P60dock = lp_var_t<int16_t>(sid.objectId, PoolIds::TEMP_2_P60DOCK, this); lp_var_t<float> temp2P60dock = lp_var_t<float>(sid.objectId, PoolIds::TEMP_2_P60DOCK, this);
lp_var_t<float> gyro0SideA = lp_var_t<float>(sid.objectId, PoolIds::TEMP_GYRO_0_SIDE_A, this); lp_var_t<float> gyro0SideA = lp_var_t<float>(sid.objectId, PoolIds::TEMP_GYRO_0_SIDE_A, this);
lp_var_t<float> gyro1SideA = lp_var_t<float>(sid.objectId, PoolIds::TEMP_GYRO_1_SIDE_A, this); lp_var_t<float> gyro1SideA = lp_var_t<float>(sid.objectId, PoolIds::TEMP_GYRO_1_SIDE_A, this);
lp_var_t<float> gyro2SideB = lp_var_t<float>(sid.objectId, PoolIds::TEMP_GYRO_2_SIDE_B, this); lp_var_t<float> gyro2SideB = lp_var_t<float>(sid.objectId, PoolIds::TEMP_GYRO_2_SIDE_B, this);

View File

@ -75,7 +75,7 @@ ReturnValue_t ACUHandler::parseHkTableReply(const uint8_t *packet) {
dataOffset += 4; dataOffset += 4;
for (size_t idx = 0; idx < 3; idx++) { for (size_t idx = 0; idx < 3; idx++) {
coreHk.temperatures[idx] = (packet[dataOffset] << 8) | packet[dataOffset + 1]; coreHk.temperatures[idx] = ((packet[dataOffset] << 8) | packet[dataOffset + 1]) * 0.1;
dataOffset += 4; dataOffset += 4;
} }
@ -146,7 +146,7 @@ ReturnValue_t ACUHandler::initializeLocalDataPool(localpool::DataPool &localData
localDataPoolMap.emplace(pool::ACU_VCC, new PoolEntry<uint16_t>({0})); localDataPoolMap.emplace(pool::ACU_VCC, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(pool::ACU_VBAT, new PoolEntry<uint16_t>({0})); localDataPoolMap.emplace(pool::ACU_VBAT, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(pool::ACU_TEMPERATURES, new PoolEntry<int16_t>(3)); localDataPoolMap.emplace(pool::ACU_TEMPERATURES, new PoolEntry<float>(3));
localDataPoolMap.emplace(pool::ACU_MPPT_MODE, new PoolEntry<uint8_t>({0})); localDataPoolMap.emplace(pool::ACU_MPPT_MODE, new PoolEntry<uint8_t>({0}));

View File

@ -366,7 +366,7 @@ ReturnValue_t GomspaceDeviceHandler::initializePduPool(
localDataPoolMap.emplace(P60System::pool::PDU_VCC, new PoolEntry<int16_t>({0})); localDataPoolMap.emplace(P60System::pool::PDU_VCC, new PoolEntry<int16_t>({0}));
localDataPoolMap.emplace(P60System::pool::PDU_VBAT, new PoolEntry<int16_t>({0})); localDataPoolMap.emplace(P60System::pool::PDU_VBAT, new PoolEntry<int16_t>({0}));
localDataPoolMap.emplace(P60System::pool::PDU_TEMPERATURE, new PoolEntry<int16_t>({0})); localDataPoolMap.emplace(P60System::pool::PDU_TEMPERATURE, new PoolEntry<float>({0}));
localDataPoolMap.emplace(P60System::pool::PDU_CONV_EN, new PoolEntry<uint8_t>(3)); localDataPoolMap.emplace(P60System::pool::PDU_CONV_EN, new PoolEntry<uint8_t>(3));
localDataPoolMap.emplace(P60System::pool::PDU_OUT_ENABLE, localDataPoolMap.emplace(P60System::pool::PDU_OUT_ENABLE,
@ -472,7 +472,7 @@ ReturnValue_t GomspaceDeviceHandler::parsePduHkTable(PDU::PduCoreHk& coreHk, PDU
dataOffset += 4; dataOffset += 4;
auxHk.vbat = *(packet + dataOffset) << 8 | *(packet + dataOffset + 1); auxHk.vbat = *(packet + dataOffset) << 8 | *(packet + dataOffset + 1);
dataOffset += 4; dataOffset += 4;
coreHk.temperature = *(packet + dataOffset) << 8 | *(packet + dataOffset + 1); coreHk.temperature = *(packet + dataOffset) << 8 | *(packet + dataOffset + 1) / 10;
dataOffset += 4; dataOffset += 4;
for (uint8_t idx = 0; idx < 3; idx++) { for (uint8_t idx = 0; idx < 3; idx++) {

View File

@ -57,9 +57,9 @@ void P60DockHandler::parseHkTableReply(const uint8_t *packet) {
dataOffset += 3; dataOffset += 3;
} }
coreHk.temperature1 = *(packet + dataOffset) << 8 | *(packet + dataOffset + 1); coreHk.temperature1 = (*(packet + dataOffset) << 8 | *(packet + dataOffset + 1)) * 0.1;
dataOffset += 4; dataOffset += 4;
coreHk.temperature2 = *(packet + dataOffset) << 8 | *(packet + dataOffset + 1); coreHk.temperature2 = (*(packet + dataOffset) << 8 | *(packet + dataOffset + 1)) * 0.1;
dataOffset += 4; dataOffset += 4;
auxHk.bootcause = *(packet + dataOffset) << 24 | auxHk.bootcause = *(packet + dataOffset) << 24 |
@ -198,8 +198,8 @@ ReturnValue_t P60DockHandler::initializeLocalDataPool(localpool::DataPool &local
localDataPoolMap.emplace(pool::P60DOCK_BATTERY_CURRENT, new PoolEntry<int16_t>({0})); localDataPoolMap.emplace(pool::P60DOCK_BATTERY_CURRENT, new PoolEntry<int16_t>({0}));
localDataPoolMap.emplace(pool::P60DOCK_BATTERY_VOLTAGE, new PoolEntry<uint16_t>({0})); localDataPoolMap.emplace(pool::P60DOCK_BATTERY_VOLTAGE, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(pool::P60DOCK_BATTERY_TEMPERATURE_1, new PoolEntry<int16_t>({0})); localDataPoolMap.emplace(pool::P60DOCK_BATTERY_TEMPERATURE_1, new PoolEntry<float>({0}));
localDataPoolMap.emplace(pool::P60DOCK_BATTERY_TEMPERATURE_2, new PoolEntry<int16_t>({0})); localDataPoolMap.emplace(pool::P60DOCK_BATTERY_TEMPERATURE_2, new PoolEntry<float>({0}));
localDataPoolMap.emplace(pool::DEVICES_TYPE, &devicesType); localDataPoolMap.emplace(pool::DEVICES_TYPE, &devicesType);
localDataPoolMap.emplace(pool::DEVICES_STATUS, &devicesStatus); localDataPoolMap.emplace(pool::DEVICES_STATUS, &devicesStatus);

View File

@ -279,6 +279,7 @@ ReturnValue_t RwHandler::initializeLocalDataPool(localpool::DataPool& localDataP
localDataPoolMap.emplace(RwDefinitions::SPI_TOTAL_ERRORS, new PoolEntry<uint32_t>({0})); localDataPoolMap.emplace(RwDefinitions::SPI_TOTAL_ERRORS, new PoolEntry<uint32_t>({0}));
poolManager.subscribeForPeriodicPacket(statusSet.getSid(), false, 5.0, true); poolManager.subscribeForPeriodicPacket(statusSet.getSid(), false, 5.0, true);
poolManager.subscribeForPeriodicPacket(tmDataset.getSid(), false, 30.0, false); poolManager.subscribeForPeriodicPacket(tmDataset.getSid(), false, 30.0, false);
poolManager.subscribeForPeriodicPacket(lastResetStatusSet.getSid(), false, 30.0, false);
return RETURN_OK; return RETURN_OK;
} }

View File

@ -244,10 +244,10 @@ class CoreHkSet : public StaticLocalDataSet<16> {
lp_var_t<uint16_t> batteryVoltage = lp_var_t<uint16_t> batteryVoltage =
lp_var_t<uint16_t>(sid.objectId, P60System::pool::P60DOCK_BATTERY_VOLTAGE, this); lp_var_t<uint16_t>(sid.objectId, P60System::pool::P60DOCK_BATTERY_VOLTAGE, this);
lp_var_t<int16_t> temperature1 = lp_var_t<float> temperature1 =
lp_var_t<int16_t>(sid.objectId, P60System::pool::P60DOCK_TEMPERATURE_1, this); lp_var_t<float>(sid.objectId, P60System::pool::P60DOCK_TEMPERATURE_1, this);
lp_var_t<int16_t> temperature2 = lp_var_t<float> temperature2 =
lp_var_t<int16_t>(sid.objectId, P60System::pool::P60DOCK_TEMPERATURE_2, this); lp_var_t<float>(sid.objectId, P60System::pool::P60DOCK_TEMPERATURE_2, this);
}; };
/** /**
* @brief This class defines a dataset for the hk table of the P60 Dock. * @brief This class defines a dataset for the hk table of the P60 Dock.
@ -368,8 +368,8 @@ class PduCoreHk : public StaticLocalDataSet<9> {
/** Battery mode: 1 = Critical, 2 = Safe, 3 = Normal, 4 = Full */ /** Battery mode: 1 = Critical, 2 = Safe, 3 = Normal, 4 = Full */
lp_var_t<uint8_t> battMode = lp_var_t<uint8_t> battMode =
lp_var_t<uint8_t>(sid.objectId, P60System::pool::PDU_BATT_MODE, this); lp_var_t<uint8_t>(sid.objectId, P60System::pool::PDU_BATT_MODE, this);
lp_var_t<int16_t> temperature = lp_var_t<float> temperature =
lp_var_t<int16_t>(sid.objectId, P60System::pool::PDU_TEMPERATURE, this); lp_var_t<float>(sid.objectId, P60System::pool::PDU_TEMPERATURE, this);
}; };
/** /**
@ -575,8 +575,8 @@ class CoreHk : public StaticLocalDataSet<14> {
lp_vec_t<uint16_t, 6> powerInChannels = lp_vec_t<uint16_t, 6> powerInChannels =
lp_vec_t<uint16_t, 6>(sid.objectId, P60System::pool::ACU_POWER_IN_CHANNELS, this); lp_vec_t<uint16_t, 6>(sid.objectId, P60System::pool::ACU_POWER_IN_CHANNELS, this);
lp_vec_t<int16_t, 3> temperatures = lp_vec_t<float, 3> temperatures =
lp_vec_t<int16_t, 3>(sid.objectId, P60System::pool::ACU_TEMPERATURES, this); lp_vec_t<float, 3>(sid.objectId, P60System::pool::ACU_TEMPERATURES, this);
lp_var_t<uint32_t> bootcnt = lp_var_t<uint32_t>(sid.objectId, P60System::pool::ACU_BOOTCNT, this); lp_var_t<uint32_t> bootcnt = lp_var_t<uint32_t>(sid.objectId, P60System::pool::ACU_BOOTCNT, this);
lp_var_t<uint32_t> uptime = lp_var_t<uint32_t>(sid.objectId, P60System::pool::ACU_UPTIME, this); lp_var_t<uint32_t> uptime = lp_var_t<uint32_t>(sid.objectId, P60System::pool::ACU_UPTIME, this);

8
scripts/q7s-port-local.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/bash
echo "Setting up all Q7S ports"
echo "-L 1534:192.168.155.55:1534 for connection to the TCF agent on the FM"
echo "-L 1536:192.168.155.55:7301 for TMTC commanding using the TCP/IP IF on the FM"
ssh -L 1534:localhost:1534 root@192.168.155.55
ssh -L 1560:localhost:7301 root@192.168.155.55