diff --git a/src/agent/nodeagent/src/bluechi/filemaker.rs b/src/agent/nodeagent/src/bluechi/filemaker.rs index 30015c70a..aa9247a03 100644 --- a/src/agent/nodeagent/src/bluechi/filemaker.rs +++ b/src/agent/nodeagent/src/bluechi/filemaker.rs @@ -45,7 +45,7 @@ pub async fn make_symlink(node_name: &str, model_name: &str) -> common::Result<( ); let link = format!("{}{}.kube", SYSTEMD_PATH, model_name); - let _ = std::os::unix::fs::symlink(original, link)?; + std::os::unix::fs::symlink(original, link)?; Ok(()) } @@ -107,15 +107,15 @@ fn make_yaml_file(dir: &str, pod: Pod) -> common::Result<()> { Ok(()) } -/// (under construction) Copy Bluechi files to other nodes -/// -/// ### Parametets -/// TBD -/// ### Description -/// TBD -pub fn copy_to_remote_node(file_names: Vec) -> common::Result<()> { +// (under construction) Copy Bluechi files to other nodes +// +// ### Parametets +// TBD +// ### Description +// TBD +/*pub fn copy_to_remote_node(file_names: Vec) -> common::Result<()> { Ok(()) -} +}*/ #[cfg(test)] mod tests { @@ -123,7 +123,7 @@ mod tests { use common::spec::k8s::pod::PodSpec; use serde_yaml; use std::fs; - use std::path::{Path, PathBuf}; + use std::path::Path; /// Returns a dummy PodSpec for testing fn dummy_podspec() -> PodSpec { @@ -145,11 +145,11 @@ containers: let storage_dir = "/etc/piccolo/yaml"; tokio::time::sleep(std::time::Duration::from_millis(1000)).await; - let result = make_files_from_pod(vec![pod.clone()]).await; + let result = make_files_from_pod(vec![pod.clone()], "node1".to_string()).await; match result { - Ok(created_files) => { - assert_eq!(created_files, vec![pod.get_name()]); + Ok(_) => { + //assert_eq!(created_files, vec![pod.get_name()]); let kube_path = format!("{}/{}.kube", storage_dir, pod.get_name()); let yaml_path = format!("{}/{}.yaml", storage_dir, pod.get_name()); @@ -234,7 +234,7 @@ containers: assert!(Path::new(&yaml_path).exists(), "YAML file was not created"); - let content = fs::read_to_string(&yaml_path).expect("Failed to read YAML file"); + let _content = fs::read_to_string(&yaml_path).expect("Failed to read YAML file"); // Clean up fs::remove_file(&yaml_path).expect("Failed to remove YAML file after test"); diff --git a/src/agent/nodeagent/src/bluechi/mod.rs b/src/agent/nodeagent/src/bluechi/mod.rs index 01093afa2..74a825684 100644 --- a/src/agent/nodeagent/src/bluechi/mod.rs +++ b/src/agent/nodeagent/src/bluechi/mod.rs @@ -31,7 +31,7 @@ pub async fn parse(yaml_str: String, nodename: String) -> common::Result<()> { parser::get_complete_model(package, nodename.clone(), models_str).await?; let pods: Vec = models.into_iter().map(Pod::from).collect(); - let _ = filemaker::make_files_from_pod(pods, nodename).await?; + filemaker::make_files_from_pod(pods, nodename).await?; // filemaker::delete_symlink_and_reload(&mi.get_name(), &model_node) // .await diff --git a/src/agent/nodeagent/src/bluechi/parser.rs b/src/agent/nodeagent/src/bluechi/parser.rs index 077e07e40..6d607c613 100644 --- a/src/agent/nodeagent/src/bluechi/parser.rs +++ b/src/agent/nodeagent/src/bluechi/parser.rs @@ -19,7 +19,7 @@ pub async fn yaml_split(body: &str) -> common::Result<(String, Vec)> { let artifact_str = serde_yaml::to_string(&value)?; if let Some(kind) = value.clone().get("kind").and_then(|k| k.as_str()) { - let name: String = match kind { + let _name: String = match kind { "Scenario" => serde_yaml::from_value::(value.clone())?.get_name(), "Package" => serde_yaml::from_value::(value.clone())?.get_name(), "Volume" => serde_yaml::from_value::(value.clone())?.get_name(), @@ -67,12 +67,32 @@ pub async fn get_complete_model( models: Vec, ) -> common::Result> { let mut base_models: Vec = Vec::new(); - let mut model_name: String = String::new(); for mi in p.get_models() { if mi.get_node() == node { - model_name = mi.get_name(); + let model_name = mi.get_name(); for model in models.iter() { if model.get_name() == model_name { + if let Some(volume_name) = mi.get_resources().get_volume() { + let key = format!("Volume/{}", volume_name); + let volume_str: String = common::etcd::get(&key).await?; + let volume: Volume = serde_yaml::from_str(&volume_str)?; + + if let Some(volume_spec) = volume.get_spec() { + model + .get_podspec() + .volumes + .clone_from(volume_spec.get_volume()); + } + } + if let Some(network_name) = mi.get_resources().get_network() { + let key = format!("Network/{}", network_name); + let network_str = common::etcd::get(&key).await?; + let network: Network = serde_yaml::from_str(&network_str)?; + + if let Some(_network_spec) = network.get_spec() { + // TODO + } + } base_models.push(model.clone()); } else { println!("Model {} is not for this node {}", model.get_name(), node); @@ -83,32 +103,6 @@ pub async fn get_complete_model( println!("Model {} is not for this node {}", mi.get_name(), node); continue; } - //let mut key = format!("Model/{}", mi.get_name()); - //let base_model_str = common::etcd::get(&key).await?; - //let model: Model = serde_yaml::from_str(&base_model_str)?; - - // if let Some(volume_name) = mi.get_resources().get_volume() { - // key = format!("Volume/{}", volume_name); - // let volume_str: String = common::etcd::get(&key).await?; - // let volume: Volume = serde_yaml::from_str(&volume_str)?; - - // if let Some(volume_spec) = volume.get_spec() { - // model - // .get_podspec() - // .volumes - // .clone_from(volume_spec.get_volume()); - // } - // } - - // if let Some(network_name) = mi.get_resources().get_network() { - // key = format!("Network/{}", network_name); - // let network_str = common::etcd::get(&key).await?; - // let network: Network = serde_yaml::from_str(&network_str)?; - - // if let Some(network_spec) = network.get_spec() { - // // TODO - // } - //} } Ok(base_models) } @@ -244,7 +238,9 @@ spec: // Deserialize and test let package: Package = serde_yaml::from_str(pkg_yaml).unwrap(); - let result = get_complete_model(package).await; + let model: Model = serde_yaml::from_str(model_yaml).unwrap(); + let models = vec![model]; + let result = get_complete_model(package, "node1".to_string(), models).await; assert!(result.is_ok()); let models = result.unwrap(); @@ -254,11 +250,32 @@ spec: // Test case for a valid scenario where get_complete_model works correctly #[tokio::test] async fn test_get_complete_model_success() { + let model_yaml = r#" +apiVersion: v1 +kind: Model +metadata: + name: helloworld-core + annotations: + io.piccolo.annotations.package-type: helloworld-core + io.piccolo.annotations.package-name: helloworld + io.piccolo.annotations.package-network: default + labels: + app: helloworld-core +spec: + hostNetwork: true + containers: + - name: helloworld + image: helloworld + terminationGracePeriodSeconds: 0 +"#; + // Create a dummy package with valid data - let package = extract_package_from_multi_yaml(VALID_ARTIFACT_YAML); + let package = extract_package_from_multi_yaml(VALID_ARTIFACT_YAML).unwrap(); + let model: Model = serde_yaml::from_str(model_yaml).unwrap(); + let models = vec![model]; // Call get_complete_model and check if it returns Ok - let result = get_complete_model(package.expect("REASON")).await; + let result = get_complete_model(package, "HPC".to_string(), models).await; // If result is an error, print the error for debugging assert!( diff --git a/src/agent/nodeagent/src/grpc/sender.rs b/src/agent/nodeagent/src/grpc/sender.rs index 6022ff429..9b97666d9 100644 --- a/src/agent/nodeagent/src/grpc/sender.rs +++ b/src/agent/nodeagent/src/grpc/sender.rs @@ -9,15 +9,10 @@ use common::statemanager::{ use tonic::{Request, Status}; /// Sender for making gRPC requests to Monitoring Server -#[derive(Clone)] +#[derive(Clone, Default)] pub struct NodeAgentSender {} impl NodeAgentSender { - /// Create a new NodeAgentSender - pub fn new() -> Self { - Self {} - } - /// Trigger an action for a scenario pub async fn trigger_action( &mut self, diff --git a/src/agent/nodeagent/src/main.rs b/src/agent/nodeagent/src/main.rs index 1aff58a4c..573cd84c7 100644 --- a/src/agent/nodeagent/src/main.rs +++ b/src/agent/nodeagent/src/main.rs @@ -16,7 +16,7 @@ use tokio::sync::mpsc::{channel, Receiver, Sender}; /// This function creates the manager, initializes it, and then runs it. /// If initialization or running fails, errors are printed to stderr. async fn launch_manager(rx_grpc: Receiver, hostname: String) { - let mut manager = manager::NodeAgentManager::new(rx_grpc, hostname).await; + let manager = manager::NodeAgentManager::new(rx_grpc, hostname).await; //manager.initialize().await; let _ = manager.process_grpc_requests().await; @@ -74,7 +74,7 @@ async fn main() { #[cfg(test)] mod tests { - use crate::{initialize, launch_manager}; + use crate::launch_manager; use common::nodeagent::HandleYamlRequest; use tokio::sync::mpsc::{channel, Receiver, Sender}; use tokio::task::LocalSet; diff --git a/src/agent/nodeagent/src/manager.rs b/src/agent/nodeagent/src/manager.rs index 215916664..bdc82dd86 100644 --- a/src/agent/nodeagent/src/manager.rs +++ b/src/agent/nodeagent/src/manager.rs @@ -29,7 +29,7 @@ impl NodeAgentManager { pub async fn new(rx: mpsc::Receiver, hostname: String) -> Self { Self { rx_grpc: Arc::new(Mutex::new(rx)), - sender: Arc::new(Mutex::new(NodeAgentSender::new())), + sender: Arc::new(Mutex::new(NodeAgentSender::default())), hostname, } } diff --git a/src/player/actioncontroller/src/grpc/receiver.rs b/src/player/actioncontroller/src/grpc/receiver.rs index e20572783..4e17129f0 100644 --- a/src/player/actioncontroller/src/grpc/receiver.rs +++ b/src/player/actioncontroller/src/grpc/receiver.rs @@ -245,9 +245,8 @@ mod tests { scenario_name: "invalid_scenario".to_string(), }); - let response = receiver.trigger_action(request).await.unwrap(); - assert_eq!(response.get_ref().status, 1); - assert!(response.get_ref().desc.contains("Failed to trigger action")); + let response = receiver.trigger_action(request).await.unwrap_err(); + assert!(response.message().contains("not found")); } #[tokio::test] diff --git a/src/player/actioncontroller/src/runtime/bluechi/mod.rs b/src/player/actioncontroller/src/runtime/bluechi/mod.rs index 1fc0cdf92..0f2bbe76b 100644 --- a/src/player/actioncontroller/src/runtime/bluechi/mod.rs +++ b/src/player/actioncontroller/src/runtime/bluechi/mod.rs @@ -254,7 +254,7 @@ mod tests { assert_eq!(Command::UnitReload.to_method_name(), "ReloadUnit"); let unknown_cmd = Command::ControllerReloadAllNodes; - assert_eq!(unknown_cmd.to_method_name(), "Unknown"); + assert_eq!(unknown_cmd.to_method_name(), "ReloadAllNodes"); } // ------------------- NEGATIVE TESTS ------------------- diff --git a/src/player/vendor/lge_dds/Cargo.toml b/src/player/vendor/lge_dds/Cargo.toml deleted file mode 100644 index a9de14076..000000000 --- a/src/player/vendor/lge_dds/Cargo.toml +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 - -[package] -name = "lge_dds" -version = "0.1.0" -edition = "2021" - -[dependencies] -dust_dds = "0.11.0" -tokio = { version = "1.43.1", features = ["macros", "rt-multi-thread", "sync"] } \ No newline at end of file diff --git a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/adas/ADASObstacleDetection.idl b/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/adas/ADASObstacleDetection.idl deleted file mode 100644 index b4b0bfc49..000000000 --- a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/adas/ADASObstacleDetection.idl +++ /dev/null @@ -1,8 +0,0 @@ -struct ADASObstacleDetectionIsWarning { - // datatype: boolean - // type: actuator - // description: Indicates if obstacle sensor system is enabled (i.e. monitoring for obstacles). - // True = Enabled. False = Disabled. - - boolean value; -}; \ No newline at end of file diff --git a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/body/BodyLightsHeadLamp.idl b/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/body/BodyLightsHeadLamp.idl deleted file mode 100644 index c9ee7a5c8..000000000 --- a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/body/BodyLightsHeadLamp.idl +++ /dev/null @@ -1,12 +0,0 @@ -struct BodyLightsHeadLampStatus { - // type: sensor - // command : 0 = OFF, 1 = ON - // status : 0 = IDLE, 1 = START, 2 = ACTING, 3 = END - // progress: 0 ~ 100 - // uistatus: 0 = IS_ACTING, 1 = HEADLIGHT_IS_OFF, 2 = HEADLIGHT_IS_ON - - long command; - long status; - long progress; - long uistatus; -}; diff --git a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/body/BodyTrunk.idl b/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/body/BodyTrunk.idl deleted file mode 100644 index 634ee7b86..000000000 --- a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/body/BodyTrunk.idl +++ /dev/null @@ -1,12 +0,0 @@ -struct BodyTrunkStatus { - // type: sensor - // command : 0 = CLOSE, 1 = OPEN - // status : 0 = IDLE, 1 = START, 2 = ACTING, 3 = END - // progress: 0 ~ 100 - // uistatus: 0 = IS_ACTING, 1 = TRUNK_IS_CLOSED, 2 = TRUNK_IS_OPENED - - long command; - long status; - long progress; - long uistatus; -}; diff --git a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/cabin/CabinDoor.idl b/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/cabin/CabinDoor.idl deleted file mode 100644 index 9483aa9ec..000000000 --- a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/cabin/CabinDoor.idl +++ /dev/null @@ -1,25 +0,0 @@ -struct CabinLeftDoorStatus { - // type: sensor - // command : 0 = CLOSE, 1 = OPEN - // status : 0 = IDLE, 1 = START, 2 = ACTING, 3 = END - // progress: 0 ~ 100 - // uistatus: 0 = IS_ACTING, 1 = DOOR_IS_CLOSED, 2 = DOOR_IS_OPENED - - long command; - long status; - long progress; - long uistatus; -}; - -struct CabinRightDoorStatus { - // type: sensor - // command : 0 = CLOSE, 1 = OPEN - // status : 0 = IDLE, 1 = START, 2 = ACTING, 3 = END - // progress: 0 ~ 100 - // uistatus: 0 = IS_ACTING, 1 = DOOR_IS_CLOSED, 2 = DOOR_IS_OPENED - - long command; - long status; - long progress; - long uistatus; -}; diff --git a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/cabin/CabinWindow.idl b/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/cabin/CabinWindow.idl deleted file mode 100644 index 4f1a66a4d..000000000 --- a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/cabin/CabinWindow.idl +++ /dev/null @@ -1,25 +0,0 @@ -struct CabinLeftWindowStatus { - // type: sensor - // command : 0 = CLOSE, 1 = OPEN - // status : 0 = IDLE, 1 = START, 2 = ACTING, 3 = END - // progress: 0 ~ 100 - // uistatus: 0 = IS_ACTING, 1 = WINDOW_IS_CLOSED, 2 = WINDOW_IS_OPENED - - long command; - long status; - long progress; - long uistatus; -}; - -struct CabinRightWindowStatus { - // type: sensor - // command : 0 = CLOSE, 1 = OPEN - // status : 0 = IDLE, 1 = START, 2 = ACTING, 3 = END - // progress: 0 ~ 100 - // uistatus: 0 = IS_ACTING, 1 = WINDOW_IS_CLOSED, 2 = WINDOW_IS_OPENED - - long command; - long status; - long progress; - long uistatus; -}; diff --git a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/exterior/Exterior.idl b/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/exterior/Exterior.idl deleted file mode 100644 index 437a65d9a..000000000 --- a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/exterior/Exterior.idl +++ /dev/null @@ -1,11 +0,0 @@ -struct ExteriorLightIntensity { - // datatype: float - // type: sensor - // unit: percent - // min: 0 - // max: 100 - // description: Light intensity outside the vehicle. - // 0 = No light detected, 100 = Fully lit. - - float value; -}; diff --git a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/powertrain/PowertrainBattery.idl b/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/powertrain/PowertrainBattery.idl deleted file mode 100644 index f5cf9108e..000000000 --- a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/powertrain/PowertrainBattery.idl +++ /dev/null @@ -1,12 +0,0 @@ -struct PowertrainBatteryChargingChargePortFlapStatus { - // type: sensor - // command : 0 = CLOSE, 1 = OPEN - // status : 0 = IDLE, 1 = START, 2 = ACTING, 3 = END - // progress: 0 ~ 100 - // uistatus: 0 = IS_ACTING, 1 = CHARGING_PORT_IS_CLOSED, 2 = CHARGING_PORT_IS_OPENED - - long command; - long status; - long progress; - long uistatus; -}; \ No newline at end of file diff --git a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/powertrain/PowertrainTransmission.idl b/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/powertrain/PowertrainTransmission.idl deleted file mode 100644 index 7397d2074..000000000 --- a/src/player/vendor/lge_dds/src/idl/vehicle-interface-v0.3/powertrain/PowertrainTransmission.idl +++ /dev/null @@ -1,7 +0,0 @@ -struct PowertrainTransmissionCurrentGear { - // datatype: int8 - // type: sensor - // description: The current gear. 0=Neutral, 1/2/..=Forward, -1/-2/..=Reverse, 126: Parking, 127: Drive - - long value; -}; \ No newline at end of file diff --git a/src/player/vendor/lge_dds/src/lib.rs b/src/player/vendor/lge_dds/src/lib.rs deleted file mode 100644 index 62abe942d..000000000 --- a/src/player/vendor/lge_dds/src/lib.rs +++ /dev/null @@ -1,45 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -#![allow(non_snake_case)] - -pub mod vehicle_interface; - -use tokio::sync::mpsc::Sender; -use vehicle_interface::{ - adas::ADASObstacleDetection::ADASObstacleDetectionIsWarning, - body::{BodyLightsHeadLamp::BodyLightsHeadLampStatus, BodyTrunk::BodyTrunkStatus}, - cabin::{ - CabinDoor::{CabinLeftDoorStatus, CabinRightDoorStatus}, - CabinWindow::{CabinLeftWindowStatus, CabinRightWindowStatus}, - }, - exterior::Exterior::ExteriorLightIntensity, - powertrain::{ - PowertrainBattery::PowertrainBatteryChargingChargePortFlapStatus, - PowertrainTransmission::PowertrainTransmissionCurrentGear, - }, - receive_dds, -}; - -#[derive(Debug, Clone)] -pub struct DdsData { - pub name: String, - pub value: String, -} - -pub trait Piccoloable { - fn to_piccolo_dds_data(&self) -> DdsData; - fn topic_name() -> String; - fn type_name() -> String; -} - -pub async fn run(tx: Sender) { - tokio::spawn(receive_dds::(tx.clone())); - tokio::spawn(receive_dds::(tx.clone())); - tokio::spawn(receive_dds::(tx.clone())); - tokio::spawn(receive_dds::(tx.clone())); - tokio::spawn(receive_dds::(tx.clone())); - tokio::spawn(receive_dds::(tx.clone())); - tokio::spawn(receive_dds::(tx.clone())); - tokio::spawn(receive_dds::(tx.clone())); - tokio::spawn(receive_dds::(tx.clone())); - tokio::spawn(receive_dds::(tx.clone())); -} diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/adas/ADASObstacleDetection.rs b/src/player/vendor/lge_dds/src/vehicle_interface/adas/ADASObstacleDetection.rs deleted file mode 100644 index 392625ee7..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/adas/ADASObstacleDetection.rs +++ /dev/null @@ -1,20 +0,0 @@ -#[derive(Debug, dust_dds::topic_definition::type_support::DdsType)] -pub struct ADASObstacleDetectionIsWarning { - pub value: bool, -} - -impl crate::Piccoloable for ADASObstacleDetectionIsWarning { - fn to_piccolo_dds_data(&self) -> crate::DdsData { - let v = if self.value { "sensing" } else { "ignoring" }; - crate::DdsData { - name: String::from("ADASObstacleDetectionIsWarning"), - value: v.to_string(), - } - } - fn topic_name() -> String { - String::from("ADASObstacleDetectionIsWarning") - } - fn type_name() -> String { - String::from("ADASObstacleDetectionIsWarning") - } -} diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/adas/mod.rs b/src/player/vendor/lge_dds/src/vehicle_interface/adas/mod.rs deleted file mode 100644 index d46cd046f..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/adas/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod ADASObstacleDetection; diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/body/BodyLightsHeadLamp.rs b/src/player/vendor/lge_dds/src/vehicle_interface/body/BodyLightsHeadLamp.rs deleted file mode 100644 index a6c241580..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/body/BodyLightsHeadLamp.rs +++ /dev/null @@ -1,30 +0,0 @@ -#[derive(Debug, dust_dds::topic_definition::type_support::DdsType)] -pub struct BodyLightsHeadLampStatus { - pub command: i32, - pub status: i32, - pub progress: i32, - pub uistatus: i32, -} - -impl crate::Piccoloable for BodyLightsHeadLampStatus { - fn to_piccolo_dds_data(&self) -> crate::DdsData { - let lamp = match self.uistatus { - // uistatus: 0 = IS_ACTING, 1 = HEADLIGHT_IS_OFF, 2 = HEADLIGHT_IS_ON - 0 => "is_acting", - 1 => "off", - 2 => "on", - _ => "unknown", - }; - - crate::DdsData { - name: String::from("BodyLightsHeadLampStatus"), - value: lamp.to_string(), - } - } - fn topic_name() -> String { - String::from("BodyLightsHeadLampStatus") - } - fn type_name() -> String { - String::from("BodyLightsHeadLampStatus") - } -} diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/body/BodyTrunk.rs b/src/player/vendor/lge_dds/src/vehicle_interface/body/BodyTrunk.rs deleted file mode 100644 index a1eb0361c..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/body/BodyTrunk.rs +++ /dev/null @@ -1,30 +0,0 @@ -#[derive(Debug, dust_dds::topic_definition::type_support::DdsType)] -pub struct BodyTrunkStatus { - pub command: i32, - pub status: i32, - pub progress: i32, - pub uistatus: i32, -} - -impl crate::Piccoloable for BodyTrunkStatus { - fn to_piccolo_dds_data(&self) -> crate::DdsData { - let trunk = match self.uistatus { - // uistatus: 0 = IS_ACTING, 1 = TRUNK_IS_CLOSED, 2 = TRUNK_IS_OPENED - 0 => "is_acting", - 1 => "close", - 2 => "open", - _ => "unknown", - }; - - crate::DdsData { - name: String::from("BodyTrunkStatus"), - value: trunk.to_string(), - } - } - fn topic_name() -> String { - String::from("BodyTrunkStatus") - } - fn type_name() -> String { - String::from("BodyTrunkStatus") - } -} diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/body/mod.rs b/src/player/vendor/lge_dds/src/vehicle_interface/body/mod.rs deleted file mode 100644 index b89697d4c..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/body/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod BodyLightsHeadLamp; -pub mod BodyTrunk; diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/cabin/CabinDoor.rs b/src/player/vendor/lge_dds/src/vehicle_interface/cabin/CabinDoor.rs deleted file mode 100644 index 32ee55c13..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/cabin/CabinDoor.rs +++ /dev/null @@ -1,61 +0,0 @@ -#[derive(Debug, dust_dds::topic_definition::type_support::DdsType)] -pub struct CabinLeftDoorStatus { - pub command: i32, - pub status: i32, - pub progress: i32, - pub uistatus: i32, -} - -#[derive(Debug, dust_dds::topic_definition::type_support::DdsType)] -pub struct CabinRightDoorStatus { - pub command: i32, - pub status: i32, - pub progress: i32, - pub uistatus: i32, -} - -impl crate::Piccoloable for CabinLeftDoorStatus { - fn to_piccolo_dds_data(&self) -> crate::DdsData { - let ldoor = match self.uistatus { - // uistatus: 0 = IS_ACTING, 1 = CHARGING_PORT_IS_CLOSED, 2 = CHARGING_PORT_IS_OPENED - 0 => "is_acting", - 1 => "close", - 2 => "open", - _ => "unknown", - }; - - crate::DdsData { - name: String::from("CabinLeftDoorStatus"), - value: ldoor.to_string(), - } - } - fn topic_name() -> String { - String::from("CabinLeftDoorStatus") - } - fn type_name() -> String { - String::from("CabinLeftDoorStatus") - } -} - -impl crate::Piccoloable for CabinRightDoorStatus { - fn to_piccolo_dds_data(&self) -> crate::DdsData { - let rdoor = match self.uistatus { - // uistatus: 0 = IS_ACTING, 1 = CHARGING_PORT_IS_CLOSED, 2 = CHARGING_PORT_IS_OPENED - 0 => "is_acting", - 1 => "close", - 2 => "open", - _ => "unknown", - }; - - crate::DdsData { - name: String::from("CabinRightDoorStatus"), - value: rdoor.to_string(), - } - } - fn topic_name() -> String { - String::from("CabinRightDoorStatus") - } - fn type_name() -> String { - String::from("CabinRightDoorStatus") - } -} diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/cabin/CabinWindow.rs b/src/player/vendor/lge_dds/src/vehicle_interface/cabin/CabinWindow.rs deleted file mode 100644 index 8ad7f1f16..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/cabin/CabinWindow.rs +++ /dev/null @@ -1,61 +0,0 @@ -#[derive(Debug, dust_dds::topic_definition::type_support::DdsType)] -pub struct CabinLeftWindowStatus { - pub command: i32, - pub status: i32, - pub progress: i32, - pub uistatus: i32, -} - -#[derive(Debug, dust_dds::topic_definition::type_support::DdsType)] -pub struct CabinRightWindowStatus { - pub command: i32, - pub status: i32, - pub progress: i32, - pub uistatus: i32, -} - -impl crate::Piccoloable for CabinLeftWindowStatus { - fn to_piccolo_dds_data(&self) -> crate::DdsData { - let lwindow = match self.uistatus { - // uistatus: 0 = IS_ACTING, 1 = CHARGING_PORT_IS_CLOSED, 2 = CHARGING_PORT_IS_OPENED - 0 => "is_acting", - 1 => "close", - 2 => "open", - _ => "unknown", - }; - - crate::DdsData { - name: String::from("CabinLeftWindowStatus"), - value: lwindow.to_string(), - } - } - fn topic_name() -> String { - String::from("CabinLeftWindowStatus") - } - fn type_name() -> String { - String::from("CabinLeftWindowStatus") - } -} - -impl crate::Piccoloable for CabinRightWindowStatus { - fn to_piccolo_dds_data(&self) -> crate::DdsData { - let rwindow = match self.uistatus { - // uistatus: 0 = IS_ACTING, 1 = CHARGING_PORT_IS_CLOSED, 2 = CHARGING_PORT_IS_OPENED - 0 => "is_acting", - 1 => "close", - 2 => "open", - _ => "unknown", - }; - - crate::DdsData { - name: String::from("CabinRightWindowStatus"), - value: rwindow.to_string(), - } - } - fn topic_name() -> String { - String::from("CabinRightWindowStatus") - } - fn type_name() -> String { - String::from("CabinRightWindowStatus") - } -} diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/cabin/mod.rs b/src/player/vendor/lge_dds/src/vehicle_interface/cabin/mod.rs deleted file mode 100644 index be8854532..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/cabin/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod CabinDoor; -pub mod CabinWindow; diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/exterior/Exterior.rs b/src/player/vendor/lge_dds/src/vehicle_interface/exterior/Exterior.rs deleted file mode 100644 index f529147f3..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/exterior/Exterior.rs +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 - -#[derive(Debug, dust_dds::topic_definition::type_support::DdsType)] -pub struct ExteriorLightIntensity { - pub value: f32, -} - -impl crate::Piccoloable for ExteriorLightIntensity { - fn to_piccolo_dds_data(&self) -> crate::DdsData { - let day_night = if self.value < 60.0 { "night" } else { "day" }; - - crate::DdsData { - name: String::from("ExteriorLightIntensity"), - value: day_night.to_string(), - } - } - fn topic_name() -> String { - String::from("ExteriorLightIntensity") - } - fn type_name() -> String { - String::from("ExteriorLightIntensity") - } -} diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/exterior/mod.rs b/src/player/vendor/lge_dds/src/vehicle_interface/exterior/mod.rs deleted file mode 100644 index 8f2b2fef2..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/exterior/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod Exterior; diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/mod.rs b/src/player/vendor/lge_dds/src/vehicle_interface/mod.rs deleted file mode 100644 index 4c7f4d2cd..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/mod.rs +++ /dev/null @@ -1,59 +0,0 @@ -pub mod adas; -pub mod body; -pub mod cabin; -pub mod exterior; -pub mod powertrain; - -use crate::{DdsData, Piccoloable}; -use dust_dds::{ - dds_async::domain_participant_factory::DomainParticipantFactoryAsync, - infrastructure::{error::DdsResult, qos::QosKind, status::NO_STATUS}, - subscription::sample_info::{ANY_INSTANCE_STATE, ANY_SAMPLE_STATE, ANY_VIEW_STATE}, - topic_definition::type_support::{DdsDeserialize, DdsHasKey, DdsKey, DdsTypeXml}, -}; -use tokio::sync::mpsc::Sender; - -pub async fn receive_dds< - T: Piccoloable + DdsKey + DdsHasKey + DdsTypeXml + for<'a> DdsDeserialize<'a> + 'static, ->( - tx: Sender, -) { - let (topic_name, type_name, domain_id) = (T::topic_name(), T::type_name(), 0); - let participant_factory = DomainParticipantFactoryAsync::new(); - - let participant = participant_factory - .create_participant(domain_id, QosKind::Default, None, NO_STATUS) - .await - .unwrap(); - - let subscriber = participant - .create_subscriber(QosKind::Default, None, NO_STATUS) - .await - .unwrap(); - - let topic = participant - .create_topic::(&topic_name, &type_name, QosKind::Default, None, NO_STATUS) - .await - .unwrap(); - let reader = subscriber - .create_datareader::(&topic, QosKind::Default, None, NO_STATUS) - .await - .unwrap(); - - println!("make loop - {topic_name}"); - loop { - if let Ok(data_samples) = reader - .take(50, ANY_SAMPLE_STATE, ANY_VIEW_STATE, ANY_INSTANCE_STATE) - .await - { - let data: DdsResult = data_samples[0].data(); - if data.is_err() { - continue; - } - let msg = data.unwrap().to_piccolo_dds_data(); - println!("Received: {:?}", msg); - let _ = tx.send(msg).await; - } - std::thread::sleep(std::time::Duration::from_millis(500)); - } -} diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/powertrain/PowertrainBattery.rs b/src/player/vendor/lge_dds/src/vehicle_interface/powertrain/PowertrainBattery.rs deleted file mode 100644 index 9d44607f3..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/powertrain/PowertrainBattery.rs +++ /dev/null @@ -1,30 +0,0 @@ -#[derive(Debug, dust_dds::topic_definition::type_support::DdsType)] -pub struct PowertrainBatteryChargingChargePortFlapStatus { - pub command: i32, - pub status: i32, - pub progress: i32, - pub uistatus: i32, -} - -impl crate::Piccoloable for PowertrainBatteryChargingChargePortFlapStatus { - fn to_piccolo_dds_data(&self) -> crate::DdsData { - let cover = match self.uistatus { - // uistatus: 0 = IS_ACTING, 1 = CHARGING_PORT_IS_CLOSED, 2 = CHARGING_PORT_IS_OPENED - 0 => "is_acting", - 1 => "close", - 2 => "open", - _ => "unknown", - }; - - crate::DdsData { - name: String::from("PowertrainBatteryChargingChargePortFlapStatus"), - value: cover.to_string(), - } - } - fn topic_name() -> String { - String::from("PowertrainBatteryChargingChargePortFlapStatus") - } - fn type_name() -> String { - String::from("PowertrainBatteryChargingChargePortFlapStatus") - } -} diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/powertrain/PowertrainTransmission.rs b/src/player/vendor/lge_dds/src/vehicle_interface/powertrain/PowertrainTransmission.rs deleted file mode 100644 index 89ad91535..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/powertrain/PowertrainTransmission.rs +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 - -#[derive(Debug, dust_dds::topic_definition::type_support::DdsType)] -pub struct PowertrainTransmissionCurrentGear { - pub value: i32, -} - -impl crate::Piccoloable for PowertrainTransmissionCurrentGear { - fn to_piccolo_dds_data(&self) -> crate::DdsData { - let gear = match self.value { - // value: 0=Neutral, 1/2/..=Forward, -1/-2/..=Reverse, 126: Parking, 127: Drive - 0 => "N", - -1 => "R", - 126 => "P", - 127 => "D", - _ => "unknown", - }; - - crate::DdsData { - name: String::from("PowertrainTransmissionCurrentGear"), - value: gear.to_string(), - } - } - fn topic_name() -> String { - String::from("PowertrainTransmissionCurrentGear") - } - fn type_name() -> String { - String::from("PowertrainTransmissionCurrentGear") - } -} diff --git a/src/player/vendor/lge_dds/src/vehicle_interface/powertrain/mod.rs b/src/player/vendor/lge_dds/src/vehicle_interface/powertrain/mod.rs deleted file mode 100644 index 95e3a6f69..000000000 --- a/src/player/vendor/lge_dds/src/vehicle_interface/powertrain/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod PowertrainBattery; -pub mod PowertrainTransmission;