v1.16.0 #323
@ -20,6 +20,8 @@ list yields a list of all related PRs for each release.
|
|||||||
- MAX3185 Low Level Handler and Device Handler: Simplifications and bugfixes to allow switching
|
- MAX3185 Low Level Handler and Device Handler: Simplifications and bugfixes to allow switching
|
||||||
off without triggering unrequested replies
|
off without triggering unrequested replies
|
||||||
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/313
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/313
|
||||||
|
- Add remaining missing TMP1075 device handlers.
|
||||||
|
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/318
|
||||||
|
|
||||||
# [v1.15.0] 27.10.2022
|
# [v1.15.0] 27.10.2022
|
||||||
|
|
||||||
|
16
README.md
16
README.md
@ -1108,11 +1108,19 @@ cat /proc/tty/driver
|
|||||||
|
|
||||||
## I2C
|
## I2C
|
||||||
|
|
||||||
Getting information about I2C device
|
Getting information about some I2C device
|
||||||
````
|
|
||||||
|
```sh
|
||||||
ls /sys/class/i2c-dev/i2c-0/device/device/driver
|
ls /sys/class/i2c-dev/i2c-0/device/device/driver
|
||||||
````
|
```
|
||||||
This shows the memory mapping of /dev/i2c-0
|
This shows the memory mapping of `/dev/i2c-0`.
|
||||||
|
|
||||||
|
You can use the `i2cdetect` utility to scan for I2C devices.
|
||||||
|
For example, to do this for bus 0 (`/dev/i2c-0`), you can use
|
||||||
|
|
||||||
|
```sh
|
||||||
|
i2cdetect -r -y 0
|
||||||
|
```
|
||||||
|
|
||||||
## CAN
|
## CAN
|
||||||
|
|
||||||
|
@ -104,6 +104,7 @@
|
|||||||
#define OBSW_PRINT_CORE_HK 0
|
#define OBSW_PRINT_CORE_HK 0
|
||||||
#define OBSW_DEBUG_PDU1 0
|
#define OBSW_DEBUG_PDU1 0
|
||||||
#define OBSW_DEBUG_PDU2 0
|
#define OBSW_DEBUG_PDU2 0
|
||||||
|
#define OBSW_DEBUG_TMP1075 0
|
||||||
#define OBSW_DEBUG_GPS 0
|
#define OBSW_DEBUG_GPS 0
|
||||||
#define OBSW_DEBUG_ACU 0
|
#define OBSW_DEBUG_ACU 0
|
||||||
#define OBSW_DEBUG_SYRLINKS 0
|
#define OBSW_DEBUG_SYRLINKS 0
|
||||||
|
@ -8,7 +8,8 @@ static constexpr uint32_t SPI_MAIN_BUS_LOCK_TIMEOUT = 50;
|
|||||||
|
|
||||||
static constexpr char SPI_RW_DEV[] = "/dev/spi_rw";
|
static constexpr char SPI_RW_DEV[] = "/dev/spi_rw";
|
||||||
|
|
||||||
static constexpr char I2C_DEFAULT_DEV[] = "/dev/i2c_eive";
|
static constexpr char I2C_PL_EIVE[] = "/dev/i2c_eive";
|
||||||
|
static constexpr char I2C_PS_EIVE[] = "/dev/i2c-2";
|
||||||
|
|
||||||
static constexpr char UART_GNSS_DEV[] = "/dev/gps0";
|
static constexpr char UART_GNSS_DEV[] = "/dev/gps0";
|
||||||
static constexpr char UART_PLOC_MPSOC_DEV[] = "/dev/ul_plmpsoc";
|
static constexpr char UART_PLOC_MPSOC_DEV[] = "/dev/ul_plmpsoc";
|
||||||
|
@ -123,18 +123,25 @@ void Factory::setStaticFrameworkObjectIds() {
|
|||||||
void ObjectFactory::setStatics() { Factory::setStaticFrameworkObjectIds(); }
|
void ObjectFactory::setStatics() { Factory::setStaticFrameworkObjectIds(); }
|
||||||
|
|
||||||
void ObjectFactory::createTmpComponents() {
|
void ObjectFactory::createTmpComponents() {
|
||||||
I2cCookie* i2cCookieTmp1075tcs1 =
|
std::array<std::pair<object_id_t, address_t>, 5> tmpDevIds = {{
|
||||||
new I2cCookie(addresses::TMP1075_TCS_1, TMP1075::MAX_REPLY_LENGTH, q7s::I2C_DEFAULT_DEV);
|
{objects::TMP1075_HANDLER_TCS_0, addresses::TMP1075_TCS_0},
|
||||||
I2cCookie* i2cCookieTmp1075tcs2 =
|
{objects::TMP1075_HANDLER_TCS_1, addresses::TMP1075_TCS_1},
|
||||||
new I2cCookie(addresses::TMP1075_TCS_2, TMP1075::MAX_REPLY_LENGTH, q7s::I2C_DEFAULT_DEV);
|
{objects::TMP1075_HANDLER_PLPCDU_0, addresses::TMP1075_PLPCDU_0},
|
||||||
|
{objects::TMP1075_HANDLER_PLPCDU_1, addresses::TMP1075_PLPCDU_1},
|
||||||
|
{objects::TMP1075_HANDLER_IF_BOARD, addresses::TMP1075_IF_BOARD},
|
||||||
|
}};
|
||||||
|
std::vector<I2cCookie*> tmpDevCookies;
|
||||||
|
|
||||||
/* Temperature sensors */
|
for (size_t idx = 0; idx < tmpDevIds.size(); idx++) {
|
||||||
Tmp1075Handler* tmp1075Handler_1 =
|
tmpDevCookies.push_back(
|
||||||
new Tmp1075Handler(objects::TMP1075_HANDLER_1, objects::I2C_COM_IF, i2cCookieTmp1075tcs1);
|
new I2cCookie(tmpDevIds[idx].second, TMP1075::MAX_REPLY_LENGTH, q7s::I2C_PS_EIVE));
|
||||||
(void)tmp1075Handler_1;
|
auto* tmpDevHandler =
|
||||||
Tmp1075Handler* tmp1075Handler_2 =
|
new Tmp1075Handler(tmpDevIds[idx].first, objects::I2C_COM_IF, tmpDevCookies[idx]);
|
||||||
new Tmp1075Handler(objects::TMP1075_HANDLER_2, objects::I2C_COM_IF, i2cCookieTmp1075tcs2);
|
// TODO: Remove this after TCS subsystem was added
|
||||||
(void)tmp1075Handler_2;
|
// These devices are connected to the 3V3 stack and should be powered permanently. Therefore,
|
||||||
|
// we set them to normal mode immediately here.
|
||||||
|
tmpDevHandler->setModeNormal();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFactory::createCommunicationInterfaces(LinuxLibgpioIF** gpioComIF,
|
void ObjectFactory::createCommunicationInterfaces(LinuxLibgpioIF** gpioComIF,
|
||||||
@ -574,7 +581,7 @@ void ObjectFactory::createSolarArrayDeploymentComponents(PowerSwitchIF& pwrSwitc
|
|||||||
void ObjectFactory::createSyrlinksComponents(PowerSwitchIF* pwrSwitcher) {
|
void ObjectFactory::createSyrlinksComponents(PowerSwitchIF* pwrSwitcher) {
|
||||||
auto* syrlinksUartCookie =
|
auto* syrlinksUartCookie =
|
||||||
new SerialCookie(objects::SYRLINKS_HK_HANDLER, q7s::UART_SYRLINKS_DEV, uart::SYRLINKS_BAUD,
|
new SerialCookie(objects::SYRLINKS_HK_HANDLER, q7s::UART_SYRLINKS_DEV, uart::SYRLINKS_BAUD,
|
||||||
syrlinks::MAX_REPLY_SIZE, UartModes::NON_CANONICAL);
|
syrlinks::MAX_REPLY_SIZE, UartModes::NON_CANONICAL);
|
||||||
syrlinksUartCookie->setParityEven();
|
syrlinksUartCookie->setParityEven();
|
||||||
|
|
||||||
auto syrlinksFdir = new SyrlinksFdir(objects::SYRLINKS_HK_HANDLER);
|
auto syrlinksFdir = new SyrlinksFdir(objects::SYRLINKS_HK_HANDLER);
|
||||||
@ -603,7 +610,7 @@ void ObjectFactory::createPayloadComponents(LinuxLibgpioIF* gpioComIF, PowerSwit
|
|||||||
gpioChecker(gpioComIF->addGpios(mpsocGpioCookie), "PLOC MPSoC");
|
gpioChecker(gpioComIF->addGpios(mpsocGpioCookie), "PLOC MPSoC");
|
||||||
auto mpsocCookie =
|
auto mpsocCookie =
|
||||||
new SerialCookie(objects::PLOC_MPSOC_HANDLER, q7s::UART_PLOC_MPSOC_DEV, uart::PLOC_MPSOC_BAUD,
|
new SerialCookie(objects::PLOC_MPSOC_HANDLER, q7s::UART_PLOC_MPSOC_DEV, uart::PLOC_MPSOC_BAUD,
|
||||||
mpsoc::MAX_REPLY_SIZE, UartModes::NON_CANONICAL);
|
mpsoc::MAX_REPLY_SIZE, UartModes::NON_CANONICAL);
|
||||||
mpsocCookie->setNoFixedSizeReply();
|
mpsocCookie->setNoFixedSizeReply();
|
||||||
auto plocMpsocHelper = new PlocMPSoCHelper(objects::PLOC_MPSOC_HELPER);
|
auto plocMpsocHelper = new PlocMPSoCHelper(objects::PLOC_MPSOC_HELPER);
|
||||||
auto* mpsocHandler = new PlocMPSoCHandler(
|
auto* mpsocHandler = new PlocMPSoCHandler(
|
||||||
@ -620,7 +627,7 @@ void ObjectFactory::createPayloadComponents(LinuxLibgpioIF* gpioComIF, PowerSwit
|
|||||||
gpioComIF->addGpios(supvGpioCookie);
|
gpioComIF->addGpios(supvGpioCookie);
|
||||||
auto supervisorCookie =
|
auto supervisorCookie =
|
||||||
new SerialCookie(objects::PLOC_SUPERVISOR_HANDLER, q7s::UART_PLOC_SUPERVSIOR_DEV,
|
new SerialCookie(objects::PLOC_SUPERVISOR_HANDLER, q7s::UART_PLOC_SUPERVSIOR_DEV,
|
||||||
uart::PLOC_SUPV_BAUD, supv::MAX_PACKET_SIZE * 20, UartModes::NON_CANONICAL);
|
uart::PLOC_SUPV_BAUD, supv::MAX_PACKET_SIZE * 20, UartModes::NON_CANONICAL);
|
||||||
supervisorCookie->setNoFixedSizeReply();
|
supervisorCookie->setNoFixedSizeReply();
|
||||||
auto supvHelper = new PlocSupvHelper(objects::PLOC_SUPERVISOR_HELPER);
|
auto supvHelper = new PlocSupvHelper(objects::PLOC_SUPERVISOR_HELPER);
|
||||||
auto* supvHandler = new PlocSupervisorHandler(
|
auto* supvHandler = new PlocSupervisorHandler(
|
||||||
@ -896,7 +903,7 @@ void ObjectFactory::createTestComponents(LinuxLibgpioIF* gpioComIF) {
|
|||||||
new SpiTestClass(objects::SPI_TEST, gpioComIF);
|
new SpiTestClass(objects::SPI_TEST, gpioComIF);
|
||||||
#endif
|
#endif
|
||||||
#if OBSW_ADD_I2C_TEST_CODE == 1
|
#if OBSW_ADD_I2C_TEST_CODE == 1
|
||||||
new I2cTestClass(objects::I2C_TEST, q7s::I2C_DEFAULT_DEV);
|
new I2cTestClass(objects::I2C_TEST, q7s::I2C_PL_EIVE);
|
||||||
#endif
|
#endif
|
||||||
#if OBSW_ADD_UART_TEST_CODE == 1
|
#if OBSW_ADD_UART_TEST_CODE == 1
|
||||||
// auto* reader= new ScexUartReader(objects::SCEX_UART_READER);
|
// auto* reader= new ScexUartReader(objects::SCEX_UART_READER);
|
||||||
@ -907,7 +914,7 @@ void ObjectFactory::createTestComponents(LinuxLibgpioIF* gpioComIF) {
|
|||||||
void ObjectFactory::createStrComponents(PowerSwitchIF* pwrSwitcher) {
|
void ObjectFactory::createStrComponents(PowerSwitchIF* pwrSwitcher) {
|
||||||
auto* starTrackerCookie =
|
auto* starTrackerCookie =
|
||||||
new SerialCookie(objects::STAR_TRACKER, q7s::UART_STAR_TRACKER_DEV, uart::STAR_TRACKER_BAUD,
|
new SerialCookie(objects::STAR_TRACKER, q7s::UART_STAR_TRACKER_DEV, uart::STAR_TRACKER_BAUD,
|
||||||
startracker::MAX_FRAME_SIZE * 2 + 2, UartModes::NON_CANONICAL);
|
startracker::MAX_FRAME_SIZE * 2 + 2, UartModes::NON_CANONICAL);
|
||||||
starTrackerCookie->setNoFixedSizeReply();
|
starTrackerCookie->setNoFixedSizeReply();
|
||||||
StrHelper* strHelper = new StrHelper(objects::STR_HELPER);
|
StrHelper* strHelper = new StrHelper(objects::STR_HELPER);
|
||||||
auto starTracker =
|
auto starTracker =
|
||||||
@ -918,8 +925,7 @@ void ObjectFactory::createStrComponents(PowerSwitchIF* pwrSwitcher) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFactory::createImtqComponents(PowerSwitchIF* pwrSwitcher) {
|
void ObjectFactory::createImtqComponents(PowerSwitchIF* pwrSwitcher) {
|
||||||
I2cCookie* imtqI2cCookie =
|
I2cCookie* imtqI2cCookie = new I2cCookie(addresses::IMTQ, IMTQ::MAX_REPLY_SIZE, q7s::I2C_PL_EIVE);
|
||||||
new I2cCookie(addresses::IMTQ, IMTQ::MAX_REPLY_SIZE, q7s::I2C_DEFAULT_DEV);
|
|
||||||
auto imtqHandler = new ImtqHandler(objects::IMTQ_HANDLER, objects::I2C_COM_IF, imtqI2cCookie,
|
auto imtqHandler = new ImtqHandler(objects::IMTQ_HANDLER, objects::I2C_COM_IF, imtqI2cCookie,
|
||||||
pcdu::Switches::PDU1_CH3_MGT_5V);
|
pcdu::Switches::PDU1_CH3_MGT_5V);
|
||||||
imtqHandler->setPowerSwitcher(pwrSwitcher);
|
imtqHandler->setPowerSwitcher(pwrSwitcher);
|
||||||
@ -935,7 +941,7 @@ void ObjectFactory::createImtqComponents(PowerSwitchIF* pwrSwitcher) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ObjectFactory::createBpxBatteryComponent() {
|
void ObjectFactory::createBpxBatteryComponent() {
|
||||||
I2cCookie* bpxI2cCookie = new I2cCookie(addresses::BPX_BATTERY, 100, q7s::I2C_DEFAULT_DEV);
|
I2cCookie* bpxI2cCookie = new I2cCookie(addresses::BPX_BATTERY, 100, q7s::I2C_PL_EIVE);
|
||||||
BpxBatteryHandler* bpxHandler =
|
BpxBatteryHandler* bpxHandler =
|
||||||
new BpxBatteryHandler(objects::BPX_BATT_HANDLER, objects::I2C_COM_IF, bpxI2cCookie);
|
new BpxBatteryHandler(objects::BPX_BATT_HANDLER, objects::I2C_COM_IF, bpxI2cCookie);
|
||||||
bpxHandler->setStartUpImmediately();
|
bpxHandler->setStartUpImmediately();
|
||||||
|
@ -39,8 +39,12 @@ enum commonObjects : uint32_t {
|
|||||||
GPS_CONTROLLER = 0x44130045,
|
GPS_CONTROLLER = 0x44130045,
|
||||||
|
|
||||||
IMTQ_HANDLER = 0x44140014,
|
IMTQ_HANDLER = 0x44140014,
|
||||||
TMP1075_HANDLER_1 = 0x44420004,
|
TMP1075_HANDLER_TCS_0 = 0x44420004,
|
||||||
TMP1075_HANDLER_2 = 0x44420005,
|
TMP1075_HANDLER_TCS_1 = 0x44420005,
|
||||||
|
TMP1075_HANDLER_PLPCDU_0 = 0x44420006,
|
||||||
|
TMP1075_HANDLER_PLPCDU_1 = 0x44420007,
|
||||||
|
TMP1075_HANDLER_IF_BOARD = 0x44420008,
|
||||||
|
TMP1075_HANDLER_OBC_IF_BOARD = 0x44420009,
|
||||||
PCDU_HANDLER = 0x442000A1,
|
PCDU_HANDLER = 0x442000A1,
|
||||||
P60DOCK_HANDLER = 0x44250000,
|
P60DOCK_HANDLER = 0x44250000,
|
||||||
PDU1_HANDLER = 0x44250001,
|
PDU1_HANDLER = 0x44250001,
|
||||||
|
@ -23,8 +23,8 @@ TemperatureSensorsDummy::TemperatureSensorsDummy()
|
|||||||
ObjectManager::instance()->insert(objects::RTD_13_IC16_PLPCDU_HEATSPREADER, this);
|
ObjectManager::instance()->insert(objects::RTD_13_IC16_PLPCDU_HEATSPREADER, this);
|
||||||
ObjectManager::instance()->insert(objects::RTD_14_IC17_TCS_BOARD, this);
|
ObjectManager::instance()->insert(objects::RTD_14_IC17_TCS_BOARD, this);
|
||||||
ObjectManager::instance()->insert(objects::RTD_15_IC18_IMTQ, this);
|
ObjectManager::instance()->insert(objects::RTD_15_IC18_IMTQ, this);
|
||||||
ObjectManager::instance()->insert(objects::TMP1075_HANDLER_1, this);
|
ObjectManager::instance()->insert(objects::TMP1075_HANDLER_TCS_0, this);
|
||||||
ObjectManager::instance()->insert(objects::TMP1075_HANDLER_2, this);
|
ObjectManager::instance()->insert(objects::TMP1075_HANDLER_TCS_1, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t TemperatureSensorsDummy::initialize() {
|
ReturnValue_t TemperatureSensorsDummy::initialize() {
|
||||||
|
@ -50,8 +50,12 @@
|
|||||||
0x44330032;SCEX
|
0x44330032;SCEX
|
||||||
0x444100A2;SOLAR_ARRAY_DEPL_HANDLER
|
0x444100A2;SOLAR_ARRAY_DEPL_HANDLER
|
||||||
0x444100A4;HEATER_HANDLER
|
0x444100A4;HEATER_HANDLER
|
||||||
0x44420004;TMP1075_HANDLER_1
|
0x44420004;TMP1075_HANDLER_TCS_0
|
||||||
0x44420005;TMP1075_HANDLER_2
|
0x44420005;TMP1075_HANDLER_TCS_1
|
||||||
|
0x44420006;TMP1075_HANDLER_PLPCDU_0
|
||||||
|
0x44420007;TMP1075_HANDLER_PLPCDU_1
|
||||||
|
0x44420008;TMP1075_HANDLER_IF_BOARD
|
||||||
|
0x44420009;TMP1075_HANDLER_OBC_IF_BOARD
|
||||||
0x44420016;RTD_0_IC3_PLOC_HEATSPREADER
|
0x44420016;RTD_0_IC3_PLOC_HEATSPREADER
|
||||||
0x44420017;RTD_1_IC4_PLOC_MISSIONBOARD
|
0x44420017;RTD_1_IC4_PLOC_MISSIONBOARD
|
||||||
0x44420018;RTD_2_IC5_4K_CAMERA
|
0x44420018;RTD_2_IC5_4K_CAMERA
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 234 translations.
|
* @brief Auto-generated event translation file. Contains 234 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2022-11-10 18:07:26
|
* Generated on: 2022-11-14 17:10:10
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated object translation file.
|
* @brief Auto-generated object translation file.
|
||||||
* @details
|
* @details
|
||||||
* Contains 144 translations.
|
* Contains 148 translations.
|
||||||
* Generated on: 2022-11-10 18:07:26
|
* Generated on: 2022-11-14 17:10:10
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
@ -58,8 +58,12 @@ const char *PLOC_SUPERVISOR_HELPER_STRING = "PLOC_SUPERVISOR_HELPER";
|
|||||||
const char *SCEX_STRING = "SCEX";
|
const char *SCEX_STRING = "SCEX";
|
||||||
const char *SOLAR_ARRAY_DEPL_HANDLER_STRING = "SOLAR_ARRAY_DEPL_HANDLER";
|
const char *SOLAR_ARRAY_DEPL_HANDLER_STRING = "SOLAR_ARRAY_DEPL_HANDLER";
|
||||||
const char *HEATER_HANDLER_STRING = "HEATER_HANDLER";
|
const char *HEATER_HANDLER_STRING = "HEATER_HANDLER";
|
||||||
const char *TMP1075_HANDLER_1_STRING = "TMP1075_HANDLER_1";
|
const char *TMP1075_HANDLER_TCS_0_STRING = "TMP1075_HANDLER_TCS_0";
|
||||||
const char *TMP1075_HANDLER_2_STRING = "TMP1075_HANDLER_2";
|
const char *TMP1075_HANDLER_TCS_1_STRING = "TMP1075_HANDLER_TCS_1";
|
||||||
|
const char *TMP1075_HANDLER_PLPCDU_0_STRING = "TMP1075_HANDLER_PLPCDU_0";
|
||||||
|
const char *TMP1075_HANDLER_PLPCDU_1_STRING = "TMP1075_HANDLER_PLPCDU_1";
|
||||||
|
const char *TMP1075_HANDLER_IF_BOARD_STRING = "TMP1075_HANDLER_IF_BOARD";
|
||||||
|
const char *TMP1075_HANDLER_OBC_IF_BOARD_STRING = "TMP1075_HANDLER_OBC_IF_BOARD";
|
||||||
const char *RTD_0_IC3_PLOC_HEATSPREADER_STRING = "RTD_0_IC3_PLOC_HEATSPREADER";
|
const char *RTD_0_IC3_PLOC_HEATSPREADER_STRING = "RTD_0_IC3_PLOC_HEATSPREADER";
|
||||||
const char *RTD_1_IC4_PLOC_MISSIONBOARD_STRING = "RTD_1_IC4_PLOC_MISSIONBOARD";
|
const char *RTD_1_IC4_PLOC_MISSIONBOARD_STRING = "RTD_1_IC4_PLOC_MISSIONBOARD";
|
||||||
const char *RTD_2_IC5_4K_CAMERA_STRING = "RTD_2_IC5_4K_CAMERA";
|
const char *RTD_2_IC5_4K_CAMERA_STRING = "RTD_2_IC5_4K_CAMERA";
|
||||||
@ -258,9 +262,17 @@ const char *translateObject(object_id_t object) {
|
|||||||
case 0x444100A4:
|
case 0x444100A4:
|
||||||
return HEATER_HANDLER_STRING;
|
return HEATER_HANDLER_STRING;
|
||||||
case 0x44420004:
|
case 0x44420004:
|
||||||
return TMP1075_HANDLER_1_STRING;
|
return TMP1075_HANDLER_TCS_0_STRING;
|
||||||
case 0x44420005:
|
case 0x44420005:
|
||||||
return TMP1075_HANDLER_2_STRING;
|
return TMP1075_HANDLER_TCS_1_STRING;
|
||||||
|
case 0x44420006:
|
||||||
|
return TMP1075_HANDLER_PLPCDU_0_STRING;
|
||||||
|
case 0x44420007:
|
||||||
|
return TMP1075_HANDLER_PLPCDU_1_STRING;
|
||||||
|
case 0x44420008:
|
||||||
|
return TMP1075_HANDLER_IF_BOARD_STRING;
|
||||||
|
case 0x44420009:
|
||||||
|
return TMP1075_HANDLER_OBC_IF_BOARD_STRING;
|
||||||
case 0x44420016:
|
case 0x44420016:
|
||||||
return RTD_0_IC3_PLOC_HEATSPREADER_STRING;
|
return RTD_0_IC3_PLOC_HEATSPREADER_STRING;
|
||||||
case 0x44420017:
|
case 0x44420017:
|
||||||
|
@ -43,11 +43,14 @@ enum logicalAddresses : address_t {
|
|||||||
DUMMY_GPS1 = 131,
|
DUMMY_GPS1 = 131,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum i2cAddresses : address_t {
|
enum I2cAddress : address_t {
|
||||||
BPX_BATTERY = 0x07,
|
BPX_BATTERY = 0x07,
|
||||||
IMTQ = 0x10,
|
IMTQ = 0x10,
|
||||||
TMP1075_TCS_1 = 0x48,
|
TMP1075_TCS_0 = 0x48,
|
||||||
TMP1075_TCS_2 = 0x49,
|
TMP1075_TCS_1 = 0x49,
|
||||||
|
TMP1075_PLPCDU_0 = 0x4A,
|
||||||
|
TMP1075_PLPCDU_1 = 0x4B,
|
||||||
|
TMP1075_IF_BOARD = 0x4C,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum spiAddresses : address_t {
|
enum spiAddresses : address_t {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 234 translations.
|
* @brief Auto-generated event translation file. Contains 234 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2022-11-10 18:07:26
|
* Generated on: 2022-11-14 17:10:10
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated object translation file.
|
* @brief Auto-generated object translation file.
|
||||||
* @details
|
* @details
|
||||||
* Contains 144 translations.
|
* Contains 148 translations.
|
||||||
* Generated on: 2022-11-10 18:07:26
|
* Generated on: 2022-11-14 17:10:10
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
@ -58,8 +58,12 @@ const char *PLOC_SUPERVISOR_HELPER_STRING = "PLOC_SUPERVISOR_HELPER";
|
|||||||
const char *SCEX_STRING = "SCEX";
|
const char *SCEX_STRING = "SCEX";
|
||||||
const char *SOLAR_ARRAY_DEPL_HANDLER_STRING = "SOLAR_ARRAY_DEPL_HANDLER";
|
const char *SOLAR_ARRAY_DEPL_HANDLER_STRING = "SOLAR_ARRAY_DEPL_HANDLER";
|
||||||
const char *HEATER_HANDLER_STRING = "HEATER_HANDLER";
|
const char *HEATER_HANDLER_STRING = "HEATER_HANDLER";
|
||||||
const char *TMP1075_HANDLER_1_STRING = "TMP1075_HANDLER_1";
|
const char *TMP1075_HANDLER_TCS_0_STRING = "TMP1075_HANDLER_TCS_0";
|
||||||
const char *TMP1075_HANDLER_2_STRING = "TMP1075_HANDLER_2";
|
const char *TMP1075_HANDLER_TCS_1_STRING = "TMP1075_HANDLER_TCS_1";
|
||||||
|
const char *TMP1075_HANDLER_PLPCDU_0_STRING = "TMP1075_HANDLER_PLPCDU_0";
|
||||||
|
const char *TMP1075_HANDLER_PLPCDU_1_STRING = "TMP1075_HANDLER_PLPCDU_1";
|
||||||
|
const char *TMP1075_HANDLER_IF_BOARD_STRING = "TMP1075_HANDLER_IF_BOARD";
|
||||||
|
const char *TMP1075_HANDLER_OBC_IF_BOARD_STRING = "TMP1075_HANDLER_OBC_IF_BOARD";
|
||||||
const char *RTD_0_IC3_PLOC_HEATSPREADER_STRING = "RTD_0_IC3_PLOC_HEATSPREADER";
|
const char *RTD_0_IC3_PLOC_HEATSPREADER_STRING = "RTD_0_IC3_PLOC_HEATSPREADER";
|
||||||
const char *RTD_1_IC4_PLOC_MISSIONBOARD_STRING = "RTD_1_IC4_PLOC_MISSIONBOARD";
|
const char *RTD_1_IC4_PLOC_MISSIONBOARD_STRING = "RTD_1_IC4_PLOC_MISSIONBOARD";
|
||||||
const char *RTD_2_IC5_4K_CAMERA_STRING = "RTD_2_IC5_4K_CAMERA";
|
const char *RTD_2_IC5_4K_CAMERA_STRING = "RTD_2_IC5_4K_CAMERA";
|
||||||
@ -258,9 +262,17 @@ const char *translateObject(object_id_t object) {
|
|||||||
case 0x444100A4:
|
case 0x444100A4:
|
||||||
return HEATER_HANDLER_STRING;
|
return HEATER_HANDLER_STRING;
|
||||||
case 0x44420004:
|
case 0x44420004:
|
||||||
return TMP1075_HANDLER_1_STRING;
|
return TMP1075_HANDLER_TCS_0_STRING;
|
||||||
case 0x44420005:
|
case 0x44420005:
|
||||||
return TMP1075_HANDLER_2_STRING;
|
return TMP1075_HANDLER_TCS_1_STRING;
|
||||||
|
case 0x44420006:
|
||||||
|
return TMP1075_HANDLER_PLPCDU_0_STRING;
|
||||||
|
case 0x44420007:
|
||||||
|
return TMP1075_HANDLER_PLPCDU_1_STRING;
|
||||||
|
case 0x44420008:
|
||||||
|
return TMP1075_HANDLER_IF_BOARD_STRING;
|
||||||
|
case 0x44420009:
|
||||||
|
return TMP1075_HANDLER_OBC_IF_BOARD_STRING;
|
||||||
case 0x44420016:
|
case 0x44420016:
|
||||||
return RTD_0_IC3_PLOC_HEATSPREADER_STRING;
|
return RTD_0_IC3_PLOC_HEATSPREADER_STRING;
|
||||||
case 0x44420017:
|
case 0x44420017:
|
||||||
|
@ -55,30 +55,6 @@ ReturnValue_t pst::pstSpi(FixedTimeslotTaskIF *thisSequence) {
|
|||||||
thisSequence->addSlot(objects::PLPCDU_HANDLER, length * 0, DeviceHandlerIF::SEND_READ);
|
thisSequence->addSlot(objects::PLPCDU_HANDLER, length * 0, DeviceHandlerIF::SEND_READ);
|
||||||
thisSequence->addSlot(objects::PLPCDU_HANDLER, length * 0, DeviceHandlerIF::GET_READ);
|
thisSequence->addSlot(objects::PLPCDU_HANDLER, length * 0, DeviceHandlerIF::GET_READ);
|
||||||
#endif
|
#endif
|
||||||
#if OBSW_ADD_TMP_DEVICES == 1
|
|
||||||
thisSequence->addSlot(objects::TMP1075_HANDLER_1, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
|
||||||
thisSequence->addSlot(objects::TMP1075_HANDLER_2, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OBSW_ADD_TMP_DEVICES == 1
|
|
||||||
thisSequence->addSlot(objects::TMP1075_HANDLER_1, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
|
||||||
thisSequence->addSlot(objects::TMP1075_HANDLER_2, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OBSW_ADD_TMP_DEVICES == 1
|
|
||||||
thisSequence->addSlot(objects::TMP1075_HANDLER_1, length * 0.2, DeviceHandlerIF::GET_WRITE);
|
|
||||||
thisSequence->addSlot(objects::TMP1075_HANDLER_2, length * 0.2, DeviceHandlerIF::GET_WRITE);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OBSW_ADD_TMP_DEVICES == 1
|
|
||||||
thisSequence->addSlot(objects::TMP1075_HANDLER_1, length * 0.2, DeviceHandlerIF::SEND_READ);
|
|
||||||
thisSequence->addSlot(objects::TMP1075_HANDLER_2, length * 0.2, DeviceHandlerIF::SEND_READ);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OBSW_ADD_TMP_DEVICES == 1
|
|
||||||
thisSequence->addSlot(objects::TMP1075_HANDLER_1, length * 0.2, DeviceHandlerIF::GET_READ);
|
|
||||||
thisSequence->addSlot(objects::TMP1075_HANDLER_2, length * 0.2, DeviceHandlerIF::GET_READ);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if OBSW_ADD_SUN_SENSORS == 1
|
#if OBSW_ADD_SUN_SENSORS == 1
|
||||||
|
|
||||||
@ -425,33 +401,78 @@ ReturnValue_t pst::pstSpi(FixedTimeslotTaskIF *thisSequence) {
|
|||||||
return thisSequence->checkSequence();
|
return thisSequence->checkSequence();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// I don't think this needs to be in a PST because linux takes care of bus serialization, but
|
||||||
|
// keep it like this for now, it works
|
||||||
ReturnValue_t pst::pstI2c(FixedTimeslotTaskIF *thisSequence) {
|
ReturnValue_t pst::pstI2c(FixedTimeslotTaskIF *thisSequence) {
|
||||||
// Length of a communication cycle
|
// Length of a communication cycle
|
||||||
uint32_t length = thisSequence->getPeriodMs();
|
uint32_t length = thisSequence->getPeriodMs();
|
||||||
static_cast<void>(length);
|
static_cast<void>(length);
|
||||||
#if OBSW_ADD_MGT == 1
|
#if OBSW_ADD_MGT == 1
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::PERFORM_OPERATION);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::SEND_WRITE);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::GET_WRITE);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::GET_WRITE);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::SEND_READ);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::SEND_READ);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::GET_READ);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::GET_READ);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::PERFORM_OPERATION);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::SEND_WRITE);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::GET_WRITE);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::GET_WRITE);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::SEND_READ);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::SEND_READ);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::GET_READ);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::GET_READ);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::PERFORM_OPERATION);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::SEND_WRITE);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::GET_WRITE);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::GET_WRITE);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::SEND_READ);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::SEND_READ);
|
||||||
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0.2, DeviceHandlerIF::GET_READ);
|
thisSequence->addSlot(objects::IMTQ_HANDLER, length * 0, DeviceHandlerIF::GET_READ);
|
||||||
#endif
|
#endif
|
||||||
#if OBSW_ADD_BPX_BATTERY_HANDLER == 1
|
#if OBSW_ADD_BPX_BATTERY_HANDLER == 1
|
||||||
thisSequence->addSlot(objects::BPX_BATT_HANDLER, length * 0, DeviceHandlerIF::PERFORM_OPERATION);
|
thisSequence->addSlot(objects::BPX_BATT_HANDLER, length * 0.2,
|
||||||
|
DeviceHandlerIF::PERFORM_OPERATION);
|
||||||
thisSequence->addSlot(objects::BPX_BATT_HANDLER, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
thisSequence->addSlot(objects::BPX_BATT_HANDLER, length * 0.2, DeviceHandlerIF::SEND_WRITE);
|
||||||
thisSequence->addSlot(objects::BPX_BATT_HANDLER, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
thisSequence->addSlot(objects::BPX_BATT_HANDLER, length * 0.2, DeviceHandlerIF::GET_WRITE);
|
||||||
thisSequence->addSlot(objects::BPX_BATT_HANDLER, length * 0.6, DeviceHandlerIF::SEND_READ);
|
thisSequence->addSlot(objects::BPX_BATT_HANDLER, length * 0.25, DeviceHandlerIF::SEND_READ);
|
||||||
thisSequence->addSlot(objects::BPX_BATT_HANDLER, length * 0.8, DeviceHandlerIF::GET_READ);
|
thisSequence->addSlot(objects::BPX_BATT_HANDLER, length * 0.25, DeviceHandlerIF::GET_READ);
|
||||||
|
#endif
|
||||||
|
// These are actually part of another bus, but this works, so keep it like this for now
|
||||||
|
#if OBSW_ADD_TMP_DEVICES == 1
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_TCS_0, length * 0.4,
|
||||||
|
DeviceHandlerIF::PERFORM_OPERATION);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_TCS_0, length * 0.4, DeviceHandlerIF::SEND_WRITE);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_TCS_0, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_TCS_0, length * 0.4, DeviceHandlerIF::SEND_READ);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_TCS_0, length * 0.4, DeviceHandlerIF::GET_READ);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_TCS_1, length * 0.4,
|
||||||
|
DeviceHandlerIF::PERFORM_OPERATION);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_TCS_1, length * 0.4, DeviceHandlerIF::SEND_WRITE);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_TCS_1, length * 0.4, DeviceHandlerIF::GET_WRITE);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_TCS_1, length * 0.4, DeviceHandlerIF::SEND_READ);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_TCS_1, length * 0.4, DeviceHandlerIF::GET_READ);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_PLPCDU_0, length * 0.4,
|
||||||
|
DeviceHandlerIF::PERFORM_OPERATION);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_PLPCDU_0, length * 0.4,
|
||||||
|
DeviceHandlerIF::SEND_WRITE);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_PLPCDU_0, length * 0.4,
|
||||||
|
DeviceHandlerIF::GET_WRITE);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_PLPCDU_0, length * 0.4,
|
||||||
|
DeviceHandlerIF::SEND_READ);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_PLPCDU_0, length * 0.4, DeviceHandlerIF::GET_READ);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_PLPCDU_1, length * 0.4,
|
||||||
|
DeviceHandlerIF::PERFORM_OPERATION);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_PLPCDU_1, length * 0.4,
|
||||||
|
DeviceHandlerIF::SEND_WRITE);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_PLPCDU_1, length * 0.4,
|
||||||
|
DeviceHandlerIF::GET_WRITE);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_PLPCDU_1, length * 0.4,
|
||||||
|
DeviceHandlerIF::SEND_READ);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_PLPCDU_1, length * 0.4, DeviceHandlerIF::GET_READ);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_IF_BOARD, length * 0.4,
|
||||||
|
DeviceHandlerIF::PERFORM_OPERATION);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_IF_BOARD, length * 0.4,
|
||||||
|
DeviceHandlerIF::SEND_WRITE);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_IF_BOARD, length * 0.4,
|
||||||
|
DeviceHandlerIF::GET_WRITE);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_IF_BOARD, length * 0.4,
|
||||||
|
DeviceHandlerIF::SEND_READ);
|
||||||
|
thisSequence->addSlot(objects::TMP1075_HANDLER_IF_BOARD, length * 0.4, DeviceHandlerIF::GET_READ);
|
||||||
#endif
|
#endif
|
||||||
static_cast<void>(length);
|
static_cast<void>(length);
|
||||||
return thisSequence->checkSequence();
|
return thisSequence->checkSequence();
|
||||||
|
@ -38,8 +38,11 @@ ThermalController::ThermalController(object_id_t objectId)
|
|||||||
EiveMax31855::RtdCommands::EXCHANGE_SET_ID),
|
EiveMax31855::RtdCommands::EXCHANGE_SET_ID),
|
||||||
max31865Set14(objects::RTD_14_IC17_TCS_BOARD, EiveMax31855::RtdCommands::EXCHANGE_SET_ID),
|
max31865Set14(objects::RTD_14_IC17_TCS_BOARD, EiveMax31855::RtdCommands::EXCHANGE_SET_ID),
|
||||||
max31865Set15(objects::RTD_15_IC18_IMTQ, EiveMax31855::RtdCommands::EXCHANGE_SET_ID),
|
max31865Set15(objects::RTD_15_IC18_IMTQ, EiveMax31855::RtdCommands::EXCHANGE_SET_ID),
|
||||||
tmp1075Set1(objects::TMP1075_HANDLER_1),
|
tmp1075SetTcs0(objects::TMP1075_HANDLER_TCS_0),
|
||||||
tmp1075Set2(objects::TMP1075_HANDLER_2),
|
tmp1075SetTcs1(objects::TMP1075_HANDLER_TCS_1),
|
||||||
|
tmp1075SetPlPcdu0(objects::TMP1075_HANDLER_PLPCDU_0),
|
||||||
|
tmp1075SetPlPcdu1(objects::TMP1075_HANDLER_PLPCDU_1),
|
||||||
|
tmp1075SetIfBoard(objects::TMP1075_HANDLER_IF_BOARD),
|
||||||
susSet0(objects::SUS_0_N_LOC_XFYFZM_PT_XF),
|
susSet0(objects::SUS_0_N_LOC_XFYFZM_PT_XF),
|
||||||
susSet1(objects::SUS_1_N_LOC_XBYFZM_PT_XB),
|
susSet1(objects::SUS_1_N_LOC_XBYFZM_PT_XB),
|
||||||
susSet2(objects::SUS_2_N_LOC_XFYBZB_PT_YB),
|
susSet2(objects::SUS_2_N_LOC_XFYBZB_PT_YB),
|
||||||
@ -128,10 +131,11 @@ ReturnValue_t ThermalController::initializeLocalDataPool(localpool::DataPool& lo
|
|||||||
new PoolEntry<float>({14.0}));
|
new PoolEntry<float>({14.0}));
|
||||||
localDataPoolMap.emplace(thermalControllerDefinitions::SENSOR_MAGNETTORQUER,
|
localDataPoolMap.emplace(thermalControllerDefinitions::SENSOR_MAGNETTORQUER,
|
||||||
new PoolEntry<float>({15.0}));
|
new PoolEntry<float>({15.0}));
|
||||||
localDataPoolMap.emplace(thermalControllerDefinitions::SENSOR_TMP1075_1,
|
localDataPoolMap.emplace(thermalControllerDefinitions::SENSOR_TMP1075_TCS_0, &tmp1075Tcs0);
|
||||||
new PoolEntry<float>({15.0}));
|
localDataPoolMap.emplace(thermalControllerDefinitions::SENSOR_TMP1075_TCS_1, &tmp1075Tcs1);
|
||||||
localDataPoolMap.emplace(thermalControllerDefinitions::SENSOR_TMP1075_2,
|
localDataPoolMap.emplace(thermalControllerDefinitions::SENSOR_TMP1075_PLPCDU_0, &tmp1075PlPcdu0);
|
||||||
new PoolEntry<float>({15.0}));
|
localDataPoolMap.emplace(thermalControllerDefinitions::SENSOR_TMP1075_PLPCDU_1, &tmp1075PlPcdu1);
|
||||||
|
localDataPoolMap.emplace(thermalControllerDefinitions::SENSOR_TMP1075_IF_BOARD, &tmp1075IfBrd);
|
||||||
|
|
||||||
localDataPoolMap.emplace(thermalControllerDefinitions::SUS_0_N_LOC_XFYFZM_PT_XF,
|
localDataPoolMap.emplace(thermalControllerDefinitions::SUS_0_N_LOC_XFYFZM_PT_XF,
|
||||||
new PoolEntry<float>({0.0}));
|
new PoolEntry<float>({0.0}));
|
||||||
@ -415,23 +419,53 @@ void ThermalController::copySensors() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
PoolReadGuard pg111(&tmp1075Set1, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
|
PoolReadGuard pg(&tmp1075SetTcs0, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
|
||||||
if (pg111.getReadResult() == returnvalue::OK) {
|
if (pg.getReadResult() == returnvalue::OK) {
|
||||||
sensorTemperatures.sensor_tmp1075_1.value = tmp1075Set1.temperatureCelcius.value;
|
sensorTemperatures.tmp1075Tcs0.value = tmp1075SetTcs0.temperatureCelcius.value;
|
||||||
sensorTemperatures.sensor_tmp1075_1.setValid(tmp1075Set1.temperatureCelcius.isValid());
|
sensorTemperatures.tmp1075Tcs0.setValid(tmp1075SetTcs0.temperatureCelcius.isValid());
|
||||||
if (not tmp1075Set1.temperatureCelcius.isValid()) {
|
if (not tmp1075SetTcs0.temperatureCelcius.isValid()) {
|
||||||
sensorTemperatures.sensor_tmp1075_1.value = INVALID_TEMPERATURE;
|
sensorTemperatures.tmp1075Tcs0.value = INVALID_TEMPERATURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
PoolReadGuard pg112(&tmp1075Set2, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
|
PoolReadGuard pg(&tmp1075SetTcs1, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
|
||||||
if (pg112.getReadResult() == returnvalue::OK) {
|
if (pg.getReadResult() == returnvalue::OK) {
|
||||||
sensorTemperatures.sensor_tmp1075_2.value = tmp1075Set2.temperatureCelcius.value;
|
sensorTemperatures.tmp1075Tcs1.value = tmp1075SetTcs1.temperatureCelcius.value;
|
||||||
sensorTemperatures.sensor_tmp1075_2.setValid(tmp1075Set2.temperatureCelcius.isValid());
|
sensorTemperatures.tmp1075Tcs1.setValid(tmp1075SetTcs1.temperatureCelcius.isValid());
|
||||||
if (not tmp1075Set2.temperatureCelcius.isValid()) {
|
if (not tmp1075SetTcs1.temperatureCelcius.isValid()) {
|
||||||
sensorTemperatures.sensor_tmp1075_2.value = INVALID_TEMPERATURE;
|
sensorTemperatures.tmp1075Tcs1.value = INVALID_TEMPERATURE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
PoolReadGuard pg(&tmp1075SetPlPcdu0, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
|
||||||
|
if (pg.getReadResult() == returnvalue::OK) {
|
||||||
|
sensorTemperatures.tmp1075PlPcdu0.value = tmp1075SetPlPcdu0.temperatureCelcius.value;
|
||||||
|
sensorTemperatures.tmp1075PlPcdu0.setValid(tmp1075SetPlPcdu0.temperatureCelcius.isValid());
|
||||||
|
if (not tmp1075SetPlPcdu0.temperatureCelcius.isValid()) {
|
||||||
|
sensorTemperatures.tmp1075PlPcdu0.value = INVALID_TEMPERATURE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
PoolReadGuard pg(&tmp1075SetPlPcdu1, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
|
||||||
|
if (pg.getReadResult() == returnvalue::OK) {
|
||||||
|
sensorTemperatures.tmp1075PlPcdu1.value = tmp1075SetPlPcdu1.temperatureCelcius.value;
|
||||||
|
sensorTemperatures.tmp1075PlPcdu1.setValid(tmp1075SetPlPcdu1.temperatureCelcius.isValid());
|
||||||
|
if (not tmp1075SetPlPcdu1.temperatureCelcius.isValid()) {
|
||||||
|
sensorTemperatures.tmp1075PlPcdu1.value = INVALID_TEMPERATURE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{
|
||||||
|
PoolReadGuard pg(&tmp1075SetIfBoard, MutexIF::TimeoutType::WAITING, MUTEX_TIMEOUT);
|
||||||
|
if (pg.getReadResult() == returnvalue::OK) {
|
||||||
|
sensorTemperatures.tmp1075IfBrd.value = tmp1075SetIfBoard.temperatureCelcius.value;
|
||||||
|
sensorTemperatures.tmp1075IfBrd.setValid(tmp1075SetIfBoard.temperatureCelcius.isValid());
|
||||||
|
if (not tmp1075SetIfBoard.temperatureCelcius.isValid()) {
|
||||||
|
sensorTemperatures.tmp1075IfBrd.value = INVALID_TEMPERATURE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,8 +55,11 @@ class ThermalController : public ExtendedControllerBase {
|
|||||||
MAX31865::Max31865Set max31865Set13;
|
MAX31865::Max31865Set max31865Set13;
|
||||||
MAX31865::Max31865Set max31865Set14;
|
MAX31865::Max31865Set max31865Set14;
|
||||||
MAX31865::Max31865Set max31865Set15;
|
MAX31865::Max31865Set max31865Set15;
|
||||||
TMP1075::Tmp1075Dataset tmp1075Set1;
|
TMP1075::Tmp1075Dataset tmp1075SetTcs0;
|
||||||
TMP1075::Tmp1075Dataset tmp1075Set2;
|
TMP1075::Tmp1075Dataset tmp1075SetTcs1;
|
||||||
|
TMP1075::Tmp1075Dataset tmp1075SetPlPcdu0;
|
||||||
|
TMP1075::Tmp1075Dataset tmp1075SetPlPcdu1;
|
||||||
|
TMP1075::Tmp1075Dataset tmp1075SetIfBoard;
|
||||||
|
|
||||||
// SUS
|
// SUS
|
||||||
SUS::SusDataset susSet0;
|
SUS::SusDataset susSet0;
|
||||||
@ -75,6 +78,12 @@ class ThermalController : public ExtendedControllerBase {
|
|||||||
// Initial delay to make sure all pool variables have been initialized their owners
|
// Initial delay to make sure all pool variables have been initialized their owners
|
||||||
Countdown initialCountdown = Countdown(DELAY);
|
Countdown initialCountdown = Countdown(DELAY);
|
||||||
|
|
||||||
|
PoolEntry<float> tmp1075Tcs0 = PoolEntry<float>(10.0);
|
||||||
|
PoolEntry<float> tmp1075Tcs1 = PoolEntry<float>(10.0);
|
||||||
|
PoolEntry<float> tmp1075PlPcdu0 = PoolEntry<float>(10.0);
|
||||||
|
PoolEntry<float> tmp1075PlPcdu1 = PoolEntry<float>(10.0);
|
||||||
|
PoolEntry<float> tmp1075IfBrd = PoolEntry<float>(10.0);
|
||||||
|
|
||||||
static constexpr dur_millis_t MUTEX_TIMEOUT = 50;
|
static constexpr dur_millis_t MUTEX_TIMEOUT = 50;
|
||||||
void copySensors();
|
void copySensors();
|
||||||
void copySus();
|
void copySus();
|
||||||
|
@ -30,8 +30,11 @@ enum PoolIds : lp_id_t {
|
|||||||
SENSOR_PLPCDU_HEATSPREADER,
|
SENSOR_PLPCDU_HEATSPREADER,
|
||||||
SENSOR_TCS_BOARD,
|
SENSOR_TCS_BOARD,
|
||||||
SENSOR_MAGNETTORQUER,
|
SENSOR_MAGNETTORQUER,
|
||||||
SENSOR_TMP1075_1,
|
SENSOR_TMP1075_TCS_0,
|
||||||
SENSOR_TMP1075_2,
|
SENSOR_TMP1075_TCS_1,
|
||||||
|
SENSOR_TMP1075_PLPCDU_0,
|
||||||
|
SENSOR_TMP1075_PLPCDU_1,
|
||||||
|
SENSOR_TMP1075_IF_BOARD,
|
||||||
|
|
||||||
SUS_0_N_LOC_XFYFZM_PT_XF,
|
SUS_0_N_LOC_XFYFZM_PT_XF,
|
||||||
SUS_6_R_LOC_XFYBZM_PT_XF,
|
SUS_6_R_LOC_XFYBZM_PT_XF,
|
||||||
@ -75,7 +78,7 @@ enum PoolIds : lp_id_t {
|
|||||||
TEMP_ADC_PAYLOAD_PCDU
|
TEMP_ADC_PAYLOAD_PCDU
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint8_t ENTRIES_SENSOR_TEMPERATURE_SET = 18;
|
static const uint8_t ENTRIES_SENSOR_TEMPERATURE_SET = 25;
|
||||||
static const uint8_t ENTRIES_DEVICE_TEMPERATURE_SET = 25;
|
static const uint8_t ENTRIES_DEVICE_TEMPERATURE_SET = 25;
|
||||||
static const uint8_t ENTRIES_SUS_TEMPERATURE_SET = 12;
|
static const uint8_t ENTRIES_SUS_TEMPERATURE_SET = 12;
|
||||||
|
|
||||||
@ -111,8 +114,14 @@ class SensorTemperatures : public StaticLocalDataSet<ENTRIES_SENSOR_TEMPERATURE_
|
|||||||
lp_var_t<float> sensor_tcs_board = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TCS_BOARD, this);
|
lp_var_t<float> sensor_tcs_board = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TCS_BOARD, this);
|
||||||
lp_var_t<float> sensor_magnettorquer =
|
lp_var_t<float> sensor_magnettorquer =
|
||||||
lp_var_t<float>(sid.objectId, PoolIds::SENSOR_MAGNETTORQUER, this);
|
lp_var_t<float>(sid.objectId, PoolIds::SENSOR_MAGNETTORQUER, this);
|
||||||
lp_var_t<float> sensor_tmp1075_1 = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TMP1075_1, this);
|
lp_var_t<float> tmp1075Tcs0 = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TMP1075_TCS_0, this);
|
||||||
lp_var_t<float> sensor_tmp1075_2 = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TMP1075_2, this);
|
lp_var_t<float> tmp1075Tcs1 = lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TMP1075_TCS_1, this);
|
||||||
|
lp_var_t<float> tmp1075PlPcdu0 =
|
||||||
|
lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TMP1075_PLPCDU_0, this);
|
||||||
|
lp_var_t<float> tmp1075PlPcdu1 =
|
||||||
|
lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TMP1075_PLPCDU_1, this);
|
||||||
|
lp_var_t<float> tmp1075IfBrd =
|
||||||
|
lp_var_t<float>(sid.objectId, PoolIds::SENSOR_TMP1075_IF_BOARD, this);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -86,7 +86,7 @@ ReturnValue_t Tmp1075Handler::interpretDeviceReply(DeviceCommandId_t id, const u
|
|||||||
int16_t tempValueRaw = 0;
|
int16_t tempValueRaw = 0;
|
||||||
tempValueRaw = packet[0] << 4 | packet[1] >> 4;
|
tempValueRaw = packet[0] << 4 | packet[1] >> 4;
|
||||||
float tempValue = ((static_cast<float>(tempValueRaw)) * 0.0625);
|
float tempValue = ((static_cast<float>(tempValueRaw)) * 0.0625);
|
||||||
#if OBSW_VERBOSE_LEVEL >= 1
|
#if OBSW_DEBUG_TMP1075 == 1
|
||||||
sif::info << "Tmp1075 with object id: 0x" << std::hex << getObjectId()
|
sif::info << "Tmp1075 with object id: 0x" << std::hex << getObjectId()
|
||||||
<< ": Temperature: " << tempValue << " °C" << std::endl;
|
<< ": Temperature: " << tempValue << " °C" << std::endl;
|
||||||
#endif
|
#endif
|
||||||
@ -127,3 +127,5 @@ ReturnValue_t Tmp1075Handler::initializeLocalDataPool(localpool::DataPool &local
|
|||||||
subdp::RegularHkPeriodicParams(dataset.getSid(), false, 30.0));
|
subdp::RegularHkPeriodicParams(dataset.getSid(), false, 30.0));
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Tmp1075Handler::setModeNormal() { setMode(_MODE_TO_NORMAL); }
|
||||||
|
@ -20,6 +20,8 @@ class Tmp1075Handler : public DeviceHandlerBase {
|
|||||||
Tmp1075Handler(object_id_t objectId, object_id_t comIF, CookieIF *comCookie);
|
Tmp1075Handler(object_id_t objectId, object_id_t comIF, CookieIF *comCookie);
|
||||||
virtual ~Tmp1075Handler();
|
virtual ~Tmp1075Handler();
|
||||||
|
|
||||||
|
void setModeNormal();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void doStartUp() override;
|
void doStartUp() override;
|
||||||
void doShutDown() override;
|
void doShutDown() override;
|
||||||
|
2
tmtc
2
tmtc
@ -1 +1 @@
|
|||||||
Subproject commit 89285ad511ef11582b67b307c3840a09efd0577a
|
Subproject commit 66a1362e7e977e427a66fd3176a9e7b6bc1b5998
|
Loading…
Reference in New Issue
Block a user