Browse Source

fix format

sbg
Mark Whitehorn 9 years ago committed by Lorenz Meier
parent
commit
e25b26e2a8
  1. 20
      src/drivers/frsky_telemetry/frsky_data.c
  2. 2
      src/drivers/frsky_telemetry/frsky_data.h
  3. 1
      src/drivers/frsky_telemetry/frsky_telemetry.c

20
src/drivers/frsky_telemetry/frsky_data.c

@ -289,7 +289,7 @@ void frsky_send_frame3(int uart)
} }
/* parse 11 byte frames */ /* parse 11 byte frames */
bool frsky_parse_host(uint8_t * sbuf, int nbytes, struct adc_linkquality * v) bool frsky_parse_host(uint8_t *sbuf, int nbytes, struct adc_linkquality *v)
{ {
bool data_ready = false; bool data_ready = false;
static int dcount = 0; static int dcount = 0;
@ -302,36 +302,46 @@ bool frsky_parse_host(uint8_t * sbuf, int nbytes, struct adc_linkquality * v)
TRAILER TRAILER
} state = HEADER; } state = HEADER;
for (int i=0; i<nbytes; i++) { for (int i = 0; i < nbytes; i++) {
switch (state) { switch (state) {
case HEADER: case HEADER:
if (sbuf[i] == 0x7E) { if (sbuf[i] == 0x7E) {
state = TYPE; state = TYPE;
} }
break; break;
case TYPE: case TYPE:
if (sbuf[i] != 0x7E) { if (sbuf[i] != 0x7E) {
state = DATA; state = DATA;
type = sbuf[i]; type = sbuf[i];
dcount = 0; dcount = 0;
} }
break; break;
case DATA: case DATA:
/* read 8 data bytes */ /* read 8 data bytes */
if (dcount < 7) { if (dcount < 7) {
data[dcount++] = sbuf[i]; data[dcount++] = sbuf[i];
}
else { } else {
/* received all data bytes */ /* received all data bytes */
state = TRAILER; state = TRAILER;
} }
break; break;
case TRAILER: case TRAILER:
state = HEADER; state = HEADER;
if (sbuf[i] != 0x7E) { if (sbuf[i] != 0x7E) {
warnx("host packet error: %x", sbuf[i]); warnx("host packet error: %x", sbuf[i]);
} else { } else {
data_ready = true; data_ready = true;
if (type == 0xFE) { if (type == 0xFE) {
/* this is an adc_linkquality packet */ /* this is an adc_linkquality packet */
v->ad1 = data[0]; v->ad1 = data[0];
@ -339,9 +349,11 @@ bool frsky_parse_host(uint8_t * sbuf, int nbytes, struct adc_linkquality * v)
v->linkq = data[2]; v->linkq = data[2];
} }
} }
break; break;
} }
} }
return data_ready; return data_ready;
} }

2
src/drivers/frsky_telemetry/frsky_data.h

@ -55,6 +55,6 @@ struct adc_linkquality {
uint8_t ad2; uint8_t ad2;
uint8_t linkq; uint8_t linkq;
}; };
bool frsky_parse_host(uint8_t * sbuf, int nbytes, struct adc_linkquality * v); bool frsky_parse_host(uint8_t *sbuf, int nbytes, struct adc_linkquality *v);
#endif /* _FRSKY_TELEMETRY_H */ #endif /* _FRSKY_TELEMETRY_H */

1
src/drivers/frsky_telemetry/frsky_telemetry.c

@ -344,6 +344,7 @@ static int frsky_telemetry_thread_main(int argc, char *argv[])
/* parse incoming data */ /* parse incoming data */
int nbytes = read(uart, &dbuf[0], sizeof(dbuf)); int nbytes = read(uart, &dbuf[0], sizeof(dbuf));
bool new_input = frsky_parse_host(&dbuf[0], nbytes, &host_frame); bool new_input = frsky_parse_host(&dbuf[0], nbytes, &host_frame);
if (new_input) { if (new_input) {
warnx("host frame: ad1:%u, ad2: %u, rssi: %u", warnx("host frame: ad1:%u, ad2: %u, rssi: %u",
host_frame.ad1, host_frame.ad2, host_frame.linkq); host_frame.ad1, host_frame.ad2, host_frame.linkq);

Loading…
Cancel
Save