From 640465462da6cace18476346902d20d03094a100 Mon Sep 17 00:00:00 2001 From: Mimmo La Fauci Date: Fri, 8 Jun 2012 18:56:47 +0200 Subject: [PATCH] Added function to get firmware version --- wifiHD/src/ard_spi.c | 17 ++++++++++++++++- wifiHD/src/main.c | 4 ++-- wifiHD/src/wifi_spi.h | 1 + 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/wifiHD/src/ard_spi.c b/wifiHD/src/ard_spi.c index d7192b633..a682b0076 100644 --- a/wifiHD/src/ard_spi.c +++ b/wifiHD/src/ard_spi.c @@ -25,7 +25,7 @@ #include "lwip/dns.h" #include - +extern const char* fwVersion; /*! \name USART Settings */ @@ -1278,6 +1278,20 @@ cmd_spi_state_t get_databuf_tcp_cmd_cb(char* recv, char* reply, void* ctx, uint1 return SPI_CMD_DONE; } +cmd_spi_state_t get_firmware_version_cmd_cb(char* recv, char* reply, void* ctx, uint16_t* count) { + + CHECK_ARD_NETIF(recv, reply, count); + + CREATE_HEADER_REPLY(reply, recv, 1); + + uint8_t len = strlen(fwVersion); + + PUT_BUFDATA_BYTE(fwVersion, len, reply, 3); + + END_HEADER_REPLY(reply, 3+len+1, *count); + + return SPI_CMD_DONE; +} int sendReply(int cmdIdx, char* recv, char* reply, void* resultCmd) { @@ -1435,6 +1449,7 @@ void init_spi_cmds() { spi_add_cmd(DATA_SENT_TCP_CMD, ack_cmd_cb, data_sent_tcp_cmd_cb, NULL, CMD_GET_FLAG); spi_add_cmd(GET_DATABUF_TCP_CMD, ack_cmd_cb, get_databuf_tcp_cmd_cb, NULL, CMD_GET_FLAG); spi_add_cmd(GET_CLIENT_STATE_TCP_CMD, ack_cmd_cb, get_client_state_tcp_cmd_cb, NULL, CMD_GET_FLAG); + spi_add_cmd(GET_FW_VERSION_CMD, ack_cmd_cb, get_firmware_version_cmd_cb, NULL, CMD_GET_FLAG); } diff --git a/wifiHD/src/main.c b/wifiHD/src/main.c index 89fde00fe..68d406f5a 100644 --- a/wifiHD/src/main.c +++ b/wifiHD/src/main.c @@ -38,8 +38,8 @@ #include "ard_utils.h" #include - -//void board_init(void); +/* FIRMWARE version */ +const char* fwVersion = "1.0.0"; #if BOARD == ARDUINO #if !defined(DATAFLASH) diff --git a/wifiHD/src/wifi_spi.h b/wifiHD/src/wifi_spi.h index e2f75ac9a..7332aea0f 100644 --- a/wifiHD/src/wifi_spi.h +++ b/wifiHD/src/wifi_spi.h @@ -54,6 +54,7 @@ enum { REQ_HOST_BY_NAME_CMD= 0x34, GET_HOST_BY_NAME_CMD= 0x35, START_SCAN_NETWORKS = 0x36, + GET_FW_VERSION_CMD = 0x37, // All command with DATA_FLAG 0x40 send a 16bit Len