3 Commits
v1.0 ... v1.0.3

Author SHA1 Message Date
Sims
48520f652a Print wifi connect status while connecting, retry ip more times (#3) 2023-11-20 15:57:40 +01:00
suchmememanyskill
c5d08253a7 Retry IP connect on boot, fix network c string issue 2023-11-14 00:31:52 +01:00
suchmememanyskill
5224e34f8c use absolute coords for position, rather than ajusted ones 2023-11-13 21:55:35 +01:00
3 changed files with 46 additions and 12 deletions

View File

@@ -97,15 +97,15 @@ void fetch_printer_data()
if (status.containsKey("toolhead"))
{
printer.position[0] = status["toolhead"]["position"][0];
printer.position[1] = status["toolhead"]["position"][1];
printer.position[2] = status["toolhead"]["position"][2];
const char *homed_axis = status["toolhead"]["homed_axes"];
printer.homed_axis = strcmp(homed_axis, "xyz") == 0;
}
if (status.containsKey("gcode_move"))
{
printer.position[0] = status["gcode_move"]["gcode_position"][0];
printer.position[1] = status["gcode_move"]["gcode_position"][1];
printer.position[2] = status["gcode_move"]["gcode_position"][2];
bool absolute_coords = status["gcode_move"]["absolute_coordinates"];
printer.absolute_coords = absolute_coords == true;
}

View File

@@ -25,6 +25,17 @@ bool verify_ip(){
}
}
bool retry_ip_verify(){
for (int i = 0; i < 5; i++){
if (verify_ip()){
return true;
}
delay(1000);
}
return false;
}
static void ta_event_cb(lv_event_t * e) {
lv_event_code_t code = lv_event_get_code(e);
lv_obj_t * ta = lv_event_get_target(e);
@@ -87,7 +98,7 @@ void ip_setup_inner(){
void ip_setup(){
connect_ok = false;
if (global_config.ipConfigured && verify_ip()){
if (global_config.ipConfigured && retry_ip_verify()){
return;
}

View File

@@ -108,8 +108,6 @@ void wifi_init_inner(){
lv_task_handler();
lv_refr_now(NULL);
int n = WiFi.scanNetworks();
lv_obj_clean(lv_scr_act());
lv_obj_t * refreshBtn = lv_btn_create(lv_scr_act());
@@ -128,25 +126,50 @@ void wifi_init_inner(){
lv_obj_align(list, LV_ALIGN_TOP_LEFT, 10, 40);
lv_obj_set_size(list, TFT_HEIGHT - 20, TFT_WIDTH - 40 - 5);
int n = WiFi.scanNetworks();
for (int i = 0; i < n; ++i) {
const char* ssid = WiFi.SSID(i).c_str();
int len = strlen(ssid);
String ssid = WiFi.SSID(i);
char* ssid_copy = (char*)malloc(ssid.length() + 1);
int j = 0;
if (len == 0)
continue;
for (; j < ssid.length(); ++j){
if (ssid[j] == '\0')
continue;
ssid_copy[j] = ssid[j];
}
ssid_copy[j] = '\0';
const char* ssid_copy = (const char*)malloc(len + 1);
strcpy((char*)ssid_copy, ssid);
lv_obj_t * btn = lv_list_add_btn(list, LV_SYMBOL_WIFI, ssid_copy);
lv_obj_add_event_cb(btn, wifi_btn_event_handler, LV_EVENT_ALL, (void*)ssid_copy);
}
}
const char* errs[] = {
"Idle",
"No SSID Available",
"Scan Completed",
"Connected",
"Connection Failed",
"Connection Lost",
"Disconnected"
};
const int print_freq = 1000;
int print_timer = 0;
void wifi_init(){
WiFi.mode(WIFI_STA);
wifi_init_inner();
while (!global_config.wifiConfigured || WiFi.status() != WL_CONNECTED){
if (millis() - print_timer > print_freq){
print_timer = millis();
Serial.printf("WiFi Status: %s\n", errs[WiFi.status()]);
}
lv_timer_handler();
lv_task_handler();
}