Modified for compatibility with Rev.E. hardware
Fork of AkmSensor by
Diff: akmakd.cpp
- Revision:
- 42:b48b3ab8690e
- Parent:
- 41:a3ea80c594ec
- Child:
- 43:45225713cd58
--- a/akmakd.cpp Thu Aug 17 19:59:10 2017 +0000 +++ b/akmakd.cpp Fri Nov 03 19:45:33 2017 +0000 @@ -1,6 +1,7 @@ #include "akmakd.h" #include "ak8963.h" #include "ak099xx.h" +#include "ak09940.h" #include "debug.h" /** @@ -21,8 +22,10 @@ AkmSensor::Status AkmAkd::checkSensor( const uint8_t primaryid, const uint8_t subid, AkmECompass::DeviceId* devid){ AK099XX* ak099xx; + AK09940* ak09940; AK8963* ak8963; - + lenOptions = 0; + switch(subid){ case AkmAkd::SUB_ID_AK8963N: case AkmAkd::SUB_ID_AK8963C: @@ -96,8 +99,8 @@ case AkmAkd::SUB_ID_AK09940: *devid = AkmECompass::AK09940; AkmAkd::sensorName = "AK09940"; - ak099xx = new AK099XX(); - compass = ak099xx; + ak09940 = new AK09940(); + compass = ak09940; lenOptions = 5; break; default: @@ -113,11 +116,10 @@ AkmSensor::Status AkmAkd::init(const uint8_t primaryid, const uint8_t subid){ primaryId = primaryid; subId = subid; - + AkmECompass::DeviceId devid; mode.mode = AkmECompass::MODE_POWER_DOWN; - lenOptions = 0; if(primaryId == AKM_PRIMARY_ID_AKD_I2C){ @@ -136,8 +138,10 @@ for(int i=0; i<sizeof(slaveAddr); i++) { + MSG("#look for e-compass.\r\n"); compass->init(i2c, slaveAddr[i], devid); // Checks connectivity + MSG("#checkConnection.\r\n"); if(compass->checkConnection() == AkmECompass::SUCCESS) { MSG("#%s detected.\r\n", AkmAkd::sensorName); return AkmSensor::SUCCESS; @@ -161,6 +165,7 @@ return AkmSensor::SUCCESS; } } + MSG("#ERROR: couldn't detected.\r\n"); return AkmSensor::ERROR; } @@ -226,9 +231,11 @@ AkmECompass::Mode temp; temp.mode = AkmECompass::MODE_POWER_DOWN; + uint8_t options[lenOptions]; for(int i=0; i<lenOptions; i++){ - temp.options[i] = mode.options[i]; + options[i] = mode.options[i]; } + temp.options = options; if(compass->setOperationMode(temp) != AkmECompass::SUCCESS) { return AkmSensor::ERROR; }