Modified for compatibility with Rev.E. hardware

Fork of AkmSensor by AKM Development Platform

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?

UserRevisionLine numberNew 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