add small routine to send data
This commit is contained in:
		
							parent
							
								
									534b300931
								
							
						
					
					
						commit
						33da38381a
					
				
							
								
								
									
										9
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										9
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @ -39,7 +39,7 @@ dependencies = [ | ||||
|  "strum", | ||||
|  "tokio", | ||||
|  "tokio-stream", | ||||
|  "uuid 0.8.2", | ||||
|  "uuid", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| @ -417,7 +417,6 @@ dependencies = [ | ||||
|  "bluer", | ||||
|  "futures", | ||||
|  "tokio", | ||||
|  "uuid 1.0.0-alpha.1", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| @ -565,12 +564,6 @@ dependencies = [ | ||||
|  "getrandom", | ||||
| ] | ||||
| 
 | ||||
| [[package]] | ||||
| name = "uuid" | ||||
| version = "1.0.0-alpha.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "bb3ab47baa004111b323696c6eaa2752e7356f7f77cf6b6dc7a2087368ce1ca4" | ||||
| 
 | ||||
| [[package]] | ||||
| name = "wasi" | ||||
| version = "0.10.2+wasi-snapshot-preview1" | ||||
|  | ||||
| @ -9,4 +9,3 @@ edition = "2018" | ||||
| bluer = "0.13.1" | ||||
| tokio = "1.15.0" | ||||
| futures = "0.3.19" | ||||
| uuid = "1.0.0-alpha.1" | ||||
							
								
								
									
										30
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								src/main.rs
									
									
									
									
									
								
							| @ -1,7 +1,8 @@ | ||||
| use bluer::{AdapterEvent, Device}; | ||||
| use bluer::gatt::remote::Characteristic; | ||||
| use futures::{pin_mut, StreamExt}; | ||||
| use std::error::Error; | ||||
| use std::time::Duration; | ||||
| use tokio::time::sleep; | ||||
| 
 | ||||
| const SERVICE_UUID: bluer::Uuid = bluer::Uuid::from_u128(0xadaf0900c33242a893bd25e905756cb8); | ||||
| const PIXEL_DATA_UUID: bluer::Uuid = bluer::Uuid::from_u128(0xadaf0903c33242a893bd25e905756cb8); | ||||
| @ -25,8 +26,12 @@ async fn main() -> bluer::Result<()> { | ||||
|                 let device = adapter.device(addr)?; | ||||
|                 match find_neopixel_service(&device).await { | ||||
|                     Ok(Some(char)) => { | ||||
|                         send_seq(char) | ||||
|                         println!("found characteristic"); | ||||
|                         match send_seq(&char).await { | ||||
|                             // this loop should never stop
 | ||||
|                             _ => () | ||||
|                         } | ||||
| 
 | ||||
|                     } | ||||
|                     Ok(None) => { | ||||
|                         println!("characteristic not found") | ||||
| @ -49,13 +54,24 @@ async fn main() -> bluer::Result<()> { | ||||
|     Ok(()) | ||||
| } | ||||
| 
 | ||||
| async fn send_seq(char: &Characteristic) -> { | ||||
| async fn send_seq(char: &Characteristic) -> bluer::Result<()> { | ||||
|     println!("  Characteristic flags : {:?}, ", char.flags().await?); | ||||
| 
 | ||||
|     let base_data = vec![0x00, 0x00, 0x01]; | ||||
|     for i in 0..10 { | ||||
| #         base_data. | ||||
|     let mut base_data: Vec<u8> = vec![0x00, 0x00, 0x01]; | ||||
|     let mut off_data: Vec<u8> =  vec![0x00, 0x00, 0x01]; | ||||
|     for _ in 0..10 { | ||||
|         base_data.append(&mut vec![0xff, 0x00, 0x00]); | ||||
|         off_data.append(&mut vec![0x00, 0x00, 0x00]); | ||||
|     } | ||||
| 
 | ||||
|     loop { | ||||
|         char.write(&*base_data).await?; | ||||
|         sleep(Duration::from_secs(1)).await; | ||||
|         char.write(&*off_data).await?; | ||||
|         sleep(Duration::from_secs(1)).await; | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| async fn connect(device: &Device, retries: u8) -> bluer::Result<()> { | ||||
| @ -65,7 +81,7 @@ async fn connect(device: &Device, retries: u8) -> bluer::Result<()> { | ||||
|     for i in 0..retries { | ||||
|         match device.connect().await { | ||||
|             Ok(()) => return Ok(()), | ||||
|             Err(err) => { | ||||
|             Err(_) => { | ||||
|                 println!("connection error ({}), retry…", i); | ||||
|             } | ||||
|         } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user