#ifndef MISSION_DEVICES_PDU2HANDLER_H_ #define MISSION_DEVICES_PDU2HANDLER_H_ #include "GomspaceDeviceHandler.h" #include /** * @brief This is the device handler for the PDU2. * * @details The PDU2 controls the * power supply of the following devices: * Xiphos Q7S, 8V, channel 0 * Reaction wheels 5V, channel 2 * TCS Board heater input, 8V, channel 3 * SUS 8-12 Redundant, 3.3V, channel 4 * Deployment mechanism, 8V, channel 5 * P/L PCDU, Battery voltage (Vnominal = 14.8V), channel 1 and channel 6 * ACS Board (Gyro, MGMs, GPS), 3.3V channel 7 * Payload Camera, 8V, channel 8 */ class PDU2Handler: public GomspaceDeviceHandler { public: PDU2Handler(object_id_t objectId, object_id_t comIF, CookieIF * comCookie); virtual ~PDU2Handler(); virtual ReturnValue_t initializeLocalDataPool(localpool::DataPool& localDataPoolMap, LocalDataPoolManager& poolManager) override; protected: /** * @brief As soon as the device is in MODE_NORMAL, this function is executed periodically. */ 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 PDU2 */ PDU2::PDU2HkTableDataset pdu2HkTableDataset; void printHkTable(); void parseHkTableReply(const uint8_t *packet); }; #endif /* MISSION_DEVICES_PDU2HANDLER_H_ */