Modified for compatibility with Rev.E. hardware

Fork of AkmSensor by AKM Development Platform

Revision:
25:76c11ab5060e
Child:
26:4e436b0cbaf8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ap1017ctrl.h	Fri Apr 14 20:13:38 2017 +0000
@@ -0,0 +1,98 @@
+#ifndef AP1017CTRL_H
+#define AP1017CTRL_H
+
+#include "mbed.h"
+#include "akmsensor.h"
+#include "AP1017.h"
+
+#define SubIdAp1017   0x01
+
+class Ap1017Ctrl : public AkmSensor
+{
+public:
+
+    /**
+     * Device Sub-ID.
+     */
+    typedef enum {
+        SUB_ID_AP1017              = 0x01,          /**< AP1017: ID = 01h */
+    } SubIdMotorDriver;
+    
+    // Constructors and Destructors
+    Ap1017Ctrl();
+    virtual ~Ap1017Ctrl();
+
+    // Public Member Functions
+    /**
+     * Process for intializing the selected sensor.
+     *
+     * @return Termination status type for debugging purposes.
+     */
+    virtual AkmSensor::Status init(const uint8_t id, const uint8_t subid);
+    
+    /**
+     * Simple flag process to determine if an event has occurred.
+     *
+     * @return TRUE if event has occurred, FALSE if not.
+     */
+    virtual bool isEvent();
+    
+    /**
+     * Process abstraction for starting sensor operation.
+     *
+     * @return Termination status type for debugging purposes.
+     */
+    virtual AkmSensor::Status startSensor();
+    
+    /**
+     * Process abstraction for starting sensor operation.
+     *
+     * @param sec Number of seconds of operation.
+     * @return Termination status type for debugging purposes.
+     */
+    virtual AkmSensor::Status startSensor(const float sec);
+    
+    /**
+     * Process abstraction for stopping sensor operation.
+     *
+     * @return Termination status type for debugging purposes.
+     */
+    virtual AkmSensor::Status stopSensor();
+    
+    /**
+     * Process abstraction for reading data from the sensor.
+     *
+     * @param msg Message object that will hold the sensor data.
+     * @return Termination status type for debugging purposes.
+     */
+    virtual AkmSensor::Status readSensorData(Message* msg);
+    
+    /**
+     * Primary process for interfacing a sensor with the AKDP.  When implemented
+     * in sensor class, it will transfer commands between the the sensor control
+     * class and AkmSensorManager. 
+     *
+     * @param in Command message to be processed by sensor.
+     * @param out Message returned from sensor.
+     * @return Termination status type for debugging purposes.
+     */
+    virtual Status requestCommand(Message* in, Message* out);
+    
+    /**
+     * Get the name of the sensor in char format.
+     *
+     * @return Sensor name as a char array.
+     */
+    virtual char* getSensorName();
+
+private:
+    bool            event;
+    uint8_t         primaryId;
+    uint8_t         subId;
+    char*           sensorName;
+
+    AP1017*         ap1017;
+
+};
+
+#endif
\ No newline at end of file