调整300dpi速度模式
This commit is contained in:
parent
9e33978e14
commit
0b594ec4f4
185
CameraParams.h
185
CameraParams.h
|
@ -133,188 +133,3 @@ enum PSReg
|
||||||
DATA_STATUS,
|
DATA_STATUS,
|
||||||
REG_NUM,
|
REG_NUM,
|
||||||
};
|
};
|
||||||
|
|
||||||
union CAM_INFO_REG
|
|
||||||
{
|
|
||||||
int value = 0;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned int ProjectVersion : 6; //所属项目版本
|
|
||||||
unsigned int cam_run_status : 1; //相机扫描状态
|
|
||||||
unsigned int vidio_status : 1; // v4l状态
|
|
||||||
unsigned int CIS_count : 8; // CIS计数
|
|
||||||
unsigned int CIS_Width : 16;
|
|
||||||
/* data */
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
union CAM_STATUS_REG
|
|
||||||
{
|
|
||||||
int value = 0;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned int doImageProcess : 1; //启用图像处理
|
|
||||||
unsigned int dosplice : 1; //启用拼接
|
|
||||||
unsigned int doCorrect : 1; //是否启用校正
|
|
||||||
unsigned int continuousScan : 1; //是否是连续扫描
|
|
||||||
unsigned int NoAIOBuffer :1 ; // 是否使用AIO buffer , 0:自行管理buffer 1:AIO buffer管理
|
|
||||||
unsigned int INTPrintInfo:2;
|
|
||||||
unsigned int reserve : 5 ;
|
|
||||||
unsigned int dataIn : 1; //数据输入
|
|
||||||
unsigned int simulateData : 1; //是否启用PS模拟数据
|
|
||||||
unsigned int doSort : 1; //是否进行排序
|
|
||||||
unsigned int doZoom : 1; //是否进行缩放
|
|
||||||
unsigned int ratio_deno : 8; // resize分母
|
|
||||||
unsigned int ratio_num : 8; // resize分子
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
union ADC_INFO_REG
|
|
||||||
{
|
|
||||||
int value = 0;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned int adc_channel_num : 8; // adc通道数量
|
|
||||||
unsigned int adc_agin_bit_width : 5; // adc增益位宽
|
|
||||||
unsigned int adc_offset_bit_width : 5; // adc偏移位宽
|
|
||||||
unsigned int unuse : 14;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
union Heartbeat_REG
|
|
||||||
{
|
|
||||||
int value = 0;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned int hart_interval_ms : 31;
|
|
||||||
unsigned int eable_heartbeat : 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
union DATA_STATUS_REG
|
|
||||||
{
|
|
||||||
int value = 0;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned int dataIn : 1;
|
|
||||||
unsigned int nuse : 31;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
enum VERSION_ATTR
|
|
||||||
{
|
|
||||||
Release = 0,
|
|
||||||
Alpha, //内部测试版本
|
|
||||||
Beta, //外部测试版本
|
|
||||||
Demo, //演示版本
|
|
||||||
Free, //自由版本
|
|
||||||
Full, //完全版本
|
|
||||||
Standard, //标准版
|
|
||||||
SpecialVersion = 15
|
|
||||||
};
|
|
||||||
|
|
||||||
enum SpecialId
|
|
||||||
{
|
|
||||||
SpecialID_zero = 0,
|
|
||||||
SpecialID_CODE = 15,
|
|
||||||
};
|
|
||||||
|
|
||||||
union VERSION_INFO
|
|
||||||
{
|
|
||||||
/* data */
|
|
||||||
int value = 0;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned int AmendMentVersion : 8; //修订版本
|
|
||||||
unsigned int SpecialIdent : 4; //特别标识
|
|
||||||
VERSION_ATTR AttrVersion : 4; //版本描述
|
|
||||||
unsigned int NextVersion : 8; //次要版本
|
|
||||||
unsigned int MajorVersion : 8; //主要版本
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
enum PERJECT_VERSION
|
|
||||||
{
|
|
||||||
PythonZ1200_O,
|
|
||||||
PythonZ1200 = 1,
|
|
||||||
PythonZ1800_3_CHANNEL,
|
|
||||||
PythonZ108,
|
|
||||||
PythonZ54,
|
|
||||||
PythonZ1800,
|
|
||||||
PythonZWSS,
|
|
||||||
PythonZ1206,
|
|
||||||
PythonZ1602
|
|
||||||
};
|
|
||||||
|
|
||||||
// cn : 中断端点数据解析 en : INT BLUK envent
|
|
||||||
enum INT_EVENT_CODE
|
|
||||||
{
|
|
||||||
EVENT_CAM_GEGIN = -0x99, // cn : 相机事件边界
|
|
||||||
EVENT_CAM_RECOVING_FILED= -15,// cn : 相机恢复数据错误
|
|
||||||
EVNET_CAM_RECV_ERROR = -14, // cn : 相机传输数据错误
|
|
||||||
EVENT_CAM_OPEN_ERROR = -13, // cn : 相机打开文件错误
|
|
||||||
EVENT_CAM_BUF_FULL = -12, // cn : 相机缓冲区满
|
|
||||||
EVENT_CAM_OVER_CLK, // cn : 相机触发超频
|
|
||||||
EVENT_CAM_EXEC_FAIL, // cn : 相机致命错误退出事件
|
|
||||||
EVENT_CAM_FATAL = -3, // cn : 相机致命错误事件
|
|
||||||
EVENT_CAM_ERROR, // cn : 相机错误事件
|
|
||||||
EVENT_CAM_WARRING, // cn : 相机警告事件
|
|
||||||
EVENT_CAM_STOP = 0, // cn : 相机停止事件
|
|
||||||
EVENT_CAM_START, // cn : 相机开始事件
|
|
||||||
EVENT_CAM_BUTN_START, // cn : 相机外部启动
|
|
||||||
EVENT_BY_FPGA, // cn : 由FPGA发起的相机事件
|
|
||||||
EVENT_CAM_SP_PRO, // cn : 工程特殊事件
|
|
||||||
EVENT_CAM_HEATBEAT, // cn : 相机心跳事件
|
|
||||||
EVENT_CAM_SUCESS = 10, // cn : 相机执行成功
|
|
||||||
EVENT_CAM_PAUSE, // cn : 相机暂停运作
|
|
||||||
EVENT_CAM_CLOSE, // cn : 相机关闭
|
|
||||||
EVENT_CAM_INFO, // cn : 相机基本信息
|
|
||||||
EVENT_CAM_RECOVING, // cn : 相机尝试恢复数据
|
|
||||||
EVENT_CAM_RECOVed, // cn : 相机恢复数据成功
|
|
||||||
EVENT_CAM_ERAS, // cn : 相机擦除数据
|
|
||||||
EVENT_CAM_WRITE, // cn : 相机写入固件
|
|
||||||
EVENT_CAM_CHECK, // cn : 相机检查数据
|
|
||||||
|
|
||||||
EVENT_CAM_EVENT_END = 0x99, // cn :相机地址终止符
|
|
||||||
};
|
|
||||||
|
|
||||||
struct INT_EVENT_HEAD
|
|
||||||
{
|
|
||||||
INT_EVENT_CODE EventID;
|
|
||||||
unsigned int EventLength;
|
|
||||||
char *EventData;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
CP_STOP,
|
|
||||||
CP_START,
|
|
||||||
CP_CLEAR_FIFO,
|
|
||||||
CP_Phase,
|
|
||||||
CP_SpTime,
|
|
||||||
CP_SaveADC,
|
|
||||||
CP_SavePS,
|
|
||||||
CP_SpTime_VSNP,
|
|
||||||
CP_Send_Buffer,
|
|
||||||
CP_SEND_FILE = 10,
|
|
||||||
CP_SEND_CMD,
|
|
||||||
CP_UPGRADE,
|
|
||||||
CP_SAFE_SEND, //未使用
|
|
||||||
CP_SAFE_DATE_SEND, //未使用
|
|
||||||
CP_UP_CLear ,
|
|
||||||
CP_SAVE_SP,
|
|
||||||
CP_READ_ADC_AGIN,
|
|
||||||
CP_READ_ADC_OFFSET,
|
|
||||||
CP_WRITE_ADC_AGIN,
|
|
||||||
CP_WRITE_ADC_OFFSET,
|
|
||||||
CP_WRITE_CORRECT,
|
|
||||||
CP_WRITE_MONTAGE,
|
|
||||||
CP_READ_CURRENT_LINE,
|
|
||||||
CP_READ_CACHING_DARA,
|
|
||||||
CP_GET_DPI = 100,
|
|
||||||
CP_GET_DPI_LENTH,
|
|
||||||
CP_LOOP_TEST = 200,
|
|
||||||
CP_IMAGE_TEST,
|
|
||||||
} Capture_flag;
|
|
||||||
|
|
||||||
/****************************PS REG DEFINE*******************************************/
|
|
133
HCamDevice.cpp
133
HCamDevice.cpp
|
@ -10,10 +10,8 @@
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
// #include "cameraConfig.h"
|
|
||||||
#include "CameraParams.h"
|
#include "CameraParams.h"
|
||||||
#include <linux/v4l2-subdev.h>
|
#include <linux/v4l2-subdev.h>
|
||||||
//#include "camconfig.h"
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
@ -381,7 +379,6 @@ void HCamDevice::HtCamStartVideoCapturing()
|
||||||
|
|
||||||
if (ioctl(videofd, VIDIOC_QBUF, &buf) == -1)
|
if (ioctl(videofd, VIDIOC_QBUF, &buf) == -1)
|
||||||
{
|
{
|
||||||
((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status = 0;
|
|
||||||
camera_err(" VIDIOC_QBUF error\n");
|
camera_err(" VIDIOC_QBUF error\n");
|
||||||
|
|
||||||
if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
if (drivertype == V4L2_CAP_VIDEO_CAPTURE_MPLANE)
|
||||||
|
@ -401,13 +398,11 @@ void HCamDevice::HtCamStartVideoCapturing()
|
||||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||||
if (ioctl(videofd, VIDIOC_STREAMON, &type) == -1)
|
if (ioctl(videofd, VIDIOC_STREAMON, &type) == -1)
|
||||||
{
|
{
|
||||||
((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status = 0;
|
|
||||||
camera_err(" VIDIOC_STREAMON error! %s\n", strerror(errno));
|
camera_err(" VIDIOC_STREAMON error! %s\n", strerror(errno));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
((CAM_INFO_REG *)&pPsReg[CAM_INFO])->cam_run_status = 1;
|
|
||||||
//camera_print(" stream on succeed\n");
|
//camera_print(" stream on succeed\n");
|
||||||
}
|
}
|
||||||
startFPGAScan();
|
startFPGAScan();
|
||||||
|
@ -586,33 +581,6 @@ void HCamDevice::startFPGAScan()
|
||||||
HtCamStartSampling();
|
HtCamStartSampling();
|
||||||
}
|
}
|
||||||
|
|
||||||
void HCamDevice::HtCamChangeAdjustSpTime(uint32_t sp_time_gap, uint32_t sp_time_rw)
|
|
||||||
{
|
|
||||||
uint32_t *pCamCtrlReg = virBaseAddr;
|
|
||||||
|
|
||||||
sp_time_gap = (sp_time_gap << 16);
|
|
||||||
pCamCtrlReg[3] |= (uint32_t)(sp_time_rw);
|
|
||||||
pCamCtrlReg[3] |= (uint32_t)(sp_time_gap);
|
|
||||||
}
|
|
||||||
|
|
||||||
void HCamDevice::HtCamChangeAdjustPhase(uint16_t times, uint8_t dir)
|
|
||||||
{
|
|
||||||
uint32_t *pCamCtrlReg = virBaseAddr;
|
|
||||||
int i;
|
|
||||||
if (dir)
|
|
||||||
pCamCtrlReg[10] |= (1 << 9);
|
|
||||||
else
|
|
||||||
pCamCtrlReg[10] &= ~(1 << 9);
|
|
||||||
|
|
||||||
for (i = 0; i < times; i++)
|
|
||||||
{
|
|
||||||
pCamCtrlReg[10] &= ~(1 << 8);
|
|
||||||
pCamCtrlReg[10] |= (1 << 8);
|
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
|
||||||
pCamCtrlReg[10] &= ~(1 << 10);
|
|
||||||
pCamCtrlReg[10] |= (1 << 10);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// This function is prohibited
|
// This function is prohibited
|
||||||
int HCamDevice::HtCamStartSampling()
|
int HCamDevice::HtCamStartSampling()
|
||||||
|
@ -1235,15 +1203,6 @@ void HCamDevice::HtCamChangeMonoStartSample(int start_sample)
|
||||||
pCamCtrlReg[13] |= (uint32_t)(ss << 16);
|
pCamCtrlReg[13] |= (uint32_t)(ss << 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HCamDevice::HtCamChangePhase(int phase)
|
|
||||||
{
|
|
||||||
// phase &= 0xff ;
|
|
||||||
// VSNP = phase;
|
|
||||||
// unsigned int oValue = HtCamReadFpgaRegs(16);
|
|
||||||
// oValue = oValue & 0xffffff00;
|
|
||||||
// oValue = oValue + phase ;
|
|
||||||
// HtCamWriteFpgaRegs(16, oValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
void HCamDevice::ChangeScanState(bool state)
|
void HCamDevice::ChangeScanState(bool state)
|
||||||
{
|
{
|
||||||
|
@ -1321,54 +1280,15 @@ int HCamDevice::HtCamGetColorMode()
|
||||||
void HCamDevice::init_ps_regs()
|
void HCamDevice::init_ps_regs()
|
||||||
{
|
{
|
||||||
|
|
||||||
// pPsReg[CAM_DPI] = psConfig.getReg(CAM_DPI);
|
|
||||||
// pPsReg[RLS_CHECK_CODE] = psConfig.getReg(RLS_CHECK_CODE);
|
|
||||||
//pPsReg[HEARTBAT] = psConfig.getReg(HEARTBAT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t HCamDevice::HtCamReadPsRegs(uint8_t reg_addr)
|
|
||||||
{
|
|
||||||
return pPsReg[reg_addr];
|
|
||||||
}
|
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
void HCamDevice::HtCamWritePsRegs(uint8_t reg_addr, uint32_t reg_value)
|
|
||||||
{
|
|
||||||
printf("reg addr %d\r\n" ,reg_addr );
|
|
||||||
if (reg_addr >= PSReg::REG_NUM)
|
|
||||||
return;
|
|
||||||
pPsReg[reg_addr] = reg_value;
|
|
||||||
switch (reg_addr)
|
|
||||||
{
|
|
||||||
case BUF_WIDTH:
|
|
||||||
case BUF_HEIGHT:
|
|
||||||
case BUF_NUM:
|
|
||||||
HtCamResizeBuffer(pPsReg[BUF_WIDTH], pPsReg[BUF_HEIGHT], pPsReg[BUF_NUM]);
|
|
||||||
break;
|
|
||||||
case CAM_DPI:
|
|
||||||
HtCamPsDpiChange(reg_value);
|
|
||||||
break;
|
|
||||||
case CAM_STATUS:
|
|
||||||
{
|
|
||||||
HtCamImageProcessChange();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void HCamDevice::savePsReg()
|
void HCamDevice::savePsReg()
|
||||||
{
|
{
|
||||||
// CamPSConfig psConfig(CONFIG_PATH);
|
|
||||||
// psConfig.setReg(PS_VERSION , pPsReg[PS_VERSION] );
|
|
||||||
// psConfig.setReg(CAM_STATUS , pPsReg[CAM_STATUS] );
|
|
||||||
// psConfig.setReg(MOTOR_SPEED , pPsReg[MOTOR_SPEED]);
|
|
||||||
// psConfig.setReg(CAM_DPI , pPsReg[CAM_DPI] );
|
|
||||||
// psConfig.setReg(HEARTBAT , pPsReg[HEARTBAT] );
|
|
||||||
// psConfig.setReg(RLS_CHECK_CODE, pPsReg[RLS_CHECK_CODE]);
|
|
||||||
// psConfig.save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HCamDevice::HtCamWriteAllADC()
|
void HCamDevice::HtCamWriteAllADC()
|
||||||
|
@ -1424,59 +1344,8 @@ void HCamDevice::HtCamResizeBuffer(int width, int height, int number)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void HCamDevice::HtCamImageProcessChange()
|
|
||||||
{
|
|
||||||
CAM_STATUS_REG* status = (CAM_STATUS_REG*)&pPsReg[CAM_STATUS];
|
|
||||||
if(status->doImageProcess)
|
|
||||||
{
|
|
||||||
HtCamPsDpiChange(pPsReg[CAM_DPI]);
|
|
||||||
}else
|
|
||||||
{
|
|
||||||
pPsReg[IMG_WIDTH] = pPsReg[BUF_WIDTH];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// DPI切换-暂只适配1200/1800
|
|
||||||
bool HCamDevice::HtCamPsDpiChange(int dpi)
|
|
||||||
{
|
|
||||||
std::cout << "DPI Change for " << dpi <<std::endl;
|
|
||||||
for (auto i = _DPI_WIDTH.begin(); i != _DPI_WIDTH.end(); i++)
|
|
||||||
{
|
|
||||||
if (dpi == i->first)
|
|
||||||
{
|
|
||||||
_N_DPI = dpi;
|
|
||||||
_IMG_BUF_WIDTH = i->second;
|
|
||||||
|
|
||||||
pPsReg[BUF_WIDTH] = _DPI_V4LWIDTH[dpi];
|
|
||||||
if(dpi != 300 || dpi != 600)
|
|
||||||
{
|
|
||||||
((CAM_STATUS_REG*)&pPsReg[CAM_STATUS])->doZoom = 1 ;
|
|
||||||
}
|
|
||||||
if (dpi > 300)
|
|
||||||
{
|
|
||||||
HtCamSetDpi(0);
|
|
||||||
pPsReg[BUF_HEIGHT] = _V4LHEIGHT/2;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
HtCamSetDpi(1);
|
|
||||||
pPsReg[BUF_HEIGHT] = _V4LHEIGHT;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(v4lWidth != pPsReg[BUF_WIDTH] || v4lHeight != pPsReg[BUF_HEIGHT] || v4lBufferCount != pPsReg[BUF_NUM])
|
|
||||||
{
|
|
||||||
HtCamResizeBuffer(pPsReg[BUF_WIDTH], pPsReg[BUF_HEIGHT] , pPsReg[BUF_NUM]);
|
|
||||||
camera_print(" fmt.fmt.pix.width = %d\n", v4lWidth);
|
|
||||||
camera_print(" fmt.fmt.pix.height = %d\n", v4lHeight);
|
|
||||||
camera_print(" fmt.fmt.pix.field = %d\n", pPsReg[BUF_NUM]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void HCamDevice::HtCamOverClockClear()
|
void HCamDevice::HtCamOverClockClear()
|
||||||
{
|
{
|
||||||
|
|
|
@ -107,8 +107,6 @@ public:
|
||||||
|
|
||||||
void HtCamChangeTriggerInAndEXt(int in_out);
|
void HtCamChangeTriggerInAndEXt(int in_out);
|
||||||
|
|
||||||
uint32_t HtCamReadPsRegs(uint8_t reg_addr);
|
|
||||||
void HtCamWritePsRegs(uint8_t reg_addr, uint32_t reg_value);
|
|
||||||
void savePsReg();
|
void savePsReg();
|
||||||
|
|
||||||
void HtCamWriteAllADC();
|
void HtCamWriteAllADC();
|
||||||
|
@ -126,7 +124,6 @@ public:
|
||||||
void setConfig(Camconfig* _config){config = _config;}
|
void setConfig(Camconfig* _config){config = _config;}
|
||||||
|
|
||||||
void HtCamChangeMonoStartSample(int start_sample);
|
void HtCamChangeMonoStartSample(int start_sample);
|
||||||
void HtCamChangePhase(int phase);
|
|
||||||
|
|
||||||
void ChangeScanState(bool state);
|
void ChangeScanState(bool state);
|
||||||
|
|
||||||
|
@ -139,16 +136,10 @@ private:
|
||||||
void init_ps_regs();
|
void init_ps_regs();
|
||||||
void HtCamSwitchSampleModes(unsigned char mode);//测试数据
|
void HtCamSwitchSampleModes(unsigned char mode);//测试数据
|
||||||
|
|
||||||
|
|
||||||
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 HtCamChangeAdjustPhase(uint16_t times, uint8_t dir);
|
|
||||||
|
|
||||||
|
|
||||||
bool HtCamPsDpiChange(int dpi);
|
|
||||||
|
|
||||||
void HtCamImageProcessChange();
|
|
||||||
|
|
||||||
int HtCamEventWorkThread(void);
|
int HtCamEventWorkThread(void);
|
||||||
|
|
||||||
|
|
|
@ -103,7 +103,9 @@ void MultiFrameCapture::snap()
|
||||||
if (m_config.params.dpi == 3)
|
if (m_config.params.dpi == 3)
|
||||||
this_thread::sleep_for(std::chrono::milliseconds(160));
|
this_thread::sleep_for(std::chrono::milliseconds(160));
|
||||||
else if(m_config.params.dpi == 2)
|
else if(m_config.params.dpi == 2)
|
||||||
this_thread::sleep_for(std::chrono::milliseconds(50));
|
this_thread::sleep_for(std::chrono::milliseconds(45));
|
||||||
|
else
|
||||||
|
this_thread::sleep_for(std::chrono::milliseconds(10));
|
||||||
|
|
||||||
video->HtCamStartVideoCapturing();
|
video->HtCamStartVideoCapturing();
|
||||||
|
|
||||||
|
@ -188,7 +190,7 @@ void MultiFrameCapture::UpdateScanParam(HG_ScanConfiguration config)
|
||||||
|
|
||||||
|
|
||||||
//int height = resolution_ == DPI_600 ? 342 : 900;
|
//int height = resolution_ == DPI_600 ? 342 : 900;
|
||||||
int height = config.params.dpi == 3 ? 342 :(config.params.dpi == 2?900:513);
|
int height = config.params.dpi == 3 ? 342 :(config.params.dpi == 2?999:513);
|
||||||
compute_height(WIDTH , height);
|
compute_height(WIDTH , height);
|
||||||
|
|
||||||
video->HtCamSetClolr(color_mode_);
|
video->HtCamSetClolr(color_mode_);
|
||||||
|
@ -208,10 +210,10 @@ void MultiFrameCapture::UpdateScanParam(HG_ScanConfiguration config)
|
||||||
int val = config.params.dpi == 3 ? 600 :(config.params.dpi == 2?300:200);
|
int val = config.params.dpi == 3 ? 600 :(config.params.dpi == 2?300:200);
|
||||||
printf("val = %d\r\n",val);
|
printf("val = %d\r\n",val);
|
||||||
uint32_t cnt = compute_frame(paper_size_ , val) ; //多设一帧
|
uint32_t cnt = compute_frame(paper_size_ , val) ; //多设一帧
|
||||||
// if (m_config.params.dpi == 3)
|
if (m_config.params.dpi == 2 && m_config.params.pageSize == (int)PaperSize::G400_A4)
|
||||||
// {
|
{
|
||||||
// cnt +=1 ;
|
cnt -=1 ;
|
||||||
// }
|
}
|
||||||
|
|
||||||
video->HtCamSetFrameCnt(cnt);
|
video->HtCamSetFrameCnt(cnt);
|
||||||
printf(" -----------------------设置帧数:%d------------------\r\n",cnt);
|
printf(" -----------------------设置帧数:%d------------------\r\n",cnt);
|
||||||
|
@ -260,13 +262,7 @@ void MultiFrameCapture::waitsnapdone(int state)
|
||||||
{
|
{
|
||||||
StopWatch sw;
|
StopWatch sw;
|
||||||
sw.reset();
|
sw.reset();
|
||||||
#ifdef TEST_SIMCAP
|
|
||||||
HG_JpegCompressInfo info;
|
|
||||||
info.DataLength = m_test_pimg_len;
|
|
||||||
info.pJpegData = (unsigned char *)m_test_pimg;
|
|
||||||
|
|
||||||
m_glue.m_imageready(info);
|
|
||||||
#else
|
|
||||||
printf("!!!!!!!!!!!!!!!! m_cv_snapdone wait \n");
|
printf("!!!!!!!!!!!!!!!! m_cv_snapdone wait \n");
|
||||||
V4L2_DATAINFO_Ex info;
|
V4L2_DATAINFO_Ex info;
|
||||||
info.snaped_index = snaped_index;
|
info.snaped_index = snaped_index;
|
||||||
|
@ -283,7 +279,7 @@ void MultiFrameCapture::waitsnapdone(int state)
|
||||||
b_end_snap = true;
|
b_end_snap = true;
|
||||||
m_frameinfos.Put(info);
|
m_frameinfos.Put(info);
|
||||||
printf("!!!!!!!!!!!!!!!! m_cv_snapdone wait done :%f \n",sw.elapsed_ms());
|
printf("!!!!!!!!!!!!!!!! m_cv_snapdone wait done :%f \n",sw.elapsed_ms());
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MultiFrameCapture::IsImageQueueEmpty()
|
bool MultiFrameCapture::IsImageQueueEmpty()
|
||||||
|
|
Loading…
Reference in New Issue