syrlinks temperature set and temperature protection

This commit is contained in:
Jakob Meier
2022-03-31 17:44:29 +02:00
parent 222f17edcc
commit b29a0cd0fb
4 changed files with 255 additions and 173 deletions

View File

@ -1,7 +1,7 @@
#ifndef MISSION_DEVICES_DEVICEDEFINITIONS_SYRLINKSDEFINITIONS_H_
#define MISSION_DEVICES_DEVICEDEFINITIONS_SYRLINKSDEFINITIONS_H_
namespace SYRLINKS {
namespace syrlinks {
static const DeviceCommandId_t NONE = 0;
static const DeviceCommandId_t RESET_UNIT = 1;
@ -36,6 +36,7 @@ static const uint8_t READ_ONE_REGISTER_REPLY_SIE = 13;
static const uint8_t RX_DATASET_ID = 0x1;
static const uint8_t TX_DATASET_ID = 0x2;
static const uint8_t TEMPERATURE_SET_ID = 0x3;
static const size_t MAX_REPLY_SIZE = RX_STATUS_REGISTERS_REPLY_SIZE;
static const size_t MAX_COMMAND_SIZE = 15;
@ -44,6 +45,7 @@ static const size_t CRC_FIELD_SIZE = 4;
static const uint8_t RX_DATASET_SIZE = 8;
static const uint8_t TX_DATASET_SIZE = 3;
static const uint8_t TEMPERATURE_SET_SIZE = 3;
enum SyrlinksPoolIds : lp_id_t {
RX_STATUS,
@ -60,6 +62,8 @@ enum SyrlinksPoolIds : lp_id_t {
TX_WAVEFORM,
TX_PCM_INDEX,
TX_AGC_VALUE,
TEMP_POWER_AMPLIFIER,
TEMP_BASEBAND_BOARD
};
class RxDataset : public StaticLocalDataSet<RX_DATASET_SIZE> {
@ -89,6 +93,18 @@ class TxDataset : public StaticLocalDataSet<TX_DATASET_SIZE> {
lp_var_t<uint16_t> txAgcValue = lp_var_t<uint16_t>(sid.objectId, TX_AGC_VALUE, this);
};
} // namespace SYRLINKS
class TemperatureSet : public StaticLocalDataSet<TEMPERATURE_SET_SIZE> {
public:
TemperatureSet(HasLocalDataPoolIF* owner) : StaticLocalDataSet(owner, TEMPERATURE_SET_ID) {}
TemperatureSet(object_id_t objectId) : StaticLocalDataSet(sid_t(objectId, TEMPERATURE_SET_ID)) {}
lp_var_t<uint16_t> temperaturePowerAmplifier =
lp_var_t<uint16_t>(sid.objectId, TEMP_POWER_AMPLIFIER, this);
lp_var_t<uint16_t> temperatureBasebandBoard =
lp_var_t<uint16_t>(sid.objectId, TEMP_BASEBAND_BOARD, this);
};
} // namespace syrlinks
#endif /* MISSION_DEVICES_DEVICEDEFINITIONS_SYRLINKSDEFINITIONS_H_ */