2018 revision to classic DataBus AVC code.

Dependencies:   LSM303DLM Servo SerialGraphicLCD L3G4200D IncrementalEncoder SimpleShell

Committer:
shimniok
Date:
Wed Dec 12 18:21:57 2018 +0000
Revision:
14:1dd83e626153
Parent:
13:5566df1250f1
Child:
15:35c40765f7c3
Added encoder read to Updater, added documentation, added shell cmd to read encoder

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shimniok 11:8ec858b7c6d1 1 #ifndef __UPDATER_H
shimniok 11:8ec858b7c6d1 2 #define __UPDATER_H
shimniok 11:8ec858b7c6d1 3
shimniok 11:8ec858b7c6d1 4 #include "mbed.h"
shimniok 11:8ec858b7c6d1 5 #include "L3G4200D.h"
shimniok 11:8ec858b7c6d1 6
shimniok 12:3cd91e150d9c 7 class Updater: private mbed::NonCopyable<Updater> {
shimniok 11:8ec858b7c6d1 8 public:
shimniok 14:1dd83e626153 9 /** Start the updater running - cannot be exited!
shimniok 14:1dd83e626153 10 * @param interval_ms is the interval in ms between calls to update()
shimniok 14:1dd83e626153 11 * @note Makes use of RTOS EventQueue and Event.
shimniok 14:1dd83e626153 12 */
shimniok 11:8ec858b7c6d1 13 void start(int interval_ms);
shimniok 14:1dd83e626153 14
shimniok 14:1dd83e626153 15 /// Return singleton instance
shimniok 11:8ec858b7c6d1 16 static Updater *instance();
shimniok 14:1dd83e626153 17
shimniok 14:1dd83e626153 18 /** Get gyro values
shimniok 14:1dd83e626153 19 * @return g array of x, y, and z gyro values
shimniok 14:1dd83e626153 20 * @return dt time since data last updated
shimniok 14:1dd83e626153 21 */
shimniok 13:5566df1250f1 22 void gyro(int g[3], float& dt);
shimniok 14:1dd83e626153 23
shimniok 14:1dd83e626153 24 /** Get encoder count
shimniok 14:1dd83e626153 25 * @return encoder count since last call
shimniok 14:1dd83e626153 26 */
shimniok 14:1dd83e626153 27 int encoder();
shimniok 14:1dd83e626153 28
shimniok 11:8ec858b7c6d1 29 private:
shimniok 14:1dd83e626153 30 /// Basic constructor (singleton)
shimniok 14:1dd83e626153 31 Updater() {}
shimniok 14:1dd83e626153 32
shimniok 14:1dd83e626153 33 /// Update all sensors
shimniok 14:1dd83e626153 34 void update();
shimniok 14:1dd83e626153 35
shimniok 14:1dd83e626153 36 Timer *t; // timer used to measure dt
shimniok 14:1dd83e626153 37 int _gyro[3]; // gyro raw
shimniok 14:1dd83e626153 38 int _ecount; // encoder count
shimniok 13:5566df1250f1 39 float _dt;
shimniok 11:8ec858b7c6d1 40 int thisTime;
shimniok 11:8ec858b7c6d1 41 int lastTime;
shimniok 11:8ec858b7c6d1 42 };
shimniok 11:8ec858b7c6d1 43
shimniok 11:8ec858b7c6d1 44 #endif