From 82e92a29e22d9602c5a11508d5bf8117cd229cfc Mon Sep 17 00:00:00 2001 From: James Maki Date: Thu, 13 May 2010 13:49:07 -0500 Subject: check for ACKs --- src/venus_gps.c | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) (limited to 'src/venus_gps.c') diff --git a/src/venus_gps.c b/src/venus_gps.c index c11bed1..1136d07 100644 --- a/src/venus_gps.c +++ b/src/venus_gps.c @@ -710,42 +710,60 @@ int main(int argc, char *argv[]) exit(1); } - venus_conf_format(tty, MSG_TYPE_BINARY, UPDATE_ATTR_SRAM); + tmp = venus_conf_format(tty, MSG_TYPE_BINARY, UPDATE_ATTR_SRAM); + if (tmp < 0) { + log_error("failed to change to binary format"); + exit(1); + } tmp = venus_query_sw_version(tty, SW_TYPE_RESERVED, &msg); if (tmp < 0) { log_error("failed to query venus sw version info"); exit(1); } - if (msg.len == 14 && msg.data[0] == ID_SW_VERSION) { - log_notice("Venus Software Type: 0x%02X", msg.data[1]); - log_notice("Venus Kernel Version: 0x%02X%02X%02X%02X", - msg.data[2], msg.data[3], msg.data[4], msg.data[5]); - log_notice("Venus ODM version: 0x%02X%02X%02X%02X", - msg.data[6], msg.data[7], msg.data[8], msg.data[9]); - log_notice("Venus Revision: 0x%02X%02X%02X%02X", - msg.data[10], msg.data[11], msg.data[12], msg.data[13]); - } + log_notice("Venus Software Type: 0x%02X", msg.data[1]); + log_notice("Venus Kernel Version: 0x%02X%02X%02X%02X", + msg.data[2], msg.data[3], msg.data[4], msg.data[5]); + log_notice("Venus ODM version: 0x%02X%02X%02X%02X", + msg.data[6], msg.data[7], msg.data[8], msg.data[9]); + log_notice("Venus Revision: 0x%02X%02X%02X%02X", + msg.data[10], msg.data[11], msg.data[12], msg.data[13]); venus_msg_data_free(&msg); #if CONFIG_CAN_DEFAULT if (factory_defaults) { - venus_factory_defaults(tty, FACTORY_DEFAULTS_REBOOT); log_notice("setting factory defaults"); + tmp = venus_factory_defaults(tty, FACTORY_DEFAULTS_REBOOT); + if (tmp < 0) { + log_error("failed to set factory defaults"); + exit(1); + } exit(0); } #endif #if CONFIG_CAN_RESET if (start_mode != (typeof(start_mode)) - 1) { - venus_system_restart(tty, start_mode, time(NULL), latitude, longitude, altitude); log_notice("issuing system restart"); + tmp = venus_system_restart(tty, start_mode, time(NULL), latitude, longitude, altitude); + if (tmp < 0) { + log_error("system restart failed"); + exit(1); + } exit(0); } #endif - venus_conf_nmea(tty, gga, gsa, gsv, gll, rmc, vtg, zda, UPDATE_ATTR_SRAM); + tmp = venus_conf_nmea(tty, gga, gsa, gsv, gll, rmc, vtg, zda, UPDATE_ATTR_SRAM); + if (tmp < 0) { + log_error("failed to configure nmea sentences"); + exit(1); + } - venus_conf_format(tty, MSG_TYPE_NMEA, UPDATE_ATTR_SRAM); + tmp = venus_conf_format(tty, MSG_TYPE_NMEA, UPDATE_ATTR_SRAM); + if (tmp < 0) { + log_error("failed to change to nmea format"); + exit(1); + } close(tty); -- cgit v1.2.3