#ifndef MISSION_DEVICES_GYROHANDLER_H_ #define MISSION_DEVICES_GYROHANDLER_H_ #include /** * @brief Device Handler for the L3GD20H gyroscope sensor * (https://www.st.com/en/mems-and-sensors/l3gd20h.html) * @details * Advanced documentation: * https://egit.irs.uni-stuttgart.de/redmine/projects/eive-flight-manual/wiki/L3GD20H_Gyro */ class GyroHandler: public DeviceHandlerBase { public: GyroHandler(object_id_t objectId, object_id_t deviceCommunication, CookieIF* comCookie); virtual ~GyroHandler(); protected: /* DeviceHandlerBase overrides */ ReturnValue_t buildTransitionDeviceCommand( DeviceCommandId_t *id) override; void doStartUp() override; void doShutDown() override; ReturnValue_t buildNormalDeviceCommand( DeviceCommandId_t *id) override; ReturnValue_t buildCommandFromCommand( DeviceCommandId_t deviceCommand, const uint8_t *commandData, size_t commandDataLen) override; ReturnValue_t scanForReply(const uint8_t *start, size_t len, DeviceCommandId_t *foundId, size_t *foundLen) override; ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) override; void fillCommandAndReplyMap() override; void modeChanged() override; uint32_t getTransitionDelayMs(Mode_t from, Mode_t to) override; ReturnValue_t initializeLocalDataPool(LocalDataPool &localDataPoolMap, LocalDataPoolManager &poolManager) override; private: }; #endif /* MISSION_DEVICES_GYROHANDLER_H_ */