IOInterfaceMapper.cpp 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. #include "stdafx.h"
  2. #include "IOInterfaceMapper.h"
  3. #include "DiosBoardCtrlParams.h"
  4. using namespace DIOS::Dev::Detail::MachineryECOM;
  5. unsigned char IOInterfaceMapper::ID_SYSTEM_RESET = 0x0;
  6. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_SERVO_ON = (unsigned char)DO_ID_1;
  7. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_SERVO_ON = (unsigned char)(unsigned char)DO_ISO_ID_1;;
  8. unsigned char IOInterfaceMapper::ID_HAND_SWITCH_GEAR_FIRST = (unsigned char)DI_ID_1;
  9. unsigned char IOInterfaceMapper::ID_HAND_SWITCH_GEAR_SECOND = (unsigned char)DI_ID_2;
  10. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_PULSE = (unsigned char)DO_ID_2;
  11. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_DIRECTION = (unsigned char)DO_ID_3;
  12. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_AD = (unsigned char)AD_ID_1;
  13. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_AD = (unsigned char)AD_ID_3;
  14. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_ENCODER_AXIS_A = (unsigned char)ENCODER_AXIS_ID_1;
  15. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_ENCODER_AXIS_B = (unsigned char)ENCODER_AXIS_ID_2;
  16. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_ENCODER_AXIS_Z = (unsigned char)ENCODER_AXIS_ID_3;
  17. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_HIGH_LIMIT = 0x0; //待定义
  18. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_LOW_LIMIT = 0x0; //待定义
  19. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_HIGH_LIMIT = (unsigned char)DI_ID_3;
  20. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_LOW_LIMIT = (unsigned char)DI_ID_4;
  21. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_ENCODER_AXIS_A = (unsigned char)DI_ISO_ID_1;
  22. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_ENCODER_AXIS_B = (unsigned char)DI_ISO_ID_2;
  23. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_ENCODER_AXIS_Z = (unsigned char)DI_ISO_ID_3;
  24. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_DIRECTION = (unsigned char)DO_ISO_ID_2;
  25. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_PULSE = (unsigned char)DO_ISO_ID_3;
  26. unsigned char IOInterfaceMapper::ID_XRAYON_NOTIFY = (unsigned char)DI_ISO_ID_4;
  27. unsigned char IOInterfaceMapper::ID_POWER = (unsigned char)DO_ISO_ID_1;
  28. unsigned char IOInterfaceMapper::ID_DETECTOR_HEIGHT_AD = (unsigned char)AD_ID_2;
  29. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_ENCODER = (unsigned char)SEC_ID_1;
  30. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_ENCODER = (unsigned char)SEC_ID_2;
  31. unsigned char IOInterfaceMapper::ID_DETECTOR_HEIGHT_ENCODER = (unsigned char)SEC_ID_3;
  32. unsigned char IOInterfaceMapper::ID_SOFTWARE_CHAIN_INTERFACE_A = (unsigned char)SCL_ID_1;
  33. unsigned char IOInterfaceMapper::ID_SOFTWARE_CHAIN_INTERFACE_B = (unsigned char)SCL_ID_2;
  34. unsigned char IOInterfaceMapper::ID_EXPOSURE_TRIGGER = (unsigned char)EXPOSURE_CTRL_ID;
  35. unsigned char IOInterfaceMapper::ID_MCU = (unsigned char)MCU_CTRL_ID;
  36. unsigned char IOInterfaceMapper::ID_RS232 = (unsigned char)RS232_ID_1;
  37. unsigned char IOInterfaceMapper::ID_CAN = CAN_ID_1;
  38. unsigned short IOInterfaceMapper::ID_CAN_STDID_TUBE_CIRCULAR_ENCODER = 0x601;
  39. unsigned short IOInterfaceMapper::ID_CAN_STDID_TUBE_SWING_ENCODER = 0x602;
  40. unsigned char IOInterfaceMapper::ID_SYSTEM_RESET_SWING = 0x0;
  41. unsigned char IOInterfaceMapper::ID_SYSTEM_RESET_CIRCULAR = 0x0;
  42. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_1 = 0x0;
  43. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_2 = 0x0;
  44. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_CONTROLLER_DIRECTION_1 = 0x0;
  45. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_CONTROLLER_DIRECTION_2 = 0x0;
  46. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_1 = 0x0;
  47. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_2 = 0x0;
  48. unsigned char IOInterfaceMapper::ID_CARM_SCANNING_SWITCH = 0x0;
  49. unsigned char IOInterfaceMapper::ID_TUBE_ANGLE_BRAKE = 0x0;
  50. unsigned char IOInterfaceMapper::ID_TUBE_HEIGHT_BRAKE = 0x0;
  51. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_BRAKE = 0x0;
  52. unsigned char IOInterfaceMapper::ID_FLUORO_SWITCH_OUT = 0x0;
  53. unsigned char IOInterfaceMapper::ID_TUBE_LINE_MOTION_SWITCH_OUT = 0x0;
  54. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_SERVO_ON = (unsigned char)DO_ID_1; //球管水平Servo On
  55. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_PULSE = (unsigned char)DO_ID_2; //球管水平运动脉冲
  56. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_DIRECTION = (unsigned char)DO_ID_3; //球管水平运动方向
  57. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_AD = (unsigned char)AD_ID_1; //球管水平A/D
  58. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_ENCODER_AXIS_A = (unsigned char)ENCODER_AXIS_ID_1; //球管水平编码器A轴
  59. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_ENCODER_AXIS_B = (unsigned char)ENCODER_AXIS_ID_2; //球管水平编码器B轴
  60. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_ENCODER_AXIS_Z = (unsigned char)ENCODER_AXIS_ID_3; //球管水平编码器Z轴
  61. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_ENCODER = (unsigned char)SEC_ID_1; //球管水平编码器
  62. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_LEFT_LIMIT = 0x0; //球管水平左限位
  63. unsigned char IOInterfaceMapper::ID_TUBE_HORIZONTAL_RIGHT_LIMIT = 0x0; //球管水平右限位
  64. unsigned char IOInterfaceMapper::ID_DETECTOR_HORIZONTAL_AD = 0x0; //探测器水平AD数据
  65. unsigned char IOInterfaceMapper::ID_DETECTOR_HORIZONTAL_ENCODER = 0x0; //探测器水平编码器数据
  66. void IOInterfaceMapper::Load(const std::string &configFile)
  67. {
  68. //To load mapper config file to overried the IDs definition if needed.
  69. try
  70. {
  71. HANDLE hFind = NULL;
  72. WIN32_FIND_DATA FindFileData;
  73. hFind = FindFirstFile(configFile.c_str(), &FindFileData);
  74. if (hFind == INVALID_HANDLE_VALUE)
  75. {
  76. throw new exception("Load file failed");
  77. }
  78. FindClose(hFind);
  79. ResDataObject pinConfig;
  80. ResDataObject pindefines;
  81. if (pinConfig.loadFile(configFile.c_str()))
  82. {
  83. if (pinConfig.GetFirstOf("CONFIGURATION") >= 0)
  84. {
  85. pindefines = pinConfig["CONFIGURATION"];
  86. DoMapPinsToInterfaceID(pindefines);
  87. }
  88. }
  89. else
  90. {
  91. throw new exception("Load file failed");
  92. }
  93. }
  94. catch (exception *e)
  95. {
  96. if(gdriverLog) gdriverLog->Error("[IOInterfaceMapper][Load]->[Exception][{$}][{$}]", configFile.c_str(),e->what());
  97. }
  98. }
  99. void IOInterfaceMapper::DoMapPinsToInterfaceID(ResDataObject &pindefines)
  100. {
  101. ID_SYSTEM_RESET = (unsigned char)atoi(pindefines["ID_SYSTEM_RESET"]);
  102. ID_TUBE_HEIGHT_SERVO_ON = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_SERVO_ON"]);
  103. ID_TUBE_ANGLE_SERVO_ON = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_SERVO_ON"]);
  104. ID_HAND_SWITCH_GEAR_FIRST = (unsigned char)atoi(pindefines["ID_HAND_SWITCH_GEAR_FIRST"]);
  105. ID_HAND_SWITCH_GEAR_SECOND = (unsigned char)atoi(pindefines["ID_HAND_SWITCH_GEAR_SECOND"]);
  106. ID_TUBE_HEIGHT_PULSE = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_PULSE"]);
  107. ID_TUBE_HEIGHT_DIRECTION = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_DIRECTION"]);
  108. ID_TUBE_HEIGHT_AD = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_AD"]);
  109. ID_TUBE_ANGLE_AD = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_AD"]);
  110. ID_TUBE_HEIGHT_ENCODER_AXIS_A = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_ENCODER_AXIS_A"]);
  111. ID_TUBE_HEIGHT_ENCODER_AXIS_B = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_ENCODER_AXIS_B"]);
  112. ID_TUBE_HEIGHT_ENCODER_AXIS_Z = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_ENCODER_AXIS_Z"]);
  113. ID_TUBE_HEIGHT_HIGH_LIMIT = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_HIGH_LIMIT"]);
  114. ID_TUBE_HEIGHT_LOW_LIMIT = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_LOW_LIMIT"]);
  115. ID_TUBE_ANGLE_HIGH_LIMIT = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_HIGH_LIMIT"]);
  116. ID_TUBE_ANGLE_LOW_LIMIT = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_LOW_LIMIT"]);
  117. ID_TUBE_ANGLE_ENCODER_AXIS_A = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_ENCODER_AXIS_A"]);
  118. ID_TUBE_ANGLE_ENCODER_AXIS_B = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_ENCODER_AXIS_B"]);
  119. ID_TUBE_ANGLE_ENCODER_AXIS_Z = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_ENCODER_AXIS_Z"]);
  120. ID_TUBE_ANGLE_DIRECTION = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_DIRECTION"]);
  121. ID_TUBE_ANGLE_PULSE = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_PULSE"]);
  122. ID_XRAYON_NOTIFY = (unsigned char)atoi(pindefines["ID_XRAYON_NOTIFY"]);
  123. ID_POWER = (unsigned char)atoi(pindefines["ID_POWER"]);
  124. ID_DETECTOR_HEIGHT_AD = (unsigned char)atoi(pindefines["ID_DETECTOR_HEIGHT_AD"]);
  125. ID_TUBE_HEIGHT_ENCODER = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_ENCODER"]);
  126. ID_TUBE_ANGLE_ENCODER = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_ENCODER"]);
  127. ID_DETECTOR_HEIGHT_ENCODER = (unsigned char)atoi(pindefines["ID_DETECTOR_HEIGHT_ENCODER"]);
  128. ID_SOFTWARE_CHAIN_INTERFACE_A = (unsigned char)atoi(pindefines["ID_SOFTWARE_CHAIN_INTERFACE_A"]);
  129. ID_SOFTWARE_CHAIN_INTERFACE_B = (unsigned char)atoi(pindefines["ID_SOFTWARE_CHAIN_INTERFACE_B"]);
  130. ID_EXPOSURE_TRIGGER = (unsigned char)atoi(pindefines["ID_EXPOSURE_TRIGGER"]);
  131. ID_MCU = (unsigned char)atoi(pindefines["ID_MCU"]);
  132. ID_RS232 = (unsigned char)atoi(pindefines["ID_RS232"]);
  133. if (pindefines.GetFirstOf("ID_SYSTEM_RESET_SWING") >= 0)
  134. {
  135. ID_SYSTEM_RESET_SWING = (unsigned char)atoi(pindefines["ID_SYSTEM_RESET_SWING"]);
  136. }
  137. if (pindefines.GetFirstOf("ID_SYSTEM_RESET_CIRCULAR") >= 0)
  138. {
  139. ID_SYSTEM_RESET_CIRCULAR = (unsigned char)atoi(pindefines["ID_SYSTEM_RESET_CIRCULAR"]);
  140. }
  141. if (pindefines.GetFirstOf("ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_1") >= 0)
  142. {
  143. ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_1 = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_1"]);
  144. }
  145. if (pindefines.GetFirstOf("ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_2") >= 0)
  146. {
  147. ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_2 = (unsigned char)atoi(pindefines["ID_TUBE_HEIGHT_CONTROLLER_DIRECTION_2"]);
  148. }
  149. if (pindefines.GetFirstOf("ID_TUBE_ANGLE_CONTROLLER_DIRECTION_1") >= 0)
  150. {
  151. ID_TUBE_ANGLE_CONTROLLER_DIRECTION_1 = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_CONTROLLER_DIRECTION_1"]);
  152. }
  153. if (pindefines.GetFirstOf("ID_TUBE_ANGLE_CONTROLLER_DIRECTION_2") >= 0)
  154. {
  155. ID_TUBE_ANGLE_CONTROLLER_DIRECTION_2 = (unsigned char)atoi(pindefines["ID_TUBE_ANGLE_CONTROLLER_DIRECTION_2"]);
  156. }
  157. if (pindefines.GetFirstOf("ID_CARM_SCANNING_SWITCH") >= 0)
  158. {
  159. ID_CARM_SCANNING_SWITCH = (unsigned char)atoi(pindefines["ID_CARM_SCANNING_SWITCH"]);
  160. }
  161. if (pindefines.GetFirstOf("ID_CAN") >= 0)
  162. {
  163. ID_CAN = (unsigned char)atoi(pindefines["ID_CAN"]);
  164. }
  165. if (pindefines.GetFirstOf("ID_CAN_STDID_TUBE_CIRCULAR_ENCODER") > 0)
  166. {
  167. ID_CAN_STDID_TUBE_CIRCULAR_ENCODER = (unsigned short)atoi(pindefines["ID_CAN_STDID_TUBE_CIRCULAR_ENCODER"]);
  168. }
  169. if (pindefines.GetFirstOf("ID_CAN_STDID_TUBE_SWING_ENCODER") > 0)
  170. {
  171. ID_CAN_STDID_TUBE_SWING_ENCODER = (unsigned short)atoi(pindefines["ID_CAN_STDID_TUBE_SWING_ENCODER"]);
  172. }
  173. if (pindefines.GetFirstOf("ID_TUBE_ANGLE_BRAKE") > 0)
  174. {
  175. ID_TUBE_ANGLE_BRAKE = (unsigned short)atoi(pindefines["ID_TUBE_ANGLE_BRAKE"]);
  176. }
  177. if (pindefines.GetFirstOf("ID_TUBE_HEIGHT_BRAKE") > 0)
  178. {
  179. ID_TUBE_HEIGHT_BRAKE = (unsigned short)atoi(pindefines["ID_TUBE_HEIGHT_BRAKE"]);
  180. }
  181. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_BRAKE") > 0)
  182. {
  183. ID_TUBE_HORIZONTAL_BRAKE = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_BRAKE"]);
  184. }
  185. if (pindefines.GetFirstOf("ID_FLUORO_SWITCH_OUT") > 0)
  186. {
  187. ID_FLUORO_SWITCH_OUT = (unsigned short)atoi(pindefines["ID_FLUORO_SWITCH_OUT"]);
  188. }
  189. if (pindefines.GetFirstOf("ID_TUBE_LINE_MOTION_SWITCH_OUT") > 0)
  190. {
  191. ID_TUBE_LINE_MOTION_SWITCH_OUT = (unsigned short)atoi(pindefines["ID_TUBE_LINE_MOTION_SWITCH_OUT"]);
  192. }
  193. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_1") > 0)
  194. {
  195. ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_1 = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_1"]);
  196. }
  197. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_2") > 0)
  198. {
  199. ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_2 = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_CONTROLLER_DIRECTION_2"]);
  200. }
  201. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_SERVO_ON") > 0)
  202. {
  203. ID_TUBE_HORIZONTAL_SERVO_ON = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_SERVO_ON"]);
  204. }
  205. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_PULSE") > 0)
  206. {
  207. ID_TUBE_HORIZONTAL_PULSE = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_PULSE"]);
  208. }
  209. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_DIRECTION") > 0)
  210. {
  211. ID_TUBE_HORIZONTAL_DIRECTION = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_DIRECTION"]);
  212. }
  213. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_AD") > 0)
  214. {
  215. ID_TUBE_HORIZONTAL_AD = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_AD"]);
  216. }
  217. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_ENCODER_AXIS_A") > 0)
  218. {
  219. ID_TUBE_HORIZONTAL_ENCODER_AXIS_A = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_ENCODER_AXIS_A"]);
  220. }
  221. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_ENCODER_AXIS_B") > 0)
  222. {
  223. ID_TUBE_HORIZONTAL_ENCODER_AXIS_B = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_ENCODER_AXIS_B"]);
  224. }
  225. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_ENCODER_AXIS_Z") > 0)
  226. {
  227. ID_TUBE_HORIZONTAL_ENCODER_AXIS_Z = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_ENCODER_AXIS_Z"]);
  228. }
  229. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_ENCODER") > 0)
  230. {
  231. ID_TUBE_HORIZONTAL_ENCODER = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_ENCODER"]);
  232. }
  233. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_LEFT_LIMIT") > 0)
  234. {
  235. ID_TUBE_HORIZONTAL_LEFT_LIMIT = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_LEFT_LIMIT"]);
  236. }
  237. if (pindefines.GetFirstOf("ID_TUBE_HORIZONTAL_RIGHT_LIMIT") > 0)
  238. {
  239. ID_TUBE_HORIZONTAL_RIGHT_LIMIT = (unsigned short)atoi(pindefines["ID_TUBE_HORIZONTAL_RIGHT_LIMIT"]);
  240. }
  241. if (pindefines.GetFirstOf("ID_DETECTOR_HORIZONTAL_AD") > 0)
  242. {
  243. ID_DETECTOR_HORIZONTAL_AD = (unsigned short)atoi(pindefines["ID_DETECTOR_HORIZONTAL_AD"]);
  244. }
  245. if (pindefines.GetFirstOf("ID_DETECTOR_HORIZONTAL_ENCODER") > 0)
  246. {
  247. ID_DETECTOR_HORIZONTAL_ENCODER = (unsigned short)atoi(pindefines["ID_DETECTOR_HORIZONTAL_ENCODER"]);
  248. }
  249. }