MCPcopy Create free account
hub / github.com/OpenEPaperLink/OpenEPaperLink / onCommandCallback

Function onCommandCallback

ESP32_AP-Flasher/src/wifimanager.cpp:447–519  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

445}
446
447bool onCommandCallback(improv::ImprovCommand cmd) {
448 switch (cmd.command) {
449 case improv::Command::GET_CURRENT_STATE: {
450 if ((WiFi.status() == WL_CONNECTED)) {
451 set_state(improv::State::STATE_PROVISIONED);
452 std::vector<uint8_t> data = improv::build_rpc_response(improv::GET_CURRENT_STATE, getLocalUrl(), false);
453 send_response(data);
454 } else {
455 set_state(improv::State::STATE_AUTHORIZED);
456 }
457 break;
458 }
459
460 case improv::Command::WIFI_SETTINGS: {
461 if (cmd.ssid.length() == 0) {
462 set_error(improv::Error::ERROR_INVALID_RPC);
463 break;
464 }
465
466 set_state(improv::STATE_PROVISIONING);
467
468 ws.enable(false);
469 refreshAllPending();
470 saveDB("/current/tagDB.json");
471 ws.closeAll();
472 delay(100);
473 if (wm.connectToWifi(String(cmd.ssid.c_str()), String(cmd.password.c_str()), true)) {
474 Preferences preferences;
475 preferences.begin("wifi", false);
476 preferences.putString("ssid", cmd.ssid.c_str());
477 preferences.putString("pw", cmd.password.c_str());
478 preferences.end();
479 ws.enable(true);
480
481 set_state(improv::STATE_PROVISIONED);
482 std::vector<uint8_t> data = improv::build_rpc_response(improv::WIFI_SETTINGS, getLocalUrl(), false);
483 send_response(data);
484 } else {
485 set_state(improv::STATE_STOPPED);
486 set_error(improv::Error::ERROR_UNABLE_TO_CONNECT);
487 }
488
489 break;
490 }
491
492 case improv::Command::GET_DEVICE_INFO: {
493 std::vector<std::string> infos = {
494 // Firmware name
495 "OpenEPaperLink",
496 // Firmware version
497 STR(BUILD_VERSION),
498 // Hardware chip/variant
499 STR(BUILD_ENV_NAME),
500 // Device name
501 "Access Point"};
502 std::vector<uint8_t> data = improv::build_rpc_response(improv::GET_DEVICE_INFO, infos, false);
503 send_response(data);
504 break;

Callers

nothing calls this directly

Calls 12

set_stateFunction · 0.85
build_rpc_responseFunction · 0.85
getLocalUrlFunction · 0.85
send_responseFunction · 0.85
set_errorFunction · 0.85
refreshAllPendingFunction · 0.85
saveDBFunction · 0.85
getAvailableWifiNetworksFunction · 0.85
connectToWifiMethod · 0.80
delayFunction · 0.50
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected