aboutsummaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-06-04 22:54:27 -0700
committerLorenz Meier <lm@inf.ethz.ch>2013-06-04 22:54:27 -0700
commitbddcb11051a159511a1970246430cf7898fa71a7 (patch)
tree66c88d1696ad6f3180e313375a37c73bca00e5d5 /src/drivers
parentde82295ab5307bca0fbd2266fdd1547386fa19a8 (diff)
parent032f7d0b0e0bfb0cb5b77ebb8553cf3dc7ddda9b (diff)
downloadpx4-firmware-bddcb11051a159511a1970246430cf7898fa71a7.tar.gz
px4-firmware-bddcb11051a159511a1970246430cf7898fa71a7.tar.bz2
px4-firmware-bddcb11051a159511a1970246430cf7898fa71a7.zip
Merge pull request #296 from sjwilks/hott-init-fix
Fix HoTT syncing issue with receiver on startup.
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/hott_telemetry/hott_telemetry_main.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/drivers/hott_telemetry/hott_telemetry_main.c b/src/drivers/hott_telemetry/hott_telemetry_main.c
index 4318244f8..1d2bdd92e 100644
--- a/src/drivers/hott_telemetry/hott_telemetry_main.c
+++ b/src/drivers/hott_telemetry/hott_telemetry_main.c
@@ -133,15 +133,14 @@ recv_req_id(int uart, uint8_t *id)
if (poll(fds, 1, timeout_ms) > 0) {
/* Get the mode: binary or text */
read(uart, &mode, sizeof(mode));
- /* Read the device ID being polled */
- read(uart, id, sizeof(*id));
/* if we have a binary mode request */
if (mode != BINARY_MODE_REQUEST_ID) {
- warnx("Non binary request ID detected: %d", mode);
return ERROR;
}
+ /* Read the device ID being polled */
+ read(uart, id, sizeof(*id));
} else {
warnx("UART timeout on TX/RX port");
return ERROR;
@@ -216,9 +215,15 @@ hott_telemetry_thread_main(int argc, char *argv[])
uint8_t buffer[MESSAGE_BUFFER_SIZE];
size_t size = 0;
uint8_t id = 0;
+ bool connected = true;
while (!thread_should_exit) {
if (recv_req_id(uart, &id) == OK) {
+ if (!connected) {
+ connected = true;
+ warnx("OK");
+ }
+
switch (id) {
case EAM_SENSOR_ID:
build_eam_response(buffer, &size);
@@ -234,7 +239,8 @@ hott_telemetry_thread_main(int argc, char *argv[])
send_data(uart, buffer, size);
} else {
- warnx("NOK");
+ connected = false;
+ warnx("syncing");
}
}