#ifndef MISSION_DEVICES_PDU1Handler_H_ #define MISSION_DEVICES_PDU1Handler_H_ #include "GomspaceDeviceHandler.h" #include "devicedefinitions/GomspaceDefinitions.h" /** * @brief This is the device handler for the PDU1. * * @details The PDU1 controls the * power supply of the following devices: * TCS Board, 3.3V, channel 0 * Syrlinks, 12V, channel 1 * Star Tracker, 5V, channel 2 * MGT, 5V, channel 3 * SUS 1-6 Nominal, 3.3V, channel 4 * Solar cell experiment, 5V, channel 5 * PLOC, 12V, channel 6 * ACS 3.3V for Side A group, channel 7 * Unoccupied, 5V, channel 8 */ class PDU1Handler : public GomspaceDeviceHandler { public: PDU1Handler(object_id_t objectId, object_id_t comIF, CookieIF* comCookie); virtual ~PDU1Handler(); virtual ReturnValue_t initializeLocalDataPool(localpool::DataPool& localDataPoolMap, LocalDataPoolManager& poolManager) override; protected: /** * @brief In MODE_NORMAL, a command will be built periodically by this function. */ virtual ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t* id) override; virtual void letChildHandleHkReply(DeviceCommandId_t id, const uint8_t* packet) override; ReturnValue_t printStatus(DeviceCommandId_t cmd) override; private: /** Dataset for the housekeeping table of the PDU1 */ PDU1::PDU1HkTableDataset pdu1HkTableDataset; void printHkTable(); void parseHkTableReply(const uint8_t* packet); }; #endif /* MISSION_DEVICES_PDU1Handler_H_ */