Rust client sending 100% brightness and first 8 LEDs

This commit is contained in:
Ollo 2023-05-03 21:24:12 +02:00
parent a8ffc7671d
commit 7bfb51bc58
4 changed files with 77 additions and 0 deletions

View File

@ -1,3 +1,27 @@
# LED-Board
## Project Page
[C3MA](https://www.ccc-mannheim.de/wiki/LED-Board)
## Controller
* PlatformIO
### Hardware
* Arduino MEGA2560
* Ethernet shield
### Firmware
* PlatformIO based
see **platformio.ini**
## Client Software
stored in folder **/client**
### Dependency
* rust
* cargo
### Build
go to **/client**
* cargo build
* cargo run

2
client/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/target
/Cargo.lock

8
client/Cargo.toml Normal file
View File

@ -0,0 +1,8 @@
[package]
name = "LEDboardClient"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

43
client/src/main.rs Normal file
View File

@ -0,0 +1,43 @@
use std::net::UdpSocket;
use std::env;
const IMAGE_WIDTH_BYTE : usize = (5*32) / 8; /* one byte contains 8 lets, one in each bit */
const IMAGE_HEIGHT_BYTE : usize = 40;
fn send_package(ipaddress: String) {
let mut image = [0; (IMAGE_WIDTH_BYTE*IMAGE_HEIGHT_BYTE)+1];
image[0] = 0xFF;
image[1] = 0xFF;
let socket = UdpSocket::bind("0.0.0.0:4242").expect("couldn't bind to address");
socket.send_to(&image, ipaddress + ":4242").expect("couldn't send data");
println!("Packet sent");
}
fn help() {
println!("usage:
LEDboardClient <ip address>");
println!("one argument necessary!");
println!("<ip address>");
}
fn main() {
let args: Vec<String> = env::args().collect();
match args.len() {
// no arguments passed
1 => {
// show a help message
help();
},
// one argument passed
2 => {
let ip = &args[1];
send_package(ip.to_string());
},
// all the other cases
_ => {
// show a help message
help();
}
}
}