Modified for compatibility with Rev.E. hardware

Fork of AkmSensor by AKM Development Platform

Revision:
34:1ea3357c8d9a
Parent:
29:b488d2c89fba
Parent:
23:50c98b286e41
Child:
37:c76d2edf3426
--- a/akmanalogsensor.h	Fri Apr 28 20:32:31 2017 +0000
+++ b/akmanalogsensor.h	Wed May 03 18:00:45 2017 +0000
@@ -6,6 +6,20 @@
 #include "akmsensor.h"
 #include "mcp342x.h"
 
+/**
+ * Collection class for handling commands to all AKM Analog Sensor modules.
+ *
+ * List of Devices: 
+ *
+ * Current Sensors: CQ3300, CQ3301, CQ3302, CQ3303, CQ330A, CQ330B, CQ330E,
+ * CQ330F, CQ330G, CQ330H
+ * 
+ * Linear Sensors: EQ430L, EQ431L, EQ432L, EQ433L
+ *
+ * Angle Sensors: EM3242
+ *
+ * IR/CO2 Sensor: AK9710
+ */
 class AkmAnalogSensor : public AkmSensor
 {
 
@@ -13,29 +27,38 @@
     
     typedef AkmSensor base;
 
+    /**
+     * Sub-IDs for current sensor devices. Primary ID = 09h
+     */
     typedef enum {
-        SUB_ID_CQ3300               = 0x01,
-        SUB_ID_CQ3301               = 0x02,
-        SUB_ID_CQ3302               = 0x03,
-        SUB_ID_CQ3303               = 0x04,
-        SUB_ID_CQ330A               = 0x05,
-        SUB_ID_CQ330B               = 0x06,
-        SUB_ID_CQ330E               = 0x07,
-        SUB_ID_CQ330F               = 0x08,
-        SUB_ID_CQ330G               = 0x09,
-        SUB_ID_CQ330H               = 0x0A,
+        SUB_ID_CQ3300               = 0x01,         /**< CQ3300: ID = 01h */
+        SUB_ID_CQ3301               = 0x02,         /**< CQ3301: ID = 02h */
+        SUB_ID_CQ3302               = 0x03,         /**< CQ3302: ID = 03h */
+        SUB_ID_CQ3303               = 0x04,         /**< CQ3303: ID = 04h */
+        SUB_ID_CQ330A               = 0x05,         /**< CQ330A: ID = 05h */
+        SUB_ID_CQ330B               = 0x06,         /**< CQ330B: ID = 06h */
+        SUB_ID_CQ330E               = 0x07,         /**< CQ330E: ID = 07h */
+        SUB_ID_CQ330F               = 0x08,         /**< CQ330F: ID = 08h */
+        SUB_ID_CQ330G               = 0x09,         /**< CQ330G: ID = 09h */
+        SUB_ID_CQ330H               = 0x0A,         /**< CQ330H: ID = 0Ah */
     } SubIdCurrentSensor;
 
+    /**
+     * Sub-IDs for miscellaneous devices. Primary ID = 0Ah
+     */
     typedef enum {
-        SUB_ID_EM3242               = 0x01,
-        SUB_ID_AK9710               = 0x08,
+        SUB_ID_EM3242               = 0x01,         /**< EM3242: ID = 01h */
+        SUB_ID_AK9710               = 0x08,         /**< AK9710: ID = 08h */
     } SubIdMisc;
 
+    /**
+     * Sub-IDs for analog devices. Primary ID = 0Bh
+     */
     typedef enum {
-        SUB_ID_EQ430L               = 0x01,
-        SUB_ID_EQ431L               = 0x02,
-        SUB_ID_EQ432L               = 0x03,
-        SUB_ID_EQ433L               = 0x04,
+        SUB_ID_EQ430L               = 0x01,         /**< EQ430L: ID = 01h */
+        SUB_ID_EQ431L               = 0x02,         /**< EQ */
+        SUB_ID_EQ432L               = 0x03,         /**<  */
+        SUB_ID_EQ433L               = 0x04,         /**<  */
     } SubIdLinearSensor;
 
     /**
@@ -49,11 +72,53 @@
      *
      */
     virtual ~AkmAnalogSensor();
+    
+    /**
+     * 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);
+    
+    /**
+     * 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);
 
 private: