diff --git a/HuaGoCorrect/A4.cpp b/HuaGoCorrect/A4.cpp index bfa2a7e..0e5c3dc 100644 --- a/HuaGoCorrect/A4.cpp +++ b/HuaGoCorrect/A4.cpp @@ -183,7 +183,9 @@ void CA4::OnBnClickedBtnReboot() { auto parent = (CHuaGoCorrectDlg*)GetParent(); if (parent->m_drv.get() && parent->m_drv->IsConnected()) { - parent->m_drv->Reboot(); + + bool ret= ((CButton*)GetDlgItem(IDC_CKBLOADER))->GetCheck(); + parent->m_drv->Reboot(ret); } } diff --git a/HuaGoCorrect/HuaGoCorrect.rc b/HuaGoCorrect/HuaGoCorrect.rc index 0ed5d09..a374b95 100644 Binary files a/HuaGoCorrect/HuaGoCorrect.rc and b/HuaGoCorrect/HuaGoCorrect.rc differ diff --git a/HuaGoCorrect/IScanner.h b/HuaGoCorrect/IScanner.h index 7c4bbec..3148010 100644 --- a/HuaGoCorrect/IScanner.h +++ b/HuaGoCorrect/IScanner.h @@ -20,7 +20,7 @@ public: virtual std::string GetKernelVersion() =0; virtual void SetRatio(int tyepe, int ration) = 0; virtual void GetRatio(int type, int& ratio) = 0; - virtual void Reboot() = 0; + virtual void Reboot(bool loader=false) = 0; virtual void PowerOff() = 0; virtual bool is_scan() = 0; virtual bool Get_Scanner_PaperOn() = 0; diff --git a/HuaGoCorrect/Resource.h b/HuaGoCorrect/Resource.h index 4186bd5..7247a59 100644 Binary files a/HuaGoCorrect/Resource.h and b/HuaGoCorrect/Resource.h differ diff --git a/HuaGoCorrect/gscan3399.cpp b/HuaGoCorrect/gscan3399.cpp index b775a73..bbda6b1 100644 --- a/HuaGoCorrect/gscan3399.cpp +++ b/HuaGoCorrect/gscan3399.cpp @@ -207,9 +207,9 @@ void gscan3399::GetRatio(int type, int& ratio) ratio = scanner_read_reg(m_usb, type == 0 ? SR_GET_H_RATIO : SR_GET_V_RATIO); } -void gscan3399::Reboot() +void gscan3399::Reboot(bool loader) { - scanner_write_reg(m_usb, SR_REBOOT, 0); + scanner_write_reg(m_usb, SR_REBOOT, loader?1:0); } void gscan3399::PowerOff() diff --git a/HuaGoCorrect/gscan3399.h b/HuaGoCorrect/gscan3399.h index dc113d8..6fa25ad 100644 --- a/HuaGoCorrect/gscan3399.h +++ b/HuaGoCorrect/gscan3399.h @@ -21,7 +21,7 @@ public: virtual std::string GetMbVersion(); virtual void SetRatio(int tyepe, int ration); virtual void GetRatio(int type, int& ratio); - virtual void Reboot(); + virtual void Reboot(bool loader=false); virtual void PowerOff(); virtual bool is_scan(); virtual bool Get_Scanner_PaperOn(); diff --git a/HuaGoCorrect/gscn_drv.cpp b/HuaGoCorrect/gscn_drv.cpp index 8772028..577c08b 100644 --- a/HuaGoCorrect/gscn_drv.cpp +++ b/HuaGoCorrect/gscn_drv.cpp @@ -759,9 +759,9 @@ void GScn_Drv::GetRatio(int type, int& ratio) ratio = cmd.u32_Data; } -void GScn_Drv::Reboot() +void GScn_Drv::Reboot(bool loader) { - USBCB cmd = { REBOOT,0,0 }; + USBCB cmd = { REBOOT,loader?1:0,0 }; m_usb->write_bulk(&cmd, sizeof(cmd)); } diff --git a/HuaGoCorrect/gscn_drv.h b/HuaGoCorrect/gscn_drv.h index 5c29ba2..7b0c7b0 100644 --- a/HuaGoCorrect/gscn_drv.h +++ b/HuaGoCorrect/gscn_drv.h @@ -32,7 +32,7 @@ public: virtual std::string GetKernelVersion(); virtual void SetRatio(int tyepe, int ration); virtual void GetRatio(int type, int& ratio); - virtual void Reboot(); + virtual void Reboot(bool loader=false); virtual void PowerOff() {}; virtual bool is_scan()override; virtual bool Get_Scanner_PaperOn()override;