Library for Skytraq Venus838 GPS
Dependents: Venus838_Test Atlas
Venus838.cpp
- Committer:
- ethanharstad
- Date:
- 2014-06-24
- Revision:
- 0:8c7efefad15e
File content as of revision 0:8c7efefad15e:
#include "Venus838.h"
// A0 A1 PL(2b) ID Body CS 0D 0A
Venus838::Venus838(PinName tx, PinName rx) : _gps(tx, rx) {
_gps.baud(115200);
}
void Venus838::setNmeaMessages(const bool gga, const bool gsa, const bool gsv, const bool gll, const bool rmc, const bool vtg) {
char cmd[16] = {
0xA0, 0xA1, 0x00, 0x09,
0x08, gga, gsa, gsv, gll, rmc, vtg, 0x00, 0x01,
0x00, 0x0D, 0x0A
};
for(int i = 4; i < 13; i++) cmd[13] ^= cmd[i];
for(int i = 0; i < 16; i++) _gps.putc(cmd[i]);
}
void Venus838::setUpdateRate(const uint8_t rate) {
char cmd[10] = {
0xA0, 0xA1, 0x00, 0x03,
0x0E, rate, 0x01,
0x00, 0x0D, 0x0A
};
for(int i = 4; i < 7; i++) cmd[7] ^= cmd[i];
for(int i = 0; i < 10; i++) _gps.putc(cmd[i]);
}
void Venus838::setNavigationMode(const int mode) {
char cmd[] = {
0xA0, 0xA1, 0x00, 0x04,
0x64, 0x17, 0x04, 0x01,
0x00, 0x0D, 0x0A
};
for(int i = 4; i < 8; i++) cmd[8] ^= cmd[i];
for(int i = 0; i < 10; i++) _gps.putc(cmd[i]);
}
bool Venus838::readable() {
return _gps.readable();
}
void Venus838::putc(char in) {
_gps.putc(in);
}
char Venus838::getc() {
return _gps.getc();
}