提交 5e6638eb authored 作者: Serhij S's avatar Serhij S

rflow serve

上级 5bb755c1
......@@ -533,7 +533,7 @@ dependencies = [
[[package]]
name = "roboplc-cli"
version = "0.1.21"
version = "0.1.22"
dependencies = [
"ansi_term",
"clap",
......
......@@ -67,6 +67,7 @@ fn add_dependency(name: &str, features: &[&str]) -> Result<(), Box<dyn std::erro
#[allow(clippy::let_and_return)]
fn prepare_main(tpl: &str, features: &[&str]) -> String {
/// METRICS
let mut out = if features.contains(&"metrics") {
tpl.replace(
" // METRICS",
......@@ -77,6 +78,7 @@ fn prepare_main(tpl: &str, features: &[&str]) -> String {
} else {
tpl.replace(" // METRICS\n", "")
};
/// RVIDEO
out = if features.contains(&"rvideo") {
out.replace(
"// RVIDEO-SERVE",
......@@ -99,5 +101,28 @@ impl Worker<Message, Variables> for RvideoSrv {
out.replace("// RVIDEO-SERVE\n", "")
.replace(" // RVIDEO-SPAWN\n", "")
};
// RFLOW
out = if features.contains(&"rflow") {
out.replace(
"// RFLOW-SERVE",
r#"#[derive(WorkerOpts)]
#[worker_opts(cpu = 0, priority = 50, scheduling = "fifo", blocking = true)]
struct RflowSrv {}
impl Worker<Message, Variables> for RvideoSrv {
fn run(&mut self, _context: &Context<Message, Variables>) -> WResult {
roboplc::serve_rflow().map_err(Into::into)
}
}
"#,
)
.replace(
" // RFLOW-SPAWN",
" controller.spawn_worker(RflowSrv {})?;",
)
} else {
out.replace("// RFLOW-SERVE\n", "")
.replace(" // RFLOW-SPAWN\n", "")
};
out
}
......@@ -19,6 +19,7 @@ impl Worker<Message, Variables> for Worker1 {
}
// RVIDEO-SERVE
// RFLOW-SERVE
fn main() -> Result<(), Box<dyn std::error::Error>> {
roboplc::setup_panic();
roboplc::configure_logger(roboplc::LevelFilter::Info);
......@@ -29,6 +30,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
// METRICS
let mut controller = Controller::<Message, Variables>::new();
// RVIDEO-SPAWN
// RFLOW-SPAWN
controller.spawn_worker(Worker1 {})?;
controller.register_signals(SHUTDOWN_TIMEOUT)?;
controller.block();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论