From 15713fc4bb897bfffe4bf0cc81824ce2ea5521e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Cebri=C3=A1n=20Juan?= Date: Tue, 1 Sep 2020 12:53:10 +0200 Subject: [PATCH] Telecommand status: show mode information (channel FSM state) --- src/algorithms/channel/adapters/channel.h | 2 ++ src/algorithms/channel/libs/channel_fsm.h | 2 ++ src/core/receiver/tcp_cmd_interface.cc | 15 ++++++++++----- src/core/receiver/tcp_cmd_interface.h | 1 + 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/algorithms/channel/adapters/channel.h b/src/algorithms/channel/adapters/channel.h index 0775c915bf..64cc81e361 100644 --- a/src/algorithms/channel/adapters/channel.h +++ b/src/algorithms/channel/adapters/channel.h @@ -86,6 +86,8 @@ class Channel : public ChannelInterface inline std::shared_ptr tracking() const { return trk_; } inline std::shared_ptr telemetry() const { return nav_; } + inline uint32_t fsm_state() { return channel_fsm_->state(); } + private: std::shared_ptr channel_fsm_; std::shared_ptr acq_; diff --git a/src/algorithms/channel/libs/channel_fsm.h b/src/algorithms/channel/libs/channel_fsm.h index e09e680f76..15d5595ee2 100644 --- a/src/algorithms/channel/libs/channel_fsm.h +++ b/src/algorithms/channel/libs/channel_fsm.h @@ -58,6 +58,8 @@ class ChannelFsm virtual bool Event_failed_acquisition_repeat(); virtual bool Event_failed_acquisition_no_repeat(); + inline uint32_t state() { return state_; } + private: void start_tracking(); void stop_acquisition(); diff --git a/src/core/receiver/tcp_cmd_interface.cc b/src/core/receiver/tcp_cmd_interface.cc index 6a5ec2be38..18ec9d7f37 100644 --- a/src/core/receiver/tcp_cmd_interface.cc +++ b/src/core/receiver/tcp_cmd_interface.cc @@ -55,6 +55,10 @@ TcpCmdInterface::TcpCmdInterface() map_signal_pretty_name_["L5"] = "L5"; map_signal_pretty_name_["B1"] = "B1I"; map_signal_pretty_name_["B3"] = "B3I"; + + map_state_name_[0] = "STBY"; + map_state_name_[1] = "ACQ"; + map_state_name_[2] = "TRK"; } @@ -153,21 +157,22 @@ std::string TcpCmdInterface::status(const std::vector &commandLine std::shared_ptr ch_sptr = std::dynamic_pointer_cast(channels_sptr_->at(n)); - std::string sys = ch_sptr->get_signal().get_satellite().get_system(); - std::string sig = map_signal_pretty_name_.at(ch_sptr->get_signal().get_signal_str()); + std::string system = ch_sptr->get_signal().get_satellite().get_system(); + std::string signal = map_signal_pretty_name_.at(ch_sptr->get_signal().get_signal_str()); uint32_t prn = ch_sptr->get_signal().get_satellite().get_PRN(); + std::string state = map_state_name_.at(ch_sptr->fsm_state()); str_stream << std::fixed << std::setprecision(1) << "| " << std::right << std::setw(3) << n << " | " - << std::left << std::setw(7) << sys + << std::left << std::setw(7) << system << " | " - << std::left << std::setw(6) << sig + << std::left << std::setw(6) << signal << " | " << std::right << std::setw(3) << prn << " | " - << std::left << std::setw(4) << "----" + << std::left << std::setw(4) << state << " | " << std::left << std::setw(3) << "---" << " | " diff --git a/src/core/receiver/tcp_cmd_interface.h b/src/core/receiver/tcp_cmd_interface.h index 17be611bb7..8f20db1069 100644 --- a/src/core/receiver/tcp_cmd_interface.h +++ b/src/core/receiver/tcp_cmd_interface.h @@ -75,6 +75,7 @@ class TcpCmdInterface std::shared_ptr>> channels_sptr_; std::map map_signal_pretty_name_; + std::map map_state_name_; float rx_latitude_; float rx_longitude_;