File tree Expand file tree Collapse file tree 4 files changed +16
-0
lines changed
services/mower_ui_service Expand file tree Collapse file tree 4 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ ImuService imu_service{xbot::service_ids::IMU};
1515PowerService power_service{xbot::service_ids::POWER};
1616GpsService gps_service{xbot::service_ids::GPS};
1717InputService input_service{xbot::service_ids::INPUT};
18+ MowerUiService mower_ui_service{xbot::service_ids::MOWER_UI};
1819
1920void StartServices () {
2021#define START_IF_NEEDED (service, id ) \
Original file line number Diff line number Diff line change 77#include " services/imu_service/imu_service.hpp"
88#include " services/input_service/input_service.hpp"
99#include " services/mower_service/mower_service.hpp"
10+ #include " services/mower_ui_service/mower_ui_service.hpp"
1011#include " services/power_service/power_service.hpp"
1112
1213extern EmergencyService emergency_service;
@@ -16,6 +17,7 @@ extern ImuService imu_service;
1617extern PowerService power_service;
1718extern GpsService gps_service;
1819extern InputService input_service;
20+ extern MowerUiService mower_ui_service;
1921
2022void StartServices ();
2123
Original file line number Diff line number Diff line change @@ -42,4 +42,9 @@ void MowerUiService::OnCurrentPathIndexChanged(const int16_t &new_value) {
4242 xbot::service::Lock lk{&mtx_};
4343 current_path_index_ = new_value;
4444}
45+ void MowerUiService::OnTransactionEnd () {
46+ if (state_changed_callback_) {
47+ state_changed_callback_ ();
48+ }
49+ }
4550
Original file line number Diff line number Diff line change @@ -52,6 +52,11 @@ class MowerUiService : public MowerUiServiceBase {
5252
5353 void SendAction (HighLevelAction action);
5454
55+ void SetCallback (const etl::delegate<void ()> &callback) {
56+ xbot::service::Lock lk{&mtx_};
57+ state_changed_callback_ = callback;
58+ }
59+
5560 private:
5661 MUTEX_DECL (mtx_);
5762
@@ -63,13 +68,16 @@ class MowerUiService : public MowerUiServiceBase {
6368 int16_t current_path_ = 0 ;
6469 int16_t current_path_index_ = 0 ;
6570
71+ etl::delegate<void ()> state_changed_callback_{};
72+
6673 void OnStateIDChanged (const HighLevelStatus& new_value) override ;
6774 void OnStateNameChanged (const char * new_value, uint32_t length) override ;
6875 void OnSubStateNameChanged (const char * new_value, uint32_t length) override ;
6976 void OnGpsQualityChanged (const float & new_value) override ;
7077 void OnCurrentAreaChanged (const int16_t & new_value) override ;
7178 void OnCurrentPathChanged (const int16_t & new_value) override ;
7279 void OnCurrentPathIndexChanged (const int16_t & new_value) override ;
80+ void OnTransactionEnd () override ;
7381};
7482
7583#endif // OPENMOWER_MOWER_UI_SERVICE_HPP
You can’t perform that action at this time.
0 commit comments