|
|
@ -183,7 +183,7 @@ static bool longName2DosName(const char *longName, uint8_t *dosName) {
|
|
|
|
uint8_t c = *longName++;
|
|
|
|
uint8_t c = *longName++;
|
|
|
|
if (c == '.') { // For a dot...
|
|
|
|
if (c == '.') { // For a dot...
|
|
|
|
if (i == 0) return false;
|
|
|
|
if (i == 0) return false;
|
|
|
|
strcat((char *)dosName, ".GCO");
|
|
|
|
strcat_P((char *)dosName, PSTR(".GCO"));
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
@ -194,7 +194,7 @@ static bool longName2DosName(const char *longName, uint8_t *dosName) {
|
|
|
|
dosName[i++] = c + (WITHIN(c, 'a', 'z') ? 'A' - 'a' : 0); // Uppercase required for 8.3 name
|
|
|
|
dosName[i++] = c + (WITHIN(c, 'a', 'z') ? 'A' - 'a' : 0); // Uppercase required for 8.3 name
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (i >= 5) {
|
|
|
|
if (i >= 5) {
|
|
|
|
strcat((char *)dosName, "~1.GCO");
|
|
|
|
strcat_P((char *)dosName, PSTR("~1.GCO"));
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -212,7 +212,6 @@ static int storeRcvData(volatile uint8_t *bufToCpy, int32_t len) {
|
|
|
|
wifiDmaRcvFifo.write_cur = (tmpW + 1) % TRANS_RCV_FIFO_BLOCK_NUM;
|
|
|
|
wifiDmaRcvFifo.write_cur = (tmpW + 1) % TRANS_RCV_FIFO_BLOCK_NUM;
|
|
|
|
return 1;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -253,6 +252,7 @@ static void dma_ch5_irq_handle() {
|
|
|
|
WIFI_IO1_SET();
|
|
|
|
WIFI_IO1_SET();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void wifi_usart_dma_init() {
|
|
|
|
static void wifi_usart_dma_init() {
|
|
|
|
dma_init(DMA1);
|
|
|
|
dma_init(DMA1);
|
|
|
|
uint32_t flags = ( DMA_MINC_MODE | DMA_TRNS_CMPLT | DMA_HALF_TRNS | DMA_TRNS_ERR);
|
|
|
|
uint32_t flags = ( DMA_MINC_MODE | DMA_TRNS_CMPLT | DMA_HALF_TRNS | DMA_TRNS_ERR);
|
|
|
@ -289,7 +289,7 @@ void esp_port_begin(uint8_t interrupt) {
|
|
|
|
if (interrupt) {
|
|
|
|
if (interrupt) {
|
|
|
|
for (uint16_t i = 0; i < 65535; i++) { /*nada*/ }
|
|
|
|
for (uint16_t i = 0; i < 65535; i++) { /*nada*/ }
|
|
|
|
WIFISERIAL.begin(WIFI_BAUDRATE);
|
|
|
|
WIFISERIAL.begin(WIFI_BAUDRATE);
|
|
|
|
uint32_t serial_connect_timeout = millis() + 1000UL;
|
|
|
|
millis_t serial_connect_timeout = millis() + 1000UL;
|
|
|
|
while (PENDING(millis(), serial_connect_timeout)) { /*nada*/ }
|
|
|
|
while (PENDING(millis(), serial_connect_timeout)) { /*nada*/ }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
@ -305,7 +305,7 @@ void esp_port_begin(uint8_t interrupt) {
|
|
|
|
WIFISERIAL.end();
|
|
|
|
WIFISERIAL.end();
|
|
|
|
for (uint16_t i = 0; i < 65535; i++) { /*nada*/ }
|
|
|
|
for (uint16_t i = 0; i < 65535; i++) { /*nada*/ }
|
|
|
|
WIFISERIAL.begin(interrupt ? WIFI_BAUDRATE : WIFI_UPLOAD_BAUDRATE);
|
|
|
|
WIFISERIAL.begin(interrupt ? WIFI_BAUDRATE : WIFI_UPLOAD_BAUDRATE);
|
|
|
|
uint32_t serial_connect_timeout = millis() + 1000UL;
|
|
|
|
millis_t serial_connect_timeout = millis() + 1000UL;
|
|
|
|
while (PENDING(millis(), serial_connect_timeout)) { /*nada*/ }
|
|
|
|
while (PENDING(millis(), serial_connect_timeout)) { /*nada*/ }
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
if (!interrupt) wifi_usart_dma_init();
|
|
|
|
if (!interrupt) wifi_usart_dma_init();
|
|
|
@ -511,16 +511,16 @@ int write_to_file(char *buf, int len) {
|
|
|
|
res = upload_file.write(public_buf, file_writer.write_index);
|
|
|
|
res = upload_file.write(public_buf, file_writer.write_index);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (res == -1) {
|
|
|
|
|
|
|
|
return -1;
|
|
|
|
if (res == -1) return -1;
|
|
|
|
}
|
|
|
|
|
|
|
|
upload_file.getpos(&pos);
|
|
|
|
upload_file.getpos(&pos);
|
|
|
|
file_writer.write_index = 0;
|
|
|
|
file_writer.write_index = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (res == -1) {
|
|
|
|
if (res == -1) {
|
|
|
|
memset(public_buf, 0, sizeof(public_buf));
|
|
|
|
ZERO(public_buf);
|
|
|
|
file_writer.write_index = 0;
|
|
|
|
file_writer.write_index = 0;
|
|
|
|
return -1;
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -576,17 +576,16 @@ uint8_t Explore_Disk(char* path , uint8_t recu_level) {
|
|
|
|
|
|
|
|
|
|
|
|
for (uint8_t i = 0; i < fileCnt; i++) {
|
|
|
|
for (uint8_t i = 0; i < fileCnt; i++) {
|
|
|
|
card.getfilename_sorted(SD_ORDER(i, fileCnt));
|
|
|
|
card.getfilename_sorted(SD_ORDER(i, fileCnt));
|
|
|
|
|
|
|
|
ZERO(tmp);
|
|
|
|
memset(tmp, 0, sizeof(tmp));
|
|
|
|
|
|
|
|
strcpy(tmp, card.filename);
|
|
|
|
strcpy(tmp, card.filename);
|
|
|
|
|
|
|
|
|
|
|
|
ZERO(Fstream);
|
|
|
|
ZERO(Fstream);
|
|
|
|
strcpy(Fstream, tmp);
|
|
|
|
strcpy(Fstream, tmp);
|
|
|
|
|
|
|
|
|
|
|
|
if (card.flag.filenameIsDir && recu_level <= 10)
|
|
|
|
if (card.flag.filenameIsDir && recu_level <= 10)
|
|
|
|
strcat(Fstream, ".DIR");
|
|
|
|
strcat_P(Fstream, PSTR(".DIR"));
|
|
|
|
|
|
|
|
|
|
|
|
strcat(Fstream, "\r\n");
|
|
|
|
strcat_P(Fstream, PSTR("\r\n"));
|
|
|
|
send_to_wifi((uint8_t*)Fstream, strlen(Fstream));
|
|
|
|
send_to_wifi((uint8_t*)Fstream, strlen(Fstream));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -662,23 +661,23 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
int index = 0;
|
|
|
|
int index = 0;
|
|
|
|
while (tmpStr[index] == ' ') index++;
|
|
|
|
while (tmpStr[index] == ' ') index++;
|
|
|
|
|
|
|
|
|
|
|
|
if (strstr((char *)&tmpStr[index], ".g") || strstr((char *)&tmpStr[index], ".G")) {
|
|
|
|
if (strstr_P((char *)&tmpStr[index], PSTR(".g")) || strstr_P((char *)&tmpStr[index], PSTR(".G"))) {
|
|
|
|
if (strlen((char *)&tmpStr[index]) < 80) {
|
|
|
|
if (strlen((char *)&tmpStr[index]) < 80) {
|
|
|
|
ZERO(list_file.file_name[sel_id]);
|
|
|
|
ZERO(list_file.file_name[sel_id]);
|
|
|
|
ZERO(list_file.long_name[sel_id]);
|
|
|
|
ZERO(list_file.long_name[sel_id]);
|
|
|
|
uint8_t has_path_selected = 0;
|
|
|
|
uint8_t has_path_selected = 0;
|
|
|
|
|
|
|
|
|
|
|
|
if (gCfgItems.wifi_type == ESP_WIFI) {
|
|
|
|
if (gCfgItems.wifi_type == ESP_WIFI) {
|
|
|
|
if (strncmp((char *)&tmpStr[index], "1:", 2) == 0) {
|
|
|
|
if (strncmp_P((char *)&tmpStr[index], PSTR("1:"), 2) == 0) {
|
|
|
|
gCfgItems.fileSysType = FILE_SYS_SD;
|
|
|
|
gCfgItems.fileSysType = FILE_SYS_SD;
|
|
|
|
has_path_selected = 1;
|
|
|
|
has_path_selected = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (strncmp((char *)&tmpStr[index], "0:", 2) == 0) {
|
|
|
|
else if (strncmp_P((char *)&tmpStr[index], PSTR("0:"), 2) == 0) {
|
|
|
|
gCfgItems.fileSysType = FILE_SYS_USB;
|
|
|
|
gCfgItems.fileSysType = FILE_SYS_USB;
|
|
|
|
has_path_selected = 1;
|
|
|
|
has_path_selected = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (tmpStr[index] != '/')
|
|
|
|
else if (tmpStr[index] != '/')
|
|
|
|
strcat((char *)list_file.file_name[sel_id], "/");
|
|
|
|
strcat_P((char *)list_file.file_name[sel_id], PSTR("/"));
|
|
|
|
|
|
|
|
|
|
|
|
if (file_writer.fileTransfer == 1) {
|
|
|
|
if (file_writer.fileTransfer == 1) {
|
|
|
|
uint8_t dosName[FILENAME_LENGTH];
|
|
|
|
uint8_t dosName[FILENAME_LENGTH];
|
|
|
@ -686,12 +685,11 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
fileName[0] = '\0';
|
|
|
|
fileName[0] = '\0';
|
|
|
|
if (has_path_selected == 1) {
|
|
|
|
if (has_path_selected == 1) {
|
|
|
|
strcat((char *)fileName, (char *)&tmpStr[index + 3]);
|
|
|
|
strcat((char *)fileName, (char *)&tmpStr[index + 3]);
|
|
|
|
strcat((char *)list_file.file_name[sel_id], "/");
|
|
|
|
strcat_P((char *)list_file.file_name[sel_id], PSTR("/"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else strcat((char *)fileName, (char *)&tmpStr[index]);
|
|
|
|
else strcat((char *)fileName, (char *)&tmpStr[index]);
|
|
|
|
if (!longName2DosName((const char *)fileName, dosName)) {
|
|
|
|
if (!longName2DosName((const char *)fileName, dosName))
|
|
|
|
strcpy(list_file.file_name[sel_id], "notValid");
|
|
|
|
strcpy_P(list_file.file_name[sel_id], PSTR("notValid"));
|
|
|
|
}
|
|
|
|
|
|
|
|
strcat((char *)list_file.file_name[sel_id], (char *)dosName);
|
|
|
|
strcat((char *)list_file.file_name[sel_id], (char *)dosName);
|
|
|
|
strcat((char *)list_file.long_name[sel_id], (char *)dosName);
|
|
|
|
strcat((char *)list_file.long_name[sel_id], (char *)dosName);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -712,7 +710,7 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
send_to_wifi((uint8_t *)"File selected\r\n", strlen("File selected\r\n"));
|
|
|
|
send_to_wifi((uint8_t *)"File selected\r\n", strlen("File selected\r\n"));
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
send_to_wifi((uint8_t *)"file.open failed\r\n", strlen("file.open failed\r\n"));
|
|
|
|
send_to_wifi((uint8_t *)"file.open failed\r\n", strlen("file.open failed\r\n"));
|
|
|
|
strcpy(list_file.file_name[sel_id], "notValid");
|
|
|
|
strcpy_P(list_file.file_name[sel_id], PSTR("notValid"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
SEND_OK_TO_WIFI;
|
|
|
|
SEND_OK_TO_WIFI;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -721,7 +719,7 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case 24:
|
|
|
|
case 24:
|
|
|
|
if (strcmp(list_file.file_name[sel_id], "notValid") != 0) {
|
|
|
|
if (strcmp_P(list_file.file_name[sel_id], PSTR("notValid")) != 0) {
|
|
|
|
if (uiCfg.print_state == IDLE) {
|
|
|
|
if (uiCfg.print_state == IDLE) {
|
|
|
|
clear_cur_ui();
|
|
|
|
clear_cur_ui();
|
|
|
|
reset_print_time();
|
|
|
|
reset_print_time();
|
|
|
@ -830,7 +828,7 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
if ((uiCfg.print_state == WORKING) || (uiCfg.print_state == PAUSED)|| (uiCfg.print_state == REPRINTING)) {
|
|
|
|
if ((uiCfg.print_state == WORKING) || (uiCfg.print_state == PAUSED)|| (uiCfg.print_state == REPRINTING)) {
|
|
|
|
print_rate = uiCfg.totalSend;
|
|
|
|
print_rate = uiCfg.totalSend;
|
|
|
|
ZERO(tempBuf);
|
|
|
|
ZERO(tempBuf);
|
|
|
|
sprintf((char *)tempBuf, "M27 %d\r\n", print_rate);
|
|
|
|
sprintf_P((char *)tempBuf, PSTR("M27 %d\r\n"), print_rate);
|
|
|
|
send_to_wifi((uint8_t *)tempBuf, strlen((char *)tempBuf));
|
|
|
|
send_to_wifi((uint8_t *)tempBuf, strlen((char *)tempBuf));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
@ -842,16 +840,16 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
int index = 0;
|
|
|
|
int index = 0;
|
|
|
|
while (tmpStr[index] == ' ') index++;
|
|
|
|
while (tmpStr[index] == ' ') index++;
|
|
|
|
|
|
|
|
|
|
|
|
if (strstr((char *)&tmpStr[index], ".g") || strstr((char *)&tmpStr[index], ".G")) {
|
|
|
|
if (strstr_P((char *)&tmpStr[index], PSTR(".g")) || strstr_P((char *)&tmpStr[index], PSTR(".G"))) {
|
|
|
|
strcpy((char *)file_writer.saveFileName, (char *)&tmpStr[index]);
|
|
|
|
strcpy((char *)file_writer.saveFileName, (char *)&tmpStr[index]);
|
|
|
|
|
|
|
|
|
|
|
|
if (gCfgItems.fileSysType == FILE_SYS_SD) {
|
|
|
|
if (gCfgItems.fileSysType == FILE_SYS_SD) {
|
|
|
|
ZERO(tempBuf);
|
|
|
|
ZERO(tempBuf);
|
|
|
|
sprintf((char *)tempBuf, "%s", file_writer.saveFileName);
|
|
|
|
sprintf_P((char *)tempBuf, PSTR("%s"), file_writer.saveFileName);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (gCfgItems.fileSysType == FILE_SYS_USB) {
|
|
|
|
else if (gCfgItems.fileSysType == FILE_SYS_USB) {
|
|
|
|
ZERO(tempBuf);
|
|
|
|
ZERO(tempBuf);
|
|
|
|
sprintf((char *)tempBuf, "%s", (char *)file_writer.saveFileName);
|
|
|
|
sprintf_P((char *)tempBuf, PSTR("%s"), (char *)file_writer.saveFileName);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
mount_file_sys(gCfgItems.fileSysType);
|
|
|
|
mount_file_sys(gCfgItems.fileSysType);
|
|
|
|
|
|
|
|
|
|
|
@ -862,7 +860,7 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
ZERO(file_writer.saveFileName);
|
|
|
|
ZERO(file_writer.saveFileName);
|
|
|
|
strcpy((char *)file_writer.saveFileName, (char *)&tmpStr[index]);
|
|
|
|
strcpy((char *)file_writer.saveFileName, (char *)&tmpStr[index]);
|
|
|
|
ZERO(tempBuf);
|
|
|
|
ZERO(tempBuf);
|
|
|
|
sprintf((char *)tempBuf, "Writing to file: %s\r\n", (char *)file_writer.saveFileName);
|
|
|
|
sprintf_P((char *)tempBuf, PSTR("Writing to file: %s\r\n"), (char *)file_writer.saveFileName);
|
|
|
|
wifi_ret_ack();
|
|
|
|
wifi_ret_ack();
|
|
|
|
send_to_wifi((uint8_t *)tempBuf, strlen((char *)tempBuf));
|
|
|
|
send_to_wifi((uint8_t *)tempBuf, strlen((char *)tempBuf));
|
|
|
|
wifi_link_state = WIFI_WAIT_TRANS_START;
|
|
|
|
wifi_link_state = WIFI_WAIT_TRANS_START;
|
|
|
@ -881,7 +879,7 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
ZERO(tempBuf);
|
|
|
|
ZERO(tempBuf);
|
|
|
|
if (cmd_value == 105) {
|
|
|
|
if (cmd_value == 105) {
|
|
|
|
SEND_OK_TO_WIFI;
|
|
|
|
SEND_OK_TO_WIFI;
|
|
|
|
sprintf((char *)tempBuf,"T:%.1f /%.1f B:%.1f /%.1f T0:%.1f /%.1f T1:%.1f /%.1f @:0 B@:0\r\n",
|
|
|
|
sprintf_P((char *)tempBuf, PSTR("T:%.1f /%.1f B:%.1f /%.1f T0:%.1f /%.1f T1:%.1f /%.1f @:0 B@:0\r\n"),
|
|
|
|
|
|
|
|
|
|
|
|
(float)thermalManager.temp_hotend[0].celsius, (float)thermalManager.temp_hotend[0].target,
|
|
|
|
(float)thermalManager.temp_hotend[0].celsius, (float)thermalManager.temp_hotend[0].target,
|
|
|
|
#if HAS_HEATED_BED
|
|
|
|
#if HAS_HEATED_BED
|
|
|
@ -890,7 +888,7 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
0.0f, 0.0f,
|
|
|
|
0.0f, 0.0f,
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
(float)thermalManager.temp_hotend[0].celsius, (float)thermalManager.temp_hotend[0].target,
|
|
|
|
(float)thermalManager.temp_hotend[0].celsius, (float)thermalManager.temp_hotend[0].target,
|
|
|
|
#if !defined(SINGLENOZZLE) && HAS_MULTI_EXTRUDER
|
|
|
|
#if DISABLED(SINGLENOZZLE) && HAS_MULTI_EXTRUDER
|
|
|
|
(float)thermalManager.temp_hotend[1].celsius, (float)thermalManager.temp_hotend[1].target
|
|
|
|
(float)thermalManager.temp_hotend[1].celsius, (float)thermalManager.temp_hotend[1].target
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
0.0f, 0.0f
|
|
|
|
0.0f, 0.0f
|
|
|
@ -898,7 +896,7 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
);
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
sprintf((char *)tempBuf,"T:%d /%d B:%d /%d T0:%d /%d T1:%d /%d @:0 B@:0\r\n",
|
|
|
|
sprintf_P((char *)tempBuf, PSTR("T:%d /%d B:%d /%d T0:%d /%d T1:%d /%d @:0 B@:0\r\n"),
|
|
|
|
|
|
|
|
|
|
|
|
(int)thermalManager.temp_hotend[0].celsius, (int)thermalManager.temp_hotend[0].target,
|
|
|
|
(int)thermalManager.temp_hotend[0].celsius, (int)thermalManager.temp_hotend[0].target,
|
|
|
|
#if HAS_HEATED_BED
|
|
|
|
#if HAS_HEATED_BED
|
|
|
@ -907,7 +905,7 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
0, 0,
|
|
|
|
0, 0,
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
(int)thermalManager.temp_hotend[0].celsius, (int)thermalManager.temp_hotend[0].target,
|
|
|
|
(int)thermalManager.temp_hotend[0].celsius, (int)thermalManager.temp_hotend[0].target,
|
|
|
|
#if !defined(SINGLENOZZLE) && HAS_MULTI_EXTRUDER
|
|
|
|
#if DISABLED(SINGLENOZZLE) && HAS_MULTI_EXTRUDER
|
|
|
|
(int)thermalManager.temp_hotend[1].celsius, (int)thermalManager.temp_hotend[1].target
|
|
|
|
(int)thermalManager.temp_hotend[1].celsius, (int)thermalManager.temp_hotend[1].target
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
0, 0
|
|
|
|
0, 0
|
|
|
@ -922,7 +920,7 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
case 992:
|
|
|
|
case 992:
|
|
|
|
if ((uiCfg.print_state == WORKING) || (uiCfg.print_state == PAUSED)) {
|
|
|
|
if ((uiCfg.print_state == WORKING) || (uiCfg.print_state == PAUSED)) {
|
|
|
|
ZERO(tempBuf);
|
|
|
|
ZERO(tempBuf);
|
|
|
|
sprintf((char *)tempBuf, "M992 %d%d:%d%d:%d%d\r\n", print_time.hours/10, print_time.hours%10, print_time.minutes/10, print_time.minutes%10, print_time.seconds/10, print_time.seconds%10);
|
|
|
|
sprintf_P((char *)tempBuf, PSTR("M992 %d%d:%d%d:%d%d\r\n"), print_time.hours/10, print_time.hours%10, print_time.minutes/10, print_time.minutes%10, print_time.seconds/10, print_time.seconds%10);
|
|
|
|
wifi_ret_ack();
|
|
|
|
wifi_ret_ack();
|
|
|
|
send_to_wifi((uint8_t *)tempBuf, strlen((char *)tempBuf));
|
|
|
|
send_to_wifi((uint8_t *)tempBuf, strlen((char *)tempBuf));
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -932,7 +930,7 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
if ((uiCfg.print_state == WORKING) || (uiCfg.print_state == PAUSED)) {
|
|
|
|
if ((uiCfg.print_state == WORKING) || (uiCfg.print_state == PAUSED)) {
|
|
|
|
ZERO(tempBuf);
|
|
|
|
ZERO(tempBuf);
|
|
|
|
if (strlen((char *)list_file.file_name[sel_id]) > (100 - 1)) return;
|
|
|
|
if (strlen((char *)list_file.file_name[sel_id]) > (100 - 1)) return;
|
|
|
|
sprintf((char *)tempBuf, "M994 %s;%d\n", list_file.file_name[sel_id],(int)gCfgItems.curFilesize);
|
|
|
|
sprintf_P((char *)tempBuf, PSTR("M994 %s;%d\n"), list_file.file_name[sel_id], (int)gCfgItems.curFilesize);
|
|
|
|
wifi_ret_ack();
|
|
|
|
wifi_ret_ack();
|
|
|
|
send_to_wifi((uint8_t *)tempBuf, strlen((char *)tempBuf));
|
|
|
|
send_to_wifi((uint8_t *)tempBuf, strlen((char *)tempBuf));
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -976,7 +974,7 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|
strcat((char *)cmd_line, "\n");
|
|
|
|
strcat_P((char *)cmd_line, PSTR("\n"));
|
|
|
|
|
|
|
|
|
|
|
|
if (espGcodeFifo.wait_tick > 5) {
|
|
|
|
if (espGcodeFifo.wait_tick > 5) {
|
|
|
|
uint32_t left;
|
|
|
|
uint32_t left;
|
|
|
@ -1002,7 +1000,7 @@ static void wifi_gcode_exec(uint8_t *cmd_line) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
strcat((char *)cmd_line, "\n");
|
|
|
|
strcat_P((char *)cmd_line, PSTR("\n"));
|
|
|
|
|
|
|
|
|
|
|
|
if (espGcodeFifo.wait_tick > 5) {
|
|
|
|
if (espGcodeFifo.wait_tick > 5) {
|
|
|
|
uint32_t left_g;
|
|
|
|
uint32_t left_g;
|
|
|
@ -1045,7 +1043,7 @@ static void net_msg_handle(uint8_t * msg, uint16_t msgLen) {
|
|
|
|
if (msgLen <= 0) return;
|
|
|
|
if (msgLen <= 0) return;
|
|
|
|
|
|
|
|
|
|
|
|
// ip
|
|
|
|
// ip
|
|
|
|
sprintf(ipPara.ip_addr, "%d.%d.%d.%d", msg[0], msg[1], msg[2], msg[3]);
|
|
|
|
sprintf_P(ipPara.ip_addr, PSTR("%d.%d.%d.%d"), msg[0], msg[1], msg[2], msg[3]);
|
|
|
|
|
|
|
|
|
|
|
|
// port
|
|
|
|
// port
|
|
|
|
// connect state
|
|
|
|
// connect state
|
|
|
@ -1143,16 +1141,15 @@ static void wifi_list_msg_handle(uint8_t * msg, uint16_t msgLen) {
|
|
|
|
memset(str, 0, WIFI_NAME_BUFFER_SIZE);
|
|
|
|
memset(str, 0, WIFI_NAME_BUFFER_SIZE);
|
|
|
|
memcpy(str, &msg[wifiMsgIdex], wifiNameLen);
|
|
|
|
memcpy(str, &msg[wifiMsgIdex], wifiNameLen);
|
|
|
|
for (j = 0; j < valid_name_num; j++) {
|
|
|
|
for (j = 0; j < valid_name_num; j++) {
|
|
|
|
if (strcmp((const char *)str,(const char *)wifi_list.wifiName[j]) == 0) {
|
|
|
|
if (strcmp((const char *)str, (const char *)wifi_list.wifiName[j]) == 0) {
|
|
|
|
wifi_name_is_same = 1;
|
|
|
|
wifi_name_is_same = 1;
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (wifi_name_is_same != 1) {
|
|
|
|
|
|
|
|
if (str[0] > 0x80) {
|
|
|
|
if (wifi_name_is_same != 1 && str[0] > 0x80)
|
|
|
|
wifi_name_is_same = 1;
|
|
|
|
wifi_name_is_same = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (wifi_name_is_same == 1) {
|
|
|
|
if (wifi_name_is_same == 1) {
|
|
|
|
wifi_name_is_same = 0;
|
|
|
|
wifi_name_is_same = 0;
|
|
|
|
wifiMsgIdex += wifiNameLen;
|
|
|
|
wifiMsgIdex += wifiNameLen;
|
|
|
@ -1199,7 +1196,7 @@ static void gcode_msg_handle(uint8_t * msg, uint16_t msgLen) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void utf8_2_unicode(uint8_t *source,uint8_t Len) {
|
|
|
|
void utf8_2_unicode(uint8_t *source, uint8_t Len) {
|
|
|
|
uint8_t i = 0, char_i = 0, char_byte_num = 0;
|
|
|
|
uint8_t i = 0, char_i = 0, char_byte_num = 0;
|
|
|
|
uint16_t u16_h, u16_m, u16_l, u16_value;
|
|
|
|
uint16_t u16_h, u16_m, u16_l, u16_value;
|
|
|
|
uint8_t FileName_unicode[30];
|
|
|
|
uint8_t FileName_unicode[30];
|
|
|
@ -1216,7 +1213,6 @@ void utf8_2_unicode(uint8_t *source,uint8_t Len) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (char_byte_num == 0XC0 || char_byte_num == 0XD0) {
|
|
|
|
else if (char_byte_num == 0XC0 || char_byte_num == 0XD0) {
|
|
|
|
//--2byte
|
|
|
|
//--2byte
|
|
|
|
|
|
|
|
|
|
|
|
u16_h = (((uint16_t)source[i] << 8) & 0x1F00) >> 2;
|
|
|
|
u16_h = (((uint16_t)source[i] << 8) & 0x1F00) >> 2;
|
|
|
|
u16_l = ((uint16_t)source[i + 1] & 0x003F);
|
|
|
|
u16_l = ((uint16_t)source[i + 1] & 0x003F);
|
|
|
|
u16_value = (u16_h | u16_l);
|
|
|
|
u16_value = (u16_h | u16_l);
|
|
|
@ -1241,9 +1237,9 @@ void utf8_2_unicode(uint8_t *source,uint8_t Len) {
|
|
|
|
i += 4;
|
|
|
|
i += 4;
|
|
|
|
//char_i += 3;
|
|
|
|
//char_i += 3;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (i >= Len || i >= 255) break;
|
|
|
|
if (i >= Len || i >= 255) break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
COPY(source, FileName_unicode);
|
|
|
|
COPY(source, FileName_unicode);
|
|
|
@ -1297,7 +1293,7 @@ static void file_first_msg_handle(uint8_t * msg, uint16_t msgLen) {
|
|
|
|
lv_draw_dialog(DIALOG_TYPE_UPLOAD_FILE);
|
|
|
|
lv_draw_dialog(DIALOG_TYPE_UPLOAD_FILE);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
sprintf((char *)saveFilePath, "%s", dosName);
|
|
|
|
sprintf_P((char *)saveFilePath, PSTR("%s"), dosName);
|
|
|
|
|
|
|
|
|
|
|
|
card.cdroot();
|
|
|
|
card.cdroot();
|
|
|
|
upload_file.close();
|
|
|
|
upload_file.close();
|
|
|
@ -1386,8 +1382,7 @@ static void file_fragment_msg_handle(uint8_t * msg, uint16_t msgLen) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void esp_data_parser(char *cmdRxBuf, int len) {
|
|
|
|
void esp_data_parser(char *cmdRxBuf, int len) {
|
|
|
|
int32_t head_pos;
|
|
|
|
int32_t head_pos, tail_pos;
|
|
|
|
int32_t tail_pos;
|
|
|
|
|
|
|
|
uint16_t cpyLen;
|
|
|
|
uint16_t cpyLen;
|
|
|
|
int16_t leftLen = len;
|
|
|
|
int16_t leftLen = len;
|
|
|
|
bool loop_again = false;
|
|
|
|
bool loop_again = false;
|
|
|
|