diff --git a/HCamDevice.cpp b/HCamDevice.cpp index 984d1da..4f6dbb7 100644 --- a/HCamDevice.cpp +++ b/HCamDevice.cpp @@ -853,7 +853,7 @@ void HCamDevice::HtCamSwitchSampleModes(uint8_t mode) pCamCtrlReg[4] |= (0x00020000); } -void HCamDevice::HtCamChangeExposureValue(uint32_t value) +void HCamDevice::HtCamChangeExposureValueF(uint32_t value) { if (virBaseAddr == NULL) { @@ -869,8 +869,28 @@ void HCamDevice::HtCamChangeExposureValue(uint32_t value) pCamCtrlReg[5] |= (uint32_t)(value << 16); pCamCtrlReg[6] |= (uint32_t)(value); // GREEN 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) { if (virBaseAddr == NULL) @@ -988,30 +1008,39 @@ void HCamDevice::HtCamSetSpTime(uint32_t reg_value) { CamZ_Reg_2Short sp_time; 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 ®_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] = 0x00C8;//彩色 CamZ_Reg_2Short st_sp; st_sp.value = HtCamReadFpgaRegs(0x0d); st_sp.NShort[0] = 0x0200; - if (color) - st_sp.NShort[1] = 0x00C8; //彩色 - else - st_sp.NShort[1] = 0x00DC; //灰色 2023-8-3 + // if (color) + // st_sp.NShort[1] = 0x00C8; //彩色 + // else + // 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 ®_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) @@ -1109,8 +1138,8 @@ void HCamDevice::HtCamSetClolr(int color) reg_4.en_frameset = 1; //帧计数默认开启 HtCamWriteFpgaRegs(0x04,reg_4.value); - HtCamSetStSp(color); - HtCamSetVsnpTime(color); + // HtCamSetStSp(color); + // HtCamSetVsnpTime(color); } diff --git a/HCamDevice.h b/HCamDevice.h index dd286f3..74f360b 100644 --- a/HCamDevice.h +++ b/HCamDevice.h @@ -55,10 +55,15 @@ public: void HtCamSetFrameCnt(uint32_t val);//设置需要采集的帧数 + uint32_t HtCamReadFpgaRegs(uint8_t reg_addr); //读取寄存器值 + void HtCamSetSpTime(uint32_t reg_value);//0x03 //内触发间隔 //影响到图像得拉伸 + void HtCamGetSpTime(uint32_t ®_value); //获取当前sptime + void HtCamSetStSp(int start_sample);//0x0d //更具不同的颜色模式设置不同的st_sp //影响到图像的偏移 + void HtCamGetStSp(uint32_t &start_sample); + void HtCamSetVsnpTime(int color); - - - uint32_t HtCamReadFpgaRegs(uint8_t reg_addr); //读取寄存器值 + void HtCamChangeExposureValueF(unsigned int value); //曝光值设置 + void HtCamChangeExposureValueB(unsigned int value); //曝光值设置 private: int init_fpga(); //初始化 寄存器基地址 @@ -70,18 +75,6 @@ private: void HtCamWriteFpgaRegs(uint8_t reg_addr, uint32_t reg_value); //写寄存器 - - void HtCamSetSpTime(uint32_t reg_value);//0x03 //内触发间隔 //影响到图像得拉伸 - void HtCamGetSpTime(uint32_t ®_value); //获取当前sptime - - void HtCamSetStSp(int color);//0x0d //更具不同的颜色模式设置不同的st_sp //影响到图像的偏移 - void HtCamGetStSp(uint32_t ®_value); - - - void HtCamSetVsnpTime(int color); - - - public: HCamDevice(); ~HCamDevice(); @@ -124,7 +117,8 @@ private: int init_dev(); void init_ps_regs(); void HtCamSwitchSampleModes(unsigned char mode);//测试数据 - void HtCamChangeExposureValue(unsigned int value); //曝光值设置 + + void HtCamExitVideoCapturing(); void HtCamResizeBuffer(int width, int height, int number); void HtCamChangeAdjustSpTime(uint32_t sp_time_gap, uint32_t sp_time_rw); diff --git a/MultiFrameCapture.cpp b/MultiFrameCapture.cpp index 8ca9f27..74b924d 100644 --- a/MultiFrameCapture.cpp +++ b/MultiFrameCapture.cpp @@ -183,10 +183,19 @@ void MultiFrameCapture::UpdateScanParam(HG_ScanConfiguration config) video->HtCamSetClolr(color_mode_); 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; - uint32_t cnt = compute_frame(paper_size_ , val) / HEIGHT + 1; //多设置一帧 + int val = config.params.dpi == 3 ? 600 :(config.params.dpi == 2?300:200); + uint32_t cnt = compute_frame(paper_size_ , val) / HEIGHT + 1; //多设一帧 video->HtCamSetFrameCnt(cnt); printf(" -----------------------设置帧数:%d------------------\r\n",cnt); } @@ -560,7 +569,7 @@ void MultiFrameCapture::snaprun() video->HtCamGetFrameCnt(frame_cnt); frame_info.frame_index = frame_cnt; 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; printf("--------------------- frame_info.width ------------------ :%d\r\n",frame_info.width ); diff --git a/Scanner.cpp b/Scanner.cpp index f8ac55f..5897272 100644 --- a/Scanner.cpp +++ b/Scanner.cpp @@ -121,7 +121,7 @@ void Scanner::updateSpeedMode(int speed) // } //if(typeid(*capturer)==typeid(MultiFrameCapture)) //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); motorZouzhi.speedChange(m_scaninfo.SpeedMode, t_dpi,m_config.params.isColor); } diff --git a/build/CMakeFiles/scanservice.dir/CXX.includecache b/build/CMakeFiles/scanservice.dir/CXX.includecache index 824dbee..513a2a8 100644 --- a/build/CMakeFiles/scanservice.dir/CXX.includecache +++ b/build/CMakeFiles/scanservice.dir/CXX.includecache @@ -1010,6 +1010,14 @@ CorrectParam.h 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 string - @@ -1034,10 +1042,68 @@ Gpio.h 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 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 string - @@ -1054,6 +1120,12 @@ thread 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 atomic - @@ -1072,6 +1144,14 @@ HCamDevice.h 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 turbojpeg.h - @@ -1094,6 +1174,72 @@ map 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 MultiFrameCapture.h /home/modehua/sdk/zynq_7010/MultiFrameCapture.h @@ -1144,6 +1290,90 @@ CorrectParam.h 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 vector - @@ -1166,6 +1396,60 @@ stdexcept /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 mutex - @@ -1176,6 +1460,10 @@ condition_variable stdint.h - +/home/modehua/sdk/zynq_7010/buildconf.h + +/home/modehua/sdk/zynq_7010/camtp.h + /home/modehua/sdk/zynq_7010/correct_ultis.h sstream - @@ -1210,6 +1498,10 @@ iostream ctime - +/home/modehua/sdk/zynq_7010/fpgacontrol.h +string +- + /home/modehua/sdk/zynq_7010/gvideo.h string - @@ -1556,6 +1848,74 @@ limits 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 sstream - @@ -1594,6 +1954,40 @@ unistd.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 scanservices_utils.h /home/modehua/sdk/zynq_7010/scanservices_utils.h diff --git a/build/CMakeFiles/scanservice.dir/FsmState.cpp.o b/build/CMakeFiles/scanservice.dir/FsmState.cpp.o index 5ae0bc3..7dca038 100644 Binary files a/build/CMakeFiles/scanservice.dir/FsmState.cpp.o and b/build/CMakeFiles/scanservice.dir/FsmState.cpp.o differ diff --git a/build/CMakeFiles/scanservice.dir/HCamDevice.cpp.o b/build/CMakeFiles/scanservice.dir/HCamDevice.cpp.o index de995f7..8e676a9 100644 Binary files a/build/CMakeFiles/scanservice.dir/HCamDevice.cpp.o and b/build/CMakeFiles/scanservice.dir/HCamDevice.cpp.o differ diff --git a/build/CMakeFiles/scanservice.dir/MultiFrameCapture.cpp.o b/build/CMakeFiles/scanservice.dir/MultiFrameCapture.cpp.o index 4f0b73f..5e0a676 100644 Binary files a/build/CMakeFiles/scanservice.dir/MultiFrameCapture.cpp.o and b/build/CMakeFiles/scanservice.dir/MultiFrameCapture.cpp.o differ diff --git a/build/CMakeFiles/scanservice.dir/Scanner.cpp.o b/build/CMakeFiles/scanservice.dir/Scanner.cpp.o index 7a3a205..8d9380f 100644 Binary files a/build/CMakeFiles/scanservice.dir/Scanner.cpp.o and b/build/CMakeFiles/scanservice.dir/Scanner.cpp.o differ diff --git a/build/CMakeFiles/scanservice.dir/UsbScanner.cpp.o b/build/CMakeFiles/scanservice.dir/UsbScanner.cpp.o index 9c8d1eb..fbbbde0 100644 Binary files a/build/CMakeFiles/scanservice.dir/UsbScanner.cpp.o and b/build/CMakeFiles/scanservice.dir/UsbScanner.cpp.o differ diff --git a/build/CMakeFiles/scanservice.dir/ZouZhiMotor.cpp.o b/build/CMakeFiles/scanservice.dir/ZouZhiMotor.cpp.o index 32ef597..deb7382 100644 Binary files a/build/CMakeFiles/scanservice.dir/ZouZhiMotor.cpp.o and b/build/CMakeFiles/scanservice.dir/ZouZhiMotor.cpp.o differ diff --git a/build/CMakeFiles/scanservice.dir/main.cpp.o b/build/CMakeFiles/scanservice.dir/main.cpp.o index 72cbf66..af1138b 100644 Binary files a/build/CMakeFiles/scanservice.dir/main.cpp.o and b/build/CMakeFiles/scanservice.dir/main.cpp.o differ diff --git a/build/CMakeFiles/scanservice.dir/usbdevice.cpp.o b/build/CMakeFiles/scanservice.dir/usbdevice.cpp.o index 1bfdd0a..987d87f 100644 Binary files a/build/CMakeFiles/scanservice.dir/usbdevice.cpp.o and b/build/CMakeFiles/scanservice.dir/usbdevice.cpp.o differ diff --git a/build/scanservice b/build/scanservice index bb84c7f..1c4f3ef 100755 Binary files a/build/scanservice and b/build/scanservice differ diff --git a/main.cpp b/main.cpp index 9107231..652e265 100644 --- a/main.cpp +++ b/main.cpp @@ -339,50 +339,56 @@ int main(int argc, char *argv[]) { 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)); - index += sizeof(int); - int val =*(int *)p; - memcpy(p + index,&info.first_frame,sizeof(int)); - index += sizeof(int); - memcpy(p + index,&info.last_frame,sizeof(int)); - index += sizeof(int); - memcpy(p + index,&info.index_frame,sizeof(int)); - index += sizeof(int); - memcpy(p + index,&info.DataLength,sizeof(int)); - index += sizeof(int); - memcpy(p + index,&info.width,sizeof(int)); - index += sizeof(int); - memcpy(p + index,&info.height,sizeof(int)); - index += sizeof(int); - //printf("info.DataLength =%d index=%d\r\n",info.DataLength,index); - if (!info.pJpegData) - { - printf("取图失败\r\n"); - break; - } + // memcpy(p + index,&info.data_type,sizeof(int)); + // index += sizeof(int); + // int val =*(int *)p; + // memcpy(p + index,&info.first_frame,sizeof(int)); + // index += sizeof(int); + // memcpy(p + index,&info.last_frame,sizeof(int)); + // index += sizeof(int); + // memcpy(p + index,&info.index_frame,sizeof(int)); + // index += sizeof(int); + // memcpy(p + index,&info.DataLength,sizeof(int)); + // index += sizeof(int); + // memcpy(p + index,&info.width,sizeof(int)); + // index += sizeof(int); + // memcpy(p + index,&info.height,sizeof(int)); + // index += sizeof(int); + // //printf("info.DataLength =%d index=%d\r\n",info.DataLength,index); + // if (!info.pJpegData) + // { + // printf("取图失败\r\n"); + // 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(" 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); - break; + // int tt = m_scanner->write_bulk(p,index); + // if(p) + // free(p); + // if(info.pJpegData) + // tjFree(info.pJpegData); + // break; 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); @@ -411,8 +417,8 @@ int main(int argc, char *argv[]) else index += tt; } - // tjFree(info.pJpegData); - //LOG("Free info.pJpegData done\n"); + tjFree(info.pJpegData); + LOG("Free info.pJpegData done\n"); } } break;