提交 83cc20e9 authored 作者: Serhij S's avatar Serhij S

rvideo feature and tpl

上级 2d08b111
[package]
name = "roboplc-cli"
version = "0.1.21"
version = "0.1.22"
edition = "2021"
authors = ["Serhij S. <div@altertech.com>"]
license = "Apache-2.0"
......
......@@ -67,7 +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 {
let out = if features.contains(&"metrics") {
let mut out = if features.contains(&"metrics") {
tpl.replace(
" // METRICS",
r" roboplc::metrics_exporter()
......@@ -77,5 +77,27 @@ fn prepare_main(tpl: &str, features: &[&str]) -> String {
} else {
tpl.replace(" // METRICS\n", "")
};
out = if features.contains(&"rvideo") {
out.replace(
"// RVIDEO-SERVE",
r#"#[derive(WorkerOpts)]
#[worker_opts(cpu = 0, priority = 50, scheduling = "fifo", blocking = true)]
struct RvideoSrv {}
impl Worker<Message, Variables> for RvideoSrv {
fn run(&mut self, _context: &Context<Message, Variables>) -> WResult {
roboplc::serve_rvideo().map_err(Into::into)
}
}
"#,
)
.replace(
" // RVIDEO-SPAWN",
" controller.spawn_worker(RvideoSrv {})?;",
)
} else {
out.replace("// RVIDEO-SERVE\n", "")
.replace(" // RVIDEO-SPAWN\n", "")
};
out
}
......@@ -18,6 +18,7 @@ impl Worker<Message, Variables> for Worker1 {
}
}
// RVIDEO-SERVE
fn main() -> Result<(), Box<dyn std::error::Error>> {
roboplc::setup_panic();
roboplc::configure_logger(roboplc::LevelFilter::Info);
......@@ -27,6 +28,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
roboplc::thread_rt::prealloc_heap(10_000_000)?;
// METRICS
let mut controller = Controller::<Message, Variables>::new();
// RVIDEO-SPAWN
controller.spawn_worker(Worker1 {})?;
controller.register_signals(SHUTDOWN_TIMEOUT)?;
controller.block();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论