Compare commits
	
		
			3 commits
		
	
	
		
			49ba2eb018
			...
			b33fe3ccaf
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | b33fe3ccaf | ||
|   | 501a82760d | ||
|   | b1f432ef3f | 
					 8 changed files with 192 additions and 0 deletions
				
			
		
							
								
								
									
										1
									
								
								beamer/client/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								beamer/client/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | target | ||||||
							
								
								
									
										12
									
								
								beamer/client/Cargo.toml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								beamer/client/Cargo.toml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,12 @@ | ||||||
|  | [package] | ||||||
|  | name = "client" | ||||||
|  | version = "0.1.0" | ||||||
|  | edition = "2021" | ||||||
|  | 
 | ||||||
|  | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||||
|  | 
 | ||||||
|  | [dependencies] | ||||||
|  | semserialize = {path='../libs/semserialize'} | ||||||
|  | postcard = "1.0.0" | ||||||
|  | serde = { version = "1.0.*"}    | ||||||
|  | argh = "0.1.13" | ||||||
							
								
								
									
										24
									
								
								beamer/client/src/main.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								beamer/client/src/main.rs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | ||||||
|  | 
 | ||||||
|  | use semserialize::SemLine; | ||||||
|  | use serde::{Serialize, Deserialize}; | ||||||
|  | use postcard::{from_bytes}; | ||||||
|  | 
 | ||||||
|  | use argh::FromArgs; | ||||||
|  | use std::net; | ||||||
|  | #[derive(FromArgs)] | ||||||
|  | ///Config options for the client
 | ||||||
|  | struct Config { | ||||||
|  | ///listener IP, defaults to 0.0.0.0
 | ||||||
|  | #[argh(option, default = "String::from(\"0.0.0.0\")",short='i')] | ||||||
|  | ip: String, | ||||||
|  | ///listener port
 | ||||||
|  | #[argh(option, default = "2137",short='p')] | ||||||
|  | udpport: usize, | ||||||
|  | } | ||||||
|  | fn main() { | ||||||
|  |     let config:Config = argh::from_env(); | ||||||
|  |     println!("UDP listener Port is {}",config.udpport); | ||||||
|  |     let socket_addr:std::net::SocketAddr = format!("{}:{}",config.ip,config.udpport).parse::<std::net::SocketAddr>().unwrap_or("0.0.0.0:2137".parse::<std::net::SocketAddr>().unwrap()); | ||||||
|  |     let udpsocket = std::net::UdpSocket::bind(socket_addr).expect("couldn't bind to address"); | ||||||
|  | 
 | ||||||
|  | } | ||||||
							
								
								
									
										1
									
								
								beamer/libs/semserialize/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								beamer/libs/semserialize/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | target | ||||||
							
								
								
									
										96
									
								
								beamer/libs/semserialize/Cargo.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								beamer/libs/semserialize/Cargo.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,96 @@ | ||||||
|  | # This file is automatically @generated by Cargo. | ||||||
|  | # It is not intended for manual editing. | ||||||
|  | version = 3 | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "itoa" | ||||||
|  | version = "1.0.14" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "memchr" | ||||||
|  | version = "2.7.4" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "proc-macro2" | ||||||
|  | version = "1.0.92" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" | ||||||
|  | dependencies = [ | ||||||
|  |  "unicode-ident", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "quote" | ||||||
|  | version = "1.0.38" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" | ||||||
|  | dependencies = [ | ||||||
|  |  "proc-macro2", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "ryu" | ||||||
|  | version = "1.0.18" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "semserialize" | ||||||
|  | version = "0.1.0" | ||||||
|  | dependencies = [ | ||||||
|  |  "serde", | ||||||
|  |  "serde_json", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "serde" | ||||||
|  | version = "1.0.216" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" | ||||||
|  | dependencies = [ | ||||||
|  |  "serde_derive", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "serde_derive" | ||||||
|  | version = "1.0.216" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" | ||||||
|  | dependencies = [ | ||||||
|  |  "proc-macro2", | ||||||
|  |  "quote", | ||||||
|  |  "syn", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "serde_json" | ||||||
|  | version = "1.0.134" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" | ||||||
|  | dependencies = [ | ||||||
|  |  "itoa", | ||||||
|  |  "memchr", | ||||||
|  |  "ryu", | ||||||
|  |  "serde", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "syn" | ||||||
|  | version = "2.0.92" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "70ae51629bf965c5c098cc9e87908a3df5301051a9e087d6f9bef5c9771ed126" | ||||||
|  | dependencies = [ | ||||||
|  |  "proc-macro2", | ||||||
|  |  "quote", | ||||||
|  |  "unicode-ident", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "unicode-ident" | ||||||
|  | version = "1.0.14" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" | ||||||
							
								
								
									
										14
									
								
								beamer/libs/semserialize/Cargo.toml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								beamer/libs/semserialize/Cargo.toml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | [package] | ||||||
|  | name = "semserialize" | ||||||
|  | version = "0.1.0" | ||||||
|  | edition = "2021" | ||||||
|  | 
 | ||||||
|  | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||||
|  | 
 | ||||||
|  | [dependencies]  | ||||||
|  | # By default, `serde` has the `std` feature enabled, which makes it unsuitable for embedded targets | ||||||
|  | # disabling default-features fixes this | ||||||
|  | serde = { version = "1.0", features = ["derive"] } | ||||||
|  | 
 | ||||||
|  | [dev-dependencies] | ||||||
|  | serde_json = "1.0.134" | ||||||
							
								
								
									
										17
									
								
								beamer/libs/semserialize/shell.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								beamer/libs/semserialize/shell.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,17 @@ | ||||||
|  | { pkgs ? import <nixpkgs> {}}: | ||||||
|  | let rust-toolchain = with pkgs; symlinkJoin { | ||||||
|  |     name = "rust-toolchain"; | ||||||
|  |     paths = [ | ||||||
|  |       rustc | ||||||
|  |       cargo | ||||||
|  |       rustfmt | ||||||
|  |       rust-analyzer | ||||||
|  |       clippy | ||||||
|  |       rustPlatform.rustcSrc | ||||||
|  |     ]; | ||||||
|  |   }; | ||||||
|  | in pkgs.mkShell { | ||||||
|  |   RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}"; | ||||||
|  |   buildInputs = [rust-toolchain]; | ||||||
|  |   RUST_BACKTRACE = 1; | ||||||
|  | } | ||||||
							
								
								
									
										27
									
								
								beamer/libs/semserialize/src/lib.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								beamer/libs/semserialize/src/lib.rs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,27 @@ | ||||||
|  | #[macro_use] | ||||||
|  | use serde::{Serialize, Deserialize}; | ||||||
|  | 
 | ||||||
|  | // How many lines are there from HIGHEST to LOWEST
 | ||||||
|  | pub const HEIGHT: usize = 32; | ||||||
|  | // "Pixels" from left to right
 | ||||||
|  | pub const WIDTH: usize = 32; | ||||||
|  | #[derive(Serialize, Deserialize, Debug,PartialEq)] | ||||||
|  | pub struct SemLine{ | ||||||
|  |     line: u32, | ||||||
|  |     pixels:[u8;WIDTH] | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #[cfg(test)] | ||||||
|  | mod tests { | ||||||
|  |     use super::*; | ||||||
|  |     use serde_json; | ||||||
|  |     #[test] | ||||||
|  |     fn test_serialize(){ | ||||||
|  |         let test_struct: SemLine = SemLine{line:0,pixels:[0;WIDTH]}; | ||||||
|  |         let serialized = serde_json::to_string(&test_struct).unwrap(); | ||||||
|  |         let deserialized:SemLine = serde_json::from_str(&serialized).unwrap(); | ||||||
|  |         assert_eq!(test_struct,deserialized); | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue