123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- #include "stdafx.h"
- #include "IOInterfaceMapper.h"
- #include "DiosBoardCtrlParams.h"
- using namespace DIOS::Dev::Detail::MachineryECOM;
- unsigned char IOInterfaceMapper::ID_SYSTEM_RESET = 0x0;
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_SERVO_ON = (unsigned char)DO_ID_1;
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_SERVO_ON = (unsigned char)(unsigned char)DO_ISO_ID_1;;
- unsigned char IOInterfaceMapper::ID_HAND_SWITCH_GEAR_FIRST = (unsigned char)DI_ID_1;
- unsigned char IOInterfaceMapper::ID_HAND_SWITCH_GEAR_SECOND = (unsigned char)DI_ID_2;
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_PULSE = (unsigned char)DO_ID_2;
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_DIRECTION = (unsigned char)DO_ID_3;
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_AD = (unsigned char)AD_ID_1;
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_AD = (unsigned char)AD_ID_3;
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_ENCODER_AXIS_A = (unsigned char)ENCODER_AXIS_ID_1;
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_ENCODER_AXIS_B = (unsigned char)ENCODER_AXIS_ID_2;
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_ENCODER_AXIS_Z = (unsigned char)ENCODER_AXIS_ID_3;
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_HIGH_LIMIT = 0x0; //待定义
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_LOW_LIMIT = 0x0; //待定义
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_HIGH_LIMIT = (unsigned char)DI_ID_3;
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_LOW_LIMIT = (unsigned char)DI_ID_4;
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_ENCODER_AXIS_A = (unsigned char)DI_ISO_ID_1;
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_ENCODER_AXIS_B = (unsigned char)DI_ISO_ID_2;
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_ENCODER_AXIS_Z = (unsigned char)DI_ISO_ID_3;
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_DIRECTION = (unsigned char)DO_ISO_ID_2;
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_PULSE = (unsigned char)DO_ISO_ID_3;
- unsigned char IOInterfaceMapper::ID_XRAYON_NOTIFY = (unsigned char)DI_ISO_ID_4;
- unsigned char IOInterfaceMapper::ID_POWER = (unsigned char)DO_ISO_ID_1;
- unsigned char IOInterfaceMapper::ID_DETECTOR_HEIGHT_AD = (unsigned char)AD_ID_2;
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_ENCODER = (unsigned char)SEC_ID_1;
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_ENCODER = (unsigned char)SEC_ID_2;
- unsigned char IOInterfaceMapper::ID_DETECTOR_HEIGHT_ENCODER = (unsigned char)SEC_ID_3;
- unsigned char IOInterfaceMapper::ID_SOFTWARE_CHAIN_INTERFACE_A = (unsigned char)SCL_ID_1;
- unsigned char IOInterfaceMapper::ID_SOFTWARE_CHAIN_INTERFACE_B = (unsigned char)SCL_ID_2;
- unsigned char IOInterfaceMapper::ID_EXPOSURE_TRIGGER = (unsigned char)EXPOSURE_CTRL_ID;
- unsigned char IOInterfaceMapper::ID_MCU = (unsigned char)MCU_CTRL_ID;
- unsigned char IOInterfaceMapper::ID_RS232 = (unsigned char)RS232_ID_1;
- unsigned char IOInterfaceMapper::ID_CAN = CAN_ID_1;
- unsigned short IOInterfaceMapper::ID_CAN_STDID_TUBE_CIRCULAR_ENCODER = 0x601;
- unsigned short IOInterfaceMapper::ID_CAN_STDID_TUBE_SWING_ENCODER = 0x602;
- unsigned char IOInterfaceMapper::ID_SYSTEM_RESET_SWING = 0x0;
- unsigned char IOInterfaceMapper::ID_SYSTEM_RESET_CIRCULAR = 0x0;
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_1 = 0x0;
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_2 = 0x0;
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_CONTROLLER_DIRECTION_1 = 0x0;
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_CONTROLLER_DIRECTION_2 = 0x0;
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_1 = 0x0;
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_2 = 0x0;
- unsigned char IOInterfaceMapper::ID_CARM_SCANNING_SWITCH = 0x0;
- unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_BRAKE = 0x0;
- unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_BRAKE = 0x0;
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_BRAKE = 0x0;
- unsigned char IOInterfaceMapper::ID_FLUORO_SWITCH_OUT = 0x0;
- unsigned char IOInterfaceMapper::ID_TUBE_LINE_MOTION_SWITCH_OUT = 0x0;
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_SERVO_ON = (unsigned char)DO_ID_1; //球管水平Servo On
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_PULSE = (unsigned char)DO_ID_2; //球管水平运动脉冲
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_DIRECTION = (unsigned char)DO_ID_3; //球管水平运动方向
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_AD = (unsigned char)AD_ID_1; //球管水平A/D
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_ENCODER_AXIS_A = (unsigned char)ENCODER_AXIS_ID_1; //球管水平编码器A轴
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_ENCODER_AXIS_B = (unsigned char)ENCODER_AXIS_ID_2; //球管水平编码器B轴
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_ENCODER_AXIS_Z = (unsigned char)ENCODER_AXIS_ID_3; //球管水平编码器Z轴
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_ENCODER = (unsigned char)SEC_ID_1; //球管水平编码器
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_LEFT_LIMIT = 0x0; //球管水平左限位
- unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_RIGHT_LIMIT = 0x0; //球管水平右限位
- unsigned char IOInterfaceMapper::ID_DETECTOR_HORIZONTAL_AD = 0x0; //探测器水平AD数据
- unsigned char IOInterfaceMapper::ID_DETECTOR_HORIZONTAL_ENCODER = 0x0; //探测器水平编码器数据
- void IOInterfaceMapper::Load(const std::string &configFile)
- {
- //To load mapper config file to overried the IDs definition if needed.
- try
- {
- HANDLE hFind = NULL;
- WIN32_FIND_DATA FindFileData;
- hFind = FindFirstFile(configFile.c_str(), &FindFileData);
- if (hFind == INVALID_HANDLE_VALUE)
- {
- throw new exception("Load file failed");
- }
- FindClose(hFind);
- ResDataObject pinConfig;
- ResDataObject pindefines;
- if (pinConfig.loadFile(configFile.c_str()))
- {
- if (pinConfig.GetFirstOf("CONFIGURATION") >= 0)
- {
- pindefines = pinConfig["CONFIGURATION"];
- DoMapPinsToInterfaceID(pindefines);
- }
- }
- else
- {
- throw new exception("Load file failed");
- }
- }
- catch (exception *e)
- {
- if(gdriverLog) gdriverLog->Error("[IOInterfaceMapper][Load]->[Exception][{$}][{$}]", configFile.c_str(),e->what());
- }
- }
- void IOInterfaceMapper::DoMapPinsToInterfaceID(ResDataObject &pindefines)
- {
- ID_SYSTEM_RESET = (unsigned char)atoi(pindefines["ID_SYSTEM_RESET"]);
- ID_TUBE_HEIGHT_SERVO_ON = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_SERVO_ON"]);
- ID_TUBE_ANGLE_SERVO_ON = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_SERVO_ON"]);
- ID_HAND_SWITCH_GEAR_FIRST = (unsigned char)atoi(pindefines["ID_HAND_SWITCH_GEAR_FIRST"]);
- ID_HAND_SWITCH_GEAR_SECOND = (unsigned char)atoi(pindefines["ID_HAND_SWITCH_GEAR_SECOND"]);
- ID_TUBE_HEIGHT_PULSE = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_PULSE"]);
- ID_TUBE_HEIGHT_DIRECTION = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_DIRECTION"]);
- ID_TUBE_HEIGHT_AD = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_AD"]);
- ID_TUBE_ANGLE_AD = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_AD"]);
- ID_TUBE_HEIGHT_ENCODER_AXIS_A = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_ENCODER_AXIS_A"]);
- ID_TUBE_HEIGHT_ENCODER_AXIS_B = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_ENCODER_AXIS_B"]);
- ID_TUBE_HEIGHT_ENCODER_AXIS_Z = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_ENCODER_AXIS_Z"]);
- ID_TUBE_HEIGHT_HIGH_LIMIT = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_HIGH_LIMIT"]);
- ID_TUBE_HEIGHT_LOW_LIMIT = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_LOW_LIMIT"]);
- ID_TUBE_ANGLE_HIGH_LIMIT = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_HIGH_LIMIT"]);
- ID_TUBE_ANGLE_LOW_LIMIT = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_LOW_LIMIT"]);
- ID_TUBE_ANGLE_ENCODER_AXIS_A = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_ENCODER_AXIS_A"]);
- ID_TUBE_ANGLE_ENCODER_AXIS_B = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_ENCODER_AXIS_B"]);
- ID_TUBE_ANGLE_ENCODER_AXIS_Z = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_ENCODER_AXIS_Z"]);
- ID_TUBE_ANGLE_DIRECTION = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_DIRECTION"]);
- ID_TUBE_ANGLE_PULSE = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_PULSE"]);
- ID_XRAYON_NOTIFY = (unsigned char)atoi(pindefines["ID_XRAYON_NOTIFY"]);
- ID_POWER = (unsigned char)atoi(pindefines["ID_POWER"]);
- ID_DETECTOR_HEIGHT_AD = (unsigned char)atoi(pindefines["ID_DETECTOR_HEIGHT_AD"]);
- ID_TUBE_HEIGHT_ENCODER = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_ENCODER"]);
- ID_TUBE_ANGLE_ENCODER = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_ENCODER"]);
- ID_DETECTOR_HEIGHT_ENCODER = (unsigned char)atoi(pindefines["ID_DETECTOR_HEIGHT_ENCODER"]);
- ID_SOFTWARE_CHAIN_INTERFACE_A = (unsigned char)atoi(pindefines["ID_SOFTWARE_CHAIN_INTERFACE_A"]);
- ID_SOFTWARE_CHAIN_INTERFACE_B = (unsigned char)atoi(pindefines["ID_SOFTWARE_CHAIN_INTERFACE_B"]);
- ID_EXPOSURE_TRIGGER = (unsigned char)atoi(pindefines["ID_EXPOSURE_TRIGGER"]);
- ID_MCU = (unsigned char)atoi(pindefines["ID_MCU"]);
- ID_RS232 = (unsigned char)atoi(pindefines["ID_RS232"]);
- if (pindefines.GetFirstOf("ID_SYSTEM_RESET_SWING") >= 0)
- {
- ID_SYSTEM_RESET_SWING = (unsigned char)atoi(pindefines["ID_SYSTEM_RESET_SWING"]);
- }
- if (pindefines.GetFirstOf("ID_SYSTEM_RESET_CIRCULAR") >= 0)
- {
- ID_SYSTEM_RESET_CIRCULAR = (unsigned char)atoi(pindefines["ID_SYSTEM_RESET_CIRCULAR"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_1") >= 0)
- {
- ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_1 = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_1"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_2") >= 0)
- {
- ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_2 = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_2"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_ANGLE_CONTROLLER_DIRECTION_1") >= 0)
- {
- ID_TUBE_ANGLE_CONTROLLER_DIRECTION_1 = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_CONTROLLER_DIRECTION_1"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_ANGLE_CONTROLLER_DIRECTION_2") >= 0)
- {
- ID_TUBE_ANGLE_CONTROLLER_DIRECTION_2 = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_CONTROLLER_DIRECTION_2"]);
- }
- if (pindefines.GetFirstOf("ID_CARM_SCANNING_SWITCH") >= 0)
- {
- ID_CARM_SCANNING_SWITCH = (unsigned char)atoi(pindefines["ID_CARM_SCANNING_SWITCH"]);
- }
- if (pindefines.GetFirstOf("ID_CAN") >= 0)
- {
- ID_CAN = (unsigned char)atoi(pindefines["ID_CAN"]);
- }
- if (pindefines.GetFirstOf("ID_CAN_STDID_TUBE_CIRCULAR_ENCODER") > 0)
- {
- ID_CAN_STDID_TUBE_CIRCULAR_ENCODER = (unsigned short)atoi(pindefines["ID_CAN_STDID_TUBE_CIRCULAR_ENCODER"]);
- }
- if (pindefines.GetFirstOf("ID_CAN_STDID_TUBE_SWING_ENCODER") > 0)
- {
- ID_CAN_STDID_TUBE_SWING_ENCODER = (unsigned short)atoi(pindefines["ID_CAN_STDID_TUBE_SWING_ENCODER"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_ANGLE_BRAKE") > 0)
- {
- ID_TUBE_ANGLE_BRAKE = (unsigned short)atoi(pindefines["ID_TUBE_ANGLE_BRAKE"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HEIGHT_BRAKE") > 0)
- {
- ID_TUBE_HEIGHT_BRAKE = (unsigned short)atoi(pindefines["ID_TUBE_HEIGHT_BRAKE"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_BRAKE") > 0)
- {
- ID_TUBE_HORIZONTAL_BRAKE = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_BRAKE"]);
- }
- if (pindefines.GetFirstOf("ID_FLUORO_SWITCH_OUT") > 0)
- {
- ID_FLUORO_SWITCH_OUT = (unsigned short)atoi(pindefines["ID_FLUORO_SWITCH_OUT"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_LINE_MOTION_SWITCH_OUT") > 0)
- {
- ID_TUBE_LINE_MOTION_SWITCH_OUT = (unsigned short)atoi(pindefines["ID_TUBE_LINE_MOTION_SWITCH_OUT"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_1") > 0)
- {
- ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_1 = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_1"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_2") > 0)
- {
- ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_2 = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_2"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_SERVO_ON") > 0)
- {
- ID_TUBE_HORIZONTAL_SERVO_ON = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_SERVO_ON"]);
- }
-
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_PULSE") > 0)
- {
- ID_TUBE_HORIZONTAL_PULSE = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_PULSE"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_DIRECTION") > 0)
- {
- ID_TUBE_HORIZONTAL_DIRECTION = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_DIRECTION"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_AD") > 0)
- {
- ID_TUBE_HORIZONTAL_AD = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_AD"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_ENCODER_AXIS_A") > 0)
- {
- ID_TUBE_HORIZONTAL_ENCODER_AXIS_A = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_ENCODER_AXIS_A"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_ENCODER_AXIS_B") > 0)
- {
- ID_TUBE_HORIZONTAL_ENCODER_AXIS_B = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_ENCODER_AXIS_B"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_ENCODER_AXIS_Z") > 0)
- {
- ID_TUBE_HORIZONTAL_ENCODER_AXIS_Z = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_ENCODER_AXIS_Z"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_ENCODER") > 0)
- {
- ID_TUBE_HORIZONTAL_ENCODER = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_ENCODER"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_LEFT_LIMIT") > 0)
- {
- ID_TUBE_HORIZONTAL_LEFT_LIMIT = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_LEFT_LIMIT"]);
- }
- if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_RIGHT_LIMIT") > 0)
- {
- ID_TUBE_HORIZONTAL_RIGHT_LIMIT = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_RIGHT_LIMIT"]);
- }
- if (pindefines.GetFirstOf("ID_DETECTOR_HORIZONTAL_AD") > 0)
- {
- ID_DETECTOR_HORIZONTAL_AD = (unsigned short)atoi(pindefines["ID_DETECTOR_HORIZONTAL_AD"]);
- }
- if (pindefines.GetFirstOf("ID_DETECTOR_HORIZONTAL_ENCODER") > 0)
- {
- ID_DETECTOR_HORIZONTAL_ENCODER = (unsigned short)atoi(pindefines["ID_DETECTOR_HORIZONTAL_ENCODER"]);
- }
- }
|