random/
random.rs

1use serde_json::json;
2use serialstudio::{
3    data::{DataGroup, DataSet, TelemetryFrame, WidgetSubType},
4    SerialStudioSource,
5};
6use std::{thread, time::Duration};
7
8fn main() {
9    // Create server
10    let mut server = SerialStudioSource::new();
11
12    // Start
13    server.start("localhost:8019".to_string());
14
15    // Data loop
16    loop {
17        // Get a random-ish value (using only std)
18        let random = Box::into_raw(Box::new(123)) as usize;
19
20        // Send a frame
21        server.publish(TelemetryFrame {
22            title: "Random number generator".to_string(),
23            groups: vec![DataGroup {
24                title: "Main group".to_string(),
25                widget_type: None,
26                datasets: vec![DataSet {
27                    title: Some("Random Number".to_string()),
28                    value: json!(random),
29                    graph: None,
30                    unit: None,
31                    w_type: None,
32                }],
33            }],
34        });
35
36        // Wait a bit
37        thread::sleep(Duration::from_millis(500));
38    }
39}