UKHAS Wiki

UK High Altitude Society

User Tools

Site Tools


code:arduino_gps_parser
char incomingByte;
int i;
boolean skip;

void setup() {
  Serial.begin(4800);
}

void loop() {
  if(Serial.available()) {
    incomingByte = Serial.read();
    if(incomingByte==86) {
      skip = true;
    }
    if(incomingByte==65) {
      skip = false;
      i = 5;
    }
    if(!skip) {
      if(incomingByte==36) {
        i=0;
      }
      if(i==6) {
        Serial.println();
        Serial.print(84, BYTE);
        Serial.print(105, BYTE);
        Serial.print(109, BYTE);
        Serial.print(101, BYTE);
        Serial.print(58, BYTE);
        Serial.print(32, BYTE);
      }
      if(i==9||i==11) {
        Serial.print(58, BYTE);
      }
      if((i>6)&&(i<16)) {
        Serial.print(incomingByte);
      }
      if(i==16) {
        // PRINT "UTC"
        Serial.print(32, BYTE);
        Serial.print(85, BYTE);
        Serial.print(84, BYTE);
        Serial.print(67, BYTE);
        Serial.println();
        // PRINT "LONGITUDE: "
        Serial.print(76, BYTE);
        Serial.print(111, BYTE);
        Serial.print(110, BYTE);
        Serial.print(103, BYTE);
        Serial.print(105, BYTE);
        Serial.print(116, BYTE);
        Serial.print(117, BYTE);
        Serial.print(100, BYTE);
        Serial.print(101, BYTE);
        Serial.print(58, BYTE);
        Serial.print(32, BYTE);
      }
      if((i>16)&&(i<28)) {
        Serial.print(incomingByte);
      }
      if(i==29) {
        Serial.println();
        Serial.print(76, BYTE);
        Serial.print(97, BYTE);
        Serial.print(116, BYTE);
        Serial.print(105, BYTE);
        Serial.print(116, BYTE);
        Serial.print(117, BYTE);
        Serial.print(100, BYTE);
        Serial.print(101, BYTE);
        Serial.print(58, BYTE);
        Serial.print(32, BYTE);
      }
      if((i>28)&&(i<41)) {
        Serial.print(incomingByte);
      }
      i++;
    }
  }
}
code/arduino_gps_parser.txt ยท Last modified: 2009/02/07 13:00 by joshatkins