From 7bd1e43dcf41b04ad385d1db21a99770e09fe8af Mon Sep 17 00:00:00 2001 From: Marcin Nowak Date: Sat, 16 Apr 2022 01:28:42 +0200 Subject: [PATCH] (uart, debug) first part of fixes after code review - remove `uart_status` from eu7_application class - remove copy&pasted `m_scenariopanel` size settings - remove unnecessary code `debug_panel::render_section_uart()` - remove #ifdef from `driveruipanels.h` textlines - set `data_pending` to false when establishing a new connection --- application.h | 3 --- driveruilayer.cpp | 3 --- driveruipanels.cpp | 19 ++++++------------- driveruipanels.h | 5 ----- uart.cpp | 22 ++++++++++++---------- uart.h | 4 +++- 6 files changed, 21 insertions(+), 35 deletions(-) diff --git a/application.h b/application.h index cccab83e..4d6b2955 100644 --- a/application.h +++ b/application.h @@ -94,9 +94,6 @@ public: is_server() const; bool is_client() const; -#ifdef WITH_UART - UartStatus uart_status; -#endif private: // types diff --git a/driveruilayer.cpp b/driveruilayer.cpp index ef842f1a..c342ef13 100644 --- a/driveruilayer.cpp +++ b/driveruilayer.cpp @@ -40,9 +40,6 @@ driver_ui::driver_ui() { m_aidpanel.title = STR("Driving Aid"); - m_scenariopanel.size_min = { 435, 50 }; - m_scenariopanel.size_max = { Global.fb_size.x * 0.95f, Global.fb_size.y * 0.95 }; - m_scenariopanel.title = STR("Scenario"); m_scenariopanel.size_min = { 435, 85 }; m_scenariopanel.size_max = { Global.fb_size.x * 0.95f, Global.fb_size.y * 0.95 }; diff --git a/driveruipanels.cpp b/driveruipanels.cpp index 734db7d3..8f76cfa4 100644 --- a/driveruipanels.cpp +++ b/driveruipanels.cpp @@ -622,14 +622,14 @@ debug_panel::render() { render_section_settings(); #ifdef WITH_UART if(true == render_section( "UART", m_uartlines)) { - int ports_num = Application.uart_status.available_ports.size(); + int ports_num = UartStatus.available_ports.size(); char **avlports = new char*[ports_num]; for (int i=0; i < ports_num; i++) { - avlports[i] = (char *) Application.uart_status.available_ports[i].c_str(); + avlports[i] = (char *) UartStatus.available_ports[i].c_str(); } - ImGui::Combo("Port", &Application.uart_status.selected_port_index, avlports, ports_num); - ImGui::Combo("Baud", &Application.uart_status.selected_baud_index, uart_baudrates_list, uart_baudrates_list_num); - ImGui::Checkbox("Enabled", &Application.uart_status.enabled); + ImGui::Combo("Port", &UartStatus.selected_port_index, avlports, ports_num); + ImGui::Combo("Baud", &UartStatus.selected_baud_index, uart_baudrates_list, uart_baudrates_list_num); + ImGui::Checkbox("Enabled", &UartStatus.enabled); } #endif // toggles @@ -641,13 +641,6 @@ debug_panel::render() { ImGui::PopFont(); } -#ifdef WITH_UART -bool -debug_panel::render_section_uart() { - return true; -}; -#endif - bool debug_panel::render_section_scenario() { @@ -1245,7 +1238,7 @@ debug_panel::update_section_scantable( std::vector &Output ) { #ifdef WITH_UART void debug_panel::update_section_uart( std::vector &Output ) { - UartStatus *status = &Application.uart_status; + uart_status *status = &UartStatus; Output.emplace_back( ("Port: " + status->port_name).c_str(), diff --git a/driveruipanels.h b/driveruipanels.h index 2df452bf..e1a9acbe 100644 --- a/driveruipanels.h +++ b/driveruipanels.h @@ -117,13 +117,8 @@ private: m_scenariolines, m_eventqueuelines, m_powergridlines, - #ifdef WITH_UART m_rendererlines, m_uartlines; - #else - m_rendererlines; - #endif - double last_time = std::numeric_limits::quiet_NaN(); diff --git a/uart.cpp b/uart.cpp index b5934bef..77849018 100644 --- a/uart.cpp +++ b/uart.cpp @@ -9,7 +9,6 @@ #include "simulationtime.h" #include "application.h" - const char* uart_baudrates_list[] = { "300", "1200", @@ -32,15 +31,17 @@ const size_t uart_baudrates_list_num = ( sizeof(uart_baudrates_list)/sizeof(uart_baudrates_list[0]) ); -void UartStatus::reset_stats() { +void uart_status::reset_stats() { packets_sent = 0; packets_received = 0; } +uart_status UartStatus; + uart_input::uart_input() { conf = Global.uart_conf; - UartStatus *status = &Application.uart_status; + uart_status *status = &UartStatus; status->enabled = conf.enable; status->port_name = conf.port; @@ -64,7 +65,7 @@ uart_input::uart_input() } void uart_input::find_ports() { - UartStatus *status = &Application.uart_status; + uart_status *status = &UartStatus; struct sp_port **ports; if (sp_list_ports(&ports) == SP_OK) { @@ -91,7 +92,7 @@ void uart_input::find_ports() { bool uart_input::setup_port() { - UartStatus *status = &Application.uart_status; + uart_status *status = &UartStatus; if(!port) { find_ports(); @@ -162,6 +163,7 @@ bool uart_input::setup_port() ErrorLog("uart: connected to '"+status->port_name+"'"); status->reset_stats(); status->is_connected = true; + data_pending = false; } return true; @@ -262,7 +264,7 @@ uart_input::recall_bindings() { void uart_input::poll() { - UartStatus *status = &Application.uart_status; + uart_status *status = &UartStatus; auto now = std::chrono::high_resolution_clock::now(); /* handle baud change */ @@ -334,13 +336,13 @@ void uart_input::poll() bool sync; if (tmp_buffer[0] != 0xEF || tmp_buffer[1] != 0xEF || tmp_buffer[2] != 0xEF || tmp_buffer[3] != 0xEF) { - Application.uart_status.is_synced = false; + UartStatus.is_synced = false; if (conf.debug) WriteLog("uart: bad sync"); sync = false; } else { - Application.uart_status.is_synced = true; + UartStatus.is_synced = true; if (conf.debug) WriteLog("uart: sync ok"); sync = true; @@ -384,7 +386,7 @@ void uart_input::poll() std::array buffer; memmove(&buffer[0], &tmp_buffer[4], 16); - Application.uart_status.packets_received++; + UartStatus.packets_received++; if (conf.debug) { @@ -607,7 +609,7 @@ void uart_input::poll() setup_port(); return; } - Application.uart_status.packets_sent++; + UartStatus.packets_sent++; data_pending = true; } diff --git a/uart.h b/uart.h index e37fc571..42a16c11 100644 --- a/uart.h +++ b/uart.h @@ -6,7 +6,7 @@ extern const char* uart_baudrates_list[]; extern const size_t uart_baudrates_list_num; -class UartStatus { +class uart_status { public: std::string port_name = ""; std::vector available_ports = {}; @@ -104,3 +104,5 @@ private: bool error_notified = false; std::uint8_t m_trainstatecab { 0 }; // helper, keeps track of last active cab. 0: front cab, 1: rear cab }; + +extern uart_status UartStatus;