Modified for compatibility with Rev.E. hardware
Fork of AkmSensor by
ap1017ctrl.h@25:76c11ab5060e, 2017-04-14 (annotated)
- Committer:
- tkstreet
- Date:
- Fri Apr 14 20:13:38 2017 +0000
- Revision:
- 25:76c11ab5060e
- Child:
- 26:4e436b0cbaf8
Added partially implemented AP1017 control class, compiles successfully.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tkstreet | 25:76c11ab5060e | 1 | #ifndef AP1017CTRL_H |
tkstreet | 25:76c11ab5060e | 2 | #define AP1017CTRL_H |
tkstreet | 25:76c11ab5060e | 3 | |
tkstreet | 25:76c11ab5060e | 4 | #include "mbed.h" |
tkstreet | 25:76c11ab5060e | 5 | #include "akmsensor.h" |
tkstreet | 25:76c11ab5060e | 6 | #include "AP1017.h" |
tkstreet | 25:76c11ab5060e | 7 | |
tkstreet | 25:76c11ab5060e | 8 | #define SubIdAp1017 0x01 |
tkstreet | 25:76c11ab5060e | 9 | |
tkstreet | 25:76c11ab5060e | 10 | class Ap1017Ctrl : public AkmSensor |
tkstreet | 25:76c11ab5060e | 11 | { |
tkstreet | 25:76c11ab5060e | 12 | public: |
tkstreet | 25:76c11ab5060e | 13 | |
tkstreet | 25:76c11ab5060e | 14 | /** |
tkstreet | 25:76c11ab5060e | 15 | * Device Sub-ID. |
tkstreet | 25:76c11ab5060e | 16 | */ |
tkstreet | 25:76c11ab5060e | 17 | typedef enum { |
tkstreet | 25:76c11ab5060e | 18 | SUB_ID_AP1017 = 0x01, /**< AP1017: ID = 01h */ |
tkstreet | 25:76c11ab5060e | 19 | } SubIdMotorDriver; |
tkstreet | 25:76c11ab5060e | 20 | |
tkstreet | 25:76c11ab5060e | 21 | // Constructors and Destructors |
tkstreet | 25:76c11ab5060e | 22 | Ap1017Ctrl(); |
tkstreet | 25:76c11ab5060e | 23 | virtual ~Ap1017Ctrl(); |
tkstreet | 25:76c11ab5060e | 24 | |
tkstreet | 25:76c11ab5060e | 25 | // Public Member Functions |
tkstreet | 25:76c11ab5060e | 26 | /** |
tkstreet | 25:76c11ab5060e | 27 | * Process for intializing the selected sensor. |
tkstreet | 25:76c11ab5060e | 28 | * |
tkstreet | 25:76c11ab5060e | 29 | * @return Termination status type for debugging purposes. |
tkstreet | 25:76c11ab5060e | 30 | */ |
tkstreet | 25:76c11ab5060e | 31 | virtual AkmSensor::Status init(const uint8_t id, const uint8_t subid); |
tkstreet | 25:76c11ab5060e | 32 | |
tkstreet | 25:76c11ab5060e | 33 | /** |
tkstreet | 25:76c11ab5060e | 34 | * Simple flag process to determine if an event has occurred. |
tkstreet | 25:76c11ab5060e | 35 | * |
tkstreet | 25:76c11ab5060e | 36 | * @return TRUE if event has occurred, FALSE if not. |
tkstreet | 25:76c11ab5060e | 37 | */ |
tkstreet | 25:76c11ab5060e | 38 | virtual bool isEvent(); |
tkstreet | 25:76c11ab5060e | 39 | |
tkstreet | 25:76c11ab5060e | 40 | /** |
tkstreet | 25:76c11ab5060e | 41 | * Process abstraction for starting sensor operation. |
tkstreet | 25:76c11ab5060e | 42 | * |
tkstreet | 25:76c11ab5060e | 43 | * @return Termination status type for debugging purposes. |
tkstreet | 25:76c11ab5060e | 44 | */ |
tkstreet | 25:76c11ab5060e | 45 | virtual AkmSensor::Status startSensor(); |
tkstreet | 25:76c11ab5060e | 46 | |
tkstreet | 25:76c11ab5060e | 47 | /** |
tkstreet | 25:76c11ab5060e | 48 | * Process abstraction for starting sensor operation. |
tkstreet | 25:76c11ab5060e | 49 | * |
tkstreet | 25:76c11ab5060e | 50 | * @param sec Number of seconds of operation. |
tkstreet | 25:76c11ab5060e | 51 | * @return Termination status type for debugging purposes. |
tkstreet | 25:76c11ab5060e | 52 | */ |
tkstreet | 25:76c11ab5060e | 53 | virtual AkmSensor::Status startSensor(const float sec); |
tkstreet | 25:76c11ab5060e | 54 | |
tkstreet | 25:76c11ab5060e | 55 | /** |
tkstreet | 25:76c11ab5060e | 56 | * Process abstraction for stopping sensor operation. |
tkstreet | 25:76c11ab5060e | 57 | * |
tkstreet | 25:76c11ab5060e | 58 | * @return Termination status type for debugging purposes. |
tkstreet | 25:76c11ab5060e | 59 | */ |
tkstreet | 25:76c11ab5060e | 60 | virtual AkmSensor::Status stopSensor(); |
tkstreet | 25:76c11ab5060e | 61 | |
tkstreet | 25:76c11ab5060e | 62 | /** |
tkstreet | 25:76c11ab5060e | 63 | * Process abstraction for reading data from the sensor. |
tkstreet | 25:76c11ab5060e | 64 | * |
tkstreet | 25:76c11ab5060e | 65 | * @param msg Message object that will hold the sensor data. |
tkstreet | 25:76c11ab5060e | 66 | * @return Termination status type for debugging purposes. |
tkstreet | 25:76c11ab5060e | 67 | */ |
tkstreet | 25:76c11ab5060e | 68 | virtual AkmSensor::Status readSensorData(Message* msg); |
tkstreet | 25:76c11ab5060e | 69 | |
tkstreet | 25:76c11ab5060e | 70 | /** |
tkstreet | 25:76c11ab5060e | 71 | * Primary process for interfacing a sensor with the AKDP. When implemented |
tkstreet | 25:76c11ab5060e | 72 | * in sensor class, it will transfer commands between the the sensor control |
tkstreet | 25:76c11ab5060e | 73 | * class and AkmSensorManager. |
tkstreet | 25:76c11ab5060e | 74 | * |
tkstreet | 25:76c11ab5060e | 75 | * @param in Command message to be processed by sensor. |
tkstreet | 25:76c11ab5060e | 76 | * @param out Message returned from sensor. |
tkstreet | 25:76c11ab5060e | 77 | * @return Termination status type for debugging purposes. |
tkstreet | 25:76c11ab5060e | 78 | */ |
tkstreet | 25:76c11ab5060e | 79 | virtual Status requestCommand(Message* in, Message* out); |
tkstreet | 25:76c11ab5060e | 80 | |
tkstreet | 25:76c11ab5060e | 81 | /** |
tkstreet | 25:76c11ab5060e | 82 | * Get the name of the sensor in char format. |
tkstreet | 25:76c11ab5060e | 83 | * |
tkstreet | 25:76c11ab5060e | 84 | * @return Sensor name as a char array. |
tkstreet | 25:76c11ab5060e | 85 | */ |
tkstreet | 25:76c11ab5060e | 86 | virtual char* getSensorName(); |
tkstreet | 25:76c11ab5060e | 87 | |
tkstreet | 25:76c11ab5060e | 88 | private: |
tkstreet | 25:76c11ab5060e | 89 | bool event; |
tkstreet | 25:76c11ab5060e | 90 | uint8_t primaryId; |
tkstreet | 25:76c11ab5060e | 91 | uint8_t subId; |
tkstreet | 25:76c11ab5060e | 92 | char* sensorName; |
tkstreet | 25:76c11ab5060e | 93 | |
tkstreet | 25:76c11ab5060e | 94 | AP1017* ap1017; |
tkstreet | 25:76c11ab5060e | 95 | |
tkstreet | 25:76c11ab5060e | 96 | }; |
tkstreet | 25:76c11ab5060e | 97 | |
tkstreet | 25:76c11ab5060e | 98 | #endif |