Skip to content

Commit 8235f4e

Browse files
committed
update firmware/hardware version settings
1 parent c986333 commit 8235f4e

File tree

5 files changed

+98
-31
lines changed

5 files changed

+98
-31
lines changed

CMakeLists.txt

+66-8
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,73 @@
22
# CMakeLists in this exact order for cmake to work correctly
33
cmake_minimum_required(VERSION 3.5)
44

5+
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
6+
7+
set(WICAN_V210 1)
8+
set(WICAN_V300 2)
9+
set(WICAN_USB_V100 3)
10+
set(WICAN_PRO 4)
11+
12+
set(WICAN_V210_STR "OBD")
13+
set(WICAN_V300_STR "OBD")
14+
set(WICAN_USB_V100_STR "USB")
15+
set(WICAN_PRO_STR "OBD-PRO")
16+
17+
# Set these without quotes, as they're string literals
18+
set(WICAN_V210_PREF "obd")
19+
set(WICAN_V300_PREF "obd")
20+
set(WICAN_USB_V100_PREF "usb")
21+
set(WICAN_PRO_PREF "obd_pro")
22+
23+
add_definitions(-DWICAN_V210=${WICAN_V210})
24+
add_definitions(-DWICAN_V300=${WICAN_V300})
25+
add_definitions(-DWICAN_USB_V100=${WICAN_USB_V100})
26+
add_definitions(-DWICAN_PRO=${WICAN_PRO})
27+
28+
add_definitions(-DWICAN_V210_STR="${WICAN_V210_STR}")
29+
add_definitions(-DWICAN_V300_STR="${WICAN_V300_STR}")
30+
add_definitions(-DWICAN_USB_V100_STR="${WICAN_USB_V100_STR}")
31+
add_definitions(-DWICAN_PRO_STR="${WICAN_PRO_STR}")
32+
33+
execute_process(
34+
COMMAND git describe --tags --always --dirty
35+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
36+
OUTPUT_VARIABLE GIT_SHA
37+
OUTPUT_STRIP_TRAILING_WHITESPACE
38+
)
39+
40+
set(GIT_SHA1 "${GIT_SHA}")
41+
string(REPLACE "." "" GIT_SHA "${GIT_SHA}")
42+
43+
add_definitions(-DGIT_SHA="${GIT_SHA1}")
44+
45+
# Uncomment and use one of the following as needed
46+
# set(HARDWARE_VER ${WICAN_V210})
47+
set(HARDWARE_VER ${WICAN_V300})
48+
# set(HARDWARE_VER ${WICAN_USB_V100})
49+
# set(HARDWARE_VER ${WICAN_PRO})
50+
51+
add_definitions(-DHARDWARE_VER=${HARDWARE_VER})
552

653
set(PROJECT_PREF "wican-fw")
7-
set(PROJECT_VER "v344_hv300")
8-
#set(PROJECT_VER "v155_hv210")
954

10-
# set(PROJECT_PREF "wican-fw-usb")
11-
# set(PROJECT_VER "v344_hv150")
55+
# Set HW_PREF based on HARDWARE_VER
56+
if (HARDWARE_VER EQUAL ${WICAN_PRO})
57+
set(HW_PREF "${WICAN_PRO_PREF}")
58+
set(HW_VER "${WICAN_PRO_STR}")
59+
elseif (HARDWARE_VER EQUAL ${WICAN_USB_V100})
60+
set(HW_PREF "${WICAN_USB_V100_PREF}")
61+
set(HW_VER "${WICAN_USB_V100_STR}")
62+
elseif (HARDWARE_VER EQUAL ${WICAN_V210})
63+
set(HW_PREF "${WICAN_V210_PREF}")
64+
set(HW_VER "${WICAN_V210_STR}")
65+
else()
66+
set(HW_PREF "${WICAN_V300_PREF}")
67+
set(HW_VER "${WICAN_V300_STR}")
68+
endif()
1269

13-
set(PROJECT_VERU ${PROJECT_VER})
14-
set(PROJECT_BIN "${PROJECT_PREF}_${PROJECT_VERU}")
15-
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
16-
project("${PROJECT_BIN}")
70+
add_definitions(-DHARDWARE_VERSION="${HW_VER}")
71+
72+
# Form the project binary name
73+
set(PRJ_BIN "${PROJECT_PREF}_${HW_PREF}_${GIT_SHA}")
74+
project("${PRJ_BIN}")

main/config_server.c

+9-19
Original file line numberDiff line numberDiff line change
@@ -772,6 +772,8 @@ static esp_err_t check_status_handler(httpd_req_t *req)
772772
static char hver[32];
773773
const esp_partition_t *running = esp_ota_get_running_partition();
774774
static esp_app_desc_t running_app_info;
775+
uint32_t firmware_ver_minor = 0, firmware_ver_major = 0;
776+
775777
if (esp_ota_get_partition_description(running, &running_app_info) != ESP_OK)
776778
{
777779
running_app_info.version[0] = '1';
@@ -780,26 +782,13 @@ static esp_err_t check_status_handler(httpd_req_t *req)
780782
}
781783

782784

785+
if (sscanf(running_app_info.version, "v%ld.%ld", &firmware_ver_major, &firmware_ver_minor) == 2)
786+
{
787+
ESP_LOGI(TAG, "Firmware version: %ld.%ld", firmware_ver_major, firmware_ver_minor);
788+
}
783789

784-
sprintf(fver, "%c%c.%c%c", running_app_info.version[0]\
785-
, running_app_info.version[1]\
786-
, running_app_info.version[2]\
787-
, running_app_info.version[3]);
788-
789-
if(strstr(running_app_info.project_name, "usb") != 0)
790-
{
791-
sprintf(hver, "%c%c.%c%c_usb", running_app_info.version[6]\
792-
, running_app_info.version[7]\
793-
, running_app_info.version[8]\
794-
, running_app_info.version[9]);
795-
}
796-
else
797-
{
798-
sprintf(hver, "%c%c.%c%c_obd", running_app_info.version[6]\
799-
, running_app_info.version[7]\
800-
, running_app_info.version[8]\
801-
, running_app_info.version[9]);
802-
}
790+
sprintf(fver, "%ld.%ld", firmware_ver_major, firmware_ver_minor);
791+
sprintf(hver, "WiCAN-%s", HARDWARE_VERSION);
803792

804793
cJSON_AddStringToObject(root, "wifi_mode", device_config.wifi_mode);
805794
cJSON_AddStringToObject(root, "ap_ch", device_config.ap_ch);
@@ -813,6 +802,7 @@ static esp_err_t check_status_handler(httpd_req_t *req)
813802
cJSON_AddStringToObject(root, "port", device_config.port);
814803
cJSON_AddStringToObject(root, "fw_version", fver);
815804
cJSON_AddStringToObject(root, "hw_version", hver);
805+
cJSON_AddStringToObject(root, "git_version", GIT_SHA);
816806
cJSON_AddStringToObject(root, "protocol", device_config.protocol);
817807
cJSON_AddStringToObject(root, "sleep_status", device_config.sleep_status);
818808
cJSON_AddStringToObject(root, "sleep_volt", device_config.sleep_volt);

main/homepage.html

+8-1
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,7 @@ <h2>Custom PIDs:</h2>
738738
<tr>
739739
<td><b>Firmware ver:</b></td>
740740
<td>
741-
<div id="fw_version">v1.00</div>
741+
<div id="fw_version">1.00</div>
742742
</td>
743743
</tr>
744744
<tr>
@@ -747,6 +747,12 @@ <h2>Custom PIDs:</h2>
747747
<div id="hw_version">v2.10</div>
748748
</td>
749749
</tr>
750+
<tr>
751+
<td><b>Git ver:</b></td>
752+
<td>
753+
<div id="git_version">v2.10</div>
754+
</td>
755+
</tr>
750756
<tr>
751757
<td><b>Designed By:</b></td>
752758
<td>
@@ -1418,6 +1424,7 @@ <h2>Custom PIDs:</h2>
14181424
document.getElementById("port_status").innerHTML = obj.port;
14191425
document.getElementById("fw_version").innerHTML = obj.fw_version;
14201426
document.getElementById("hw_version").innerHTML = obj.hw_version;
1427+
document.getElementById("git_version").innerHTML = obj.git_version;
14211428
document.getElementById("protocol").value = obj.protocol;
14221429
document.getElementById("batt_voltage").innerHTML = obj.batt_voltage;
14231430
document.getElementById("ret_msg").innerHTML = " ";

main/main.c

+12
Original file line numberDiff line numberDiff line change
@@ -529,11 +529,23 @@ void app_main(void)
529529

530530
const esp_partition_t *running = esp_ota_get_running_partition();
531531
esp_app_desc_t running_app_info;
532+
uint32_t firmware_ver_minor, firmware_ver_major;
533+
532534
if (esp_ota_get_partition_description(running, &running_app_info) == ESP_OK)
533535
{
534536
ESP_LOGI(TAG, "Running firmware version: %s", running_app_info.version);
535537
ESP_LOGI(TAG, "Project Name: %s", running_app_info.project_name);
536538

539+
if (sscanf(running_app_info.version, "v%ld.%ld", &firmware_ver_major, &firmware_ver_minor) == 2)
540+
{
541+
ESP_LOGI(TAG, "Firmware version: %ld.%ld", firmware_ver_major, firmware_ver_minor);
542+
}
543+
else
544+
{
545+
ESP_LOGI(TAG, "Failed to extract firmware version");
546+
}
547+
ESP_LOGI(TAG, "Hardware version: %s", HARDWARE_VERSION);
548+
537549
if(strstr(running_app_info.project_name, "usb") != 0)
538550
{
539551
project_hardware_rev = WICAN_USB_V100;

main/ver.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
#define __VER_H__
2424

2525
#define RESERVED_VER 0
26-
#define WICAN_V210 1
27-
#define WICAN_V300 2
28-
#define WICAN_USB_V100 3
26+
// #define WICAN_V210 1
27+
// #define WICAN_V300 2
28+
// #define WICAN_USB_V100 3
2929

3030
extern uint8_t project_hardware_rev;
3131

0 commit comments

Comments
 (0)