串口改协程前
This commit is contained in:
@@ -107,6 +107,12 @@ public:
|
||||
virtual std::shared_ptr<SSR::Msg> create_msg(const std::shared_ptr<SSR::Data_Source_Interface>& source, const std::string& packet);
|
||||
virtual void update_msg_day_time(std::shared_ptr<SSR::Msg> msg);
|
||||
virtual void handle_mode_acs_source();
|
||||
virtual ucoro::awaitable<void> handle_in_loop_coro();
|
||||
virtual ucoro::awaitable<std::string> recv_coro();
|
||||
virtual ucoro::awaitable<void> source_step_coro();
|
||||
|
||||
|
||||
void process_mode_acs_data(const std::string& mode_data);
|
||||
|
||||
|
||||
void refresh_data_feed_key_list();
|
||||
@@ -196,6 +202,7 @@ public:
|
||||
}
|
||||
return true;
|
||||
}
|
||||
bool is_open() const { return _open_; }
|
||||
void close() {
|
||||
if (_open_) {
|
||||
_open_ = false;
|
||||
@@ -224,7 +231,11 @@ protected:
|
||||
|
||||
struct TCP_Client_Data_Source : Data_Source {
|
||||
void handle_in_loop() override {
|
||||
ucoro::sync_await(cli.tick_coro());
|
||||
ucoro::sync_await(handle_in_loop_coro());
|
||||
}
|
||||
ucoro::awaitable<void> handle_in_loop_coro() override {
|
||||
co_await cli.tick_coro();
|
||||
co_return;
|
||||
}
|
||||
Psc::JSON get_custom_state_json() override {
|
||||
auto& state = cli.state;
|
||||
@@ -263,7 +274,10 @@ struct TCP_Client_Data_Source : Data_Source {
|
||||
}
|
||||
|
||||
std::string read() override {
|
||||
return ucoro::sync_await(cli.read_coro());
|
||||
return ucoro::sync_await(recv_coro());
|
||||
}
|
||||
ucoro::awaitable<std::string> recv_coro() override {
|
||||
co_return co_await cli.read_coro();
|
||||
}
|
||||
};
|
||||
struct Serial_Data_Source : Data_Source {
|
||||
@@ -377,6 +391,7 @@ struct File_Data_Source : public Data_Source {
|
||||
}
|
||||
std::string read() override;
|
||||
void handle_mode_acs_source() override;
|
||||
ucoro::awaitable<void> source_step_coro() override;
|
||||
|
||||
protected:
|
||||
std::optional<std::string> get_raw_line(int &ret_index);
|
||||
|
||||
Reference in New Issue
Block a user