Updates to support alternative accelerometer and magnetomter sensors
Minor updates to make use of new functionality in microbit-dal that performs autodetection of attached sensors and instatiation of drivers. Also some code cleanups to remove unused code. More specifically: - Changed MicroBitAccelerometer and MicroBitCompass objects to be references. This is to support dynamic autodetection and instantiation of drivers for such hardware. - Updates to initialise MicroBitAccelerometer and MicroBitCompass references through the MicroBitAccelerometer::autoDetect() and MicroBitCompass::autoDetect() methods, respectively. - Add storage object to MicroBitCompassCalibrator constructor to enable persistent storing of calibration data. - Updated use of accelerometer updateSample() to more commonly used getSample() method to improve clarity and to provide a reference example. - Exposed sensor IRQ lines via MicroBitIO. - Removed redundant include of Matrix4.h
This commit is contained in:
parent
f4e7e01c1d
commit
ce4c078a42
|
@ -33,7 +33,6 @@ DEALINGS IN THE SOFTWARE.
|
||||||
#include "MicroBitDevice.h"
|
#include "MicroBitDevice.h"
|
||||||
#include "ErrorNo.h"
|
#include "ErrorNo.h"
|
||||||
#include "MicroBitSystemTimer.h"
|
#include "MicroBitSystemTimer.h"
|
||||||
#include "Matrix4.h"
|
|
||||||
#include "MicroBitCompat.h"
|
#include "MicroBitCompat.h"
|
||||||
#include "MicroBitComponent.h"
|
#include "MicroBitComponent.h"
|
||||||
#include "ManagedType.h"
|
#include "ManagedType.h"
|
||||||
|
@ -112,8 +111,8 @@ class MicroBit
|
||||||
MicroBitButton buttonA;
|
MicroBitButton buttonA;
|
||||||
MicroBitButton buttonB;
|
MicroBitButton buttonB;
|
||||||
MicroBitMultiButton buttonAB;
|
MicroBitMultiButton buttonAB;
|
||||||
MicroBitAccelerometer accelerometer;
|
MicroBitAccelerometer &accelerometer;
|
||||||
MicroBitCompass compass;
|
MicroBitCompass &compass;
|
||||||
MicroBitCompassCalibrator compassCalibrator;
|
MicroBitCompassCalibrator compassCalibrator;
|
||||||
MicroBitThermometer thermometer;
|
MicroBitThermometer thermometer;
|
||||||
|
|
||||||
|
|
|
@ -68,9 +68,9 @@ MicroBit::MicroBit() :
|
||||||
buttonA(MICROBIT_PIN_BUTTON_A, MICROBIT_ID_BUTTON_A),
|
buttonA(MICROBIT_PIN_BUTTON_A, MICROBIT_ID_BUTTON_A),
|
||||||
buttonB(MICROBIT_PIN_BUTTON_B, MICROBIT_ID_BUTTON_B),
|
buttonB(MICROBIT_PIN_BUTTON_B, MICROBIT_ID_BUTTON_B),
|
||||||
buttonAB(MICROBIT_ID_BUTTON_A,MICROBIT_ID_BUTTON_B, MICROBIT_ID_BUTTON_AB),
|
buttonAB(MICROBIT_ID_BUTTON_A,MICROBIT_ID_BUTTON_B, MICROBIT_ID_BUTTON_AB),
|
||||||
accelerometer(i2c),
|
accelerometer(MicroBitAccelerometer::autoDetect(i2c)),
|
||||||
compass(i2c, accelerometer, storage),
|
compass(MicroBitCompass::autoDetect(i2c)),
|
||||||
compassCalibrator(compass, accelerometer, display),
|
compassCalibrator(compass, accelerometer, display, storage),
|
||||||
thermometer(storage),
|
thermometer(storage),
|
||||||
io(MICROBIT_ID_IO_P0,MICROBIT_ID_IO_P1,MICROBIT_ID_IO_P2,
|
io(MICROBIT_ID_IO_P0,MICROBIT_ID_IO_P1,MICROBIT_ID_IO_P2,
|
||||||
MICROBIT_ID_IO_P3,MICROBIT_ID_IO_P4,MICROBIT_ID_IO_P5,
|
MICROBIT_ID_IO_P3,MICROBIT_ID_IO_P4,MICROBIT_ID_IO_P5,
|
||||||
|
@ -78,7 +78,8 @@ MicroBit::MicroBit() :
|
||||||
MICROBIT_ID_IO_P9,MICROBIT_ID_IO_P10,MICROBIT_ID_IO_P11,
|
MICROBIT_ID_IO_P9,MICROBIT_ID_IO_P10,MICROBIT_ID_IO_P11,
|
||||||
MICROBIT_ID_IO_P12,MICROBIT_ID_IO_P13,MICROBIT_ID_IO_P14,
|
MICROBIT_ID_IO_P12,MICROBIT_ID_IO_P13,MICROBIT_ID_IO_P14,
|
||||||
MICROBIT_ID_IO_P15,MICROBIT_ID_IO_P16,MICROBIT_ID_IO_P19,
|
MICROBIT_ID_IO_P15,MICROBIT_ID_IO_P16,MICROBIT_ID_IO_P19,
|
||||||
MICROBIT_ID_IO_P20),
|
MICROBIT_ID_IO_P20, MICROBIT_ID_IO_INT1, MICROBIT_ID_IO_INT2,
|
||||||
|
MICROBIT_ID_IO_INT3),
|
||||||
bleManager(storage),
|
bleManager(storage),
|
||||||
radio(),
|
radio(),
|
||||||
ble(NULL)
|
ble(NULL)
|
||||||
|
@ -211,7 +212,7 @@ void MicroBit::onListenerRegisteredEvent(MicroBitEvent evt)
|
||||||
case MICROBIT_ID_GESTURE:
|
case MICROBIT_ID_GESTURE:
|
||||||
// A listener has been registered for the accelerometer.
|
// A listener has been registered for the accelerometer.
|
||||||
// The accelerometer uses lazy instantiation, we just need to read the data once to start it running.
|
// The accelerometer uses lazy instantiation, we just need to read the data once to start it running.
|
||||||
accelerometer.updateSample();
|
accelerometer.getSample();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MICROBIT_ID_THERMOMETER:
|
case MICROBIT_ID_THERMOMETER:
|
||||||
|
|
Loading…
Reference in New Issue