Merge branch 'master' of http://192.168.10.5:8099/huagao/zynq_7010
This commit is contained in:
commit
c48acfbbdc
55
main.cpp
55
main.cpp
|
@ -351,7 +351,6 @@ int main(int argc, char *argv[])
|
|||
|
||||
// break;
|
||||
|
||||
|
||||
// tt = m_scanner->write_bulk(info.mat.data, info.DataLength);
|
||||
// free(info.pJpegData);
|
||||
// break;
|
||||
|
@ -397,7 +396,6 @@ int main(int argc, char *argv[])
|
|||
m_scanner->StartScan(usbcb.Data);
|
||||
std::string loginfo = "start scan dst scan num = " + to_string(usbcb.Data) + "\n";
|
||||
writesyslog(LOG_INFO, loginfo);
|
||||
|
||||
}
|
||||
break;
|
||||
case USBCommand::STOP:
|
||||
|
@ -760,6 +758,59 @@ int main(int argc, char *argv[])
|
|||
ofs << std::setw(4) << j << std::endl;
|
||||
}
|
||||
break;
|
||||
case USBCommand::GET_FLAT_DATA:
|
||||
{
|
||||
FLAT_INFO *flatinfo = static_cast<FLAT_INFO *>(usbcb.Data);
|
||||
unsigned char *lut_buffer;
|
||||
if (flatinfo->params.dpi != 0)
|
||||
{
|
||||
std::ifstream lut_item;
|
||||
int dpi = flatinfo->params.dpi == 0x01 ? 200 : (flatinfo->params.dpi == 0x02 ? 300 : 600);
|
||||
std::string mode = flatinfo->params.colormode ? "clr" : "gray";
|
||||
std::string is_white_lut = flatinfo->params.is_whiteimage ? "white" : "bw";
|
||||
std::string lut_path = "/mnt/conf-disk/huago/lut" + std::to_string(dpi) + mode + is_white_lut + ".bmp";
|
||||
lut_item.open(lut_path, std::ios_base::in | std::ios_base::binary);
|
||||
if (!lut_item.is_open())
|
||||
{
|
||||
flatinfo->params.datalen = 0;
|
||||
flatinfo->params.status = 1; // 文件打开失败
|
||||
}
|
||||
else
|
||||
{
|
||||
lut_item.seekg(0, std::ios::end);
|
||||
size_t length = lut_item.tellg();
|
||||
lut_item.seekg(0, std::ios::beg);
|
||||
flatinfo->params.datalen = length
|
||||
}
|
||||
|
||||
if (flatinfo->params.datalen != 0)
|
||||
{
|
||||
lut_buffer = new unsigned char[flatinfo->params.datalen];
|
||||
if (lut_buffer)
|
||||
lut_item.read(lut_buffer, flatinfo->params.datalen);
|
||||
else
|
||||
{
|
||||
flatinfo->params.status = 2; // OOM 异常
|
||||
flatinfo->params.datalen = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
flatinfo->params.datalen = 0;
|
||||
flatinfo->params.status = 3; // 未知dpi
|
||||
}
|
||||
|
||||
usbcb.Data = flatinfo->value;
|
||||
m_scanner->write_bulk(&usbcb, sizeof(usbcb));
|
||||
|
||||
if (lut_buffer)
|
||||
{
|
||||
m_scanner->write_bulk(lut_buffer, flatinfo->params.datalen);
|
||||
delete[] lut_buffer;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -352,3 +352,17 @@ constexpr char BULK_OUT_PATH[] = "/dev/usb-ffs/mtp/ep2";
|
|||
constexpr char BULK_IN_PATH[] = "/dev/usb-ffs/mtp/ep1";
|
||||
constexpr char BULK_INT_PATH[] = "/dev/usb-ffs/mtp/ep3";
|
||||
constexpr char STATE_PATH[] = "/sys/class/android_usb/android0/state";
|
||||
|
||||
union FLAT_INFO
|
||||
{
|
||||
struct
|
||||
{
|
||||
unsigned int dpi:5;
|
||||
unsigned int colormode:1;
|
||||
unsigned int is_whiteimage:1;
|
||||
unsigned int status:8;
|
||||
unsigned int reversed:1;
|
||||
unsigned int datalen:16;
|
||||
}params;
|
||||
unsigned int value;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue