123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- #ifndef _YUYING_DEFINITION_H_
- #define _YUYING_DEFINITION_H_
- #pragma pack(push)
- #pragma pack(1)
- /**
- * \brief 获取图像函数指针签名
- * \param 指针,指向图像数据的内存地址
- * 用户需要保证快速将图像取走,不能在回调函数中做与保存图像无关的操作
- * \return
- */
- typedef bool(_stdcall *ImageReadyCallbackFunc)(const char* pImage,unsigned long ImageSize);
- /**
- * \brief 错误码,用于用户了解当前出错原因
- */
- enum SystemErrorCode
- {
- /*Test code*/
- SEC_For_Test = -1,
- /*No Problem*/
- SEC_Succeed = 0,
- /*FPD问题*/
- SEC_FPD_Busy = 1, // 平板探测器正忙
- SEC_FPD_FeedBack_Timeout, // 平板探测器反馈命令超时
- SEC_FPD_FeedBack_Process_Error, // 平板探测器未正常处理此命令
- SEC_FPD_Not_Support_Current_Mode, // 探测器不支持此模式
- SEC_FPD_FeedBack_Parameter_Error, // 探测器反馈参数存在非法值
- SEC_FPD_Function_Not_Support_In_Current_Mode, //当前模式不支持此功能
- /*SDK问题*/
- SEC_SDK_Not_Init = 100, // 软件未初始化
- SEC_SDK_Repeated_init, // 软件重复初始化
- SEC_SDK_DeviceID_Not_Exist, // 设备标识ID输入错误
- SEC_SDK_No_Available_Device_Ctx, // 未获取可用的设备上下文
- /*通讯问题*/
- SEC_CMD_Timing_Error = 200, // 时序问题,如果收到此信息请尝试重新发送上一条命令
- SEC_CMD_Send_Error = 201, // 发送命令失败
- SEC_CMD_Checksum_Error = 202, // 命令校验码错误
- /*其他设备问题*/
- SEC_DEVICE_Network_Error = 300, // 网线断开或者IP设置错误
- SEC_DEVICE_Sock_Error = 301, // socket初始化失败,ip或者port被占用
- /*其他问题*/
- SEC_Path_Error = 1000, // 保存或者读取时如果路径不对,提示此code
- SEC_Input_Parameter_Error, // 函数的输入参数非法
- SEC_Read_Info_Failed, // 读取信息失败
- SEC_Open_File_Failed, // 打开文件失败
- SEC_Unknown, // 未知错误
- };
- enum SystemInfoCode
- {
- SIC_NOT_READY,//探测器对X射线未就绪,可以下达caputreimage命令,激活探测器
- SIC_WAIT_EXP , //探测器对X射线就绪,等待曝光
- SIC_IN_EXP, //曝光中
- SIC_ROIC_BUSY, //曝光结束,ROIC读出中
- SIC_ROIC_DONE, //ROIC读出结束,可以网络传输,此状态探测器无法再曝光或取新图,需要使用freebuffer或是auto_delete=1
- SIC_TEMPERTURE=0x100, //对应的参数内容是:温度
- SIC_HUMIDITY, //对应的参数内容是:湿度
- SIC_BATTERY, //对应的参数内容是:电池电量百分比
- };
- /**
- * \brief 获取系统状态信息的指针签名,用户获取到状态信息后按照自己的需求处理
- * \param iCodeIndex 系统状态ID
- * \param sContent 提示信息
- */
- typedef bool(_stdcall *SystemInfoCallbackFunc)(SystemInfoCode iCodeIndex, const char* sContent);
- /**
- * \brief 平板探测器与模式无关的通用配置项
- * \ r 表示只读, r/w表示可读写,un 表示预留配置,当前未使用
- */
- struct YIConfigInfo_Common
- {
- char arrProductInitSN[16]; // 产品sn码 r
- char arrFPGAVerMain[4]; // FPGA 版本号 | r
- char arrMCUVerMain[4]; // MCU版本号 | r
- char arrWIFIVerMain[4]; // WIFI 版本号 | r
- unsigned short usLocalUDPPort; // 平板探测器网络端口号 | r
- char arrLocalIPAddress[4]; // 平板探测器网络IP地址 | r
- char arrLocalMACAddr[6]; // 平板探测器网络MAC地址 | r
- unsigned short usDestUDPPort; // 平板探测器控制设备的网络端口号 | r
- char arrDestIPAddress[4]; // 平板探测器控制设备的网络IP地址 | r
- char arrDestMACAddress[6]; // 平板探测器控制设备的MAC地址 | r
- char arrFPGADNA[16]; // FPGA DNA | un
- char arrProductUserSN[16]; // 用户自定义sn码 | r/w
- unsigned short usCBLocalUDPPort; // 控制盒网络端口号 | un
- char arrCBLocalIPAddress[4]; // 控制盒网络IP地址 | un
- char arrCBLocalMACAddress[6]; // 控制盒网络MAC地址 | un
- unsigned short usCBDestUDPPort; // 控制盒控制设备的网络端口号 | un
- char arrCBDestIPAddress[4]; // 控制盒控制设备的网络IP地址 | un
- char arrCBDestMACAddress[6]; // 控制盒控制设备的网络MAC地址 | un
- char arrCBSN[16]; // 控制盒的sn码 | un
- char cDefaultMode; // 平板探测器默认模式 | un
- char cDefaultSpeedMode; // 默认速度模式 | un
- unsigned short usPkgGapTime; // 包间间隔时间 | r/w
- char cFluoroPhotospot; // 透视-点片关联 | un
- char cRoicSleepEnable; // ROIC休眠使能 | r/w
- char cPenalPitch; // 平板探测器分辨率 | r
- char cStaticDynamicSwicth; // 是否可以动态静态切换 | r
- char cPreoffsetEnable; // 预清空使能 | r/w
- char cAEDEnable; // 是否有AED功能 | r
- };
- /**
- * \brief 枚举变量,用于1417平板探测器,YIConfigInfo_SyncOut结构体中的cBinningMode项
- */
- enum BinningMode1417
- {
- FullSize_1417_1X1 = 0x00, //全尺寸1*1,3072*3072
- FullSize_1417_2X2, //全尺寸2*2,2048*2048
- FullSize_1417_4X4, //全尺寸4*4,1024*1024
- MiddleSize_1417_1X1 = 0x04,//中尺寸1*1,2048*2048
- MiddleSize_1417_2X2, //中尺寸2*2,1024*1024
- SmallSize_1417_1X1, //小尺寸1*1,1024*1024
- };
- /**
- * \brief 枚举变量,用于1717平板探测器,YIConfigInfo_SyncOut结构体中的cBinningMode项
- */
- enum BinningMode1717
- {
- FullSize_1717_1X1 = 0x00, //全尺寸1*1,2560*3072
- FullSize_1717_2X2, //全尺寸2*2,1280*1536
- FullSize_1717_4X4, //全尺寸4*4,640*768
- MiddleSize_1717_1X1 = 0x04, //中尺寸1*1,2048*2048
- MiddleSize_1717_2X2, //中尺寸2*2,1024*1024
- SmallSize_1717_1X1 //小尺寸1*1,1024*1024
- };
- struct YIConfigInfo_SyncOut
- {
- unsigned short usTubePrepare; // 球管准备时间 | r/w
- unsigned short usSampleNum; // 采集数量 | un
- char cPreOffsetNum; // 收到开始采集指令后清空次数 | r/w
- unsigned short usOffsetTimeGap; // Preoffset时间间隔,单位:毫秒ms | r/w
- unsigned short usExposureWindow; // 曝光窗口时间,单位:毫秒ms | r/w
- unsigned short usExposureTimeOut; // 曝光超时时间,单位:毫秒ms | un
- unsigned short usStartRow; // 起始行号 | r/w
- unsigned short usEndRow; // 结束行号 | r/w
- unsigned short usStartColumn; // 起始列号 | r/w
- unsigned short usEndColumn; // 结束列号 | r/w
- char cBinningMode; // Binning模式,0表示1*1,1表示2*2,2表示4*4 | (动态平板)r/w | (静态平板) r
- char cMaxFrameRate; // 最大帧率 | un
- char cCapacitor; // 灵敏度 | r/w
- char cRefTFT; // 参考电平 | r/w
- char cOffsetOn; // 平板探测器Offset使能,1 表示使能, 0 表示不使能 | r/w
- char cCorrectOn; // 平板探测器Gain使能,1 表示使能,0 表示不使能 | r/w
- char cReserve; // 预留项 | un
- unsigned short usLineTime; // 行扫描时间 | r/w
- };
- /**
- * \brief 用于设置要做什么校正
- */
- enum DoCorrectType
- {
- Do_Nothing = 0x00,
- Do_Gain = 0x01,
- Do_Offset = 0x02,
- Do_Defect = 0x04,
- Do_AedOffset = 0x08,
- };
- /**
- * \brief 做defect校正模板时,用来标识输入的图像是亮场还是暗场图像
- */
- enum DefectDataType
- {
- Light = 0,
- Dark
- };
- struct csi_ext_trig_param
- {
- unsigned long trig_delay;
- unsigned long trig_timeout;
- };
- struct csi_ball_trig_param
- {
- unsigned long out_trig_delay;
- unsigned long out_trig_width;
- };
- struct csi_sensor_trig_param
- {
- unsigned long sensor_thd;
- unsigned long trig_delay;
- unsigned long trig_timeout;
- };
- typedef struct __FpdMode {
- unsigned char workMode;
- unsigned char trigType;
- union
- {
- struct csi_ext_trig_param ext_trig;
- struct csi_ball_trig_param ball_trig;
- struct csi_sensor_trig_param sensor_trig;
- }param;
- } FpdMode;
- /**
- * \brief 平板探测器的工作模式
- */
- enum ModeType
- {
- Idle = 0x00,
- Normal_Mode = 0x01,
- NormalCompress_Mode = 0x02,
- Continuous_Mode = 0x03,
- ContinuousCompress_Mode = 0x04,
- Invalid_Mode
- };
- enum TrigType
- {
- DARK_TRIG_MODE = 0,
- SOFT_TRIG_MODE = 1,
- EXT_TRIG_MODE = 2,
- TRIG_EXT_MODE = 3,
- SENSOR_TRIG_MODE = 4,
- SOFT_AED_MODE = 5,
- TRIG_MODE_MAX
- };
- struct ProgressInfo
- {
- int value; // 当前进度
- char sInfo[300]; // 输出提示信息
- };
- /**
- * \brief 获取执行进度的函数指针
- */
- typedef bool(_stdcall *ProgressCallbackFunc)(ProgressInfo* pProgress);
- // Extension definition
- #define FPD_TYPE_STATIC 0
- #define FPD_TYPE_DYNAMIC 1
- #pragma pack(pop)
- #endif
|