eive-obsw/mission/devices/devicedefinitions/Max31865Definitions.h

54 lines
2.0 KiB
C
Raw Normal View History

2021-06-21 09:50:26 +02:00
#ifndef MISSION_DEVICES_DEVICEDEFINITIONS_MAX13865DEFINITIONS_H_
#define MISSION_DEVICES_DEVICEDEFINITIONS_MAX13865DEFINITIONS_H_
#include <fsfw/datapoollocal/LocalPoolVariable.h>
2022-01-18 11:41:19 +01:00
#include <fsfw/datapoollocal/StaticLocalDataSet.h>
#include <fsfw/devicehandlers/DeviceHandlerIF.h>
2022-01-18 11:41:19 +01:00
2021-05-17 20:03:56 +02:00
#include "objects/systemObjectList.h"
2021-03-13 14:42:30 +01:00
namespace Max31865Definitions {
2022-01-18 11:41:19 +01:00
enum PoolIds : lp_id_t { RTD_VALUE, TEMPERATURE_C, FAULT_BYTE };
static constexpr DeviceCommandId_t CONFIG_CMD = 0x80;
static constexpr DeviceCommandId_t WRITE_HIGH_THRESHOLD = 0x83;
static constexpr DeviceCommandId_t WRITE_LOW_THRESHOLD = 0x85;
2021-12-15 11:20:28 +01:00
static constexpr DeviceCommandId_t REQUEST_CONFIG = 0x00;
static constexpr DeviceCommandId_t REQUEST_RTD = 0x01;
static constexpr DeviceCommandId_t REQUEST_HIGH_THRESHOLD = 0x03;
static constexpr DeviceCommandId_t REQUEST_LOW_THRESHOLD = 0x05;
static constexpr DeviceCommandId_t REQUEST_FAULT_BYTE = 0x07;
2021-12-15 11:20:28 +01:00
static constexpr DeviceCommandId_t CLEAR_FAULT_BYTE = 0x08;
2021-03-13 14:42:30 +01:00
static constexpr uint32_t MAX31865_SET_ID = REQUEST_RTD;
2021-12-15 11:20:28 +01:00
static constexpr uint8_t CLEAR_FAULT_BIT_VAL = 0b0000'0010;
2021-03-13 14:42:30 +01:00
static constexpr size_t MAX_REPLY_SIZE = 5;
2022-01-18 11:41:19 +01:00
class Max31865Set : public StaticLocalDataSet<sizeof(float) + sizeof(uint8_t)> {
public:
/**
* Constructor used by owner and data creators like device handlers.
* @param owner
* @param setId
*/
Max31865Set(HasLocalDataPoolIF* owner) : StaticLocalDataSet(owner, MAX31865_SET_ID) {}
/**
* Constructor used by data users like controllers.
* @param sid
*/
Max31865Set(object_id_t objectId) : StaticLocalDataSet(sid_t(objectId, MAX31865_SET_ID)) {}
lp_var_t<float> rtdValue = lp_var_t<float>(sid.objectId, PoolIds::RTD_VALUE, this);
lp_var_t<float> temperatureCelcius = lp_var_t<float>(sid.objectId, PoolIds::TEMPERATURE_C, this);
lp_var_t<uint8_t> errorByte = lp_var_t<uint8_t>(sid.objectId, PoolIds::FAULT_BYTE, this);
};
2022-01-18 11:41:19 +01:00
} // namespace Max31865Definitions
2021-06-21 09:50:26 +02:00
#endif /* MISSION_DEVICES_DEVICEDEFINITIONS_MAX13865DEFINITIONS_H_ */