example packages

This commit is contained in:
2025-05-24 19:00:57 -04:00
parent 2c8043db4f
commit a5b75ddfd5
14 changed files with 44 additions and 109 deletions

View File

@@ -1,82 +0,0 @@
-- brsoa_system_config.lua
-- Global configuration
global_config = {
max_nodes = 50,
discovery_method = "broadcast",
system_name = "example_system",
log_level = "debug"
}
-- Define nodes to be launched
nodes = {
{
name = "example_node_cpp",
package = "example_package_cpp",
executable = "example_driver_cpp",
language = "cpp",
args = {"--fps=30"},
env = {SENSOR_TYPE = "lidar"}
},
{
name = "example_node_py",
package = "example_package_py",
executable = "example_package_py.py",
language = "python",
args = {"--algorithm=detection"},
env = {PYTHONPATH = "${WORKSPACE}/lib:${WORKSPACE}/include"}
},
{
name = "example_node_java",
package = "example_ui_package_java",
executable = "ExampleDisplayAppJava",
language = "java",
args = {"--resolution=720p"},
env = {JAVA_OPTS = "-Xmx1g"}
},
{
name = "example_node_rust",
package = "example_package_rust",
executable = "example_package_rust",
language = "rust",
args = {"--mode=manual"},
env = {RUST_BACKTRACE = "1"}
},
{
name = "example_node_bridge_go",
package = "example_package_go",
executable = "example_package_go",
language = "go",
args = {"--port=9090"},
env = {GOMAXPROCS = "2"}
}
}
-- Define communication setup
topics = {
{
name = "/example/example",
type = "Example",
queue_size = 5,
publishers = {"example_node"},
subscribers = {"example1", "example2"}
}
}
-- Define services
services = {
{
name = "/example/example",
type = "Example",
server = "example_server",
clients = {"example_client"}
}
}
-- Define parameters
parameters = {
{
name = "/example/example",
type = "string",
value = global_config.system_name
}
}

View File

@@ -3,19 +3,19 @@
#include <chrono> #include <chrono>
#include <thread> #include <thread>
class Example_package { class Example_cpp {
public: public:
void run() { void run() {
while (true) { while (true) {
// TODO: Implement node logic // TODO: Implement node logic
std::cout << "Running example_package" << std::endl; std::cout << "Running example_cpp" << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1)); std::this_thread::sleep_for(std::chrono::seconds(1));
} }
} }
}; };
int main(int argc, char** argv) { int main(int argc, char** argv) {
Example_package node; Example_cpp node;
node.run(); node.run();
return 0; return 0;
} }

View File

@@ -0,0 +1,4 @@
dependencies:
- common_msgs
language: cpp
name: ../exampleexample_cpp

View File

@@ -6,17 +6,17 @@ import (
"common_msgs" "common_msgs"
) )
type Example_package struct{} type Example_go struct{}
func (n *Example_package) Run() { func (n *Example_go) Run() {
for { for {
// TODO: Implement node logic // TODO: Implement node logic
fmt.Println("Running example_package") fmt.Println("Running example_go")
time.Sleep(1 * time.Second) time.Sleep(1 * time.Second)
} }
} }
func main() { func main() {
node := &Example_package{} node := &Example_go{}
node.Run() node.Run()
} }

View File

@@ -1,4 +1,4 @@
dependencies: dependencies:
- common_msgs - common_msgs
language: go language: go
name: example_package name: ../exampleexample_go

View File

@@ -1,10 +1,10 @@
import common_msgs.Messages.*; import common_msgs.Messages.*;
public class Example_package { public class Example_java {
public void run() { public void run() {
while (true) { while (true) {
// TODO: Implement node logic // TODO: Implement node logic
System.out.println("Running example_package"); System.out.println("Running example_java");
try { try {
Thread.sleep(1000); Thread.sleep(1000);
} catch (InterruptedException e) { } catch (InterruptedException e) {
@@ -14,7 +14,7 @@ public class Example_package {
} }
public static void main(String[] args) { public static void main(String[] args) {
Example_package node = new Example_package(); Example_java node = new Example_java();
node.run(); node.run();
} }
} }

View File

@@ -0,0 +1,4 @@
dependencies:
- common_msgs
language: java
name: ../exampleexample_java

View File

@@ -1,13 +1,13 @@
from common_msgs import * from common_msgs import *
import time import time
class Example_package: class Example_python:
def run(self): def run(self):
while True: while True:
# TODO: Implement node logic # TODO: Implement node logic
print(f"Running example_package") print(f"Running example_python")
time.sleep(1) time.sleep(1)
if __name__ == "__main__": if __name__ == "__main__":
node = Example_package() node = Example_python()
node.run() node.run()

View File

@@ -0,0 +1,4 @@
dependencies:
- common_msgs
language: python
name: ../exampleexample_python

View File

@@ -1,5 +1,5 @@
[package] [package]
name = "example_package" name = "example_rust"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2021"

View File

@@ -1,19 +1,19 @@
use common_msgs::*; use common_msgs::*;
use std::{thread, time}; use std::{thread, time};
struct Example_package; struct Example_rust;
impl Example_package { impl Example_rust {
fn run(&self) { fn run(&self) {
loop { loop {
// TODO: Implement node logic // TODO: Implement node logic
println!("Running example_package"); println!("Running example_rust");
thread::sleep(time::Duration::from_secs(1)); thread::sleep(time::Duration::from_secs(1));
} }
} }
} }
fn main() { fn main() {
let node = Example_package{}; let node = Example_rust{};
node.run(); node.run();
} }

View File

@@ -0,0 +1,4 @@
dependencies:
- common_msgs
language: rust
name: ../exampleexample_rust

View File

@@ -1,14 +1,14 @@
# Example Package for CPP # Example Package for Cpp
python3 ../src/brsoa_create_package.py ../example example_package cpp python3 ../src/brsoa_create_package.py ../example example_cpp cpp
# Example Package for Python # Example Package for Python
python3 ../src/brsoa_create_package.py ../example example_package python python3 ../src/brsoa_create_package.py ../example example_python python
# Example Package for Java # Example Package for Java
python3 ../src/brsoa_create_package.py ../example example_package java python3 ../src/brsoa_create_package.py ../example example_java java
# Example Package for Rust # Example Package for Rust
python3 ../src/brsoa_create_package.py ../example example_package rust python3 ../src/brsoa_create_package.py ../example example_rust rust
# Example Package for Go # Example Package for Go
python3 ../src/brsoa_create_package.py ../example example_package go python3 ../src/brsoa_create_package.py ../example example_go go

View File

@@ -147,7 +147,7 @@ def create_package(directory, package_name, language):
# Create package.bellande # Create package.bellande
with open(os.path.join(package_dir, "package.bellande"), "w") as f: with open(os.path.join(package_dir, "package.bellande"), "w") as f:
f.write(create_package_bellande(package_name, language, ["common_msgs"])) f.write(create_package_bellande(directory+package_name, language, ["common_msgs"]))
# Create source file # Create source file
source_creators = { source_creators = {
@@ -169,9 +169,10 @@ def create_package(directory, package_name, language):
source_filename = f"{package_name.capitalize()}.java" source_filename = f"{package_name.capitalize()}.java"
elif language == "rust": elif language == "rust":
source_filename = f"{package_name}.rust" source_filename = f"{package_name}.rust"
os.makedirs(os.path.join(package_dir, "src"), exist_ok=True)
with open(os.path.join(package_dir, "Cargo.toml"), "w") as f: with open(os.path.join(package_dir, "Cargo.toml"), "w") as f:
f.write(f"[package]\nname = \"{package_name}\"\nversion = \"0.1.0\"\nedition = \"2021\"\n\n[dependencies]\ncommon_msgs = {{ path = \"../../build/common_msgs\" }}\n") f.write(f"[package]\nname = \"{package_name}\"\nversion = \"0.1.0\"\nedition = \"2021\"\n\n[dependencies]\ncommon_msgs = {{ path = \"../../build/common_msgs\" }}\n")
elif language == "go": elif language == "go":
source_filename = f"{package_name}.go" source_filename = f"{package_name}.go"