增加读取设备内存和硬盘容量接口
This commit is contained in:
parent
3b41e5736e
commit
5f03c3f529
|
@ -4523,6 +4523,40 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
|
|||
strcpy((char*)data, str.c_str());
|
||||
return SCANNER_ERR_OK;
|
||||
}
|
||||
else if (code == IO_CTRL_CODE_GET_DEVS_CPU)
|
||||
{
|
||||
string str;
|
||||
int ret = get_devs_cpu(str);
|
||||
if (str.empty())
|
||||
{
|
||||
ret = SCANNER_ERR_NO_DATA;
|
||||
}
|
||||
if (*len < str.size())
|
||||
{
|
||||
*len = str.size();
|
||||
ret = SCANNER_ERR_INSUFFICIENT_MEMORY;
|
||||
}
|
||||
strcpy((char*)data, str.c_str());
|
||||
|
||||
return ret;
|
||||
}
|
||||
else if (code == IO_CTRL_CODE_GET_DEVS_DISK)
|
||||
{
|
||||
string str;
|
||||
int ret = get_devs_disk(str);
|
||||
if (str.empty())
|
||||
{
|
||||
ret = SCANNER_ERR_NO_DATA;
|
||||
}
|
||||
if (*len < str.size())
|
||||
{
|
||||
*len = str.size();
|
||||
ret = SCANNER_ERR_INSUFFICIENT_MEMORY;
|
||||
}
|
||||
strcpy((char*)data, str.c_str());
|
||||
|
||||
return ret;
|
||||
}
|
||||
else if (code == IO_CTRL_CODE_GET_SCAN_WITH_HOLE)
|
||||
{
|
||||
*(SANE_Bool*)data = image_prc_param_.bits.rid_hole || isremove_left_hole || isremove_low_hole || isremove_right_hole || isremove_top_hole ? SANE_TRUE : SANE_FALSE;
|
||||
|
@ -4701,6 +4735,14 @@ int hg_scanner::get_devs_time(string& times)
|
|||
{
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
}
|
||||
int hg_scanner::get_devs_cpu(string& cpu)
|
||||
{
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
}
|
||||
int hg_scanner::get_devs_disk(string& disk)
|
||||
{
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
}
|
||||
int hg_scanner::set_device_model(string sts)
|
||||
{
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
|
|
|
@ -549,6 +549,9 @@ public:
|
|||
|
||||
virtual int set_devs_time(string times); //设置设备时间 //3399设备支持
|
||||
virtual int get_devs_time(string ×); //获取设备时间 //3399设备支持
|
||||
|
||||
virtual int get_devs_cpu(string& cpu); //获取设备内存大小
|
||||
virtual int get_devs_disk(string& disk); //获取设备硬盘容量大小
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -380,6 +380,48 @@ int hg_scanner_239::get_devs_time(string& times)
|
|||
}
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_239::get_devs_cpu(string& cpu)
|
||||
{
|
||||
string path = "/usr/local/huago/sysinfo.json";
|
||||
long long cpu_size = 0;
|
||||
std:string str;
|
||||
int ret = read_control_device_files(path, str);
|
||||
|
||||
json js = json::parse(str);
|
||||
if (js.contains("MemTotal"))
|
||||
{
|
||||
cpu_size = js["MemTotal"];
|
||||
}
|
||||
|
||||
float num = (float)cpu_size / 1024 / 1024 / 1024;
|
||||
char buf[10] = { 0 };
|
||||
sprintf(buf, "%.2f", num);
|
||||
strcat(buf, "GB");
|
||||
cpu = buf;
|
||||
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_239::get_devs_disk(string& disk)
|
||||
{
|
||||
string path = "/usr/local/huago/sysinfo.json";
|
||||
long disk_size = 0;
|
||||
std:string str;
|
||||
int ret = read_control_device_files(path, str);
|
||||
|
||||
json js = json::parse(str);
|
||||
if (js.contains("DiskTotal"))
|
||||
{
|
||||
disk_size = js["DiskTotal"];
|
||||
}
|
||||
|
||||
float num = (float)disk_size / 1024 / 1024;
|
||||
char buf[10] = { 0 };
|
||||
sprintf(buf, "%.2f", num);
|
||||
strcat(buf, "GB");
|
||||
disk = buf;
|
||||
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_239::get_status(void)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(io_lock_);
|
||||
|
|
|
@ -142,5 +142,7 @@ public:
|
|||
|
||||
virtual int set_devs_time(string times); //设置设备时间 //3399设备支持
|
||||
virtual int get_devs_time(string& times); //获取设备时间 //3399设备支持
|
||||
virtual int get_devs_cpu(string& cpu); //获取设备内存大小
|
||||
virtual int get_devs_disk(string& disk); //获取设备硬盘容量大小
|
||||
};
|
||||
|
||||
|
|
|
@ -1423,6 +1423,98 @@ int hg_scanner_300::set_updata0303(void)
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
int hg_scanner_300::get_devs_cpu(string& cpu)
|
||||
{
|
||||
std::string src_name = "/usr/local/huago/sysinfo.json";
|
||||
std::string dst_name = "./sys.log";
|
||||
|
||||
USBCB usbcb = { 0 };
|
||||
usbcb.u32_CMD = 0x301;
|
||||
usbcb.u32_Count = src_name.length();
|
||||
int len = src_name.length();
|
||||
int size = sizeof(usbcb);
|
||||
int ret = io_->write_bulk(&usbcb, &size);
|
||||
ret = io_->write_bulk(&src_name[0], &len);
|
||||
usbcb.u32_CMD = 0x300;
|
||||
ret = io_->write_bulk(&usbcb, &size);
|
||||
ret = io_->read_bulk(&usbcb, &size);
|
||||
ofstream out(dst_name);
|
||||
usbcb.u32_CMD = 0x302;
|
||||
ret = io_->write_bulk(&usbcb, &size);
|
||||
int touch = 0;
|
||||
std::string buff;
|
||||
int bufsize = usbcb.u32_Count < 512 * 1024 ? usbcb.u32_Count : 512 * 1024;
|
||||
buff.resize(bufsize);
|
||||
while (touch < usbcb.u32_Count)
|
||||
{
|
||||
io_->read_bulk(&buff[0], &bufsize);
|
||||
out.write(&buff[0], bufsize);
|
||||
touch += bufsize;
|
||||
bufsize = bufsize > usbcb.u32_Count - touch ? usbcb.u32_Count - touch : bufsize;
|
||||
}
|
||||
out.close();
|
||||
|
||||
long long cpu_size = 0;
|
||||
json js = json::parse(buff);
|
||||
if (js.contains("MemTotal"))
|
||||
{
|
||||
cpu_size = js["MemTotal"];
|
||||
}
|
||||
|
||||
float num = (float)cpu_size / 1024 / 1024 / 1024;
|
||||
char buf[10] = { 0 };
|
||||
sprintf(buf, "%.2f", num);
|
||||
strcat(buf, "GB");
|
||||
cpu = buf;
|
||||
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_300::get_devs_disk(string& disk)
|
||||
{
|
||||
std::string src_name = "/usr/local/huago/sysinfo.json";
|
||||
std::string dst_name = "./sys.log";
|
||||
|
||||
USBCB usbcb = { 0 };
|
||||
usbcb.u32_CMD = 0x301;
|
||||
usbcb.u32_Count = src_name.length();
|
||||
int len = src_name.length();
|
||||
int size = sizeof(usbcb);
|
||||
int ret = io_->write_bulk(&usbcb, &size);
|
||||
ret = io_->write_bulk(&src_name[0], &len);
|
||||
usbcb.u32_CMD = 0x300;
|
||||
ret = io_->write_bulk(&usbcb, &size);
|
||||
ret = io_->read_bulk(&usbcb, &size);
|
||||
ofstream out(dst_name);
|
||||
usbcb.u32_CMD = 0x302;
|
||||
ret = io_->write_bulk(&usbcb, &size);
|
||||
int touch = 0;
|
||||
std::string buff;
|
||||
int bufsize = usbcb.u32_Count < 512 * 1024 ? usbcb.u32_Count : 512 * 1024;
|
||||
buff.resize(bufsize);
|
||||
while (touch < usbcb.u32_Count)
|
||||
{
|
||||
io_->read_bulk(&buff[0], &bufsize);
|
||||
out.write(&buff[0], bufsize);
|
||||
touch += bufsize;
|
||||
bufsize = bufsize > usbcb.u32_Count - touch ? usbcb.u32_Count - touch : bufsize;
|
||||
}
|
||||
out.close();
|
||||
|
||||
long disk_size = 0;
|
||||
json js = json::parse(buff);
|
||||
if (js.contains("DiskTotal"))
|
||||
{
|
||||
disk_size = js["DiskTotal"];
|
||||
}
|
||||
|
||||
float num = (float)disk_size / 1024 / 1024;
|
||||
char buf[10] = { 0 };
|
||||
sprintf(buf, "%.2f", num);
|
||||
strcat(buf, "GB");
|
||||
disk = buf;
|
||||
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_300::set_serial_num(string str)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(io_lock_);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#pragma once
|
||||
#pragma once
|
||||
|
||||
// hg_scanner is the base class of kinds of scanners
|
||||
//
|
||||
|
@ -116,4 +116,6 @@ public:
|
|||
virtual int set_auto_flat(int data)override; //设置自动平场校正
|
||||
// data:0(ALL) 1(200dpi、gray) 2(200dpi、color) 3(300dpi、gray) 4(300dpi、color) 5(600dpi、gray) 6(600dpi、color)
|
||||
virtual int set_updata0303(void)override;
|
||||
virtual int get_devs_cpu(string& cpu); //获取设备内存大小
|
||||
virtual int get_devs_disk(string& disk); //获取设备硬盘容量大小
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue