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", |  "strum", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "tokio-stream", |  "tokio-stream", | ||||||
|  "uuid 0.8.2", |  "uuid", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| @ -417,7 +417,6 @@ dependencies = [ | |||||||
|  "bluer", |  "bluer", | ||||||
|  "futures", |  "futures", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "uuid 1.0.0-alpha.1", |  | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| @ -565,12 +564,6 @@ dependencies = [ | |||||||
|  "getrandom", |  "getrandom", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] |  | ||||||
| name = "uuid" |  | ||||||
| version = "1.0.0-alpha.1" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "bb3ab47baa004111b323696c6eaa2752e7356f7f77cf6b6dc7a2087368ce1ca4" |  | ||||||
| 
 |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "wasi" | name = "wasi" | ||||||
| version = "0.10.2+wasi-snapshot-preview1" | version = "0.10.2+wasi-snapshot-preview1" | ||||||
|  | |||||||
| @ -8,5 +8,4 @@ edition = "2018" | |||||||
| [dependencies] | [dependencies] | ||||||
| bluer = "0.13.1" | bluer = "0.13.1" | ||||||
| tokio = "1.15.0" | tokio = "1.15.0" | ||||||
| futures = "0.3.19" | 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::{AdapterEvent, Device}; | ||||||
| use bluer::gatt::remote::Characteristic; | use bluer::gatt::remote::Characteristic; | ||||||
| use futures::{pin_mut, StreamExt}; | 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 SERVICE_UUID: bluer::Uuid = bluer::Uuid::from_u128(0xadaf0900c33242a893bd25e905756cb8); | ||||||
| const PIXEL_DATA_UUID: bluer::Uuid = bluer::Uuid::from_u128(0xadaf0903c33242a893bd25e905756cb8); | 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)?; |                 let device = adapter.device(addr)?; | ||||||
|                 match find_neopixel_service(&device).await { |                 match find_neopixel_service(&device).await { | ||||||
|                     Ok(Some(char)) => { |                     Ok(Some(char)) => { | ||||||
|                         send_seq(char) |  | ||||||
|                         println!("found characteristic"); |                         println!("found characteristic"); | ||||||
|  |                         match send_seq(&char).await { | ||||||
|  |                             // this loop should never stop
 | ||||||
|  |                             _ => () | ||||||
|  |                         } | ||||||
|  | 
 | ||||||
|                     } |                     } | ||||||
|                     Ok(None) => { |                     Ok(None) => { | ||||||
|                         println!("characteristic not found") |                         println!("characteristic not found") | ||||||
| @ -49,13 +54,24 @@ async fn main() -> bluer::Result<()> { | |||||||
|     Ok(()) |     Ok(()) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| async fn send_seq(char: &Characteristic) -> { | async fn send_seq(char: &Characteristic) -> bluer::Result<()> { | ||||||
|     println!("  Characteristic flags : {:?}, ", char.flags().await?); |     println!("  Characteristic flags : {:?}, ", char.flags().await?); | ||||||
| 
 | 
 | ||||||
|     let base_data = vec![0x00, 0x00, 0x01]; |     let mut base_data: Vec<u8> = vec![0x00, 0x00, 0x01]; | ||||||
|     for i in 0..10 { |     let mut off_data: Vec<u8> =  vec![0x00, 0x00, 0x01]; | ||||||
| #         base_data. |     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<()> { | 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 { |     for i in 0..retries { | ||||||
|         match device.connect().await { |         match device.connect().await { | ||||||
|             Ok(()) => return Ok(()), |             Ok(()) => return Ok(()), | ||||||
|             Err(err) => { |             Err(_) => { | ||||||
|                 println!("connection error ({}), retry…", i); |                 println!("connection error ({}), retry…", i); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user