添加读取清除滚轴功能,添加3399读取系统信息功能

This commit is contained in:
masayume 2022-04-13 18:21:11 +08:00
parent 6a0ecd826c
commit 0422d3ede2
11 changed files with 92 additions and 3 deletions

View File

@ -72,6 +72,9 @@ BEGIN_MESSAGE_MAP(CA4, CDialog)
ON_BN_CLICKED(IDC_BTNBUP, &CA4::OnBnClickedBtnbup) ON_BN_CLICKED(IDC_BTNBUP, &CA4::OnBnClickedBtnbup)
ON_BN_CLICKED(IDC_BTNBDOWN, &CA4::OnBnClickedBtnbdown) ON_BN_CLICKED(IDC_BTNBDOWN, &CA4::OnBnClickedBtnbdown)
ON_BN_CLICKED(IDC_BTNGET_MB_VERSION, &CA4::OnBnClickedBtngetMbVersion) ON_BN_CLICKED(IDC_BTNGET_MB_VERSION, &CA4::OnBnClickedBtngetMbVersion)
// ON_BN_CLICKED(IDC_BTGETROLLERNUM, &CA4::OnBnClickedBtgetrollernum)
ON_BN_CLICKED(IDC_BTCLRROLLERNUM, &CA4::OnBnClickedBtclrrollernum)
ON_BN_CLICKED(IDC_BTGETROLLERNUM, &CA4::OnBnClickedBtgetrollernum)
END_MESSAGE_MAP() END_MESSAGE_MAP()
@ -502,3 +505,29 @@ void CA4::UpdateVidPid(VIDPID vidpid)
MessageBox(L"错误的VID PID", L"提示", MB_OK); MessageBox(L"错误的VID PID", L"提示", MB_OK);
} }
} }
void CA4::OnBnClickedBtgetrollernum()
{
// TODO: 在此添加控件通知处理程序代码
auto parent = (CHuaGoCorrectDlg*)GetParent();
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
int num = parent->m_drv->GetRollerNum();
CString vs(std::to_string(num).c_str());
SetDlgItemText(IDC_tbxRollerNum, vs);
}
}
void CA4::OnBnClickedBtclrrollernum()
{
// TODO: 在此添加控件通知处理程序代码
auto parent = (CHuaGoCorrectDlg*)GetParent();
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
parent->m_drv->ClrRollerNum();
int num = parent->m_drv->GetRollerNum();
CString vs(std::to_string(num).c_str());
SetDlgItemText(IDC_tbxRollerNum, vs);
}
}

View File

@ -86,4 +86,7 @@ public:
afx_msg void OnBnClickedBtngetMbVersion(); afx_msg void OnBnClickedBtngetMbVersion();
int AqrVIDPID(); int AqrVIDPID();
void UpdateVidPid(VIDPID vidpid); void UpdateVidPid(VIDPID vidpid);
// afx_msg void OnBnClickedBtgetrollernum();
afx_msg void OnBnClickedBtclrrollernum();
afx_msg void OnBnClickedBtgetrollernum();
}; };

Binary file not shown.

Binary file not shown.

View File

@ -33,6 +33,7 @@ public:
virtual void run() = 0; virtual void run() = 0;
virtual void ActiveteUSB() = 0; virtual void ActiveteUSB() = 0;
virtual int GetScanNum() = 0; virtual int GetScanNum() = 0;
virtual int GetRollerNum() = 0;
virtual void ClrRollerNum() = 0; virtual void ClrRollerNum() = 0;
virtual void ClrScanNum() = 0; virtual void ClrScanNum() = 0;
virtual void SendFlatData(CorrectParam param, int index) = 0; virtual void SendFlatData(CorrectParam param, int index) = 0;

Binary file not shown.

View File

@ -322,6 +322,10 @@ enum Scanner_Reg_Defs
SR_GET_PAPERON, SR_GET_PAPERON,
SR_SET_SPEEDMODE, SR_SET_SPEEDMODE,
SR_GET_SPEEDMODE, SR_GET_SPEEDMODE,
SR_GET_JOSN_SIZE,
SR_GET_JSON,
SR_SET_JSON_PATH,
SR_SET_JSON,
SR_GET_CUO_ERROR = 0x50, SR_GET_CUO_ERROR = 0x50,
SR_GET_DOU_ERROR, SR_GET_DOU_ERROR,
SR_GET_JAM_ERROR, SR_GET_JAM_ERROR,

View File

@ -4,6 +4,8 @@
#include "filetools.h" #include "filetools.h"
#include <opencv2/opencv.hpp> #include <opencv2/opencv.hpp>
const std::string HG_SYSINFO_PATH = "/usr/local/huago/sysinfo.json";
using namespace cv; using namespace cv;
static std::mutex mx_ctrl; static std::mutex mx_ctrl;
@ -391,9 +393,15 @@ int gscan3399::GetScanNum()
return scanner_read_reg(m_usb, SR_SCAN_COUNT); return scanner_read_reg(m_usb, SR_SCAN_COUNT);
} }
int gscan3399::GetRollerNum()
{
uint32_t num = scanner_read_reg(m_usb, SR_GET_ROLLER_NUM);
return num;
}
void gscan3399::ClrRollerNum() void gscan3399::ClrRollerNum()
{ {
scanner_read_reg(m_usb, SR_CLR_ROLLER_NUM);
} }
void gscan3399::ClrScanNum() void gscan3399::ClrScanNum()
@ -546,7 +554,10 @@ void gscan3399::GetOrSetVIDPID(int& value, bool get)
std::string gscan3399::GetSysInfo() std::string gscan3399::GetSysInfo()
{ {
auto info = GetDeviceFile(HG_SYSINFO_PATH);
if(info.empty())
return "Unsupported"; return "Unsupported";
return info;
} }
void gscan3399::usbcallback(bool isleft, void* usrdata) void gscan3399::usbcallback(bool isleft, void* usrdata)
@ -759,3 +770,23 @@ int gscan3399::codeconvter(HGEIntInfo code)
return 0; return 0;
} }
std::string gscan3399::GetDeviceFile(std::string path)
{
if (m_usb->is_open() && path.size() > 1)
{
scanner_write_reg(m_usb, SR_SET_JSON_PATH, path.size());
m_usb->write_bulk(&path[0], path.size());
int size = 0;
if (size = scanner_read_reg(m_usb, SR_GET_JOSN_SIZE))
{
std::string buff;
buff.resize(size);
scanner_write_reg(m_usb, SR_GET_JSON, size);
m_usb->read_bulk(&buff[0], size);
return buff;
}
return "";
}
return "";
}

View File

@ -44,6 +44,8 @@ public:
virtual int GetScanNum(); virtual int GetScanNum();
virtual int GetRollerNum();
virtual void ClrRollerNum(); virtual void ClrRollerNum();
virtual void ClrScanNum(); virtual void ClrScanNum();
@ -87,6 +89,7 @@ private:
void OnUsbHotplug(bool isleft); void OnUsbHotplug(bool isleft);
void usb_run(); void usb_run();
int codeconvter(HGEIntInfo code); int codeconvter(HGEIntInfo code);
std::string GetDeviceFile(std::string path);
private: private:
volatile int devState; volatile int devState;
volatile int Error_Code; volatile int Error_Code;

View File

@ -275,7 +275,7 @@ std::string GScn_Drv::GetSysInfo()
m_usb->read_bulk(&cmd, sizeof(cmd)); m_usb->read_bulk(&cmd, sizeof(cmd));
int len = cmd.u32_Count; int len = cmd.u32_Count;
string str; string str;
str.resize(4096); str.resize(len);
cmd.u32_CMD = GETSYSINFO; cmd.u32_CMD = GETSYSINFO;
cmd.u32_Count = 0; cmd.u32_Count = 0;
cmd.u32_Data = 0; cmd.u32_Data = 0;
@ -665,6 +665,22 @@ int GScn_Drv::GetScanNum()
return usbcb.u32_Data; return usbcb.u32_Data;
} }
int GScn_Drv::GetRollerNum()
{
std::lock_guard<std::mutex> lck(m_imgLocker);
USBCB usbcb = { GET_ROLLER_NUM,0,4 };
DWORD transfer;
XdPrint(L"Get GetRollerNum");
m_usb->write_bulk(&usbcb, sizeof(usbcb));
CString cslog;
cslog.Format(L"GetRollerNum Read_Data %d", usbcb.u32_Data);
//WriteLog(cslog);
m_usb->read_bulk(&usbcb, sizeof(usbcb));
return usbcb.u32_Data;
}
void GScn_Drv::ClrRollerNum() void GScn_Drv::ClrRollerNum()
{ {
std::lock_guard<std::mutex> lck(m_imgLocker); std::lock_guard<std::mutex> lck(m_imgLocker);

View File

@ -49,6 +49,8 @@ public:
virtual int GetScanNum()override; virtual int GetScanNum()override;
virtual int GetRollerNum() override;
virtual void ClrRollerNum()override; virtual void ClrRollerNum()override;
virtual void ClrScanNum()override; virtual void ClrScanNum()override;