修复警告
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
				
			|||||||
use fltk::{*, prelude::*};
 | 
					use fltk::{*};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::services::ui_service::UiService;
 | 
					use crate::services::ui_service::UiService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,3 @@
 | 
				
			|||||||
use std::fs::File;
 | 
					 | 
				
			||||||
use std::io::BufReader;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use anyhow::Result;
 | 
					use anyhow::Result;
 | 
				
			||||||
use calamine::{Data, DataType, open_workbook, Reader, Xlsx};
 | 
					use calamine::{Data, DataType, open_workbook, Reader, Xlsx};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -8,7 +5,6 @@ use crate::models::work_model::WorkModel;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
pub(crate) struct ExcelService {
 | 
					pub(crate) struct ExcelService {
 | 
				
			||||||
    current_line: usize,
 | 
					    current_line: usize,
 | 
				
			||||||
    work_book: Xlsx<BufReader<File>>,
 | 
					 | 
				
			||||||
    sheet: calamine::Range<Data>,
 | 
					    sheet: calamine::Range<Data>,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -27,7 +23,6 @@ impl ExcelService {
 | 
				
			|||||||
        };
 | 
					        };
 | 
				
			||||||
        let mut service = ExcelService {
 | 
					        let mut service = ExcelService {
 | 
				
			||||||
            current_line: 0,
 | 
					            current_line: 0,
 | 
				
			||||||
            work_book,
 | 
					 | 
				
			||||||
            sheet,
 | 
					            sheet,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        service.current_line = service.find_first_useful_line();
 | 
					        service.current_line = service.find_first_useful_line();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,6 +9,7 @@ pub struct SerialService {
 | 
				
			|||||||
    port: Box<dyn SerialPort>,
 | 
					    port: Box<dyn SerialPort>,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl SerialService {
 | 
					impl SerialService {
 | 
				
			||||||
    pub fn new(port_name: &str) -> Result<Box<Self>> {
 | 
					    pub fn new(port_name: &str) -> Result<Box<Self>> {
 | 
				
			||||||
        let port = new(port_name, 115_200)
 | 
					        let port = new(port_name, 115_200)
 | 
				
			||||||
@@ -16,7 +17,7 @@ impl SerialService {
 | 
				
			|||||||
            .open()?;
 | 
					            .open()?;
 | 
				
			||||||
        Ok(Box::new(SerialService { port }))
 | 
					        Ok(Box::new(SerialService { port }))
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    #[allow(dead_code)]
 | 
				
			||||||
    pub fn get_ports() -> Result<Vec<String>> {
 | 
					    pub fn get_ports() -> Result<Vec<String>> {
 | 
				
			||||||
        let portinfos = serialport::available_ports()?;
 | 
					        let portinfos = serialport::available_ports()?;
 | 
				
			||||||
        let mut portnames: Vec<String> = Vec::new();
 | 
					        let mut portnames: Vec<String> = Vec::new();
 | 
				
			||||||
@@ -55,7 +56,7 @@ impl SerialService {
 | 
				
			|||||||
            Err(err) => Err(err)
 | 
					            Err(err) => Err(err)
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    #[allow(dead_code)]
 | 
				
			||||||
    pub fn close_serial(&mut self)->Result<()>{
 | 
					    pub fn close_serial(&mut self)->Result<()>{
 | 
				
			||||||
        todo!()
 | 
					        todo!()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -59,9 +59,3 @@ impl SqliteService {
 | 
				
			|||||||
        Ok(rows.next()?.is_some())
 | 
					        Ok(rows.next()?.is_some())
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#[test]
 | 
					 | 
				
			||||||
fn create_sql_service_test() {
 | 
					 | 
				
			||||||
    let service = SqliteService::default();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@ use std::process;
 | 
				
			|||||||
use std::rc::Rc;
 | 
					use std::rc::Rc;
 | 
				
			||||||
use std::sync::{Arc, Mutex};
 | 
					use std::sync::{Arc, Mutex};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use fltk::prelude::{DisplayExt, InputExt, WidgetBase, WidgetExt};
 | 
					use fltk::prelude::{DisplayExt, InputExt, WidgetExt};
 | 
				
			||||||
use fltk::text::TextBuffer;
 | 
					use fltk::text::TextBuffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::services::log_service::LOGGER;
 | 
					use crate::services::log_service::LOGGER;
 | 
				
			||||||
@@ -14,7 +14,6 @@ use crate::ui::main_ui::*;
 | 
				
			|||||||
pub(crate) struct UiService {
 | 
					pub(crate) struct UiService {
 | 
				
			||||||
    ui: Rc<RefCell<UserInterface>>,
 | 
					    ui: Rc<RefCell<UserInterface>>,
 | 
				
			||||||
    work_service: Rc<RefCell<WorkService>>,
 | 
					    work_service: Rc<RefCell<WorkService>>,
 | 
				
			||||||
    current_com: String,
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
impl UiService {
 | 
					impl UiService {
 | 
				
			||||||
@@ -29,7 +28,7 @@ impl UiService {
 | 
				
			|||||||
        let should_current_line;
 | 
					        let should_current_line;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            let mut work_service = work_service_clone.borrow_mut();
 | 
					            let work_service = work_service_clone.borrow_mut();
 | 
				
			||||||
            current_com = work_service.config_model.last_com.clone();
 | 
					            current_com = work_service.config_model.last_com.clone();
 | 
				
			||||||
            should_current_line = work_service.config_model.current_line;
 | 
					            should_current_line = work_service.config_model.current_line;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -45,7 +44,6 @@ impl UiService {
 | 
				
			|||||||
        let ui_service = UiService {
 | 
					        let ui_service = UiService {
 | 
				
			||||||
            ui,
 | 
					            ui,
 | 
				
			||||||
            work_service: work_service_rc,
 | 
					            work_service: work_service_rc,
 | 
				
			||||||
            current_com
 | 
					 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ui_service
 | 
					        ui_service
 | 
				
			||||||
@@ -61,10 +59,9 @@ impl UiService {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fn init_exit_callback(&mut self){
 | 
					    fn init_exit_callback(&mut self){
 | 
				
			||||||
        let ui_rc = Rc::clone(&self.ui);
 | 
					        let ui_rc = Rc::clone(&self.ui);
 | 
				
			||||||
        let ui_rc_clone = Rc::clone(&ui_rc);
 | 
					 | 
				
			||||||
        let work_service_rc = Rc::clone(&self.work_service);
 | 
					        let work_service_rc = Rc::clone(&self.work_service);
 | 
				
			||||||
        ui_rc.borrow_mut().main_window.set_callback(move |_|{
 | 
					        ui_rc.borrow_mut().main_window.set_callback(move |_|{
 | 
				
			||||||
            let mut work_service = work_service_rc.borrow_mut();
 | 
					            let work_service = work_service_rc.borrow_mut();
 | 
				
			||||||
            work_service.save_config();
 | 
					            work_service.save_config();
 | 
				
			||||||
            process::exit(0);
 | 
					            process::exit(0);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
@@ -75,7 +72,7 @@ impl UiService {
 | 
				
			|||||||
        let ui_rc_clone = Rc::clone(&ui_rc);
 | 
					        let ui_rc_clone = Rc::clone(&ui_rc);
 | 
				
			||||||
        let work_service_rc = Rc::clone(&self.work_service);
 | 
					        let work_service_rc = Rc::clone(&self.work_service);
 | 
				
			||||||
        ui_rc.borrow_mut().set_lines_btn.set_callback(move |_| {
 | 
					        ui_rc.borrow_mut().set_lines_btn.set_callback(move |_| {
 | 
				
			||||||
            let mut ui_clone = ui_rc_clone.clone();
 | 
					            let ui_clone = ui_rc_clone.clone();
 | 
				
			||||||
            let mut set_dialog = UserInterface1::make_set_line_window();
 | 
					            let mut set_dialog = UserInterface1::make_set_line_window();
 | 
				
			||||||
            let work_service_rc_clone = work_service_rc.clone();
 | 
					            let work_service_rc_clone = work_service_rc.clone();
 | 
				
			||||||
            set_dialog.ok_btn.set_callback(move |_| {
 | 
					            set_dialog.ok_btn.set_callback(move |_| {
 | 
				
			||||||
@@ -115,7 +112,7 @@ impl UiService {
 | 
				
			|||||||
                fltk::dialog::message_default(&msg);
 | 
					                fltk::dialog::message_default(&msg);
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if let Some(mut model) = work_service.get_next_work_model() {
 | 
					            if let Some(model) = work_service.get_next_work_model() {
 | 
				
			||||||
                ui.current_write_model.set_value(&format!("{}: {}_{}", &model.line_number, &model.imei, &model.sn));
 | 
					                ui.current_write_model.set_value(&format!("{}: {}_{}", &model.line_number, &model.imei, &model.sn));
 | 
				
			||||||
                match work_service.write_and_check(model) {
 | 
					                match work_service.write_and_check(model) {
 | 
				
			||||||
                    Ok(_) => {
 | 
					                    Ok(_) => {
 | 
				
			||||||
@@ -164,12 +161,4 @@ impl UiService {
 | 
				
			|||||||
            ui.current_line_textbox.set_value(current_line);
 | 
					            ui.current_line_textbox.set_value(current_line);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    fn init_serial_service(&mut self) {
 | 
					 | 
				
			||||||
        let port_name = self.ui.borrow().com_textbox.value();
 | 
					 | 
				
			||||||
        match self.work_service.borrow_mut().init_serial_service(port_name) {
 | 
					 | 
				
			||||||
            Ok(_) => {}
 | 
					 | 
				
			||||||
            Err(_) => { fltk::dialog::message_default("Cant Open serial") }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -1,10 +1,9 @@
 | 
				
			|||||||
use anyhow::Result;
 | 
					use anyhow::Result;
 | 
				
			||||||
use log::Log;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::models::config_model::ConfigModel;
 | 
					use crate::models::config_model::ConfigModel;
 | 
				
			||||||
use crate::models::work_model::WorkModel;
 | 
					use crate::models::work_model::WorkModel;
 | 
				
			||||||
use crate::services::{config_service::ConfigService, excel_service::ExcelService, serial_service::SerialService, sqlite_service::SqliteService};
 | 
					use crate::services::{config_service::ConfigService, excel_service::ExcelService, serial_service::SerialService, sqlite_service::SqliteService};
 | 
				
			||||||
use crate::services::log_service::{FltkLogger, init_logger, LOGGER};
 | 
					use crate::services::log_service::{init_logger};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub struct WorkService {
 | 
					pub struct WorkService {
 | 
				
			||||||
    pub(crate) serial_service: Option<SerialService>,
 | 
					    pub(crate) serial_service: Option<SerialService>,
 | 
				
			||||||
@@ -28,6 +27,8 @@ impl WorkService {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        return this;
 | 
					        return this;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[allow(dead_code)]
 | 
				
			||||||
    pub fn get_port_names() -> Vec<String> {
 | 
					    pub fn get_port_names() -> Vec<String> {
 | 
				
			||||||
        //maybe should not use unwrap
 | 
					        //maybe should not use unwrap
 | 
				
			||||||
        return SerialService::get_ports().unwrap();
 | 
					        return SerialService::get_ports().unwrap();
 | 
				
			||||||
@@ -44,7 +45,6 @@ impl WorkService {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pub fn write_and_check(&mut self, model: WorkModel) -> Result<bool, String> {
 | 
					    pub fn write_and_check(&mut self, model: WorkModel) -> Result<bool, String> {
 | 
				
			||||||
        let msg = &format!("{}:{}:{}", model.imei, model.sn, model.line_number);
 | 
					 | 
				
			||||||
        log::info!("Write Start");
 | 
					        log::info!("Write Start");
 | 
				
			||||||
        match self.sqlite_service.check_imei_has_insert(&model.imei) {
 | 
					        match self.sqlite_service.check_imei_has_insert(&model.imei) {
 | 
				
			||||||
            Ok(true) => {
 | 
					            Ok(true) => {
 | 
				
			||||||
@@ -124,6 +124,7 @@ impl WorkService {
 | 
				
			|||||||
        };
 | 
					        };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[allow(dead_code)]
 | 
				
			||||||
    pub fn init_sqlite_service(&mut self, db_path: String) -> Result<bool, String> {
 | 
					    pub fn init_sqlite_service(&mut self, db_path: String) -> Result<bool, String> {
 | 
				
			||||||
        return if let Ok(sqlite_service) = SqliteService::new(db_path) {
 | 
					        return if let Ok(sqlite_service) = SqliteService::new(db_path) {
 | 
				
			||||||
            self.sqlite_service = sqlite_service;
 | 
					            self.sqlite_service = sqlite_service;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user