extern crate gamesense; extern crate anyhow; extern crate serde_json; use anyhow::{Result}; use gamesense::client::GameSenseClient; use gamesense::handler::screen; use serde_json::json; fn main() -> Result<()> { let mut client = GameSenseClient::new("SCREEN_IMAGE", "Example OLED Image Event", "ptrstr", None)?; let width = 128; let height = 48; let handler = screen::ScreenHandler::new(&format!("screened-{}x{}", width, height), "one", screen::ScreenDataDefinition::StaticScreenDataDefinition(screen::StaticScreenDataDefinition( vec!( screen::ScreenFrameData::ImageFrameData(screen::ImageFrameData { has_text: false, frame_modifiers_data: Some(screen::FrameModifiersData { length_millis: Some(2000), icon_id: None, repeats: None }), image_data: vec![255; width * height / 8], }), ) )) ); client.bind_event("EVENT", None, None, None, None, vec![handler])?; client.start_heartbeat(); client.trigger_event_frame("EVENT", 0, json!({}))?; client.stop_heartbeat()?; Ok(()) }