diff --git a/src/services/serial_service.rs b/src/services/serial_service.rs index affb9be..79b6e13 100644 --- a/src/services/serial_service.rs +++ b/src/services/serial_service.rs @@ -43,8 +43,14 @@ impl SerialService { pub fn send_command_with_target AsRef>(&mut self, command: T, timeout: Option, target: T) -> Result { let target_str = target.as_ref(); - _ = return match self.send_command(command, timeout) { - Ok(resp) => { Ok(resp.contains(target_str)) }, + return match self.send_command(command, timeout) { + Ok(resp) => { + if resp.contains(target_str){ + return Ok(true); + }else{ + return Err(resp) + } + }, Err(err) => Err(err) }; } diff --git a/src/services/work_service.rs b/src/services/work_service.rs index afdf6c0..ededd6e 100644 --- a/src/services/work_service.rs +++ b/src/services/work_service.rs @@ -1,3 +1,4 @@ +use crate::models::work_model::WorkModel; use crate::services::{serial_service::SerialService, sqlite_service::SqliteService, excel_service::ExcelService}; @@ -9,10 +10,27 @@ pub struct WorkService { impl Default for WorkService { fn default() -> Self { - WorkService { - serial_service: *SerialService::new("COM3").unwrap(), - sqlite_service: SqliteService::default(), - excel_service: ExcelService::new("a").unwrap() - } + todo!() + } +} + +impl WorkService { + fn write_imei(&mut self, imei: String) -> Result { + let write_imei_command = format!("AT+ECCGSN=\"IMEI\",\"{}\"", imei); + return self.serial_service.send_command_with_target(write_imei_command, None, "OK".to_string()); + } + fn write_sn(&mut self, sn: String) -> Result { + let write_sn_command = format!("AT+ECCGSN=\"SN\",\"{}\"", sn); + return self.serial_service.send_command_with_target(write_sn_command, None, "OK".to_string()); + } + + fn check_imei(&mut self, imei: &str) -> Result { + let check_imei_command = "AT+CGSN=1".to_string(); + return self.serial_service.send_command_with_target(check_imei_command, None, imei.to_string()); + } + + fn check_sn(&mut self, sn: &str) -> Result { + let check_sn_command = "AT+CGSN=0".to_string(); + return self.serial_service.send_command_with_target(check_sn_command, None, sn.to_string()); } } \ No newline at end of file