Skip to content

Commit 81eaa37

Browse files
ClemensElfleinrovo89
authored andcommitted
WIP
1 parent 34b18a4 commit 81eaa37

File tree

4 files changed

+16
-0
lines changed

4 files changed

+16
-0
lines changed

src/services.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ ImuService imu_service{xbot::service_ids::IMU};
1515
PowerService power_service{xbot::service_ids::POWER};
1616
GpsService gps_service{xbot::service_ids::GPS};
1717
InputService input_service{xbot::service_ids::INPUT};
18+
MowerUiService mower_ui_service{xbot::service_ids::MOWER_UI};
1819

1920
void StartServices() {
2021
#define START_IF_NEEDED(service, id) \

src/services.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
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

1213
extern EmergencyService emergency_service;
@@ -16,6 +17,7 @@ extern ImuService imu_service;
1617
extern PowerService power_service;
1718
extern GpsService gps_service;
1819
extern InputService input_service;
20+
extern MowerUiService mower_ui_service;
1921

2022
void StartServices();
2123

src/services/mower_ui_service/mower_ui_service.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff 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

src/services/mower_ui_service/mower_ui_service.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)