10Hz GPS, MEgasquirt, SD Card, ADxl345, 20x4 LCD datalogger

Dependencies:   ADXL345 10HzGPSdatalogger mbed

Committer:
jpnovak
Date:
Sat Nov 28 17:07:15 2015 +0000
Revision:
0:b8d7df90819e
10HzGPS Megasquirt adxl345 SD card LCD;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jpnovak 0:b8d7df90819e 1 #pragma once
jpnovak 0:b8d7df90819e 2
jpnovak 0:b8d7df90819e 3 // This is a buffered serial reading class, using the serial interrupt introduced in mbed library version 18 on 17/11/09
jpnovak 0:b8d7df90819e 4
jpnovak 0:b8d7df90819e 5 // In the simplest case, construct it with a buffer size at least equal to the largest message you
jpnovak 0:b8d7df90819e 6 // expect your program to receive in one go.
jpnovak 0:b8d7df90819e 7
jpnovak 0:b8d7df90819e 8 class SerialBuffered : public Serial
jpnovak 0:b8d7df90819e 9 {
jpnovak 0:b8d7df90819e 10 public:
jpnovak 0:b8d7df90819e 11 SerialBuffered( size_t bufferSize, PinName tx, PinName rx );
jpnovak 0:b8d7df90819e 12 virtual ~SerialBuffered();
jpnovak 0:b8d7df90819e 13
jpnovak 0:b8d7df90819e 14 int getc(); // will block till the next character turns up, or return -1 if there is a timeout
jpnovak 0:b8d7df90819e 15
jpnovak 0:b8d7df90819e 16 int readable(); // returns 1 if there is a character available to read, 0 otherwise
jpnovak 0:b8d7df90819e 17
jpnovak 0:b8d7df90819e 18 void setTimeout( float seconds ); // maximum time in seconds that getc() should block
jpnovak 0:b8d7df90819e 19 // while waiting for a character
jpnovak 0:b8d7df90819e 20 // Pass -1 to disable the timeout.
jpnovak 0:b8d7df90819e 21
jpnovak 0:b8d7df90819e 22 size_t readBytes( uint8_t *bytes, size_t requested ); // read requested bytes into a buffer,
jpnovak 0:b8d7df90819e 23 // return number actually read,
jpnovak 0:b8d7df90819e 24 // which may be less than requested if there has been a timeout
jpnovak 0:b8d7df90819e 25
jpnovak 0:b8d7df90819e 26
jpnovak 0:b8d7df90819e 27 private:
jpnovak 0:b8d7df90819e 28
jpnovak 0:b8d7df90819e 29 void handleInterrupt();
jpnovak 0:b8d7df90819e 30
jpnovak 0:b8d7df90819e 31
jpnovak 0:b8d7df90819e 32 uint8_t *m_buff; // points at a circular buffer, containing data from m_contentStart, for m_contentSize bytes, wrapping when you get to the end
jpnovak 0:b8d7df90819e 33 uint16_t m_contentStart; // index of first bytes of content
jpnovak 0:b8d7df90819e 34 uint16_t m_contentEnd; // index of bytes after last byte of content
jpnovak 0:b8d7df90819e 35 uint16_t m_buffSize;
jpnovak 0:b8d7df90819e 36 float m_timeout;
jpnovak 0:b8d7df90819e 37 Timer m_timer;
jpnovak 0:b8d7df90819e 38
jpnovak 0:b8d7df90819e 39 };