Modified for compatibility with Rev.E. hardware
Fork of AkmSensor by
Diff: akmsensormanager.h
- Revision:
- 34:1ea3357c8d9a
- Parent:
- 29:b488d2c89fba
- Parent:
- 24:1d37438f31a9
- Child:
- 39:3821886c902e
--- a/akmsensormanager.h Fri Apr 28 20:32:31 2017 +0000 +++ b/akmsensormanager.h Wed May 03 18:00:45 2017 +0000 @@ -14,28 +14,107 @@ #define ANALOG_SENSOR_ID_SUB P0_5 #define MAX_SENSOR_NUM 2 +/** + * Unified manager class for all sensors to interact with AkmSensor. + */ class AkmSensorManager { - + public: - + + /** + * Return status enumeration for debugging. + */ typedef enum { - SUCCESS = 0, - ERROR, + SUCCESS = 0, /**< Successful execution (0) */ + ERROR, /**< Error in execution (1) */ } Status; + /** + * Class constructor with an initial serial connection. + */ AkmSensorManager(SerialNano* com); + + /** + * Initialize sensor manager. + * + * @param id Primary ID of daughter board device. + * @param subID Secondary ID of daughter board device. + * @return Status type: SUCCESS=0. + */ Status init(uint8_t id, uint8_t subid); + + /** + * Set BLE UART service. + * + * @param service UART service type + */ void setBleUartService(UARTService* service); + + /** + * Sets eventConnected flag to TRUE. + */ void setEventConnected(); + + /** + * Sets eventDisconnected flag to TRUE. + */ void setEventDisconnected(); + + /** + * Sets eventCommandReceived flag to TRUE. + * + * @param buf Command to be parsed and to check the validity. + * @return Status type: SUCCESS=0 + */ Status commandReceived(char* buf); + + /** + * Checks if an event has occurred. + * + * @return Returns SUCCESS(=0) if a sensor event has occurred, or if any of the + * eventCommandReceived, eventConnected, or eventDisconnected flags + * are set. Returns ERROR otherwise. + */ bool isEvent(); + + /** + * Main function that processes input, output, and connection events. + * + * @return Status type: SUCCESS=0. + */ Status processEvent(); + + /** + * Get the name of the sensor as a string. + * + * @return Returns the address of the string containing the name. + */ char* getSensorName(); + /** + * Processes the stored command, parses the arguments, then uses the + * command to throw a message. + */ void processCommand(); + + /** + * Processes command and arguments in message from char to ASCII and + * sends to BLE and/or USB serial device(s). + * + * @param msg Message containing command to be processed. + * @return Status type: SUCCESS=0 + */ Status throwMessage(const Message *msg); + // void releaseTWI(); + + /** + * Get primary or secondary ID from sensor device. + * + * @param pin Pin number of ID or SubID signal. + * @param bits Number of bits of precision of value. + * @return Returns the integer ID or SubID value. + */ uint8_t getId(PinName pin, uint8_t bits); void detectDRDY();