DiosBoardCtrlParams.h 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485
  1. #pragma once
  2. namespace DIOS::Dev::Detail::MachineryECOM
  3. {
  4. class DiosBoardCtrlParams
  5. {
  6. public:
  7. DiosBoardCtrlParams();
  8. virtual ~DiosBoardCtrlParams();
  9. };
  10. enum NOTIFY_FRAME_ID
  11. {
  12. NOTIFY_FRAME_DEF = 0xFE,
  13. };
  14. enum DIOSBOARD_OP
  15. {
  16. OP_SET = 0x01, //设置
  17. OP_WRITE = 0x02, //写
  18. OP_READ = 0x03, //读
  19. };
  20. enum GPIO_DO_ID
  21. {
  22. DO_ID_1 = 0x15,
  23. DO_ID_2 = 0x16,
  24. DO_ID_3 = 0x17,
  25. DO_ISO_ID_1 = 0x35,
  26. DO_ISO_ID_2 = 0x36,
  27. DO_ISO_ID_3 = 0x37,
  28. };
  29. enum GPIO_DO_ATTRIBUTE
  30. {
  31. DO_ATTR_NONE = -1,
  32. DO_ATTR_SET_MODE = 0x01, //输出模式设置,GPIO_OUTPUT_MODE
  33. DO_ATTR_SET_LEVEL = 0x02, //有效电平设置,GPIO_ACTIVE_LEVEL
  34. DO_ATTR_SET_PWM_PARAM_TABLE = 0x03, //PWM参数(组)属性表设置
  35. DO_ATTR_SET_PWM_SEPARATOR = 0x04, //PWM属性表分隔符设置
  36. DO_ATTR_SET_PWM_DELETE = 0x05, //删除PWM属性表参数
  37. DO_ATTR_SET_AUTO_UPLOAD = 0x20, //状态自动返回开关
  38. };
  39. enum GPIO_OUTPUT_MODE
  40. {
  41. GOM_DIGITAL = 0x00, //数字量
  42. GOM_PWM = 0x10, //PWM
  43. };
  44. enum GPIO_ACTIVE_LEVEL
  45. {
  46. GAL_HIGH = 0x00, //高电平有效
  47. GAL_LOW = 0x10, //低电平有效
  48. };
  49. enum GPIO_DO_AUTO_UPLOAD_SWITCH
  50. {
  51. GAUTO_DO_UPLOAD_ON = 0x01,
  52. GAUTO_DO_UPLOAD_OFF = 0x00,
  53. };
  54. enum GPIO_DI_ID
  55. {
  56. DI_ID_1 = 0x11,
  57. DI_ID_2 = 0x12,
  58. DI_ID_3 = 0x13,
  59. DI_ID_4 = 0x14,
  60. DI_ISO_ID_1 = 0x31,
  61. DI_ISO_ID_2 = 0x32,
  62. DI_ISO_ID_3 = 0x33,
  63. DI_ISO_ID_4 = 0x34,
  64. };
  65. enum GPIO_DI_ATTRIBUTE
  66. {
  67. DI_ATTR_NONE = -1,
  68. DI_ATTR_SET_MODE = 0x01, //输入模式设置
  69. DI_ATTR_SET_LEVEL = 0x02, //有效电平设置
  70. DI_ATTR_SET_COUNT_CLEAR = 0x03, //有效电平捕获计数清零
  71. DI_ATTR_SET_AUTO_UPLOAD = 0x20, //状态自动返回开关
  72. DI_ATTR_SET_ASSOCIATE_CH1 = 0x30, //关联通道1设定
  73. DI_ATTR_SET_ASSOCIATE_CH1_CANCEL = 0x31,//关联通道1解除
  74. DI_ATTR_SET_ASSOCIATE_CH1_ATTR = 0x32, //关联通道1属性设定
  75. DI_ATTR_SET_ASSOCIATE_CH2 = 0x40, //关联通道2设定
  76. DI_ATTR_SET_ASSOCIATE_CH2_CANCEL = 0x41,//关联通道2解除
  77. DI_ATTR_SET_ASSOCIATE_CH2_ATTR = 0x42, //关联通道2属性设定
  78. DI_ATTR_SET_DELETE_ENCODER = 0x50, //删除编码器指令
  79. };
  80. enum GPIO_INPUT_MODE
  81. {
  82. GIM_DIGITAL = 0x00, //数字量
  83. GIM_PULSE_COUNT = 0x10, //捕获脉冲计数
  84. };
  85. enum GPIO_DI_AUTO_UPLOAD_SWITCH
  86. {
  87. GAUTO_DI_UPLOAD_ON = 0x10,
  88. GAUTO_DI_UPLOAD_OFF = 0x00,
  89. };
  90. //主通道触发电平设定
  91. enum GPIO_DI_TRIGGER_LEVEL
  92. {
  93. GDI_TRIGGER_LEVEL_UP = 0x00,
  94. GDI_TRIGGER_LEVEL_DOWN = 0x01,
  95. GDI_TRIGGER_LEVEL_BOTH = 0x02,
  96. };
  97. enum AD_ID
  98. {
  99. //AD1-AD7
  100. AD_ID_1 = 0x21,
  101. AD_ID_2 = 0x22,
  102. AD_ID_3 = 0x23,
  103. AD_ID_4 = 0x24,
  104. AD_ID_5 = 0x25,
  105. AD_ID_6 = 0x26,
  106. AD_ID_7 = 0x27,
  107. //DAD/DT1-DAD/DT7
  108. DAD_ID_1 = 0x29,
  109. DAD_ID_2 = 0x2A,
  110. DAD_ID_3 = 0x2B,
  111. DAD_ID_4 = 0x2C,
  112. DAD_ID_5 = 0x2D,
  113. DAD_ID_6 = 0x2E,
  114. DAD_ID_7 = 0x2F,
  115. };
  116. enum AD_ATTRIBUTE
  117. {
  118. AD_ATTR_NONE = -1,
  119. AD_ATTR_ON_OFF = 0x01, //AD开关
  120. AD_ATTR_AUTO_UPLOAD = 0x20, //AD采样值(或微分值)自动上传
  121. AD_ATTR_AUTO_UPLOAD_CLEAR_TABLE = 0x21, //AD采样值(或微分值)自动上传值表清除
  122. AD_ATTR_ASSOCIATE_CH1 = 0x30, //AD关联通道1
  123. AD_ATTR_ASSOCIATE_CH1_CANCEL = 0x31, //AD关联通道1解除
  124. AD_ATTR_ASSOCIATE_CH2 = 0x32, //AD关联通道2设定
  125. AD_ATTR_ASSOCIATE_CH2_CANCEL = 0x33, //AD关联通道2解除
  126. AD_ATTR_ASSOCIATE_CH1_TABLE_SET = 0x40, //AD关联通道1关联值(组)设定
  127. AD_ATTR_ASSOCIATE_CH1_TABLE_DELETE = 0x41, //AD关联通道1关联值表删除
  128. AD_ATTR_ASSOCIATE_CH2_TABLE_SET = 0x42, //AD关联通道2关联值(组)设定
  129. AD_ATTR_ASSOCIATE_CH2_TABLE_DELETE = 0x43, //AD关联通道2关联值表删除
  130. };
  131. enum AD_SWITCH
  132. {
  133. ADSW_ON = 0x01,
  134. ADSW_OFF = 0x00,
  135. };
  136. enum RS232_ID
  137. {
  138. RS232_ID_1 = 0x43, //RS232
  139. };
  140. enum RS232_ATTRIBUTE
  141. {
  142. RS232_ATTR_NONE = -1, //Ignored
  143. RS232_ATTR_ON_OFF = 0x01, //开关
  144. RS232_ATTR_BAUD_RATE = 0x02, //波特率
  145. RS232_ATTR_DATA_SET = 0x03, //数据格式
  146. };
  147. enum RS232_SWITCH
  148. {
  149. RS232_SW_ON = 0x01,
  150. RS232_SW_OFF = 0x00,
  151. };
  152. enum RS232_BAUD_RATE
  153. {
  154. BAUD_RATE_9600 = 0x00, //9600bps
  155. BAUD_RATE_19200 = 0x10, //19200bps
  156. BAUD_RATE_38400 = 0x20, //38400bps
  157. BAUD_RATE_115200 = 0x30, //115200bps
  158. };
  159. enum RS232_DATA_VALIDATE
  160. {
  161. RS232_DATA_VALIDATE_DEFAULT = 0x00, //字长8bit,停止位1bit,无校验
  162. };
  163. enum CAN_ID
  164. {
  165. CAN_ID_1 = 0x42,
  166. };
  167. enum CAN_ATTRIBUTE
  168. {
  169. CAN_ATTR_NONE = -1,
  170. CAN_ATTR_ON_OFF = 0x01,
  171. CAN_ATTR_BAUD_RATE,
  172. };
  173. enum CAN_SWITCH
  174. {
  175. CAN_SW_ON = 0x01,
  176. CAN_SW_OFF = 0x00,
  177. };
  178. enum SEC_ID
  179. {
  180. SEC_ID_1 = 0xC1,
  181. SEC_ID_2 = 0xC2,
  182. SEC_ID_3 = 0xC3,
  183. SEC_ID_4 = 0xC4,
  184. };
  185. enum SEC_ATTRIBUTE
  186. {
  187. SEC_ATTR_NONE = -1,
  188. SEC_ATTR_A_B_AXIS_BIND = 0x01, //编码器A、B轴绑定
  189. SEC_ATTR_Z_AXIS_BIND = 0x02, //编码器Z轴绑定
  190. SEC_ATTR_Z_AXIS_BIND_CANCEL = 0x03, //编码器Z轴解除绑定
  191. SEC_ATTR_DELTE = 0x04, //删除编码器
  192. SEC_ATTR_Z_AXIS_CLEAR_NOTIFY = 0x5, //编码器Z轴清零通知设置
  193. SEC_ATTR_ASSOCIATE_CH1_SET = 0x10, //编码器关联通道1设定
  194. SEC_ATTR_ASSOCIATE_CH1_CANCEL = 0x11, //编码器关联通道1解除
  195. SEC_ATTR_ASSOCIATE_CH1_TABLE_SET = 0x12, //编码器关联通道1关联值(组)设定
  196. SEC_ATTR_ASSOCIATE_CH1_TABLE_CLEAR = 0x13, //编码器关联通道1关联值(组)清除
  197. SEC_ATTR_ASSOCIATE_CH2_SET = 0x20, //编码器关联通道2设定
  198. SEC_ATTR_ASSOCIATE_CH2_CANCEL = 0x21, //编码器关联通道2解除
  199. SEC_ATTR_ASSOCIATE_CH2_TABLE_SET = 0x22, //编码器关联通道2关联值(组)设定
  200. SEC_ATTR_ASSOCIATE_CH2_TABLE_CLEAR = 0x23, //编码器关联通道2关联值(组)清除
  201. };
  202. enum SCL_ID
  203. {
  204. SCL_ID_1 = 0xD1,
  205. SCL_ID_2 = 0xD2,
  206. SCL_ID_3 = 0xD3,
  207. SCL_ID_4 = 0xD4,
  208. };
  209. enum SCL_ATTRIBUTE
  210. {
  211. SCL_ATTR_SET = 0x01, //软件接口连锁器配置指令
  212. };
  213. enum SEC_Z_AXIS_NOTIFY_SWITCH
  214. {
  215. SEC_Z_NOTIFY_SW_ON = 0x01,
  216. SEC_Z_NOTIFY_SW_OFF = 0x00,
  217. };
  218. enum EXPOSURE_ID
  219. {
  220. EXPOSURE_CTRL_ID = 0x41,
  221. };
  222. enum MCU_ID
  223. {
  224. MCU_CTRL_ID = 0x48,
  225. };
  226. enum MCU_ATTRIBUTE
  227. {
  228. MCU_ATTR_VERSION = 0x01,
  229. };
  230. enum ENCODER_AXIS
  231. {
  232. ENCODER_AXIS_ID_1 = 0x51,
  233. ENCODER_AXIS_ID_2 = 0x52,
  234. ENCODER_AXIS_ID_3 = 0x53,
  235. };
  236. union PWMPeriod
  237. {
  238. struct _stpwmperiod
  239. {
  240. unsigned char pwmperiod_lowbyte;
  241. unsigned char pwmperiod_highbyte;
  242. } pwmperiod_byte;
  243. unsigned short pwmperiod_short;
  244. };
  245. union PWMstep
  246. {
  247. struct _stpwmstep
  248. {
  249. unsigned char pwmstep_lowbyte_0;
  250. unsigned char pwmstep_lowbyte_1;
  251. unsigned char pwmstep_highbyte_0;
  252. unsigned char pwmstep_highbyte_1;
  253. } pwmstep_byte;
  254. int pwmstep_int;
  255. };
  256. struct GPIO_DO_PARAM : public DiosBoardCtrlParams
  257. {
  258. unsigned char output_mode;
  259. unsigned char active_level;
  260. unsigned char autoupload_switch;
  261. PWMPeriod peroid;
  262. PWMPeriod effective;
  263. PWMstep pwm_step;
  264. unsigned char padding[1];
  265. };
  266. struct GPIO_DI_PARAM : public DiosBoardCtrlParams
  267. {
  268. unsigned char input_mode;
  269. unsigned char autoupload_switch;
  270. unsigned char ch_associate_id;
  271. unsigned char filter_time;
  272. unsigned char trigger_level;
  273. unsigned char associate_ch_action;
  274. unsigned char active_level;
  275. union _pulseCount
  276. {
  277. struct _spulseCount
  278. {
  279. unsigned char pulse_count_lowbyte;
  280. unsigned char pulse_count_highbyte;
  281. } pulse_count_byte;
  282. unsigned short pulse_count_short;
  283. } pulse_count;
  284. unsigned char padding[3];
  285. };
  286. struct AD_PARAM : public DiosBoardCtrlParams
  287. {
  288. unsigned char ad_switch;
  289. union _lparam
  290. {
  291. struct _slparam
  292. {
  293. unsigned char auto_upload_value_lowbyte;
  294. unsigned char auto_upload_value_highbyte;
  295. } auto_upload_value_btye;
  296. unsigned short auto_upload_value_short;
  297. } auto_upload_value;
  298. unsigned char associate_ch_id;
  299. union _associate
  300. {
  301. struct _slparam
  302. {
  303. unsigned char associate_value_lowbyte;
  304. unsigned char associate_value_highbyte;
  305. } associate_value_btye;
  306. unsigned short associate_value_short;
  307. } associate_value;
  308. PWMPeriod peroid;
  309. PWMPeriod effective;
  310. PWMstep pwm_step;
  311. union _ladreadparam
  312. {
  313. struct _sadreadparam
  314. {
  315. unsigned char ad_lowbyte;
  316. unsigned char ad_highbyte;
  317. } ad_value_btye;
  318. unsigned short ad_value_short;
  319. } ad_value;
  320. };
  321. struct RS232_PARAM : public DiosBoardCtrlParams
  322. {
  323. unsigned char rs232_switch;
  324. unsigned char rs232_baud_rate;
  325. unsigned char rs232_data_validate;
  326. std::basic_string<unsigned char> rs485;
  327. unsigned char padding;
  328. };
  329. struct CAN_PARAM : public DiosBoardCtrlParams
  330. {
  331. unsigned char can_switch;
  332. unsigned char can_baud_rate;
  333. unsigned short can_stdid;
  334. unsigned char can_dlc;
  335. std::basic_string<unsigned char> candata;
  336. unsigned char padding[1];
  337. };
  338. enum CAN_BAUD_RATE
  339. {
  340. CAN_BAUD_RATE_100 = 0x1E,
  341. CAN_BAUD_RATE_125 = 0x18,
  342. CAN_BAUD_RATE_250 = 0xC,
  343. CAN_BAUD_RATE_500 = 0x6,
  344. CAN_BAUD_RATE_750 = 0x4,
  345. CAN_BAUD_RATE_1000 = 0x3,
  346. };
  347. union ADLimit
  348. {
  349. struct _slparam
  350. {
  351. unsigned char limit_value_lowbyte;
  352. unsigned char limit_value_highbyte;
  353. } limit_value_btye;
  354. unsigned short limit_value_short;
  355. };
  356. struct SEC_PARAM : public DiosBoardCtrlParams
  357. {
  358. unsigned char a_axis_bind_id;
  359. unsigned char b_axis_bind_id;
  360. unsigned char z_axis_bind_id;
  361. unsigned char z_axis_assistent_ad_id;
  362. ADLimit low_limit_value;
  363. ADLimit high_limit_value;
  364. unsigned char z_axis_clear_notify_switch;
  365. unsigned char associate_id;
  366. union _associate_value
  367. {
  368. struct
  369. {
  370. unsigned char associate_value_lowbyte_0;
  371. unsigned char associate_value_lowbyte_1;
  372. unsigned char associate_value_highbyte_0;
  373. unsigned char associate_value_highbyte_1;
  374. } associate_value_byte;
  375. int associate_value_int;
  376. } associate_value;
  377. union _encoder_value
  378. {
  379. struct
  380. {
  381. unsigned char encoder_lowbyte_0;
  382. unsigned char encoder_lowbyte_1;
  383. unsigned char encoder_highbyte_0;
  384. unsigned char encoder_highbyte_1;
  385. } encoder_value_byte;
  386. int encoder_value_int;
  387. } encoder_value;
  388. unsigned char use_ad_assistent;
  389. unsigned char padding[1];
  390. };
  391. struct SCL_PARAM : public DiosBoardCtrlParams
  392. {
  393. unsigned char a_id;
  394. unsigned char a_trigger_level;
  395. unsigned char b_id;
  396. unsigned char b_trigger_level;
  397. unsigned char f_id;
  398. };
  399. struct MCU_PARAM : public DiosBoardCtrlParams
  400. {
  401. union _mcu_version
  402. {
  403. struct _lparam
  404. {
  405. unsigned char version_lowbyte;
  406. unsigned char version_highbyte;
  407. } version_byte;
  408. unsigned short version_short;
  409. } mcu_version;
  410. };
  411. struct EXPOSURE_PARAM : public DiosBoardCtrlParams
  412. {
  413. unsigned char active_level;
  414. unsigned char padding[3];
  415. };
  416. }