Merge branch 'fix/serial-manager-invalid-json' into beta

# Conflicts:
#	ESP/lib/src/io/Serial/SerialManager.cpp
#	ESP/lib/src/network/wifihandler/wifihandler.cpp
This commit is contained in:
lorow 2024-05-31 18:03:15 +02:00
commit 84cb556a71
2 changed files with 26 additions and 28 deletions

View File

@ -5,10 +5,6 @@ SerialManager::SerialManager(CommandManager* commandManager, ProjectConfig& proj
#ifdef ETVR_EYE_TRACKER_USB_API
void SerialManager::send_frame() {
// if we failed to capture the frame, we bail, but we still want to listen to commands
if (err != ESP_OK)
return;
if (!last_frame)
last_frame = esp_timer_get_time();
@ -21,14 +17,17 @@ void SerialManager::send_frame() {
if (fb) {
len = fb->len;
buf = fb->buf;
} else {
log_e("Camera capture failed with response: %s", esp_err_to_name(err));
} else
err = ESP_FAIL;
// if we failed to capture the frame, we bail, but we still want to listen to
// commands
if (err != ESP_OK) {
log_e("Camera capture failed with response: %s", esp_err_to_name(err));
return;
}
if (err == ESP_OK)
Serial.write(ETVR_HEADER, 2);
Serial.write(ETVR_HEADER, 2);
Serial.write(ETVR_HEADER_FRAME, 2);
len_bytes[0] = len & 0xFF;
len_bytes[1] = (len >> CHAR_BIT) & 0xFF;
@ -54,7 +53,7 @@ void SerialManager::send_frame() {
void SerialManager::init() {
Serial.begin(3000000);
if (SERIAL_FLUSH_ENABLED){
if (SERIAL_FLUSH_ENABLED) {
Serial.flush();
}
}
@ -64,7 +63,7 @@ void SerialManager::run() {
JsonDocument doc;
std::string serial_data = Serial.readString().c_str();
DeserializationError deserializationError = deserializeJson(doc, serial_data);
this->projectConfig.setDeviceConfig("test", "test", serial_data, "", 81, false);
this->projectConfig.deviceConfigSave();

View File

@ -18,14 +18,14 @@ WiFiHandler::WiFiHandler(ProjectConfig& configManager,
WiFiHandler::~WiFiHandler() {}
void WiFiHandler::begin() {
log_i("Starting WiFi Handler \n\r");
// forcefully disconnect to reset anything that could've been saved before
// just to be sure, we reeset everything before we do anything, some boards were having problems otherwise
WiFi.disconnect();
// we purposefully set the lowest min required security level, some boards have problems connecting otherwise
// https://github.com/espressif/arduino-esp32/issues/8770
WiFi.setMinSecurity(WIFI_AUTH_WEP);
log_i("Starting WiFi Handler \n\r");
if (this->_enable_adhoc ||
wifiStateManager.getCurrentState() == WiFiState_e::WiFiState_ADHOC) {
log_d("ADHOC is enabled, setting up ADHOC network \n\r");
@ -46,13 +46,11 @@ void WiFiHandler::begin() {
if (networks.empty()) {
log_i("No networks found in config, trying the default one \n\r");
// since networks may not have a password, we only need to check if we have an ssid
// bail if we don't
if (this->iniSTA(
this->ssid,
this->password,
this->channel,
this->channel,
(wifi_power_t)txpower.power
)
) {
@ -141,10 +139,12 @@ bool WiFiHandler::iniSTA(const std::string& ssid,
const std::string& password,
uint8_t channel,
wifi_power_t power) {
// since networks may not have a password, we only need to check if we have an ssid
// bail if we don't
if (ssid == ""){
log_d("ssid missing, bailing");
return false;
return false;
}
unsigned long currentMillis = millis();
@ -155,22 +155,22 @@ bool WiFiHandler::iniSTA(const std::string& ssid,
wifiStateManager.setState(WiFiState_e::WiFiState_Connecting);
log_i("Trying to connect to: %s with password: %s\n\r", ssid.c_str(), password.c_str());
auto mdnsConfig = configManager.getMDNSConfig();
log_d("Setting hostname %s \n\r");
WiFi.config(INADDR_NONE, INADDR_NONE, INADDR_NONE,
INADDR_NONE); // need to call before setting hostname
log_d("Setting hostname %s \n\r");
WiFi.setHostname(mdnsConfig.hostname.c_str());
log_i("Setting TX power to: %d \n\r", (uint8_t)power);
WiFi.setTxPower(power); // https://github.com/espressif/arduino-esp32/issues/5698
WiFi.begin(ssid.c_str(), password.c_str(), channel);
log_d("Waiting for WiFi to connect... \n\r");
while (WiFi.status() != WL_CONNECTED) {
progress++;
currentMillis = millis();
// log_i(".");
// log_d("Progress: %d \n\r", progress);
if ((currentMillis - startingMillis) >= connectionTimeout) {
wifiStateManager.setState(WiFiState_e::WiFiState_Error);
@ -193,7 +193,6 @@ bool WiFiHandler::iniSTA(const std::string& ssid,
}
wifiStateManager.setState(WiFiState_e::WiFiState_Connected);
log_i("Successfully connected to %s \n\r", ssid.c_str());
log_i("Setting TX power to: %d \n\r", (uint8_t)power);
return true;
}