Modified for compatibility with Rev.E. hardware
Fork of AkmSensor by
akmsensor.h@27:41aa9fb23a2f, 2017-03-11 (annotated)
- Committer:
- masahikofukasawa
- Date:
- Sat Mar 11 01:14:15 2017 +0000
- Revision:
- 27:41aa9fb23a2f
- Parent:
- 13:d008249f0359
- Child:
- 29:b488d2c89fba
modified for multi sensor demo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
masahikofukasawa | 0:7a00359e701e | 1 | #ifndef AKMSENSOR_H |
masahikofukasawa | 0:7a00359e701e | 2 | #define AKMSENSOR_H |
masahikofukasawa | 0:7a00359e701e | 3 | |
masahikofukasawa | 0:7a00359e701e | 4 | #include "mbed.h" |
masahikofukasawa | 0:7a00359e701e | 5 | #include "Message.h" |
masahikofukasawa | 0:7a00359e701e | 6 | |
masahikofukasawa | 0:7a00359e701e | 7 | // SPI |
masahikofukasawa | 0:7a00359e701e | 8 | #define SPI_SCK P0_8 //SPI, SCK |
masahikofukasawa | 0:7a00359e701e | 9 | #define SPI_MISO P0_9 //SPI, MISO |
masahikofukasawa | 0:7a00359e701e | 10 | #define SPI_MOSI P0_10 //SPI, MOSI |
masahikofukasawa | 4:af13b985c689 | 11 | #define SPI_CS P0_11 //SPI, CS |
masahikofukasawa | 7:e269411568c9 | 12 | #define SPI_DRDY P0_7 //SPI, DRDY |
masahikofukasawa | 0:7a00359e701e | 13 | |
masahikofukasawa | 0:7a00359e701e | 14 | // I2C |
masahikofukasawa | 0:7a00359e701e | 15 | #define I2C_SCL P0_8 //I2C, SCL |
masahikofukasawa | 0:7a00359e701e | 16 | #define I2C_SDA P0_10 //I2C, SDA |
masahikofukasawa | 0:7a00359e701e | 17 | |
masahikofukasawa | 0:7a00359e701e | 18 | // Digital Port |
masahikofukasawa | 0:7a00359e701e | 19 | #define DIGITAL_D0 P0_11 |
masahikofukasawa | 0:7a00359e701e | 20 | #define DIGITAL_D1 P0_9 |
masahikofukasawa | 0:7a00359e701e | 21 | |
masahikofukasawa | 0:7a00359e701e | 22 | // DRDY Port |
masahikofukasawa | 7:e269411568c9 | 23 | #define I2C_DRDY P0_11 |
masahikofukasawa | 0:7a00359e701e | 24 | |
masahikofukasawa | 0:7a00359e701e | 25 | // Analog In |
masahikofukasawa | 0:7a00359e701e | 26 | #define ANALOG_IN_PIN P0_5 //P05 |
masahikofukasawa | 0:7a00359e701e | 27 | |
masahikofukasawa | 0:7a00359e701e | 28 | #define I2C_SPEED_100KHZ 100000 |
masahikofukasawa | 0:7a00359e701e | 29 | #define I2C_SPEED_400KHZ 400000 |
masahikofukasawa | 0:7a00359e701e | 30 | |
masahikofukasawa | 11:cef8dc1cf010 | 31 | #define SENSOR_SAMPLING_RATE 0.1 // 10Hz |
masahikofukasawa | 0:7a00359e701e | 32 | |
masahikofukasawa | 0:7a00359e701e | 33 | class AkmSensor |
masahikofukasawa | 0:7a00359e701e | 34 | { |
masahikofukasawa | 0:7a00359e701e | 35 | |
masahikofukasawa | 0:7a00359e701e | 36 | public: |
masahikofukasawa | 0:7a00359e701e | 37 | typedef enum { |
masahikofukasawa | 0:7a00359e701e | 38 | SUCCESS = 0, |
masahikofukasawa | 0:7a00359e701e | 39 | ERROR, |
masahikofukasawa | 0:7a00359e701e | 40 | } Status; |
masahikofukasawa | 0:7a00359e701e | 41 | |
masahikofukasawa | 0:7a00359e701e | 42 | typedef enum { |
masahikofukasawa | 0:7a00359e701e | 43 | AKM_PRIMARY_ID_AKD_SPI = 0x0, |
masahikofukasawa | 0:7a00359e701e | 44 | AKM_PRIMARY_ID_UNIPOLAR = 0x1, |
masahikofukasawa | 0:7a00359e701e | 45 | AKM_PRIMARY_ID_OMNIPOLAR = 0x2, |
masahikofukasawa | 0:7a00359e701e | 46 | AKM_PRIMARY_ID_LATCH = 0x3, |
masahikofukasawa | 0:7a00359e701e | 47 | AKM_PRIMARY_ID_DUAL_OUTPUT = 0x4, |
masahikofukasawa | 0:7a00359e701e | 48 | AKM_PRIMARY_ID_ONECHIP_ENCODER = 0x5, |
masahikofukasawa | 0:7a00359e701e | 49 | AKM_PRIMARY_ID_TBD1 = 0x6, |
masahikofukasawa | 0:7a00359e701e | 50 | AKM_PRIMARY_ID_TBD2 = 0x7, |
masahikofukasawa | 27:41aa9fb23a2f | 51 | AKM_PRIMARY_ID_DEMO = 0x8, |
masahikofukasawa | 0:7a00359e701e | 52 | AKM_PRIMARY_ID_CURRENT_SENSOR = 0x9, |
masahikofukasawa | 0:7a00359e701e | 53 | AKM_PRIMARY_ID_MISC_ANALOG = 0xA, |
masahikofukasawa | 0:7a00359e701e | 54 | AKM_PRIMARY_ID_LINEAR_SENSOR = 0xB, |
masahikofukasawa | 4:af13b985c689 | 55 | AKM_PRIMARY_ID_TBD3 = 0xC, |
masahikofukasawa | 4:af13b985c689 | 56 | AKM_PRIMARY_ID_IR_SENSOR = 0xD, |
masahikofukasawa | 0:7a00359e701e | 57 | AKM_PRIMARY_ID_ANGLE_SENSOR = 0xE, |
masahikofukasawa | 0:7a00359e701e | 58 | AKM_PRIMARY_ID_AKD_I2C = 0xF, |
masahikofukasawa | 0:7a00359e701e | 59 | } SensorPrimaryId; |
masahikofukasawa | 0:7a00359e701e | 60 | |
masahikofukasawa | 27:41aa9fb23a2f | 61 | virtual ~AkmSensor(){}; |
masahikofukasawa | 0:7a00359e701e | 62 | virtual Status init(const uint8_t id, const uint8_t subid) = 0; |
masahikofukasawa | 0:7a00359e701e | 63 | virtual Status startSensor() = 0; |
masahikofukasawa | 0:7a00359e701e | 64 | virtual Status startSensor(const float sec) = 0; |
masahikofukasawa | 0:7a00359e701e | 65 | virtual Status stopSensor() = 0; |
masahikofukasawa | 0:7a00359e701e | 66 | virtual Status readSensorData(Message* msg) = 0; |
masahikofukasawa | 0:7a00359e701e | 67 | virtual Status requestCommand(Message* in, Message* out) = 0; |
masahikofukasawa | 27:41aa9fb23a2f | 68 | |
masahikofukasawa | 27:41aa9fb23a2f | 69 | bool isEvent(){ |
masahikofukasawa | 27:41aa9fb23a2f | 70 | return event; |
masahikofukasawa | 27:41aa9fb23a2f | 71 | } |
masahikofukasawa | 27:41aa9fb23a2f | 72 | |
masahikofukasawa | 27:41aa9fb23a2f | 73 | char* getSensorName(){ |
masahikofukasawa | 27:41aa9fb23a2f | 74 | return sensorName; |
masahikofukasawa | 27:41aa9fb23a2f | 75 | }; |
masahikofukasawa | 27:41aa9fb23a2f | 76 | |
masahikofukasawa | 27:41aa9fb23a2f | 77 | int getPrimaryId(){ |
masahikofukasawa | 27:41aa9fb23a2f | 78 | return primaryId; |
masahikofukasawa | 27:41aa9fb23a2f | 79 | }; |
masahikofukasawa | 27:41aa9fb23a2f | 80 | |
masahikofukasawa | 27:41aa9fb23a2f | 81 | int getSecondaryId(){ |
masahikofukasawa | 27:41aa9fb23a2f | 82 | return subId; |
masahikofukasawa | 27:41aa9fb23a2f | 83 | }; |
masahikofukasawa | 0:7a00359e701e | 84 | |
masahikofukasawa | 27:41aa9fb23a2f | 85 | protected: |
masahikofukasawa | 27:41aa9fb23a2f | 86 | bool event; |
masahikofukasawa | 27:41aa9fb23a2f | 87 | uint8_t primaryId; |
masahikofukasawa | 27:41aa9fb23a2f | 88 | uint8_t subId; |
masahikofukasawa | 27:41aa9fb23a2f | 89 | char* sensorName; |
masahikofukasawa | 27:41aa9fb23a2f | 90 | |
masahikofukasawa | 27:41aa9fb23a2f | 91 | AkmSensor(){ |
masahikofukasawa | 27:41aa9fb23a2f | 92 | event = false; |
masahikofukasawa | 27:41aa9fb23a2f | 93 | primaryId = 0; |
masahikofukasawa | 27:41aa9fb23a2f | 94 | subId = 0; |
masahikofukasawa | 27:41aa9fb23a2f | 95 | sensorName = ""; |
masahikofukasawa | 27:41aa9fb23a2f | 96 | }; |
masahikofukasawa | 0:7a00359e701e | 97 | }; |
masahikofukasawa | 0:7a00359e701e | 98 | |
masahikofukasawa | 0:7a00359e701e | 99 | #endif |