Skip to content

Commit ed57ad8

Browse files
Merge pull request #54 from andreagilardoni/uint32-version
Provide Wifi FW version as uint32_t
2 parents 6e22665 + 6ac4fba commit ed57ad8

File tree

4 files changed

+52
-24
lines changed

4 files changed

+52
-24
lines changed

UNOR4USBBridge/DAP.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class DAPHIDDevice: public USBHIDDevice {
4545
}
4646
}
4747
uint16_t _onGetFeature(uint8_t report_id, uint8_t* buffer, uint16_t len) {
48-
buffer[0] = FIRMWARE_MAYOR;
48+
buffer[0] = FIRMWARE_MAJOR;
4949
buffer[1] = FIRMWARE_MINOR;
5050
buffer[2] = FIRMWARE_PATCH;
5151
return 3;

UNOR4USBBridge/at_handler.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#define MAX_UDP_AVAILABLE 4
1717

1818
#define ESP_FW_VERSION "0.4.1"
19-
#define FIRMWARE_MAYOR 0
19+
#define FIRMWARE_MAJOR 0
2020
#define FIRMWARE_MINOR 4
2121
#define FIRMWARE_PATCH 1
2222

UNOR4USBBridge/cmds_esp_generic.h

Lines changed: 49 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,16 @@
33

44
#include "at_handler.h"
55
extern "C" {
6-
#include "esp32-hal-tinyusb.h"
6+
#include "esp32-hal-tinyusb.h"
77
}
88

9+
static const uint8_t version[4] = {
10+
(FIRMWARE_MAJOR & 0xff),
11+
(FIRMWARE_MINOR & 0xff),
12+
(FIRMWARE_PATCH & 0xff),
13+
0
14+
};
15+
916
void CAtHandler::add_cmds_esp_generic() {
1017

1118
/* ....................................................................... */
@@ -52,22 +59,42 @@ void CAtHandler::add_cmds_esp_generic() {
5259
return chAT::CommandStatus::OK;
5360
}
5461
default:
55-
return chAT::CommandStatus::ERROR;
62+
return chAT::CommandStatus::ERROR;
5663
}
5764
};
5865

59-
/* ....................................................................... */
66+
/* ....................................................................... */
6067
command_table[_FWVERSION] = [this](auto & srv, auto & parser) {
6168
/* ....................................................................... */
6269
switch (parser.cmd_mode) {
6370
case chAT::CommandMode::Read: {
6471
srv.write_response_prompt();
65-
srv.write_cstr(ESP_FW_VERSION);
72+
srv.write_cstr(ESP_FW_VERSION);
6673
srv.write_line_end();
6774
return chAT::CommandStatus::OK;
6875
}
6976
default:
70-
return chAT::CommandStatus::ERROR;
77+
return chAT::CommandStatus::ERROR;
78+
}
79+
};
80+
81+
/* ....................................................................... */
82+
command_table[_FWVERSION_U32] = [this](auto & srv, auto & parser) {
83+
/* ....................................................................... */
84+
switch (parser.cmd_mode) {
85+
case chAT::CommandMode::Read: {
86+
srv.write_response_prompt();
87+
88+
89+
90+
log_e("version 0x%X, 0x%X", *((uint32_t*)version), &version);
91+
92+
srv.write_data(version, sizeof(version));
93+
srv.write_line_end();
94+
return chAT::CommandStatus::OK;
95+
}
96+
default:
97+
return chAT::CommandStatus::ERROR;
7198
}
7299
};
73100

@@ -82,19 +109,19 @@ void CAtHandler::add_cmds_esp_generic() {
82109

83110
auto &type_str = parser.args[0];
84111
if (type_str.empty()) {
85-
return chAT::CommandStatus::ERROR;
112+
return chAT::CommandStatus::ERROR;
86113
}
87114
int _type = atoi(type_str.c_str());
88115

89116
auto &operation_str = parser.args[1];
90117
if (operation_str.empty()) {
91-
return chAT::CommandStatus::ERROR;
118+
return chAT::CommandStatus::ERROR;
92119
}
93120
uint8_t operation = atoi(operation_str.c_str());
94121

95122
auto &filename = parser.args[2];
96123
if (filename.empty()) {
97-
return chAT::CommandStatus::ERROR;
124+
return chAT::CommandStatus::ERROR;
98125
}
99126

100127
FILE* f;
@@ -119,7 +146,7 @@ void CAtHandler::add_cmds_esp_generic() {
119146
std::vector<uint8_t> data_received;
120147
data_received = srv.inhibit_read(size);
121148
size_t offset = data_received.size();
122-
149+
123150
if(offset < size) {
124151

125152
data_received.resize(size);
@@ -134,7 +161,7 @@ void CAtHandler::add_cmds_esp_generic() {
134161
}
135162
int res = file.write(data_received.data(), data_received.size());
136163
if(res == 0){
137-
return chAT::CommandStatus::ERROR;
164+
return chAT::CommandStatus::ERROR;
138165
}
139166

140167
file.close();
@@ -186,7 +213,7 @@ void CAtHandler::add_cmds_esp_generic() {
186213
return chAT::CommandStatus::OK;
187214
}
188215
case WIFI_FILE_APPEND: {
189-
uint8_t size = 0;
216+
uint8_t size = 0;
190217
if (parser.args.size() >= 3) {
191218
auto &size_str = parser.args[3];
192219
if (size_str.empty()) {
@@ -200,7 +227,7 @@ void CAtHandler::add_cmds_esp_generic() {
200227
std::vector<uint8_t> data_received;
201228
data_received = srv.inhibit_read(size);
202229
size_t offset = data_received.size();
203-
230+
204231
if(offset < size) {
205232

206233
data_received.resize(size);
@@ -216,12 +243,12 @@ void CAtHandler::add_cmds_esp_generic() {
216243

217244
int res = file.write(data_received.data(), data_received.size());
218245
if(res == 0){
219-
return chAT::CommandStatus::ERROR;
246+
return chAT::CommandStatus::ERROR;
220247
}
221248

222249
file.close();
223250
srv.continue_read();
224-
251+
225252
return chAT::CommandStatus::OK;
226253
}
227254
default:
@@ -239,14 +266,14 @@ void CAtHandler::add_cmds_esp_generic() {
239266
command_table[_MOUNTFS] = [this](auto & srv, auto & parser) {
240267
/* ....................................................................... */
241268
switch (parser.cmd_mode) {
242-
case chAT::CommandMode::Write: {
243-
if (parser.args.size() != 1) {
269+
case chAT::CommandMode::Write: {
270+
if (parser.args.size() != 1) {
244271
return chAT::CommandStatus::ERROR;
245272
}
246273

247274
auto &format_on_fault = parser.args[0];
248275
if (format_on_fault.empty()) {
249-
return chAT::CommandStatus::ERROR;
276+
return chAT::CommandStatus::ERROR;
250277
}
251278
int _fof = atoi(format_on_fault.c_str());
252279
if(!SPIFFS.begin(_fof)){
@@ -277,7 +304,7 @@ void CAtHandler::add_cmds_esp_generic() {
277304
for (int i = 0; i < MAX_CLIENT_AVAILABLE; i++) {
278305
serverClients[i].client.stop();
279306
}
280-
307+
281308
for (int i = 0; i < MAX_SERVER_AVAILABLE; i++) {
282309
if (serverWiFi[i] != nullptr) {
283310
serverWiFi[i]->end();
@@ -305,7 +332,7 @@ void CAtHandler::add_cmds_esp_generic() {
305332
clients[i] = nullptr;
306333
}
307334
}
308-
335+
309336
clients_num = 0;
310337

311338
for (int i = 0; i < MAX_CLIENT_AVAILABLE; i++) {
@@ -323,15 +350,15 @@ void CAtHandler::add_cmds_esp_generic() {
323350

324351
WiFi.disconnect();
325352
WiFi.softAPdisconnect();
326-
353+
327354
srv.write_response_prompt();
328355
srv.write_line_end();
329356
return chAT::CommandStatus::OK;
330357
}
331358
default:
332359
return chAT::CommandStatus::ERROR;
333-
}
360+
}
334361
};
335362
}
336363

337-
#endif
364+
#endif

UNOR4USBBridge/commands.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ enum file_op {
105105
#define _UDPSTOP "+UDPSTOP"
106106

107107
#define _FWVERSION "+FWVERSION"
108+
#define _FWVERSION_U32 "+FWVERSION_U32"
108109

109110
#define _SOFTAPCONFIG "+SOFTAPCONFIG"
110111
#define _SERVERWRITE "+SERVERWRITE"

0 commit comments

Comments
 (0)