mirror of
https://github.com/skot/ESP-Miner.git
synced 2025-06-28 12:41:06 +02:00
bug fixes for ws logs and restart request
This commit is contained in:
parent
a87f1e974c
commit
00d5a7386f
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"idf.flashType": "UART",
|
"idf.flashType": "UART",
|
||||||
"idf.portWin": "COM4",
|
"idf.portWin": "COM3",
|
||||||
"idf.adapterTargetName": "esp32s3",
|
"idf.adapterTargetName": "esp32s3",
|
||||||
"idf.openOcdConfigs": [
|
"idf.openOcdConfigs": [
|
||||||
"interface/ftdi/esp32_devkitj_v1.cfg",
|
"interface/ftdi/esp32_devkitj_v1.cfg",
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
key,type,encoding,value
|
key,type,encoding,value
|
||||||
main,namespace,,
|
main,namespace,,
|
||||||
|
hostname,data,string,bitaxe
|
||||||
wifissid,data,string,myssid
|
wifissid,data,string,myssid
|
||||||
wifipass,data,string,mypass
|
wifipass,data,string,mypass
|
||||||
stratumurl,data,string,public-pool.io
|
stratumurl,data,string,public-pool.io
|
||||||
stratumport,data,u16,21496
|
stratumport,data,u16,21496
|
||||||
stratumuser,data,string,bc1q99n3pu025yyu0jlywpmwzalyhm36tg5u37w20d.bitaxe
|
stratumuser,data,string,bc1qnp980s5fpp8l94p5cvttmtdqy8rvrq74qly2yrfmzkdsntqzlc5qkc4rkq.bitaxe
|
||||||
stratumpass,data,string,x
|
stratumpass,data,string,x
|
||||||
asicfrequency,data,u16,490
|
asicfrequency,data,u16,490
|
||||||
asicvoltage,data,u16,1166
|
asicvoltage,data,u16,1166
|
||||||
|
@ -5,7 +5,7 @@ wifissid,data,string,myssid
|
|||||||
wifipass,data,string,mypass
|
wifipass,data,string,mypass
|
||||||
stratumurl,data,string,public-pool.io
|
stratumurl,data,string,public-pool.io
|
||||||
stratumport,data,u16,21496
|
stratumport,data,u16,21496
|
||||||
stratumuser,data,string,1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa.bitaxe
|
stratumuser,data,string,bc1qnp980s5fpp8l94p5cvttmtdqy8rvrq74qly2yrfmzkdsntqzlc5qkc4rkq.bitaxe
|
||||||
stratumpass,data,string,x
|
stratumpass,data,string,x
|
||||||
asicfrequency,data,u16,485
|
asicfrequency,data,u16,485
|
||||||
asicvoltage,data,u16,1200
|
asicvoltage,data,u16,1200
|
||||||
@ -15,4 +15,5 @@ boardversion,data,string,204
|
|||||||
flipscreen,data,u16,1
|
flipscreen,data,u16,1
|
||||||
invertfanpol,data,u16,1
|
invertfanpol,data,u16,1
|
||||||
autofanspeed,data,u16,1
|
autofanspeed,data,u16,1
|
||||||
fanspeed,data,u16,100
|
fanspeed,data,u16,100
|
||||||
|
selftest,data,u16,1
|
@ -309,8 +309,18 @@ static esp_err_t PATCH_update_settings(httpd_req_t * req)
|
|||||||
static esp_err_t POST_restart(httpd_req_t * req)
|
static esp_err_t POST_restart(httpd_req_t * req)
|
||||||
{
|
{
|
||||||
ESP_LOGI(TAG, "Restarting System because of API Request");
|
ESP_LOGI(TAG, "Restarting System because of API Request");
|
||||||
|
|
||||||
|
// Send HTTP response before restarting
|
||||||
|
const char* resp_str = "System will restart shortly.";
|
||||||
|
httpd_resp_send(req, resp_str, HTTPD_RESP_USE_STRLEN);
|
||||||
|
|
||||||
|
// Delay to ensure the response is sent
|
||||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||||
|
|
||||||
|
// Restart the system
|
||||||
esp_restart();
|
esp_restart();
|
||||||
|
|
||||||
|
// This return statement will never be reached, but it's good practice to include it
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -483,19 +493,50 @@ esp_err_t POST_OTA_update(httpd_req_t * req)
|
|||||||
|
|
||||||
void log_to_websocket(const char * format, va_list args)
|
void log_to_websocket(const char * format, va_list args)
|
||||||
{
|
{
|
||||||
char * log_buffer = (char *) malloc(2048);
|
va_list args_copy;
|
||||||
vsnprintf(log_buffer, 2048, format, args);
|
va_copy(args_copy, args);
|
||||||
|
|
||||||
|
// Calculate the required buffer size
|
||||||
|
int needed_size = vsnprintf(NULL, 0, format, args_copy) + 1;
|
||||||
|
va_end(args_copy);
|
||||||
|
|
||||||
|
// Allocate the buffer dynamically
|
||||||
|
char * log_buffer = (char *) malloc(needed_size);
|
||||||
|
if (log_buffer == NULL) {
|
||||||
|
// Handle allocation failure
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Format the string into the allocated buffer
|
||||||
|
va_copy(args_copy, args);
|
||||||
|
vsnprintf(log_buffer, needed_size, format, args_copy);
|
||||||
|
va_end(args_copy);
|
||||||
|
|
||||||
|
// Prepare the WebSocket frame
|
||||||
httpd_ws_frame_t ws_pkt;
|
httpd_ws_frame_t ws_pkt;
|
||||||
memset(&ws_pkt, 0, sizeof(httpd_ws_frame_t));
|
memset(&ws_pkt, 0, sizeof(httpd_ws_frame_t));
|
||||||
ws_pkt.payload = (uint8_t *) log_buffer;
|
ws_pkt.payload = (uint8_t *) log_buffer;
|
||||||
ws_pkt.len = strlen(log_buffer);
|
ws_pkt.len = strlen(log_buffer);
|
||||||
ws_pkt.type = HTTPD_WS_TYPE_TEXT;
|
ws_pkt.type = HTTPD_WS_TYPE_TEXT;
|
||||||
vprintf(format, args);
|
|
||||||
|
// Print to standard output
|
||||||
|
va_copy(args_copy, args);
|
||||||
|
vprintf(format, args_copy);
|
||||||
|
va_end(args_copy);
|
||||||
|
|
||||||
|
// Ensure server and fd are valid
|
||||||
|
if (server == NULL || fd < 0) {
|
||||||
|
// Handle invalid server or socket descriptor
|
||||||
|
free(log_buffer);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send the WebSocket frame asynchronously
|
||||||
if (httpd_ws_send_frame_async(server, fd, &ws_pkt) != ESP_OK) {
|
if (httpd_ws_send_frame_async(server, fd, &ws_pkt) != ESP_OK) {
|
||||||
esp_log_set_vprintf(vprintf);
|
esp_log_set_vprintf(vprintf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Free the allocated buffer
|
||||||
free(log_buffer);
|
free(log_buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user