313 lines
7.6 KiB
C
313 lines
7.6 KiB
C
/*
|
||
* @Author: your name
|
||
* @Date: 2022-01-19 17:27:51
|
||
* @LastEditTime: 2023-02-27 18:06:42
|
||
* @LastEditors: Zhaozhonmin 1656963645@qq.com
|
||
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||
* @FilePath: \zynq_MSS\capimage\Camparams.h
|
||
*/
|
||
#pragma once
|
||
|
||
/****************************FPGA REG DEFINE*****************************************/
|
||
union CamZ_Reg_2Short
|
||
{
|
||
unsigned short NShort[2];
|
||
int value;
|
||
};
|
||
|
||
union CamZ_Reg_4
|
||
{
|
||
int value;
|
||
struct
|
||
{
|
||
unsigned int unuse_0 : 2;
|
||
unsigned int color_mode : 1;
|
||
unsigned int unuse_1 : 2;
|
||
unsigned int encode_divide : 3;
|
||
unsigned int encode_divide_mode : 1;
|
||
unsigned int unuse_2 : 5;
|
||
unsigned int en_adc_cfg : 1;
|
||
unsigned int clr_exp : 1;
|
||
unsigned int soft_reset : 1;
|
||
unsigned int en_pattern : 1;
|
||
unsigned int line_enable : 1; //不使用
|
||
unsigned int byte_sync : 1;
|
||
unsigned int adc_config_all : 1 ;
|
||
unsigned int adc_select : 5 ;
|
||
unsigned int test_pattern : 1;
|
||
unsigned int gpio1 : 1 ;
|
||
unsigned int gpio2 : 1 ;
|
||
unsigned int reserved : 3;
|
||
};
|
||
};
|
||
|
||
union CamZ_Reg_4_New
|
||
{
|
||
int value;
|
||
struct
|
||
{
|
||
unsigned int unuse_0 : 2;
|
||
unsigned int color_mode : 1;
|
||
unsigned int en_frameset:1;//帧计数只能
|
||
unsigned int unuse_1 : 9;
|
||
unsigned int en_adc1_cfg:1; //使能ADC 配置 脉冲有效(写低写高)
|
||
unsigned int en_adc2_cfg:1; //使能ADC 配置 脉冲有效(写低写高)
|
||
unsigned int clr_exp:1; //曝光清除 低电平 有效
|
||
unsigned int soft_rst_n:1; //软复位
|
||
unsigned int en_pattern:1; //使能自测试数据
|
||
|
||
};
|
||
};
|
||
union CamZ_Reg_A_New
|
||
{
|
||
int value;
|
||
struct
|
||
{
|
||
unsigned int start : 1; //上升沿触发
|
||
unsigned int stop : 1; //下降沿触发
|
||
unsigned int unuse_0 : 5;
|
||
unsigned int finished : 1; //finished
|
||
unsigned int psen: 1; //使能相移 写低写高
|
||
unsigned int psincdec : 1; //相移动反向
|
||
unsigned int clr_psedon : 1;//清除相完成 写低写高
|
||
unsigned int dpi: 1; //1: 300DPI 0: 600DPI
|
||
};
|
||
};
|
||
|
||
|
||
union SCAN_PWM
|
||
{
|
||
int value;
|
||
struct
|
||
{
|
||
unsigned int reserved_1:1;
|
||
unsigned int scan_pwm_enble : 1;
|
||
unsigned int scan_pwm_start : 1;
|
||
unsigned int scan_pwm_timer_runs :1;
|
||
unsigned int scan_pwm_enble_o : 1;
|
||
unsigned int scan_pwm_input_clear :1;
|
||
unsigned int reserved_2:1;
|
||
unsigned int scan_pwm_reset :1 ;
|
||
}bit;
|
||
|
||
};
|
||
|
||
union CamZ_Reg_A
|
||
{
|
||
int value;
|
||
struct
|
||
{
|
||
unsigned int user_in : 1;
|
||
unsigned int not_use1 : 5;
|
||
unsigned int trigger_mode : 1;
|
||
unsigned int : 4;
|
||
unsigned int DPI : 1;
|
||
unsigned int not_use2 : 20;
|
||
};
|
||
};
|
||
/****************************FPGA REG DEFINE*****************************************/
|
||
|
||
/****************************PS REG DEFINE*******************************************/
|
||
enum PSReg
|
||
{
|
||
PS_VERSION,
|
||
IMG_WIDTH,
|
||
IMG_HEIGHT,
|
||
BUF_WIDTH,
|
||
BUF_HEIGHT,
|
||
BUF_NUM,
|
||
CAM_STATUS,
|
||
MOTOR_SPEED,
|
||
CAM_DPI,
|
||
CAM_INFO,
|
||
RLS_CHECK_CODE, //软件发布版本校验码
|
||
ADC_INFO,
|
||
HEARTBAT,
|
||
DATA_STATUS,
|
||
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*******************************************/ |