diff options
author | James Maki <jmaki@multitech.com> | 2010-05-13 10:46:40 -0500 |
---|---|---|
committer | James Maki <jmaki@multitech.com> | 2010-05-13 10:46:40 -0500 |
commit | 481c8554fec914391adc3adfeb431c4b131b37f2 (patch) | |
tree | 8cb13600baf5b15a4e9bb508a24752560e0344ca /src/venus_api.c | |
parent | 7e491b22e9b0f636e3d770bf7cdeb25e4a3830e5 (diff) | |
download | venus-gps-481c8554fec914391adc3adfeb431c4b131b37f2.tar.gz venus-gps-481c8554fec914391adc3adfeb431c4b131b37f2.tar.bz2 venus-gps-481c8554fec914391adc3adfeb431c4b131b37f2.zip |
show sw version
Diffstat (limited to 'src/venus_api.c')
-rw-r--r-- | src/venus_api.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/venus_api.c b/src/venus_api.c index c1ae5d4..839d9ed 100644 --- a/src/venus_api.c +++ b/src/venus_api.c @@ -107,6 +107,16 @@ void venus_msg_data_free(struct venus_msg *msg) msg->data = NULL; } +void venus_msg_free(struct venus_msg *msg) +{ + if (!msg) { + return; + } + + venus_msg_data_free(msg); + free(msg); +} + uint8_t venus_checksum(void *data, uint16_t len) { int i; @@ -384,36 +394,34 @@ int venus_conf_format(int fd, uint8_t type, uint8_t attr) return 0; } -int venus_query_sw_version(int fd, uint8_t type) +int venus_query_sw_version(int fd, uint8_t type, struct venus_msg *msg) { int err; uint8_t data[2]; - struct venus_msg msg; data[0] = ID_QUERY_SW_VERSION; data[1] = type; - msg.data = data; - msg.len = sizeof(data); - err = venus_write_msg(fd, &msg); + msg->data = data; + msg->len = sizeof(data); + err = venus_write_msg(fd, msg); if (err < 0) { log_error("venus_write_msg: %d", err); return -1; } - err = venus_read_msg(fd, &msg); + err = venus_read_msg(fd, msg); if (err < 0) { log_error("venus_read_msg: %d", err); return -1; } - venus_msg_data_free(&msg); + venus_msg_data_free(msg); - err = venus_read_msg(fd, &msg); + err = venus_read_msg(fd, msg); if (err < 0) { log_error("venus_read_msg: %d", err); return -1; } - venus_msg_data_free(&msg); return 0; } |