From 3ab2c5aeca794c9ae41dcbd59a69ef34f09eae43 Mon Sep 17 00:00:00 2001 From: jie Date: Mon, 8 Jul 2024 00:37:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=B2=E5=8F=A3=E6=9C=8D=E5=8A=A1=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E8=BF=94=E5=9B=9E=E7=9A=84=E5=8F=91=E9=80=81=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96=EF=BC=8C=20?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=B1=BB=E6=B7=BB=E5=8A=A0=E5=86=99=E3=80=81?= =?UTF-8?q?=E6=A3=80=E6=9F=A5IMEI/SN=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/serial_service.rs | 10 ++++++++-- src/services/work_service.rs | 28 +++++++++++++++++++++++----- 2 files changed, 31 insertions(+), 7 deletions(-) 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