/* * @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_2char { unsigned char NChar[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; //使能自测试数据 unsigned int en_line: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*******************************************/