#pragma once namespace DIOS::Dev::Detail::MachineryECOM { //GPIO引脚-功能-映射 class IOInterfaceMapper { public: static void Load(const std::string &configFile); public: static unsigned char ID_SYSTEM_RESET; //系统复位开关 static unsigned char ID_TUBE_HEIGHT_SERVO_ON; //球管高度伺服 Servo on static unsigned char ID_TUBE_ANGLE_SERVO_ON; //球管角度伺服 Servo on static unsigned char ID_HAND_SWITCH_GEAR_FIRST; //一级手闸 static unsigned char ID_HAND_SWITCH_GEAR_SECOND; //二级手闸 static unsigned char ID_TUBE_HEIGHT_PULSE; //球管垂直运动脉冲 static unsigned char ID_TUBE_HEIGHT_DIRECTION; //球管垂直运动方向 static unsigned char ID_TUBE_HEIGHT_AD; //球管高度AD数据 static unsigned char ID_TUBE_ANGLE_AD; //球管角度AD数据 static unsigned char ID_TUBE_HEIGHT_HIGH_LIMIT; //球管高度上限位 static unsigned char ID_TUBE_HEIGHT_LOW_LIMIT; //球管高度下限位 static unsigned char ID_TUBE_HEIGHT_ENCODER_AXIS_A; //球管高度编码器A轴 static unsigned char ID_TUBE_HEIGHT_ENCODER_AXIS_B; //球管高度编码器B轴 static unsigned char ID_TUBE_HEIGHT_ENCODER_AXIS_Z; //球管高度编码器Z轴 static unsigned char ID_TUBE_ANGLE_HIGH_LIMIT; //球管旋转上限位 static unsigned char ID_TUBE_ANGLE_LOW_LIMIT; //球管旋转下限位 static unsigned char ID_TUBE_ANGLE_ENCODER_AXIS_A; //球管旋转编码器A轴 static unsigned char ID_TUBE_ANGLE_ENCODER_AXIS_B; //球管旋转编码器B轴 static unsigned char ID_TUBE_ANGLE_ENCODER_AXIS_Z; //球管旋转编码器Z轴 static unsigned char ID_TUBE_ANGLE_DIRECTION; //球管角度方向 static unsigned char ID_TUBE_ANGLE_PULSE; //球管角度脉冲 static unsigned char ID_XRAYON_NOTIFY; //发生器射线指示 static unsigned char ID_POWER; //5V电源 static unsigned char ID_DETECTOR_HEIGHT_AD; //探测器高度AD数据 static unsigned char ID_TUBE_HEIGHT_ENCODER; //球管高度编码器 static unsigned char ID_TUBE_ANGLE_ENCODER; //球管角度编码器 static unsigned char ID_DETECTOR_HEIGHT_ENCODER; //探测器高度编码器 static unsigned char ID_SOFTWARE_CHAIN_INTERFACE_A; //连锁器接口A static unsigned char ID_SOFTWARE_CHAIN_INTERFACE_B; //连锁器接口B static unsigned char ID_EXPOSURE_TRIGGER; //同步盒信号端口触发 static unsigned char ID_MCU; //MCU static unsigned char ID_RS232; //RS232/485 static unsigned char ID_CAN; //Can static unsigned short ID_CAN_STDID_TUBE_CIRCULAR_ENCODER;//TUBE_CIRCULAR_ENCODER stdid static unsigned short ID_CAN_STDID_TUBE_SWING_ENCODER;//TUBE_SWING_ENCODER stdid static unsigned char ID_SYSTEM_RESET_SWING; //C-ARM系统轴向复位开关 static unsigned char ID_SYSTEM_RESET_CIRCULAR; //C-ARM系统滑环复位开关 static unsigned char ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_1; //球管垂直方向1单步运动控制器 static unsigned char ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_2; //球管垂直方向2单步运动控制器(1,2对应的是上或下根据系统实际情况配置) static unsigned char ID_TUBE_ANGLE_CONTROLLER_DIRECTION_1; //球管旋转方向1单步运动控制器 static unsigned char ID_TUBE_ANGLE_CONTROLLER_DIRECTION_2; //球管旋转方向1单步运动控制器(1,2对应的是顺时针或逆时针根据系统实际情况配置) static unsigned char ID_CARM_SCANNING_SWITCH; //切换扫描方向 0:使用滑轨滑动扫描 1:使用轴向旋转扫描 static unsigned char ID_TUBE_ANGLE_BRAKE; //球管旋转刹车 static unsigned char ID_TUBE_HEIGHT_BRAKE; //球管垂直方向刹车 static unsigned char ID_TUBE_HORIZONTAL_BRAKE; //球管水平方向刹车 static unsigned char ID_FLUORO_SWITCH_OUT; //脚闸信号输出 static unsigned char ID_TUBE_LINE_MOTION_SWITCH_OUT; //输出到继电器控制线路切换球管垂直运动和水平运动 static unsigned char ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_1; //球管水平方向1单步运动控制器 static unsigned char ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_2; //球管水平方向2单步运动控制器 static unsigned char ID_TUBE_HORIZONTAL_SERVO_ON; //球管水平Servo On static unsigned char ID_TUBE_HORIZONTAL_PULSE; //球管水平运动脉冲 static unsigned char ID_TUBE_HORIZONTAL_DIRECTION; //球管水平运动方向 static unsigned char ID_TUBE_HORIZONTAL_AD; //球管水平A/D static unsigned char ID_TUBE_HORIZONTAL_ENCODER_AXIS_A; //球管水平编码器A轴 static unsigned char ID_TUBE_HORIZONTAL_ENCODER_AXIS_B; //球管水平编码器B轴 static unsigned char ID_TUBE_HORIZONTAL_ENCODER_AXIS_Z; //球管水平编码器Z轴 static unsigned char ID_TUBE_HORIZONTAL_ENCODER; //球管水平编码器 static unsigned char ID_TUBE_HORIZONTAL_LEFT_LIMIT; //球管水平左限位 static unsigned char ID_TUBE_HORIZONTAL_RIGHT_LIMIT; //球管水平右限位 static unsigned char ID_DETECTOR_HORIZONTAL_AD; //探测器水平AD数据 static unsigned char ID_DETECTOR_HORIZONTAL_ENCODER; //探测器水平编码器数据 private: static void DoMapPinsToInterfaceID(ResDataObject &pindefines); }; }