//! Демонстрирует мигание произвольного текста в выбранной позиции через `print_at`. mod common; use anyhow::Result; use m::worker::VfdWorker; fn main() -> Result<()> { // args: // 1) port (default: /dev/cu.usbmodem101) // 2) width (default: 20) // 3) delay_ms (default: 400) // 4) x (default: 1) 1-based // 5) y (default: 1) 1-based line // 6) text (default: "BLINK") let mut args = common::ExampleArgs::from_env(); let delay_ms: u64 = args.parse_or(400); let x: u8 = args.parse_or(1); let y: u8 = args.parse_or(1); let text = args.string_or("BLINK"); let text_len = text.chars().count(); let worker = VfdWorker::start(args.config)?; let vfd = worker.handle(); vfd.clear(); let _ = vfd.print_line_diff(1, "blink demo (print_at)"); if y != 1 { let _ = vfd.print_at(1, y, ""); // просто чтобы “активировать” строку у некоторых дисплеев } let blank = " ".repeat(text_len); let mut on = false; loop { if on { let _ = vfd.print_at(x, y, &blank); } else { let _ = vfd.print_at(x, y, &text); } on = !on; common::sleep_ms(delay_ms); } }