Skip to content
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
26 changes: 16 additions & 10 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,13 @@ bazel_dep(name = "platforms", version = "1.0.0")
bazel_dep(name = "score_bazel_platforms", version = "0.1.1")

# SCORE bazel module dependencies
bazel_dep(name = "score_tooling", version = "1.1.0")
bazel_dep(name = "score_tooling", version = "1.1.2")
git_override(
module_name = "score_tooling",
commit = "58581abf75b321defbb53ffbad3b65e7f62b5082",
remote = "https://github.com/eclipse-score/tooling.git",
)

bazel_dep(name = "score_crates", version = "0.0.6")
git_override(
module_name = "score_crates",
Expand All @@ -41,14 +47,14 @@ bazel_dep(name = "score_communication", version = "0.1.2")

git_override(
module_name = "score_communication",
commit = "dfc9b0f6fd2ae43cecdf11f4684ee2aa628faaf5",
commit = "ced8c0e09d136c5de430268fd2270878b6f297ee",
remote = "https://github.com/eclipse-score/communication.git",
)

bazel_dep(name = "score_baselibs", version = "0.2.2")
bazel_dep(name = "score_baselibs", version = "0.2.4")
git_override(
module_name = "score_baselibs",
commit = "6951cd2a3045fb7a053acf203833a17704c22ccf",
commit = "052c2f271be4239f97182b164f4903b8c88d6c72",
remote = "https://github.com/eclipse-score/baselibs.git",
)

Expand All @@ -60,11 +66,11 @@ git_override(
remote = "https://github.com/bmw-software-engineering/trlc.git",
)

bazel_dep(name = "score_logging", version = "0.0.5")

single_version_override(
module_name = "score_docs_as_code",
version = "3.0.0",
bazel_dep(name = "score_logging", version = "0.1.2")
git_override(
module_name = "score_logging",
commit = "2833f5d6f28cbd8be1f3037dfa1217aa1ec94848",
remote = "https://github.com/eclipse-score/logging.git",
)

bazel_dep(name = "rules_boost", repo_name = "com_github_nelhage_rules_boost")
Expand Down Expand Up @@ -92,7 +98,7 @@ bazel_dep(name = "rules_proto", version = "7.1.0")
bazel_dep(name = "aspect_rules_lint", version = "2.0.0")
bazel_dep(name = "buildifier_prebuilt", version = "8.2.0.2")
bazel_dep(name = "googletest", version = "1.17.0")
bazel_dep(name = "score_docs_as_code", version = "3.0.0")
bazel_dep(name = "score_docs_as_code", version = "3.0.1")

# Toolchains
bazel_dep(name = "rules_cc", version = "0.2.16")
Expand Down
4 changes: 2 additions & 2 deletions examples/rust/cycle-benchmark/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ rust_library(
],
visibility = ["//visibility:public"],
deps = [
"//src/feo:libfeo_recording_rust",
"//src/feo:libfeo_rust",
"//src/feo-com:libfeo_com_rust",
"//src/feo-time:libfeo_time_rust",
"//src/feo-tracing:libfeo_tracing_rust",
Expand All @@ -54,7 +54,7 @@ rust_binary(
visibility = ["//visibility:public"],
deps = [
":libcycle_benchmark_rust",
"//src/feo:libfeo_recording_rust",
"//src/feo:libfeo_rust",
"//src/feo-time:libfeo_time_rust",
"//src/feo-tracing:libfeo_tracing_rust",
"@score_baselibs_rust//src/log/score_log",
Expand Down
88 changes: 0 additions & 88 deletions examples/rust/cycle-benchmark/src/bin/cycle_bench.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@

use cycle_benchmark::config::{ApplicationConfig, SignallingType};
use feo::ids::AgentId;
use feo::recording::recorder::RecordingRules;
use feo::recording::registry::TypeRegistry;
use feo_time::Duration;

const DEFAULT_FEO_CYCLE_TIME: Duration = Duration::from_millis(5);
Expand All @@ -31,8 +29,6 @@ fn main() {
run_as_primary(params, app_config);
} else if app_config.secondaries().contains(&params.agent_id) {
run_as_secondary(params, app_config);
} else if app_config.recorders().contains(&params.agent_id) {
run_as_recorder(params, app_config);
} else {
eprintln!(
"ERROR: Agent or recorder id {} not defined in system configuration",
Expand Down Expand Up @@ -96,34 +92,6 @@ fn run_as_secondary(params: Params, app_config: ApplicationConfig) {
}
}

fn run_as_recorder(params: Params, app_config: ApplicationConfig) {
let signalling = app_config.signalling();
println!(
"Starting recorder {} using signalling {:?}",
params.agent_id, signalling
);

// the benchmarking application does not exchange data,
// so have an empty type registry and an empty set of recording rules
let registry = TypeRegistry::default();
let rules: RecordingRules = Default::default();

match signalling {
SignallingType::DirectMpsc => {
let config = direct_mpsc::make_recorder_config(params, app_config, &registry, rules);
direct_mpsc::Recorder::new(config).run();
},
signalling @ SignallingType::DirectTcp | signalling @ SignallingType::DirectUnix => {
let config = direct_sockets::make_recorder_config(params, app_config, &registry, rules, signalling);
direct_sockets::Recorder::new(config).run();
},
signalling @ SignallingType::RelayedTcp | signalling @ SignallingType::RelayedUnix => {
let config = relayed_sockets::make_recorder_config(params, app_config, &registry, rules, signalling);
relayed_sockets::Recorder::new(config).run();
},
}
}

/// Parameters of the primary
struct Params {
/// Agent ID
Expand Down Expand Up @@ -162,11 +130,8 @@ impl Params {
mod direct_mpsc {
use super::{Duration, Params};
use cycle_benchmark::config::ApplicationConfig;
use feo::recording::recorder::RecordingRules;
use feo::recording::registry::TypeRegistry;

pub(super) use feo::agent::direct::primary_mpsc::{Primary, PrimaryConfig};
pub(super) use feo::agent::direct::recorder::{Recorder, RecorderConfig};
pub(super) use feo::agent::direct::secondary::{Secondary, SecondaryConfig};

pub(super) fn make_primary_config(params: Params, app_config: ApplicationConfig) -> PrimaryConfig {
Expand Down Expand Up @@ -195,26 +160,14 @@ mod direct_mpsc {
pub(super) fn make_secondary_config(_: Params, _: ApplicationConfig) -> SecondaryConfig {
panic!("direct mpsc signalling does not support secondary agents");
}

pub(super) fn make_recorder_config(
_: Params,
_: ApplicationConfig,
_: &TypeRegistry,
_: RecordingRules,
) -> RecorderConfig<'_> {
panic!("direct mpsc signalling does not support recorders");
}
}

mod direct_sockets {
use super::{Duration, Params};
use cycle_benchmark::config::{ApplicationConfig, SignallingType};
use feo::agent::NodeAddress;
use feo::recording::recorder::RecordingRules;
use feo::recording::registry::TypeRegistry;

pub(super) use feo::agent::direct::primary::{Primary, PrimaryConfig};
pub(super) use feo::agent::direct::recorder::{Recorder, RecorderConfig};
pub(super) use feo::agent::direct::secondary::{Secondary, SecondaryConfig};

fn endpoint(app_config: &ApplicationConfig, signalling: SignallingType) -> NodeAddress {
Expand Down Expand Up @@ -261,35 +214,14 @@ mod direct_sockets {
endpoint: endpoint(&app_config, signalling),
}
}

pub(super) fn make_recorder_config(
params: Params,
app_config: ApplicationConfig,
type_registry: &TypeRegistry,
recording_rules: RecordingRules,
signalling: SignallingType,
) -> RecorderConfig<'_> {
let agent_id = params.agent_id;
RecorderConfig {
id: agent_id,
record_file: "./rec.bin",
rules: recording_rules,
registry: type_registry,
receive_timeout: Duration::from_secs(10),
endpoint: endpoint(&app_config, signalling),
}
}
}

mod relayed_sockets {
use super::{Duration, Params};
use cycle_benchmark::config::{ApplicationConfig, SignallingType};
use feo::agent::NodeAddress;
use feo::recording::recorder::RecordingRules;
use feo::recording::registry::TypeRegistry;

pub(super) use feo::agent::relayed::primary::{Primary, PrimaryConfig};
pub(super) use feo::agent::relayed::recorder::{Recorder, RecorderConfig};
pub(super) use feo::agent::relayed::secondary::{Secondary, SecondaryConfig};

fn endpoints(app_config: &ApplicationConfig, signalling: SignallingType) -> (NodeAddress, NodeAddress) {
Expand Down Expand Up @@ -346,24 +278,4 @@ mod relayed_sockets {
bind_address_receivers: endpoints.1,
}
}

pub(super) fn make_recorder_config(
params: Params,
app_config: ApplicationConfig,
type_registry: &TypeRegistry,
recording_rules: RecordingRules,
signalling: SignallingType,
) -> RecorderConfig<'_> {
let agent_id = params.agent_id;
let endpoints = endpoints(&app_config, signalling);
RecorderConfig {
id: agent_id,
record_file: "./rec.bin",
rules: recording_rules,
registry: type_registry,
receive_timeout: Duration::from_secs(10),
bind_address_senders: endpoints.0,
bind_address_receivers: endpoints.1,
}
}
}
76 changes: 56 additions & 20 deletions examples/rust/mini-adas/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ rust_library(
name = "libmini_adas_rust",
srcs = [
"src/activities/components.rs",
"src/activities/input.rs",
"src/activities/mod.rs",
"src/activities/output.rs",
"src/config.rs",
"src/lib.rs",
],
Expand All @@ -26,52 +28,42 @@ rust_library(
"signalling_relayed_tcp",
],
crate_name = "mini_adas",
proc_macro_deps = [
"//src/feo-cpp-macros:feo_cpp_macros_rust",
],
visibility = ["//visibility:public"],
deps = [
"//examples/rust/mini-adas/mini-adas-gen:mini_adas_gen_rs",
"//src/feo:libfeo_rust",
"//src/feo-com:libfeo_com_rust",
"//src/feo-cpp-build:libfeo_cpp_build_rust",
"//src/feo-time:libfeo_time_rust",
"//src/feo-tracing:libfeo_tracing_rust",
"@score_baselibs_rust//src/log/score_log",
"@score_communication//score/mw/com/impl/rust/com-api/com-api",
"@score_crates//:tracing",
],
)

rust_library(
name = "libmini_adas_recording_rust",
name = "libmini_adas_rust_mw_com",
srcs = [
"src/activities/components.rs",
"src/activities/input.rs",
"src/activities/mod.rs",
"src/activities/output.rs",
"src/config.rs",
"src/lib.rs",
],
crate_features = [
"com_linux_shm",
"recording",
"signalling_direct_tcp",
"com_mw",
"signalling_relayed_tcp",
],
crate_name = "mini_adas",
proc_macro_deps = [
"//src/feo-cpp-macros:feo_cpp_macros_rust",
],
visibility = ["//visibility:public"],
deps = [
"//examples/rust/mini-adas/mini-adas-gen:mini_adas_gen_rs",
"//src/feo:libfeo_recording_rust",
"//src/feo-com:libfeo_com_rust",
"//src/feo-cpp-build:libfeo_cpp_build_rust",
"//examples/rust/mini-adas/mini-adas-gen:mini_adas_gen_rs_mw_com",
"//src/feo:libfeo_rust",
"//src/feo-com:libfeo_com_rust_mw_com",
"//src/feo-time:libfeo_time_rust",
"//src/feo-tracing:libfeo_tracing_rust",
"@score_baselibs_rust//src/log/score_log",
"@score_communication//score/mw/com/impl/rust/com-api/com-api",
"@score_crates//:postcard",
"@score_crates//:serde",
"@score_crates//:tracing",
],
)
Expand All @@ -82,6 +74,27 @@ rust_binary(
"src/bin/adas_primary.rs",
],
crate_features = ["signalling_relayed_tcp"],
visibility = ["//visibility:public"],
deps = [
":libmini_adas_rust",
"//src/feo:libfeo_rust",
"//src/feo-com:libfeo_com_rust",
"//src/feo-time:libfeo_time_rust",
"//src/feo-tracing:libfeo_tracing_rust",
"@score_baselibs_rust//src/log/score_log",
"@score_baselibs_rust//src/log/stdout_logger",
],
)

rust_binary(
name = "adas_primary_mw_com",
srcs = [
"src/bin/adas_primary.rs",
],
crate_features = [
"signalling_relayed_tcp",
"com_mw",
],
data = [
"etc/logging.json",
"etc/mw_com_config.json",
Expand All @@ -96,8 +109,9 @@ rust_binary(
],
visibility = ["//visibility:public"],
deps = [
":libmini_adas_rust",
":libmini_adas_rust_mw_com",
"//src/feo:libfeo_rust",
"//src/feo-com:libfeo_com_rust_mw_com",
"//src/feo-time:libfeo_time_rust",
"//src/feo-tracing:libfeo_tracing_rust",
"@score_baselibs_rust//src/log/score_log",
Expand All @@ -112,6 +126,27 @@ rust_binary(
"src/bin/adas_secondary.rs",
],
crate_features = ["signalling_relayed_tcp"],
visibility = ["//visibility:public"],
deps = [
":libmini_adas_rust",
"//src/feo:libfeo_rust",
"//src/feo-com:libfeo_com_rust",
"//src/feo-time:libfeo_time_rust",
"//src/feo-tracing:libfeo_tracing_rust",
"@score_baselibs_rust//src/log/score_log",
"@score_baselibs_rust//src/log/stdout_logger",
],
)

rust_binary(
name = "adas_secondary_mw_com",
srcs = [
"src/bin/adas_secondary.rs",
],
crate_features = [
"signalling_relayed_tcp",
"com_mw",
],
data = [
"etc/logging.json",
"etc/mw_com_config.json",
Expand All @@ -126,8 +161,9 @@ rust_binary(
],
visibility = ["//visibility:public"],
deps = [
":libmini_adas_rust",
":libmini_adas_rust_mw_com",
"//src/feo:libfeo_rust",
"//src/feo-com:libfeo_com_rust_mw_com",
"//src/feo-time:libfeo_time_rust",
"//src/feo-tracing:libfeo_tracing_rust",
"@score_baselibs_rust//src/log/score_log",
Expand Down
Loading
Loading