Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Align to v1.6.0-alpha.3 spec #26

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,543 changes: 773 additions & 770 deletions Cargo.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ json5 = { version = "0.4.1" }
serde = { version = "1.0.154", features = ["derive"] }
serde_json = { version = "1.0.94" }
uuid = { version = "1.7.0" }
up-rust = { default-features = false, git = "https://github.com/eclipse-uprotocol/up-rust", rev = "3a50104421a801d52e1d9c68979db54c013ce43d" }
tokio = { version = "1.35.1", default-features = false }
protobuf = { version = "3.3", features = ["with-bytes"] }
up-rust = { version = "0.1.5", default-features = false }

[profile.dev]
debug = true
Expand Down
6 changes: 3 additions & 3 deletions example-streamer-uses/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,6 @@ protobuf = { workspace = true }
serde = { workspace = true }
tokio = { workspace = true }
up-rust = { workspace = true }
up-transport-zenoh = { git = "https://github.com/eclipse-uprotocol/up-transport-zenoh-rust.git", rev = "7c839e7a94f526a82027564a609f48a79a3f4eae" }
up-transport-vsomeip = { git = "https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git", rev = "acbb0d0c9b8b48dd35c74f461e97151f1e922000", default-features = false }
zenoh = { version = "0.11.0-rc.3", features = ["unstable"]}
up-transport-zenoh = { version = "0.1.1" }
up-transport-vsomeip = { git = "https://github.com/eclipse-uprotocol/up-transport-vsomeip-rust.git", tag = "v0.1.0", default-features = false }
zenoh = { version = "1.0.0-alpha.6", features = ["unstable"]}
43 changes: 21 additions & 22 deletions example-streamer-uses/src/bin/me_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,23 @@ use up_rust::{UListener, UMessage, UMessageBuilder, UStatus, UTransport, UUri};
use up_transport_vsomeip::UPTransportVsomeip;

const SERVICE_AUTHORITY: &str = "linux";
const SERVICE_UE_ID: u16 = 0x1236;
const SERVICE_UE_ID: u32 = 0x1236;
const SERVICE_UE_VERSION_MAJOR: u8 = 1;
const SERVICE_RESOURCE_ID: u16 = 0x0896;

const CLIENT_AUTHORITY: &str = "me_authority";
const CLIENT_UE_ID: u16 = 0x5678;
const CLIENT_UE_ID: u32 = 0x5678;
const CLIENT_UE_VERSION_MAJOR: u8 = 1;
const CLIENT_RESOURCE_ID: u16 = 0;

const REQUEST_TTL: u32 = 1000;

const REMOTE_AUTHORITY: &str = "linux";

fn client_uuri() -> UUri {
UUri::try_from_parts(CLIENT_AUTHORITY, CLIENT_UE_ID, CLIENT_UE_VERSION_MAJOR, 0).unwrap()
}

struct ServiceResponseListener;

#[async_trait]
Expand All @@ -53,10 +57,6 @@ impl UListener for ServiceResponseListener {

println!("Here we received response: {hello_response:?}");
}

async fn on_error(&self, err: UStatus) {
println!("ServiceResponseListener: Encountered an error: {err:?}");
}
}

#[tokio::main]
Expand All @@ -75,29 +75,28 @@ async fn main() -> Result<(), UStatus> {
// TODO: Add error handling if we fail to create a UPTransportVsomeip
let client: Arc<dyn UTransport> = Arc::new(
UPTransportVsomeip::new_with_config(
&CLIENT_AUTHORITY.to_string(),
client_uuri(),
&REMOTE_AUTHORITY.to_string(),
CLIENT_UE_ID,
&vsomeip_config.unwrap(),
None,
)
.unwrap(),
);

let source = UUri {
authority_name: CLIENT_AUTHORITY.to_string(),
ue_id: CLIENT_UE_ID as u32,
ue_version_major: CLIENT_UE_VERSION_MAJOR as u32,
resource_id: CLIENT_RESOURCE_ID as u32,
..Default::default()
};
let sink = UUri {
authority_name: SERVICE_AUTHORITY.to_string(),
ue_id: SERVICE_UE_ID as u32,
ue_version_major: SERVICE_UE_VERSION_MAJOR as u32,
resource_id: SERVICE_RESOURCE_ID as u32,
..Default::default()
};
let source = UUri::try_from_parts(
CLIENT_AUTHORITY,
CLIENT_UE_ID,
CLIENT_UE_VERSION_MAJOR,
CLIENT_RESOURCE_ID,
)
.unwrap();
let sink = UUri::try_from_parts(
SERVICE_AUTHORITY,
SERVICE_UE_ID,
SERVICE_UE_VERSION_MAJOR,
SERVICE_RESOURCE_ID,
)
.unwrap();

let service_response_listener: Arc<dyn UListener> = Arc::new(ServiceResponseListener);
client
Expand Down
30 changes: 19 additions & 11 deletions example-streamer-uses/src/bin/me_publisher.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,22 @@ use up_rust::{UMessageBuilder, UStatus, UTransport, UUri};
use up_transport_vsomeip::UPTransportVsomeip;

const PUB_TOPIC_AUTHORITY: &str = "me_authority";
const PUB_TOPIC_UE_ID: u16 = 0x5BA0;
const PUB_TOPIC_UE_ID: u32 = 0x5BA0;
const PUB_TOPIC_UE_VERSION_MAJOR: u8 = 1;
const PUB_TOPIC_RESOURCE_ID: u16 = 0x8001;

const REMOTE_AUTHORITY: &str = "linux";

fn publisher_uuri() -> UUri {
UUri::try_from_parts(
PUB_TOPIC_AUTHORITY,
PUB_TOPIC_UE_ID,
PUB_TOPIC_UE_VERSION_MAJOR,
0,
)
.unwrap()
}

#[tokio::main]
async fn main() -> Result<(), UStatus> {
env_logger::init();
Expand All @@ -43,25 +53,23 @@ async fn main() -> Result<(), UStatus> {
trace!("vsomeip_config: {vsomeip_config:?}");

// There will be a single vsomeip_transport, as there is a connection into device and a streamer
// TODO: Add error handling if we fail to create a UPTransportVsomeip
let publisher: Arc<dyn UTransport> = Arc::new(
UPTransportVsomeip::new_with_config(
&PUB_TOPIC_AUTHORITY.to_string(),
publisher_uuri(),
&REMOTE_AUTHORITY.to_string(),
PUB_TOPIC_UE_ID,
&vsomeip_config.unwrap(),
None,
)
.unwrap(),
);

let source = UUri {
authority_name: PUB_TOPIC_AUTHORITY.to_string(),
ue_id: PUB_TOPIC_UE_ID as u32,
ue_version_major: PUB_TOPIC_UE_VERSION_MAJOR as u32,
resource_id: PUB_TOPIC_RESOURCE_ID as u32,
..Default::default()
};
let source = UUri::try_from_parts(
PUB_TOPIC_AUTHORITY,
PUB_TOPIC_UE_ID,
PUB_TOPIC_UE_VERSION_MAJOR,
PUB_TOPIC_RESOURCE_ID,
)
.unwrap();

loop {
tokio::time::sleep(Duration::from_millis(1000)).await;
Expand Down
42 changes: 20 additions & 22 deletions example-streamer-uses/src/bin/me_service.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,22 @@ use up_rust::{UListener, UMessage, UMessageBuilder, UStatus, UTransport, UUri};
use up_transport_vsomeip::UPTransportVsomeip;

const SERVICE_AUTHORITY: &str = "me_authority";
const SERVICE_UE_ID: u16 = 0x4321;
const SERVICE_UE_ID: u32 = 0x4321;
const SERVICE_UE_VERSION_MAJOR: u8 = 1;
const SERVICE_RESOURCE_ID: u16 = 0x0421;

const REMOTE_AUTHORITY: &str = "linux";

fn service_uuri() -> UUri {
UUri::try_from_parts(
SERVICE_AUTHORITY,
SERVICE_UE_ID,
SERVICE_UE_VERSION_MAJOR,
0,
)
.unwrap()
}

struct ServiceRequestResponder {
client: Arc<dyn UTransport>,
}
Expand Down Expand Up @@ -66,10 +76,6 @@ impl UListener for ServiceRequestResponder {
.unwrap();
self.client.send(response_msg).await.unwrap();
}

async fn on_error(&self, err: UStatus) {
println!("ServiceRequestResponder: Encountered an error: {err:?}");
}
}

#[tokio::main]
Expand All @@ -88,32 +94,24 @@ async fn main() -> Result<(), UStatus> {
// TODO: Add error handling if we fail to create a UPTransportVsomeip
let service: Arc<dyn UTransport> = Arc::new(
UPTransportVsomeip::new_with_config(
&SERVICE_AUTHORITY.to_string(),
service_uuri(),
&REMOTE_AUTHORITY.to_string(),
SERVICE_UE_ID,
&vsomeip_config.unwrap(),
None,
)
.unwrap(),
);

let source_filter = UUri {
authority_name: "*".to_string(),
ue_id: 0x0000_FFFF,
ue_version_major: 0xFF,
resource_id: 0xFFFF,
..Default::default()
};
let sink_filter = UUri {
authority_name: SERVICE_AUTHORITY.to_string(),
ue_id: SERVICE_UE_ID as u32,
ue_version_major: SERVICE_UE_VERSION_MAJOR as u32,
resource_id: SERVICE_RESOURCE_ID as u32,
..Default::default()
};
let source_filter = UUri::any();
let sink_filter = UUri::try_from_parts(
SERVICE_AUTHORITY,
SERVICE_UE_ID,
SERVICE_UE_VERSION_MAJOR,
SERVICE_RESOURCE_ID,
)
.unwrap();
let service_request_responder: Arc<dyn UListener> =
Arc::new(ServiceRequestResponder::new(service.clone()));
// TODO: Need to revisit how the vsomeip config file is used in non point-to-point cases
service
.register_listener(
&source_filter,
Expand Down
42 changes: 23 additions & 19 deletions example-streamer-uses/src/bin/me_subscriber.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,25 @@ use std::thread;
use up_rust::{UListener, UMessage, UStatus, UTransport, UUri};
use up_transport_vsomeip::UPTransportVsomeip;

const SERVICE_AUTHORITY: &str = "me_authority";
const SERVICE_UE_ID: u16 = 0x1236;

const REMOTE_AUTHORITY: &str = "linux";
const SUBSCRIBER_AUTHORITY: &str = "me_authority";
const SUBSCRIBER_UE_ID: u32 = 0x1236;
const SUBSCRIBER_UE_VERSION_MAJOR: u8 = 1;

const PUB_TOPIC_AUTHORITY: &str = "linux";
const PUB_TOPIC_UE_ID: u16 = 0x3039;
const PUB_TOPIC_UE_ID: u32 = 0x3039;
const PUB_TOPIC_UE_VERSION_MAJOR: u8 = 1;
const PUB_TOPIC_RESOURCE_ID: u16 = 0x8001;

fn subscriber_uuri() -> UUri {
UUri::try_from_parts(
SUBSCRIBER_AUTHORITY,
SUBSCRIBER_UE_ID,
SUBSCRIBER_UE_VERSION_MAJOR,
0,
)
.unwrap()
}

#[allow(dead_code)]
struct PublishReceiver;

Expand All @@ -54,10 +63,6 @@ impl UListener for PublishReceiver {
}
};
}

async fn on_error(&self, err: UStatus) {
println!("ServiceRequestResponder: Encountered an error: {err:?}");
}
}

#[tokio::main]
Expand All @@ -76,22 +81,21 @@ async fn main() -> Result<(), UStatus> {
// TODO: Add error handling if we fail to create a UPTransportVsomeip
let subscriber: Arc<dyn UTransport> = Arc::new(
UPTransportVsomeip::new_with_config(
&SERVICE_AUTHORITY.to_string(),
&REMOTE_AUTHORITY.to_string(),
SERVICE_UE_ID,
subscriber_uuri(),
&PUB_TOPIC_AUTHORITY.to_string(),
&vsomeip_config.unwrap(),
None,
)
.unwrap(),
);

let source_filter = UUri {
authority_name: PUB_TOPIC_AUTHORITY.to_string(),
ue_id: PUB_TOPIC_UE_ID as u32,
ue_version_major: PUB_TOPIC_UE_VERSION_MAJOR as u32,
resource_id: PUB_TOPIC_RESOURCE_ID as u32,
..Default::default()
};
let source_filter = UUri::try_from_parts(
PUB_TOPIC_AUTHORITY,
PUB_TOPIC_UE_ID,
PUB_TOPIC_UE_VERSION_MAJOR,
PUB_TOPIC_RESOURCE_ID,
)
.unwrap();

let publish_receiver: Arc<dyn UListener> = Arc::new(PublishReceiver);
// TODO: Need to revisit how the vsomeip config file is used in non point-to-point cases
Expand Down
Loading
Loading