From 279fa42f313d2df2f3391a4fc1c21fc7d8a7b136 Mon Sep 17 00:00:00 2001 From: lkoester Date: Thu, 25 Apr 2024 16:50:08 +0200 Subject: [PATCH] added commander actions for logfile and image downlink --- pytmtc/opssat_tmtc/pus_tc.py | 23 ++++++++++++++++++++++- src/config.rs | 2 +- src/controller.rs | 2 ++ src/handlers/camera.rs | 2 +- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/pytmtc/opssat_tmtc/pus_tc.py b/pytmtc/opssat_tmtc/pus_tc.py index 49bbc71..f24fa6b 100644 --- a/pytmtc/opssat_tmtc/pus_tc.py +++ b/pytmtc/opssat_tmtc/pus_tc.py @@ -96,6 +96,16 @@ def create_cmd_definition_tree() -> CmdTreeNode: CmdTreeNode("custom_params", "Custom Camera Parameters as specified from file") ) action_node.add_child(cam_node) + + controller_node = CmdTreeNode("controller", "Main OBSW Controller") + controller_node.add_child( + CmdTreeNode("downlink_logs", "Downlink Logs via toGround folder") + ) + controller_node.add_child( + CmdTreeNode("downlink_last_img", "Downlink last image via toGroundLP folder") + ) + action_node.add_child(controller_node) + root_node.add_child(action_node) return root_node @@ -157,7 +167,18 @@ def pack_pus_telecommands(q: DefaultPusQueueHelper, cmd_path: str): service=8, subservice=128, apid=EXPERIMENT_APID, app_data=data ) ) - + if cmd_path_list[1] == "controller": + assert len(cmd_path_list) >= 3 + data = bytearray() + if cmd_path_list[2] == "downlink_logs": + data.extend(make_action_cmd_header(UniqueId.Controller, 2)) + if cmd_path_list[2] == "downlink_last_img": + data.extend(make_action_cmd_header(UniqueId.Controller, 3)) + return q.add_pus_tc( + PusTelecommand( + service=8, subservice=128, apid=EXPERIMENT_APID, app_data=data + ) + ) def handle_set_mode_cmd( q: DefaultPusQueueHelper, target_str: str, mode_str: str, apid: int, unique_id: int diff --git a/src/config.rs b/src/config.rs index c4ccfe9..c8c08ab 100644 --- a/src/config.rs +++ b/src/config.rs @@ -295,7 +295,7 @@ pub mod tasks { } pub fn create_low_priority_ground_dir() { - log::debug!("Creating low priority to ground directory"); + log::info!("Creating low priority to ground directory"); if !Path::new(TO_GROUND_LP_FOLDER_EXPERIMENT).exists() && std::fs::create_dir_all(TO_GROUND_LP_FOLDER_EXPERIMENT).is_err() { diff --git a/src/controller.rs b/src/controller.rs index 67f4cf9..7f5a6cc 100644 --- a/src/controller.rs +++ b/src/controller.rs @@ -106,6 +106,7 @@ impl ExperimentController { } } ActionId::DownlinkLogfile => { + log::info!("Copying logfile into downlink folder"); if let Some(logfile_path) = LOGFILE_PATH.get() { if let Ok(logfile_path) = ::clone(logfile_path) .into_os_string() @@ -124,6 +125,7 @@ impl ExperimentController { // downlink images, default will be the last image, otherwise specified counting down (2 = second to last image, etc.) ActionId::DownlinkImages => { + log::info!("Copying images into low priority downlink folder"); if let Ok(image_path) = match action_req.variant { ActionRequestVariant::VecData(data) => { let index = data[0]; diff --git a/src/handlers/camera.rs b/src/handlers/camera.rs index d136856..0897f7b 100644 --- a/src/handlers/camera.rs +++ b/src/handlers/camera.rs @@ -291,7 +291,7 @@ impl IMS100BatchHandler { }, }; let output = self.take_picture(param)?; - debug!("Sending action reply!"); + info!("Sending action reply!"); send_data_reply(self.id, output.stdout, &self.stamp_helper, &self.tm_tx)?; self.action_reply_tx .send(GenericMessage::new(