灰度出图调整

This commit is contained in:
modehua 2023-08-10 22:54:42 -07:00
parent 3d6b21f8b4
commit 9164b459a6
15 changed files with 497 additions and 65 deletions

View File

@ -853,7 +853,7 @@ void HCamDevice::HtCamSwitchSampleModes(uint8_t mode)
pCamCtrlReg[4] |= (0x00020000); pCamCtrlReg[4] |= (0x00020000);
} }
void HCamDevice::HtCamChangeExposureValue(uint32_t value) void HCamDevice::HtCamChangeExposureValueF(uint32_t value)
{ {
if (virBaseAddr == NULL) if (virBaseAddr == NULL)
{ {
@ -869,8 +869,28 @@ void HCamDevice::HtCamChangeExposureValue(uint32_t value)
pCamCtrlReg[5] |= (uint32_t)(value << 16); pCamCtrlReg[5] |= (uint32_t)(value << 16);
pCamCtrlReg[6] |= (uint32_t)(value); // GREEN pCamCtrlReg[6] |= (uint32_t)(value); // GREEN
pCamCtrlReg[6] |= ((uint32_t)value << 16); // BLUE pCamCtrlReg[6] |= ((uint32_t)value << 16); // BLUE
} }
void HCamDevice::HtCamChangeExposureValueB(uint32_t value)
{
if (virBaseAddr == NULL)
{
return ;
}
uint32_t *pCamCtrlReg = virBaseAddr;
// pCamCtrlReg[3] |= (uint32_t)(0x00006000);
pCamCtrlReg[11] = 0x00000000;
pCamCtrlReg[12] = 0x00000000;
pCamCtrlReg[11] |= (uint32_t)(value); // RED
pCamCtrlReg[11] |= (uint32_t)(value << 16);
pCamCtrlReg[12] |= (uint32_t)(value); // GREEN
pCamCtrlReg[12] |= ((uint32_t)value << 16); // BLUE
}
void HCamDevice::HtCamWriteADCReg(uint8_t addr, uint8_t data) void HCamDevice::HtCamWriteADCReg(uint8_t addr, uint8_t data)
{ {
if (virBaseAddr == NULL) if (virBaseAddr == NULL)
@ -988,30 +1008,39 @@ void HCamDevice::HtCamSetSpTime(uint32_t reg_value)
{ {
CamZ_Reg_2Short sp_time; CamZ_Reg_2Short sp_time;
sp_time.value = HtCamReadFpgaRegs(0x03); sp_time.value = HtCamReadFpgaRegs(0x03);
sp_time.NShort; sp_time.NShort[1] = reg_value;
sp_time.NShort[0] = reg_value-100;
HtCamWriteFpgaRegs(0x03 , sp_time.value);
} }
void HCamDevice::HtCamGetSpTime(uint32_t &reg_value) void HCamDevice::HtCamGetSpTime(uint32_t &reg_value)
{ {
CamZ_Reg_2Short sp_time;
sp_time.value = HtCamReadFpgaRegs(0x03);
reg_value = sp_time.NShort[1];
} }
void HCamDevice::HtCamSetStSp(int color) void HCamDevice::HtCamSetStSp(int start_smaple)
{ {
//sp_time.NShort[1] = 0x00D0;//灰度 //sp_time.NShort[1] = 0x00D0;//灰度
//sp_time.NShort[1] = 0x00C8;//彩色 //sp_time.NShort[1] = 0x00C8;//彩色
CamZ_Reg_2Short st_sp; CamZ_Reg_2Short st_sp;
st_sp.value = HtCamReadFpgaRegs(0x0d); st_sp.value = HtCamReadFpgaRegs(0x0d);
st_sp.NShort[0] = 0x0200; st_sp.NShort[0] = 0x0200;
if (color) // if (color)
st_sp.NShort[1] = 0x00C8; //彩色 // st_sp.NShort[1] = 0x00C8; //彩色
else // else
st_sp.NShort[1] = 0x00DC; //灰色 2023-8-3 // st_sp.NShort[1] = 0x00d0 //灰度 2023 8/10 0x00C8
HtCamWriteFpgaRegs(0x0d , st_sp.value);
st_sp.NShort[1] = start_smaple; //灰色 2023-8-3
//HtCamWriteFpgaRegs(0x0d , st_sp.value);
} }
void HCamDevice::HtCamGetStSp(uint32_t &reg_value)
void HCamDevice::HtCamGetStSp(uint32_t &start_smaple)
{ {
reg_value = HtCamReadFpgaRegs(0x0d); CamZ_Reg_2Short st_sp;
st_sp.value = HtCamReadFpgaRegs(0x0d);
start_smaple = st_sp.NShort[1];
} }
void HCamDevice::HtCamSetVsnpTime(int color) void HCamDevice::HtCamSetVsnpTime(int color)
@ -1109,8 +1138,8 @@ void HCamDevice::HtCamSetClolr(int color)
reg_4.en_frameset = 1; //帧计数默认开启 reg_4.en_frameset = 1; //帧计数默认开启
HtCamWriteFpgaRegs(0x04,reg_4.value); HtCamWriteFpgaRegs(0x04,reg_4.value);
HtCamSetStSp(color); // HtCamSetStSp(color);
HtCamSetVsnpTime(color); // HtCamSetVsnpTime(color);
} }

View File

@ -55,10 +55,15 @@ public:
void HtCamSetFrameCnt(uint32_t val);//设置需要采集的帧数 void HtCamSetFrameCnt(uint32_t val);//设置需要采集的帧数
uint32_t HtCamReadFpgaRegs(uint8_t reg_addr); //读取寄存器值
void HtCamSetSpTime(uint32_t reg_value);//0x03 //内触发间隔 //影响到图像得拉伸
void HtCamGetSpTime(uint32_t &reg_value); //获取当前sptime
void HtCamSetStSp(int start_sample);//0x0d //更具不同的颜色模式设置不同的st_sp //影响到图像的偏移
void HtCamGetStSp(uint32_t &start_sample);
void HtCamSetVsnpTime(int color);
void HtCamChangeExposureValueF(unsigned int value); //曝光值设置
void HtCamChangeExposureValueB(unsigned int value); //曝光值设置
uint32_t HtCamReadFpgaRegs(uint8_t reg_addr); //读取寄存器值
private: private:
int init_fpga(); //初始化 寄存器基地址 int init_fpga(); //初始化 寄存器基地址
@ -70,18 +75,6 @@ private:
void HtCamWriteFpgaRegs(uint8_t reg_addr, uint32_t reg_value); //写寄存器 void HtCamWriteFpgaRegs(uint8_t reg_addr, uint32_t reg_value); //写寄存器
void HtCamSetSpTime(uint32_t reg_value);//0x03 //内触发间隔 //影响到图像得拉伸
void HtCamGetSpTime(uint32_t &reg_value); //获取当前sptime
void HtCamSetStSp(int color);//0x0d //更具不同的颜色模式设置不同的st_sp //影响到图像的偏移
void HtCamGetStSp(uint32_t &reg_value);
void HtCamSetVsnpTime(int color);
public: public:
HCamDevice(); HCamDevice();
~HCamDevice(); ~HCamDevice();
@ -124,7 +117,8 @@ private:
int init_dev(); int init_dev();
void init_ps_regs(); void init_ps_regs();
void HtCamSwitchSampleModes(unsigned char mode);//测试数据 void HtCamSwitchSampleModes(unsigned char mode);//测试数据
void HtCamChangeExposureValue(unsigned int value); //曝光值设置
void HtCamExitVideoCapturing(); void HtCamExitVideoCapturing();
void HtCamResizeBuffer(int width, int height, int number); void HtCamResizeBuffer(int width, int height, int number);
void HtCamChangeAdjustSpTime(uint32_t sp_time_gap, uint32_t sp_time_rw); void HtCamChangeAdjustSpTime(uint32_t sp_time_gap, uint32_t sp_time_rw);

View File

@ -183,10 +183,19 @@ void MultiFrameCapture::UpdateScanParam(HG_ScanConfiguration config)
video->HtCamSetClolr(color_mode_); video->HtCamSetClolr(color_mode_);
video->HtCamSetDpi(resolution_); video->HtCamSetDpi(resolution_);
printf(" -----------------------snap dpi = %d resolution = %d------------------\r\n",config.params.dpi, config.params.isColor);
FPGAConfigParam fpgaparam = GetFpgaparam(config.params.dpi, config.params.isColor);
video->HtCamSetSpTime(fpgaparam.Sp); // 2344 灰色 //2023-8-10 最新2650
// fpgaparam.Sp=0;
// video->HtCamGetSpTime(fpgaparam.Sp);
printf(" -----------------------HtCamSetSpTime%d------------------ \r\n",fpgaparam.Sp);
video->HtCamSetStSp(fpgaparam.MaxBright);
printf(" -----------------------HtCamSetStSp%d------------------\r\n",fpgaparam.MaxBright);
{ {
int val = resolution_ == 0 ? 600 : 300; int val = config.params.dpi == 3 ? 600 :(config.params.dpi == 2?300:200);
uint32_t cnt = compute_frame(paper_size_ , val) / HEIGHT + 1; //多设置一帧 uint32_t cnt = compute_frame(paper_size_ , val) / HEIGHT + 1; //多设一帧
video->HtCamSetFrameCnt(cnt); video->HtCamSetFrameCnt(cnt);
printf(" -----------------------设置帧数:%d------------------\r\n",cnt); printf(" -----------------------设置帧数:%d------------------\r\n",cnt);
} }
@ -560,7 +569,7 @@ void MultiFrameCapture::snaprun()
video->HtCamGetFrameCnt(frame_cnt); video->HtCamGetFrameCnt(frame_cnt);
frame_info.frame_index = frame_cnt; frame_info.frame_index = frame_cnt;
int func_sig = 0; int func_sig = 0;
int time_out = color_mode_ == 1 ? 1400 : 800; int time_out = color_mode_ == 1 ? 800 : 800;
int time_out_cnt = 0; int time_out_cnt = 0;
printf("--------------------- frame_info.width ------------------ :%d\r\n",frame_info.width ); printf("--------------------- frame_info.width ------------------ :%d\r\n",frame_info.width );

View File

@ -121,7 +121,7 @@ void Scanner::updateSpeedMode(int speed)
// } // }
//if(typeid(*capturer)==typeid(MultiFrameCapture)) //if(typeid(*capturer)==typeid(MultiFrameCapture))
//if(m_config.params.pageSize == 17 || m_config.params.pageSize == 19) //长文稿采用600dpi模式扫描 //if(m_config.params.pageSize == 17 || m_config.params.pageSize == 19) //长文稿采用600dpi模式扫描
t_dpi = 2; t_dpi = 1;
motorCuozhi.speedChange(m_scaninfo.SpeedMode, t_dpi,m_config.params.isColor); motorCuozhi.speedChange(m_scaninfo.SpeedMode, t_dpi,m_config.params.isColor);
motorZouzhi.speedChange(m_scaninfo.SpeedMode, t_dpi,m_config.params.isColor); motorZouzhi.speedChange(m_scaninfo.SpeedMode, t_dpi,m_config.params.isColor);
} }

View File

@ -1010,6 +1010,14 @@ CorrectParam.h
mutex mutex
- -
/home/modehua/sdk/zynq_7010/CuoZhiMotor.h
Motor.h
/home/modehua/sdk/zynq_7010/Motor.h
thread
-
iostream
-
/home/modehua/sdk/zynq_7010/DevUtil.h /home/modehua/sdk/zynq_7010/DevUtil.h
string string
- -
@ -1034,10 +1042,68 @@ Gpio.h
scanservices_utils.h scanservices_utils.h
/home/modehua/sdk/zynq_7010/scanservices_utils.h /home/modehua/sdk/zynq_7010/scanservices_utils.h
/home/modehua/sdk/zynq_7010/FsmState.cpp
FsmState.h
/home/modehua/sdk/zynq_7010/FsmState.h
Scanner.h
/home/modehua/sdk/zynq_7010/Scanner.h
/home/modehua/sdk/zynq_7010/FsmState.h
memory
-
map
-
typeinfo
-
string
-
scanservices_utils.h
/home/modehua/sdk/zynq_7010/scanservices_utils.h
utilsfunc.h
/home/modehua/sdk/zynq_7010/utilsfunc.h
/home/modehua/sdk/zynq_7010/Gpio.h /home/modehua/sdk/zynq_7010/Gpio.h
string string
- -
/home/modehua/sdk/zynq_7010/HCamDevice.cpp
HCamDevice.h
/home/modehua/sdk/zynq_7010/HCamDevice.h
stdint.h
-
thread
-
chrono
-
string
-
poll.h
-
sys/epoll.h
-
unistd.h
-
fcntl.h
-
sys/mman.h
-
sys/ioctl.h
-
string.h
-
CameraParams.h
/home/modehua/sdk/zynq_7010/CameraParams.h
linux/v4l2-subdev.h
-
iostream
-
errno.h
-
iostream
-
fstream
-
/home/modehua/sdk/zynq_7010/HCamDevice.h /home/modehua/sdk/zynq_7010/HCamDevice.h
string string
- -
@ -1054,6 +1120,12 @@ thread
map map
- -
/home/modehua/sdk/zynq_7010/HGUsb.h
memory
-
UsbEndpoint.h
/home/modehua/sdk/zynq_7010/UsbEndpoint.h
/home/modehua/sdk/zynq_7010/ICapturer.h /home/modehua/sdk/zynq_7010/ICapturer.h
atomic atomic
- -
@ -1072,6 +1144,14 @@ HCamDevice.h
vector vector
- -
/home/modehua/sdk/zynq_7010/IScanner.h
scanservices_utils.h
/home/modehua/sdk/zynq_7010/scanservices_utils.h
string
-
BlockingQueue.h
/home/modehua/sdk/zynq_7010/BlockingQueue.h
/home/modehua/sdk/zynq_7010/Jpegcompress.h /home/modehua/sdk/zynq_7010/Jpegcompress.h
turbojpeg.h turbojpeg.h
- -
@ -1094,6 +1174,72 @@ map
mutex mutex
- -
/home/modehua/sdk/zynq_7010/Keyboard.h
stdio.h
-
stdlib.h
-
unistd.h
-
fcntl.h
-
sys/ioctl.h
-
linux/input.h
-
sys/epoll.h
-
string.h
-
thread
-
time.h
-
condition_variable
-
functional
-
scanservices_utils.h
/home/modehua/sdk/zynq_7010/scanservices_utils.h
/home/modehua/sdk/zynq_7010/Led.h
DevUtil.h
/home/modehua/sdk/zynq_7010/DevUtil.h
/home/modehua/sdk/zynq_7010/MemoryInfo.h
/home/modehua/sdk/zynq_7010/Motor.h
Gpio.h
/home/modehua/sdk/zynq_7010/Gpio.h
Pwm.h
/home/modehua/sdk/zynq_7010/Pwm.h
vector
-
thread
-
iostream
-
scanservices_utils.h
/home/modehua/sdk/zynq_7010/scanservices_utils.h
utilsfunc.h
/home/modehua/sdk/zynq_7010/utilsfunc.h
exception
-
Motordef.h
/home/modehua/sdk/zynq_7010/Motordef.h
MotorConfig.h
/home/modehua/sdk/zynq_7010/MotorConfig.h
/home/modehua/sdk/zynq_7010/MotorConfig.h
vector
-
json.hpp
/home/modehua/sdk/zynq_7010/json.hpp
Motordef.h
/home/modehua/sdk/zynq_7010/Motordef.h
/home/modehua/sdk/zynq_7010/Motordef.h
/home/modehua/sdk/zynq_7010/MultiFrameCapture.cpp /home/modehua/sdk/zynq_7010/MultiFrameCapture.cpp
MultiFrameCapture.h MultiFrameCapture.h
/home/modehua/sdk/zynq_7010/MultiFrameCapture.h /home/modehua/sdk/zynq_7010/MultiFrameCapture.h
@ -1144,6 +1290,90 @@ CorrectParam.h
IPreproc.h IPreproc.h
/home/modehua/sdk/zynq_7010/IPreproc.h /home/modehua/sdk/zynq_7010/IPreproc.h
/home/modehua/sdk/zynq_7010/PanelLeds.h
Led.h
/home/modehua/sdk/zynq_7010/Led.h
iostream
-
scanservices_utils.h
/home/modehua/sdk/zynq_7010/scanservices_utils.h
/home/modehua/sdk/zynq_7010/Pwm.h
string
-
/home/modehua/sdk/zynq_7010/Scanner.cpp
Scanner.h
/home/modehua/sdk/zynq_7010/Scanner.h
iostream
-
filetools.h
/home/modehua/sdk/zynq_7010/filetools.h
fpgacontrol.h
/home/modehua/sdk/zynq_7010/fpgacontrol.h
MemoryInfo.h
/home/modehua/sdk/zynq_7010/MemoryInfo.h
SysInforTool.h
/home/modehua/sdk/zynq_7010/SysInforTool.h
USBProtocol.h
/home/modehua/sdk/zynq_7010/USBProtocol.h
/home/modehua/sdk/zynq_7010/Scanner.h
memory
-
functional
-
CuoZhiMotor.h
/home/modehua/sdk/zynq_7010/CuoZhiMotor.h
ZouZhiMotor.h
/home/modehua/sdk/zynq_7010/ZouZhiMotor.h
Sensor.h
/home/modehua/sdk/zynq_7010/Sensor.h
PanelLeds.h
/home/modehua/sdk/zynq_7010/PanelLeds.h
BlockingQueue.h
/home/modehua/sdk/zynq_7010/BlockingQueue.h
FsmState.h
/home/modehua/sdk/zynq_7010/FsmState.h
MultiFrameCapture.h
/home/modehua/sdk/zynq_7010/MultiFrameCapture.h
scanservices_utils.h
/home/modehua/sdk/zynq_7010/scanservices_utils.h
Keyboard.h
/home/modehua/sdk/zynq_7010/Keyboard.h
utilsfunc.h
/home/modehua/sdk/zynq_7010/utilsfunc.h
filetools.h
/home/modehua/sdk/zynq_7010/filetools.h
SysInforTool.h
/home/modehua/sdk/zynq_7010/SysInforTool.h
MotorConfig.h
/home/modehua/sdk/zynq_7010/MotorConfig.h
correct_ultis.h
/home/modehua/sdk/zynq_7010/correct_ultis.h
FpgaComm.h
/home/modehua/sdk/zynq_7010/FpgaComm.h
/home/modehua/sdk/zynq_7010/Sensor.h
Gpio.h
/home/modehua/sdk/zynq_7010/Gpio.h
thread
-
condition_variable
-
BlockingQueue.h
/home/modehua/sdk/zynq_7010/BlockingQueue.h
FsmState.h
/home/modehua/sdk/zynq_7010/FsmState.h
Pwm.h
/home/modehua/sdk/zynq_7010/Pwm.h
/home/modehua/sdk/zynq_7010/SysInforTool.h
scannersysinfo.h
/home/modehua/sdk/zynq_7010/scannersysinfo.h
json.hpp
/home/modehua/sdk/zynq_7010/json.hpp
/home/modehua/sdk/zynq_7010/ThreadPool.h /home/modehua/sdk/zynq_7010/ThreadPool.h
vector vector
- -
@ -1166,6 +1396,60 @@ stdexcept
/home/modehua/sdk/zynq_7010/USBProtocol.h /home/modehua/sdk/zynq_7010/USBProtocol.h
/home/modehua/sdk/zynq_7010/UsbEndpoint.h
unistd.h
-
sys/types.h
-
sys/stat.h
-
fcntl.h
-
map
-
errno.h
-
scanservices_utils.h
/home/modehua/sdk/zynq_7010/scanservices_utils.h
/home/modehua/sdk/zynq_7010/UsbScanner.cpp
UsbScanner.h
/home/modehua/sdk/zynq_7010/UsbScanner.h
turbojpeg.h
-
JsonConfig.h
/home/modehua/sdk/zynq_7010/JsonConfig.h
USBProtocol.h
/home/modehua/sdk/zynq_7010/USBProtocol.h
filetools.h
/home/modehua/sdk/zynq_7010/filetools.h
logs_out.h
/home/modehua/sdk/zynq_7010/logs_out.h
/home/modehua/sdk/zynq_7010/UsbScanner.h
IScanner.h
/home/modehua/sdk/zynq_7010/IScanner.h
Scanner.h
/home/modehua/sdk/zynq_7010/Scanner.h
memory
-
FsmState.h
/home/modehua/sdk/zynq_7010/FsmState.h
usbdevice.h
/home/modehua/sdk/zynq_7010/usbdevice.h
/home/modehua/sdk/zynq_7010/UsbmsgHandler.cpp
UsbmsgHandler.h
/home/modehua/sdk/zynq_7010/UsbmsgHandler.h
Scanner.h
/home/modehua/sdk/zynq_7010/Scanner.h
/home/modehua/sdk/zynq_7010/UsbmsgHandler.h
/home/modehua/sdk/zynq_7010/ZouZhiMotor.h
Motor.h
/home/modehua/sdk/zynq_7010/Motor.h
/home/modehua/sdk/zynq_7010/autoevent.hpp /home/modehua/sdk/zynq_7010/autoevent.hpp
mutex mutex
- -
@ -1176,6 +1460,10 @@ condition_variable
stdint.h stdint.h
- -
/home/modehua/sdk/zynq_7010/buildconf.h
/home/modehua/sdk/zynq_7010/camtp.h
/home/modehua/sdk/zynq_7010/correct_ultis.h /home/modehua/sdk/zynq_7010/correct_ultis.h
sstream sstream
- -
@ -1210,6 +1498,10 @@ iostream
ctime ctime
- -
/home/modehua/sdk/zynq_7010/fpgacontrol.h
string
-
/home/modehua/sdk/zynq_7010/gvideo.h /home/modehua/sdk/zynq_7010/gvideo.h
string string
- -
@ -1556,6 +1848,74 @@ limits
type_traits type_traits
- -
/home/modehua/sdk/zynq_7010/logs_out.h
syslog.h
-
stdio.h
-
/home/modehua/sdk/zynq_7010/main.cpp
cstdio
-
iostream
-
fstream
-
DevUtil.h
/home/modehua/sdk/zynq_7010/DevUtil.h
Motor.h
/home/modehua/sdk/zynq_7010/Motor.h
thread
-
string
-
gvideo.h
/home/modehua/sdk/zynq_7010/gvideo.h
FpgaComm.h
/home/modehua/sdk/zynq_7010/FpgaComm.h
FsmState.h
/home/modehua/sdk/zynq_7010/FsmState.h
Scanner.h
/home/modehua/sdk/zynq_7010/Scanner.h
sstream
-
stdio.h
-
stdlib.h
-
signal.h
-
sys/file.h
-
HGUsb.h
/home/modehua/sdk/zynq_7010/HGUsb.h
memory.h
-
UsbScanner.h
/home/modehua/sdk/zynq_7010/UsbScanner.h
scanservices_utils.h
/home/modehua/sdk/zynq_7010/scanservices_utils.h
turbojpeg.h
-
JsonConfig.h
/home/modehua/sdk/zynq_7010/JsonConfig.h
syslog.h
-
utilsfunc.h
/home/modehua/sdk/zynq_7010/utilsfunc.h
correct_ultis.h
/home/modehua/sdk/zynq_7010/correct_ultis.h
errno.h
-
USBProtocol.h
/home/modehua/sdk/zynq_7010/USBProtocol.h
MotorConfig.h
/home/modehua/sdk/zynq_7010/MotorConfig.h
iomanip
-
usbdevice.h
/home/modehua/sdk/zynq_7010/usbdevice.h
/home/modehua/sdk/zynq_7010/scannersysinfo.h /home/modehua/sdk/zynq_7010/scannersysinfo.h
sstream sstream
- -
@ -1594,6 +1954,40 @@ unistd.h
sys/ioctl.h sys/ioctl.h
- -
/home/modehua/sdk/zynq_7010/usb_gadget.h
linux/usb/ch9.h
-
linux/usb/gadgetfs.h
-
linux/usb/functionfs.h
-
usbstring.h
/home/modehua/sdk/zynq_7010/usbstring.h
/home/modehua/sdk/zynq_7010/usbdevice.h
stdint.h
-
thread
-
functional
-
memory
-
camtp.h
/home/modehua/sdk/zynq_7010/camtp.h
buildconf.h
/home/modehua/sdk/zynq_7010/buildconf.h
usb_gadget.h
/home/modehua/sdk/zynq_7010/usb_gadget.h
libaio.h
-
queue
-
mutex
-
/home/modehua/sdk/zynq_7010/usbstring.h
/home/modehua/sdk/zynq_7010/utilsfunc.h /home/modehua/sdk/zynq_7010/utilsfunc.h
scanservices_utils.h scanservices_utils.h
/home/modehua/sdk/zynq_7010/scanservices_utils.h /home/modehua/sdk/zynq_7010/scanservices_utils.h

Binary file not shown.

View File

@ -339,50 +339,56 @@ int main(int argc, char *argv[])
{ {
HG_JpegCompressInfo info = m_scanner->GetImage(); HG_JpegCompressInfo info = m_scanner->GetImage();
int index = 0; //int index = 0;
unsigned char *p = (unsigned char *)malloc(sizeof(info)+ info.DataLength + 4 ); // unsigned char *p = (unsigned char *)malloc(sizeof(info)+ info.DataLength + 4 );
memcpy(p + index,&info.data_type,sizeof(int)); // memcpy(p + index,&info.data_type,sizeof(int));
index += sizeof(int); // index += sizeof(int);
int val =*(int *)p; // int val =*(int *)p;
memcpy(p + index,&info.first_frame,sizeof(int)); // memcpy(p + index,&info.first_frame,sizeof(int));
index += sizeof(int); // index += sizeof(int);
memcpy(p + index,&info.last_frame,sizeof(int)); // memcpy(p + index,&info.last_frame,sizeof(int));
index += sizeof(int); // index += sizeof(int);
memcpy(p + index,&info.index_frame,sizeof(int)); // memcpy(p + index,&info.index_frame,sizeof(int));
index += sizeof(int); // index += sizeof(int);
memcpy(p + index,&info.DataLength,sizeof(int)); // memcpy(p + index,&info.DataLength,sizeof(int));
index += sizeof(int); // index += sizeof(int);
memcpy(p + index,&info.width,sizeof(int)); // memcpy(p + index,&info.width,sizeof(int));
index += sizeof(int); // index += sizeof(int);
memcpy(p + index,&info.height,sizeof(int)); // memcpy(p + index,&info.height,sizeof(int));
index += sizeof(int); // index += sizeof(int);
//printf("info.DataLength =%d index=%d\r\n",info.DataLength,index); // //printf("info.DataLength =%d index=%d\r\n",info.DataLength,index);
if (!info.pJpegData) // if (!info.pJpegData)
{ // {
printf("取图失败\r\n"); // printf("取图失败\r\n");
break; // break;
} // }
memcpy(p + index,info.pJpegData,info.DataLength); //memcpy(p + index,info.pJpegData,info.DataLength);
index +=info.DataLength; //index +=info.DataLength;
//printf("info.data_type:%d info.first_frame:%d last_frame:%d index_frame:%d DataLength:%d\r\n",info.data_type,info.first_frame,info.last_frame,info.index_frame,info.DataLength); //printf("info.data_type:%d info.first_frame:%d last_frame:%d index_frame:%d DataLength:%d\r\n",info.data_type,info.first_frame,info.last_frame,info.index_frame,info.DataLength);
//printf(" index :%d\r\n", index); //printf(" index :%d\r\n", index);
m_scanner->write_bulk(&index,sizeof(int)); // m_scanner->write_bulk(&index,sizeof(int));
int tt = m_scanner->write_bulk(p,index); // int tt = m_scanner->write_bulk(p,index);
break; // if(p)
// free(p);
// if(info.pJpegData)
// tjFree(info.pJpegData);
// break;
if (info.pJpegData != nullptr && info.DataLength != 0) if (info.pJpegData != nullptr && info.DataLength != 0)
{ {
int tt = m_scanner->write_bulk((void*)&info, sizeof(info));
break;
int tt = m_scanner->write_bulk((void*)&info, sizeof(int)*7);
//break;
//LOG("GET_IMAGE info.pJpegData =%p info.DataLength=%d \n", info.pJpegData, info.DataLength); //LOG("GET_IMAGE info.pJpegData =%p info.DataLength=%d \n", info.pJpegData, info.DataLength);
@ -411,8 +417,8 @@ int main(int argc, char *argv[])
else else
index += tt; index += tt;
} }
// tjFree(info.pJpegData); tjFree(info.pJpegData);
//LOG("Free info.pJpegData done\n"); LOG("Free info.pJpegData done\n");
} }
} }
break; break;