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;
|
// break;
|
||||||
|
|
||||||
|
|
||||||
// tt = m_scanner->write_bulk(info.mat.data, info.DataLength);
|
// tt = m_scanner->write_bulk(info.mat.data, info.DataLength);
|
||||||
// free(info.pJpegData);
|
// free(info.pJpegData);
|
||||||
// break;
|
// break;
|
||||||
|
@ -397,7 +396,6 @@ int main(int argc, char *argv[])
|
||||||
m_scanner->StartScan(usbcb.Data);
|
m_scanner->StartScan(usbcb.Data);
|
||||||
std::string loginfo = "start scan dst scan num = " + to_string(usbcb.Data) + "\n";
|
std::string loginfo = "start scan dst scan num = " + to_string(usbcb.Data) + "\n";
|
||||||
writesyslog(LOG_INFO, loginfo);
|
writesyslog(LOG_INFO, loginfo);
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case USBCommand::STOP:
|
case USBCommand::STOP:
|
||||||
|
@ -760,6 +758,59 @@ int main(int argc, char *argv[])
|
||||||
ofs << std::setw(4) << j << std::endl;
|
ofs << std::setw(4) << j << std::endl;
|
||||||
}
|
}
|
||||||
break;
|
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:
|
default:
|
||||||
break;
|
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_IN_PATH[] = "/dev/usb-ffs/mtp/ep1";
|
||||||
constexpr char BULK_INT_PATH[] = "/dev/usb-ffs/mtp/ep3";
|
constexpr char BULK_INT_PATH[] = "/dev/usb-ffs/mtp/ep3";
|
||||||
constexpr char STATE_PATH[] = "/sys/class/android_usb/android0/state";
|
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