An implementation of the Sirf Binary and NMEA Protocol for gps devices using the SiRFstarIII chipset

Committer:
p3p
Date:
Thu Jun 28 21:17:29 2012 +0000
Revision:
0:43da35949666
update to baud selection

Who changed what in which revision?

UserRevisionLine numberNew contents of line
p3p 0:43da35949666 1 #ifndef SIRF_PROTOCOL
p3p 0:43da35949666 2 #define SIRF_PROTOCOL
p3p 0:43da35949666 3
p3p 0:43da35949666 4 #include "mbed.h"
p3p 0:43da35949666 5 #include "MODSERIAL.h"
p3p 0:43da35949666 6 #include "Protocol.h"
p3p 0:43da35949666 7 #include "BinaryPackets.h"
p3p 0:43da35949666 8 #include "NmeaPackets.h"
p3p 0:43da35949666 9
p3p 0:43da35949666 10 namespace SirfStarIII {
p3p 0:43da35949666 11
p3p 0:43da35949666 12 enum ProtocolMode {
p3p 0:43da35949666 13 BINARY,
p3p 0:43da35949666 14 NMEA
p3p 0:43da35949666 15 };
p3p 0:43da35949666 16
p3p 0:43da35949666 17 class SirfStarIII : public SimpleSerialProtocol::Protocol {
p3p 0:43da35949666 18 public:
p3p 0:43da35949666 19 SirfStarIII(PinName tx, PinName rx);
p3p 0:43da35949666 20 virtual ~SirfStarIII();
p3p 0:43da35949666 21
p3p 0:43da35949666 22 virtual void initialise();
p3p 0:43da35949666 23 virtual void initialise(ProtocolMode mode, uint32_t baud_rate);
p3p 0:43da35949666 24 virtual void receive();
p3p 0:43da35949666 25 virtual void sendPacket(SimpleSerialProtocol::Packet* packet);
p3p 0:43da35949666 26
p3p 0:43da35949666 27 void receiveBinary();
p3p 0:43da35949666 28 uint16_t checksumBinary(uint8_t* packet, uint16_t packet_size);
p3p 0:43da35949666 29 void sendBinaryPacket(SimpleSerialProtocol::Packet* packet);
p3p 0:43da35949666 30
p3p 0:43da35949666 31 void receiveNMEA();
p3p 0:43da35949666 32 uint8_t checksumNMEA(const char * command);
p3p 0:43da35949666 33 void sendNMEAPacket(SimpleSerialProtocol::Packet* packet);
p3p 0:43da35949666 34
p3p 0:43da35949666 35 void selectMode(ProtocolMode mode, uint32_t baud, bool find_baud = false);
p3p 0:43da35949666 36 void selectBaud(uint32_t baud);
p3p 0:43da35949666 37
p3p 0:43da35949666 38 void NMEAChangeBaud(uint32_t baud_rate);
p3p 0:43da35949666 39 void BinaryChangeBaud(uint32_t baud_rate);
p3p 0:43da35949666 40
p3p 0:43da35949666 41 ProtocolMode _mode;
p3p 0:43da35949666 42 };
p3p 0:43da35949666 43
p3p 0:43da35949666 44 }
p3p 0:43da35949666 45
p3p 0:43da35949666 46 #endif