xnecas преди 2 седмици
родител
ревизия
0356e27af3
променени са 4 файла, в които са добавени 16 реда и са изтрити 9 реда
  1. 2 2
      main/src/device/device.cpp
  2. 1 1
      main/src/nbus/nbus_broadcast_comm.cpp
  3. 12 5
      main/src/states/state_impl/state_impl.cpp
  4. 1 1
      main/src/states/state_impl/state_impl.h

+ 2 - 2
main/src/device/device.cpp

@@ -18,6 +18,8 @@ void Device::set_battery_refresh(bool value)
 void Device::_begin_esp_now_serial()
 {
     EnSerial.begin(EN_SERIAL_CHANNEL, EN_SERIAL_BROADCAST);
+    EspMacAddress rx_address = EN_SERIAL_ADDRESS;    
+    EnSerial.add_peer(rx_address);
     _wifi_active = true;
 }
 
@@ -40,8 +42,6 @@ bool Device::hardware_init()
 
     // init esp-now serial
     _begin_esp_now_serial();
-    EspMacAddress rx_address = EN_SERIAL_ADDRESS;    
-    EnSerial.add_peer(rx_address);
 
     // init drawer
     Drawer.begin();

+ 1 - 1
main/src/nbus/nbus_broadcast_comm.cpp

@@ -44,7 +44,7 @@ void NbusBroadcastComm::cmd_set_stop()
     _init_packet(CMD_SET_STOP, nullptr, 0);
     _slave_interface.write(_packet, _size);
 }
-
+#include "Arduino.h"
 void NbusBroadcastComm::cmd_set_data(uint8_t *data, int16_t count)
 {
     _init_packet(CMD_SET_DATA, data, count);

+ 12 - 5
main/src/states/state_impl/state_impl.cpp

@@ -44,7 +44,7 @@ void StateLock::begin()
     // draw screen
     Dev.Drawer.draw_icon(LOCK_ICON, COL_ICON_FG, COL_ICON_BG_INACTIVE, LAY_ICON_YOFFSET);
     Dev.Drawer.draw_description("Odomknite", "podrzanim", LAY_DESC_YOFFSET);
-    Dev.Drawer.draw_measure_number(GenericState::_measure_num++);
+    Dev.Drawer.draw_measure_number(++GenericState::_measure_num);
 }
 
 StateTx StateLock::loop(int64_t duration)
@@ -172,6 +172,9 @@ void StateRun::begin()
     _last_blink_time = 0;
     _icon_state = false;
 
+    // send nbus command
+    GenericState::send_phase(NBUS_PHASE_MOVEMENT);
+
     // draw screen
     Dev.Drawer.draw_icon(REC_ICON, COL_ICON_FG, COL_ICON_BG_INACTIVE, LAY_ICON_YOFFSET);
     Dev.Drawer.draw_description("Meranie", "pohybu", LAY_DESC_YOFFSET);
@@ -205,7 +208,7 @@ StateTx StateRun::loop(int64_t duration)
 
     // short press -> stop
     if (Dev.M5Board.BtnA.wasReleased())
-        return {STATE_STOP, REFRESH};
+        return {STATE_STOP};
 
     return {STATE_RUN};
 }
@@ -213,7 +216,7 @@ StateTx StateRun::loop(int64_t duration)
 void StateRun::end()
 {
     // send nbus command
-    GenericState::send_phase(NBUS_PHASE_MOVEMENT);
+    GenericState::send_phase(NBUS_PHASE_STOP);
 }
 
 //////////////////////////////////////////////////////////////////////////////////////////////////
@@ -228,7 +231,6 @@ StateID StateStop::whoami()
 void StateStop::begin()
 {
     // send nbus command
-    GenericState::send_phase(NBUS_PHASE_ACK);
 
     // draw screen
     Dev.Drawer.draw_icon(OK_ICON, COL_ICON_FG, COL_ICON_BG_INACTIVE, LAY_ICON_YOFFSET);
@@ -246,6 +248,9 @@ StateTx StateStop::loop(int64_t duration)
 
 void StateStop::end()
 {
+    // send nbus command
+    GenericState::send_phase(NBUS_PHASE_ACK);
+
     // draw screen
     Dev.Drawer.draw_icon(OK_ICON, COL_ICON_FG, COL_ICON_BG_ACTIVE, LAY_ICON_YOFFSET);
 }
@@ -262,8 +267,10 @@ StateID StateCancel::whoami()
 
 void StateCancel::begin()
 {
+    // update counter
+    GenericState::_measure_num--;
+
     // draw screen
-    Dev.Drawer.draw_measure_number(--GenericState::_measure_num);
     Dev.Drawer.draw_icon(CANCEL_ICON, COL_ICON_FG, COL_ICON_BG_CANCEL, LAY_ICON_YOFFSET);
     Dev.Drawer.draw_description("Meranie", "zrusene", LAY_DESC_YOFFSET);
 }

+ 1 - 1
main/src/states/state_impl/state_impl.h

@@ -30,7 +30,7 @@ protected:
      */
     static void send_stop();
 
-    inline static std::atomic<int32_t> _measure_num{1};         ///< Shared atomic counter tracking the current measurement number
+    inline static std::atomic<int32_t> _measure_num{0};         ///< Shared atomic counter tracking the current measurement number
     inline static NbusBroadcastComm _nbus_comm{Dev.EnSerial};   ///< Shared Nano Bus communication handler instance
 };