PageRenderTime 68ms CodeModel.GetById 32ms RepoModel.GetById 0ms app.codeStats 0ms

/plugins/epan/ethercat/packet-ams.h

https://gitlab.com/crondaemon/wireshark-legacy
C Header | 1153 lines | 910 code | 158 blank | 85 comment | 0 complexity | 68207367faea70c69f747e6fca4f574d MD5 | raw file
  1. /* packet-ams.h
  2. *
  3. * Copyright (c) 2007 by Beckhoff Automation GmbH
  4. *
  5. * Wireshark - Network traffic analyzer
  6. * By Gerald Combs <gerald@wireshark.org>
  7. * Copyright 1998 Gerald Combs
  8. *
  9. * SPDX-License-Identifier: GPL-2.0-or-later
  10. */
  11. #ifndef __PACKET_AMS_H__
  12. #define __PACKET_AMS_H__
  13. /* FIXED PORTS */
  14. #define AMSPORT_ROUTER 1
  15. #define AMSPORT_DEBUGGER 2
  16. #define AMSPORT_LOGGER 100
  17. #define AMSPORT_EVENTLOG 110
  18. #define AMSPORT_R0_RTIME 200
  19. #define AMSPORT_R0_TRACE (AMSPORT_R0_RTIME+90)
  20. #define AMSPORT_R0_IO 300
  21. #define AMSPORT_R0_SPS 400
  22. #define AMSPORT_R0_NC 500
  23. #define AMSPORT_R0_NCSAF 501
  24. #define AMSPORT_R0_NCSVB 511
  25. #define AMSPORT_R0_ISG 550
  26. #define AMSPORT_R0_CNC 600
  27. #define AMSPORT_R0_LINE 700
  28. #define AMSPORT_R0_PLC 800
  29. #define AMSPORT_R0_CAM 900
  30. #define AMSPORT_R0_CAMTOOL 950
  31. #define AMSPORT_R0_IOPORTBEGIN 1000
  32. #define AMSPORT_R0_IOPORTEND 1199
  33. #define AMSPORT_R0_USER 2000
  34. #define AMSPORT_R3_SYSSERV 10000
  35. #define AMSPORT_R3_CTRLPROG 10000
  36. #define AMSPORT_R3_SYSCTRL 10001
  37. #define AMSPORT_R3_SYSSAMPLER 10100
  38. #define AMSPORT_R3_TCPRAWCONN 10200
  39. #define AMSPORT_R3_TCPIPSERVER 10201
  40. #define AMSPORT_R3_SYSMANAGER 10300
  41. #define AMSPORT_R3_SMSSERVER 10400
  42. #define AMSPORT_R3_MODBUSSERVER 10500
  43. #define AMSPORT_R3_PLCCONTROL 10800
  44. #define AMSPORT_R3_NCCTRL 11000
  45. #define AMSPORT_R3_NCINTERPRETER 11500
  46. #define AMSPORT_R3_STRECKECTRL 12000
  47. #define AMSPORT_R3_CAMCTRL 13000
  48. #define AMSPORT_R3_SCOPE 14000
  49. #define AMSPORT_R3_SINECH1 15000
  50. #define AMSPORT_R3_CONTROLNET 16000
  51. #define AMSPORT_R3_OPCSERVER 17000
  52. #define AMSPORT_R3_OPCCLIENT 17500
  53. #define AMSPORT_R3_CUSTOMER_FIRST 25000
  54. #define AMSPORT_R3_CUSTOMER_LAST 25999
  55. #define AMSPORT_FIRST 1
  56. #define AMSPORT_LAST 0xFFFE
  57. #define AMSPORT_UNFIXEDPORT 0
  58. #define AMSPORT_USEDEFAULT 0xFFFF
  59. #define AMSPORT_IOBOXBEGIN_USB 0x6E00
  60. #define AMSPORT_IOBOXEND_USB 0x6EFF
  61. #define AMSPORT_IODEVBEGIN 0x7000
  62. #define AMSPORT_IODEVEND 0x70FF
  63. #define AMSPORT_IOBOXBEGIN 0x7100
  64. #define AMSPORT_IOBOXEND 0x7FFF
  65. #define AMSPORT_FREEBEGIN 0x8000
  66. #define AMSPORT_FREEEND 0xBFFF
  67. #define AMSPORT_NAMESIZE 31
  68. /* Port types */
  69. typedef enum
  70. {
  71. PORTTYPE_INVALID = -1,
  72. PORTTYPE_ROUTER = 0x00,
  73. PORTTYPE_R3PORT = 0x01,
  74. PORTTYPE_R0CTRLPORT = 0x02,
  75. PORTTYPE_R0TASKPORT = 0x03,
  76. PORTTYPE_R0IOPORT = 0x04,
  77. PORTTYPE_TPPORT = 0x05,
  78. PORTTYPE_MAXVAL = 0xFF
  79. }AMSPORT_TYPE;
  80. /* Command IDs */
  81. #define AMSCMD_LOGMESSAGE 0x0001
  82. #define AMSCMD_ROUTERSHUTDOWN 0x0002
  83. #define AMSCMD_ROUTERACTIVATED 0x0003
  84. #define AMSCMD_SYSTEMREMOVED 0x0004
  85. #define AMSCMD_CLOSECONNECTION 0x0005
  86. #define AMSCMD_SIGNALSTART 0x00FB
  87. #define AMSCMD_SIGNALSTOP 0x00FC
  88. #define AMSCMD_HANDLERETAINDATA 0x00FD
  89. #define AMSCMD_DEVICECONFIGID 0x00FE
  90. #define AMSCMD_DOWNLOADSYMBOLS 0x00FF
  91. #define AMS_ERRLOGCMDS 0x100
  92. #define AMS_TASKCMDS 0x500
  93. #define AMS_CTRLCMDS 0x600
  94. #define AMS_ROUTERCMDS 0x900
  95. #define AMS_RTIMECMDS 0x1000
  96. #define AMS_TRACECMDS (AMS_RTIMECMDS+0x900)
  97. #define AMS_IOCMDS 0x2000
  98. #define AMS_C1220CMDS (AMS_IOCMDS+0x100)
  99. #define AMS_FCxxxxCMDS (AMS_IOCMDS+0x200)
  100. #define AMS_SPSCMDS 0x3000
  101. #define AMS_NCCMDS 0x4000
  102. #define AMS_PLCCMDS 0x5000
  103. #define AMS_LINECMDS 0x6000
  104. #define AMS_CAMCMDS 0x7000
  105. #define AMS_CMDSPECIFIC 0x8000
  106. #define AMSERRCODEISWARNING 0x80000000
  107. /* Error Arrays */
  108. #define ERR_ROUTERERRS 0x0500
  109. #define ERR_TASKERRS 0x0600
  110. #define ERR_ADSERRS 0x0700
  111. #define ERR_SYSSMPLERRS 0x0800
  112. #define ERR_RTIMEERRS 0x1000
  113. #define ERR_TRACEERRS (ERR_RTIMEERRS+0x900)
  114. #define ERR_IOERRS 0x2000
  115. #define ERR_DPSLAVE (ERR_IOERRS+0x900)
  116. #define ERR_CP5412A2 (ERR_IOERRS+0xA00)
  117. #define ERR_ASP (ERR_IOERRS+0xB00)
  118. #define ERR_CANSLAVE (ERR_IOERRS+0xC00)
  119. #define ERR_CIF30 (ERR_IOERRS+0xD00)
  120. #define ERR_IBSSLAVE (ERR_IOERRS+0xE00)
  121. #define ERR_SPSERRS 0x3000
  122. #define ERR_NCERRS 0x4000
  123. #define ERR_PLCERRS 0x6000
  124. #define ERR_STRKERRS 0x7000
  125. #define ERR_PRJSPECIFIC 0x7800
  126. #define ERR_DRIVEERRS_C3D 0xD000
  127. #define ERR_DRIVEERRS_C2D 0xE000
  128. #define ERR_DRIVEERRS_C1D 0xF000
  129. /* Global Error codes */
  130. #define ERR_NOERROR 0
  131. #define ERR_INTERNAL 1
  132. #define ERR_NORTIME 2
  133. #define ERR_ALLOCLOCKEDMEM 3
  134. #define ERR_INSERTMAILBOX 4
  135. #define ERR_WRONGRECEIVEHMSG 5
  136. #define ERR_TARGETPORTNOTFOUND 6
  137. #define ERR_TARGETMACHINENOTFOUND 7
  138. #define ERR_UNKNOWNCMDID 8
  139. #define ERR_BADTASKID 9
  140. #define ERR_NOIO 10
  141. #define ERR_UNKNOWNAMSCMD 11
  142. #define ERR_WIN32ERROR 12
  143. #define ERR_PORTNOTCONNECTED 13
  144. #define ERR_INVALIDAMSLENGTH 14
  145. #define ERR_INVALIDAMSNETID 15
  146. #define ERR_LOWINSTLEVEL 16
  147. #define ERR_NODEBUGINTAVAILABLE 17
  148. #define ERR_PORTDISABLED 18
  149. #define ERR_PORTALREADYCONNECTED 19
  150. #define ERR_AMSSYNC_W32ERROR 20
  151. #define ERR_AMSSYNC_TIMEOUT 21
  152. #define ERR_AMSSYNC_AMSERROR 22
  153. #define ERR_AMSSYNC_NOINDEXINMAP 23
  154. #define ERR_INVALIDAMSPORT 24
  155. #define ERR_NOMEMORY 25
  156. #define ERR_TCPSEND 26
  157. #define ERR_HOSTUNREACHABLE 27
  158. #define ERR_INVALIDAMSFRAGMENT 28
  159. /* ROUTER */
  160. #define ROUTERERR_NOLOCKEDMEMORY 0 + ERR_ROUTERERRS
  161. #define ROUTERERR_RESIZEMEMORY 1 + ERR_ROUTERERRS
  162. #define ROUTERERR_MAILBOXFULL 2 + ERR_ROUTERERRS
  163. #define ROUTERERR_DEBUGBOXFULL 3 + ERR_ROUTERERRS
  164. #define ROUTERERR_UNKNOWNPORTTYPE 4 + ERR_ROUTERERRS
  165. #define ROUTERERR_NOTINITIALIZED 5 + ERR_ROUTERERRS
  166. #define ROUTERERR_PORTALREADYINUSE 6 + ERR_ROUTERERRS
  167. #define ROUTERERR_NOTREGISTERED 7 + ERR_ROUTERERRS
  168. #define ROUTERERR_NOMOREQUEUES 8 + ERR_ROUTERERRS
  169. #define ROUTERERR_INVALIDPORT 9 + ERR_ROUTERERRS
  170. #define ROUTERERR_NOTACTIVATED 10 + ERR_ROUTERERRS
  171. #define ROUTERERR_FRAGMENTBOXFULL 11 + ERR_ROUTERERRS
  172. #define ROUTERERR_FRAGMENTTIMEOUT 12 + ERR_ROUTERERRS
  173. #define ROUTERERR_TOBEREMOVED 13 + ERR_ROUTERERRS
  174. #define TASKERR_UNKNOWNTASKTYPE 0 + ERR_TASKERRS
  175. #define TASKERR_TASKTERMINATED 1 + ERR_TASKERRS
  176. #define TASKERR_EVENTTIMEOUT 2 + ERR_TASKERRS
  177. /* System Sampler */
  178. #define SMPLERR_INTERNAL 0 + ERR_SYSSMPLERRS
  179. #define SMPLERR_INVALIDTYPE 1 + ERR_SYSSMPLERRS
  180. /* RTIME */
  181. #define RTERR_INTERNAL 0 + ERR_RTIMEERRS
  182. #define RTERR_BADTIMERPERIODS 1 + ERR_RTIMEERRS
  183. #define RTERR_INVALIDTASKPTR 2 + ERR_RTIMEERRS
  184. #define RTERR_INVALIDSTACKPTR 3 + ERR_RTIMEERRS
  185. #define RTERR_PRIOEXISTS 4 + ERR_RTIMEERRS
  186. #define RTERR_NOMORETCB 5 + ERR_RTIMEERRS
  187. #define RTERR_NOMORESEMAS 6 + ERR_RTIMEERRS
  188. #define RTERR_NOMOREQUEUES 7 + ERR_RTIMEERRS
  189. #define RTERR_SHUTDOWNTIMEOUT 8 + ERR_RTIMEERRS
  190. #define RTERR_CHECKHOSTOSNOPCR 9 + ERR_RTIMEERRS
  191. #define RTERR_CHECKHOSTOSNOIDT 10 + ERR_RTIMEERRS
  192. #define RTERR_CHECKHOSTOSNOPHYSMEM 11 + ERR_RTIMEERRS
  193. #define RTERR_CHECKHOSTOSMAPERR 12 + ERR_RTIMEERRS
  194. #define RTERR_EXTIRQALREADYDEF 13 + ERR_RTIMEERRS
  195. #define RTERR_EXTIRQNOTDEF 14 + ERR_RTIMEERRS
  196. #define RTERR_EXTIRQINSTALLFAILED 15 + ERR_RTIMEERRS
  197. #define RTERR_IRQLNOTLESSOREQUAL 16 + ERR_RTIMEERRS
  198. #define RTERR_SYSCLOCKFAILURE 17 + ERR_RTIMEERRS
  199. /* TRACE */
  200. #define TRACEERR_REGISTRY 0 + ERR_TRACEERRS
  201. #define TRACEERR_MEMMAP 1 + ERR_TRACEERRS
  202. #define TRACEERR_NOTAVAIL 2 + ERR_TRACEERRS
  203. /* IO */
  204. #define IOERR_INTERNAL (0 + ERR_IOERRS)
  205. #define IOERR_BADCARDNO (1 + ERR_IOERRS)
  206. #define IOERR_INVALIDCARDADDR (2 + ERR_IOERRS)
  207. #define IOERR_CDLLISTFULL (3 + ERR_IOERRS)
  208. #define IOERR_BADCDLPARAM (4 + ERR_IOERRS)
  209. #define IOERR_OPENIOFAILED (5 + ERR_IOERRS)
  210. #define IOERR_RESETIOFAILED (6 + ERR_IOERRS)
  211. #define IOERR_UNKNOWNDEVICE (7 + ERR_IOERRS)
  212. #define IOERR_UNKNOWNDEVICEID (8 + ERR_IOERRS)
  213. #define IOERR_UNKNOWNIMAGEID (9 + ERR_IOERRS)
  214. #define IOERR_GETIOSTATE (10 + ERR_IOERRS)
  215. #define IOERR_BADIMAGEID (11 + ERR_IOERRS)
  216. #define IOERR_NOMORECLIENTSPACE (12 + ERR_IOERRS)
  217. #define IOERR_CLIENTINFONOTFOUND (13 + ERR_IOERRS)
  218. #define IOERR_CDLNOTINUSE (14 + ERR_IOERRS)
  219. #define IOERR_TIMEOUTWITHDEVICE (15 + ERR_IOERRS)
  220. #define IOERR_C1220FUNC_1 (16 + ERR_IOERRS)
  221. #define IOERR_C1220FUNC_9 (17 + ERR_IOERRS)
  222. #define IOERR_C1220FUNC_C (18 + ERR_IOERRS)
  223. #define IOERR_C1220FUNC_10 (19 + ERR_IOERRS)
  224. #define IOERR_C1220FUNC_1_MAXSEND (20 + ERR_IOERRS)
  225. #define IOERR_C1220FUNC_1_ADDRSET (21 + ERR_IOERRS)
  226. #define IOERR_C1220FUNC_1_BREAK (22 + ERR_IOERRS)
  227. #define IOERR_C1220FUNC_1_BREAK0 (23 + ERR_IOERRS)
  228. #define IOERR_C1220FUNC_1_BREAK1 (24 + ERR_IOERRS)
  229. #define IOERR_C1220FUNC_1_BREAK2 (25 + ERR_IOERRS)
  230. #define IOERR_C1220FUNC_1_BREAK3 (26 + ERR_IOERRS)
  231. #define IOERR_C1220FUNC_1_BREAK4 (27 + ERR_IOERRS)
  232. #define IOERR_C1220FUNC_1_BREAK5 (28 + ERR_IOERRS)
  233. #define IOERR_C1220FUNC_1_BREAK6 (29 + ERR_IOERRS)
  234. #define IOERR_C1220FUNC_1_BREAK7 (30 + ERR_IOERRS)
  235. #define IOERR_C1220FUNC_1_BREAK8 (31 + ERR_IOERRS)
  236. #define IOERR_C1220FUNC_1_BREAK9 (32 + ERR_IOERRS)
  237. #define IOERR_C1220FUNC_1_BREAK10 (33 + ERR_IOERRS)
  238. #define IOERR_C1220FUNC_1_BREAK11 (34 + ERR_IOERRS)
  239. #define IOERR_C1220FUNC_1_BREAK12 (35 + ERR_IOERRS)
  240. #define IOERR_C1220FUNC_1_BREAK13 (36 + ERR_IOERRS)
  241. #define IOERR_C1220FUNC_1_BREAK14 (37 + ERR_IOERRS)
  242. #define IOERR_C1220FUNC_1_BREAK15 (38 + ERR_IOERRS)
  243. #define IOERR_C1220FUNC_1_BREAK16 (39 + ERR_IOERRS)
  244. #define IOERR_SPC3DEVINITDP (40 + ERR_IOERRS)
  245. #define IOERR_SPC3UPDATEOUTPUT (41 + ERR_IOERRS)
  246. #define IOERR_CIF30READDIAG (42 + ERR_IOERRS)
  247. #define IOERR_CIF30COMMNOTSTARTED (43 + ERR_IOERRS)
  248. #define IOERR_CIF30SLAVEPARASIZE (44 + ERR_IOERRS)
  249. #define IOERR_CIF30NOPARAS (45 + ERR_IOERRS)
  250. #define IOERR_CIF30SLAVEERROR (46 + ERR_IOERRS)
  251. #define IOERR_CIF30WATCHDOGEXPIRED (47 + ERR_IOERRS)
  252. #define IOERR_UNKNOWNDEVICECMD (48 + ERR_IOERRS)
  253. #define IOERR_CIF40MESSAGEHANDLING (49 + ERR_IOERRS)
  254. #define IOERR_CIF40PARAERROR (50 + ERR_IOERRS)
  255. #define IOERR_CIF40WATCHDOGEXPIRED (51 + ERR_IOERRS)
  256. #define IOERR_CIF40FLAGERROR (52 + ERR_IOERRS)
  257. #define IOERR_CIF40COMMNOTSTARTED (53 + ERR_IOERRS)
  258. #define IOERR_CIF40READDIAG (54 + ERR_IOERRS)
  259. #define IOERR_CIF40SLAVEERROR (55 + ERR_IOERRS)
  260. #define IOERR_CIF40GLOBALERROR (56 + ERR_IOERRS)
  261. #define IOERR_CIF40CONFIGLIST (57 + ERR_IOERRS)
  262. #define IOERR_CP5412A2SLAVEPARASIZE (58 + ERR_IOERRS)
  263. #define IOERR_CP5412A2NOPARAS (59 + ERR_IOERRS)
  264. #define IOERR_CP5412A2SLAVEERROR (60 + ERR_IOERRS)
  265. #define IOERR_CP5412A2FATAL (61 + ERR_IOERRS)
  266. #define IOERR_CP5412A2MAILBOXUSED (62 + ERR_IOERRS)
  267. #define IOERR_BEGINCONFIGWHILETICKER (63 + ERR_IOERRS)
  268. #define IOERR_UNEXPECTEDBOXCOUNT (64 + ERR_IOERRS)
  269. #define IOERR_C1200CHECKADDR (65 + ERR_IOERRS)
  270. #define IOERR_C1200INTENSITYTEST (66 + ERR_IOERRS)
  271. #define IOERR_NOIMAGE (67 + ERR_IOERRS)
  272. #define IOERR_INVALIDIMAGEOFFSSIZE (68 + ERR_IOERRS)
  273. #define IOERR_FORCESCOUNTEXCEEDEDMAXIMUM (69 + ERR_IOERRS)
  274. #define IOERR_SERCOSLIFECOUNTERERR (70 + ERR_IOERRS)
  275. #define IOERR_C1220NOTFOUND (71 + ERR_IOERRS)
  276. #define IOERR_AMSDEVICENOAMSINTF (72 + ERR_IOERRS)
  277. #define IOERR_AMSDEVICEAMSCMDIDNOTSUPP (73 + ERR_IOERRS)
  278. #define IOERR_AMSDEVICEAMSSERVICERUNNING (74 + ERR_IOERRS)
  279. #define IOERR_PLCINTERFACE_BUSY (75 + ERR_IOERRS)
  280. #define IOERR_PLCINTERFACE_FAULT (76 + ERR_IOERRS)
  281. #define IOERR_PLCINTERFACE_TIMEOUT (77 + ERR_IOERRS)
  282. #define IOERR_PLCINTERFACE_RESETTIMEOUT (78 + ERR_IOERRS)
  283. #define IOERR_PLCINTERFACE_NODATAEXCH (79 + ERR_IOERRS)
  284. #define IOERR_PLCINTERFACE_RESET (80 + ERR_IOERRS)
  285. #define IOERR_CP5412A2INVALIDADDR (81 + ERR_IOERRS)
  286. #define IOERR_CP5412A2INVALIDPORT (82 + ERR_IOERRS)
  287. #define IOERR_AMSDEVICEBADBOXNO (83 + ERR_IOERRS)
  288. #define IOERR_AMSDEVICEBADTYPE (84 + ERR_IOERRS)
  289. #define IOERR_AMSDEVICEILLEGALADDRESS (85 + ERR_IOERRS)
  290. #define IOERR_CP5412A2INVALIDBOX (86 + ERR_IOERRS)
  291. #define IOERR_AMSDEVICEFIFOOVERFLOW (87 + ERR_IOERRS)
  292. #define IOERR_AMSDEVICEAMSSEQUENCEERROR (88 + ERR_IOERRS)
  293. #define IOERR_CP5412A2DPV1SYNTAXERROR (89 + ERR_IOERRS)
  294. #define IOERR_CP5412A2DEVICENOTRUNNING (90 + ERR_IOERRS)
  295. #define IOERR_AMSDEVICENOTRUNNING (91 + ERR_IOERRS)
  296. #define IOERR_AMSDEVICEBOXNOTDEFINED (92 + ERR_IOERRS)
  297. #define IOERR_CP5412A2BADSERVICEPARA (93 + ERR_IOERRS)
  298. #define IOERR_CP5412A2FIFOOVERFLOW (94 + ERR_IOERRS)
  299. #define IOERR_COMPORTOPENFAILED (95 + ERR_IOERRS)
  300. #define IOERR_CIF30BADMESSAGERESPONSE (96 + ERR_IOERRS)
  301. #define IOERR_CIF30DELETEDATABASE (97 + ERR_IOERRS)
  302. #define IOERR_CIF30STARTSEQFAILED (98 + ERR_IOERRS)
  303. #define IOERR_CIF30DOWNLOADFAILED (99 + ERR_IOERRS)
  304. #define IOERR_CIF30ENDSEQFAILED (100 + ERR_IOERRS)
  305. #define IOERR_CIF30BUSLOADFAILED (101 + ERR_IOERRS)
  306. #define IOERR_PLCINTERFACE_RESETREQ (102 + ERR_IOERRS)
  307. #define IOERR_CP5412A2INVALIDCYCLETICKS (103 + ERR_IOERRS)
  308. #define IOERR_CP5412A2DPBUSFAULT (104 + ERR_IOERRS)
  309. #define IOERR_INVALIDTERMCONFIG (105 + ERR_IOERRS)
  310. #define IOERR_SERCANSBREAK (106 + ERR_IOERRS)
  311. #define IOERR_SERCANSPHASE0 (107 + ERR_IOERRS)
  312. #define IOERR_SERCANSPHASE1 (108 + ERR_IOERRS)
  313. #define IOERR_SERCANSPHASE2 (109 + ERR_IOERRS)
  314. #define IOERR_SERCANSPHASE3 (110 + ERR_IOERRS)
  315. #define IOERR_SERCANSPHASE4 (111 + ERR_IOERRS)
  316. #define IOERR_SERCANSNCSERVICECHNFAILED (112 + ERR_IOERRS)
  317. #define IOERR_RESOURCECONFICT (113 + ERR_IOERRS)
  318. #define IOERR_C1220INITSTRINGCOMM (114 + ERR_IOERRS)
  319. #define IOERR_C1220REGSTRINGSLAVE (115 + ERR_IOERRS)
  320. #define IOERR_C1220STRREGFAULT (116 + ERR_IOERRS)
  321. #define IOERR_IOSTATEBUSY (117 + ERR_IOERRS)
  322. #define IOERR_IBSSCITWATCHDOGEXPIRED (118 + ERR_IOERRS)
  323. #define IOERR_IBSSCITSYNCMAILBOXERROR (119 + ERR_IOERRS)
  324. #define IOERR_IBSSCITCONFIRMDIAGERROR (120 + ERR_IOERRS)
  325. #define IOERR_IBSSCITCREATECFGERROR (121 + ERR_IOERRS)
  326. #define IOERR_IBSSCITCOMPLETEREADCFGERROR (122 + ERR_IOERRS)
  327. #define IOERR_IBSSCITSTARTDATATRANSFERERROR (123 + ERR_IOERRS)
  328. #define IOERR_IBSSCITSETFAULTINDICATION (124 + ERR_IOERRS)
  329. #define IOERR_IBSSCITSETDEVICESTATEINDICATION (125 + ERR_IOERRS)
  330. #define IOERR_IBSSCITSETBUSERRORINDICATION (126 + ERR_IOERRS)
  331. #define IOERR_IBSSCITSTOPDATATRANSFERERROR (127 + ERR_IOERRS)
  332. #define IOERR_IBSSCITSETVALUEINDICATION (128 + ERR_IOERRS)
  333. #define IOERR_IBSSCITINITIATEREQ (129 + ERR_IOERRS)
  334. #define IOERR_IBSSCITACTIVATECFGERROR (130 + ERR_IOERRS)
  335. #define IOERR_IBSSCITCOMPACTLOADPDRLERROR (131 + ERR_IOERRS)
  336. #define IOERR_IBSSCITCONTROLPARAMERROR (132 + ERR_IOERRS)
  337. #define IOERR_IBSSCITDEACTIVATECFGERROR (133 + ERR_IOERRS)
  338. #define IOERR_IBSSCITINVALIDPORT (134 + ERR_IOERRS)
  339. #define IOERR_C1220FUNC_7_ADDRESSTEST (135 + ERR_IOERRS)
  340. #define IOERR_FCXXXXMAILBOXUSED (136 + ERR_IOERRS)
  341. #define IOERR_FCXXXXDPRAMTOOSMALL (137 + ERR_IOERRS)
  342. #define IOERR_COMUPS_PORTINUSE (138 + ERR_IOERRS)
  343. #define IOERR_COMUPS_NOUPSORNOPOWER (139 + ERR_IOERRS)
  344. #define IOERR_COMUPS_LOWBATTERY (140 + ERR_IOERRS)
  345. #define IOERR_UPS_ALREADY_EXISTS (141 + ERR_IOERRS)
  346. #define IOERR_FCXXXXSTARTUPFAILED (142 + ERR_IOERRS)
  347. #define IOERR_C1220GETSTRINGCOMMTXSTATEFAILED (143 + ERR_IOERRS)
  348. #define IOERR_C1220SENDSTRINGTOSLAVEFAILED (144 + ERR_IOERRS)
  349. #define IOERR_CP5613FIRMWARELOADFAILED (145 + ERR_IOERRS)
  350. #define IOERR_CP5613DPOPENFAILED (146 + ERR_IOERRS)
  351. #define IOERR_CP5613FATALERROR (147 + ERR_IOERRS)
  352. #define IOERR_CP5613DPUSEROPENFAILED (148 + ERR_IOERRS)
  353. #define IOERR_CP5613DPSETMODESTOPFAILED (149 + ERR_IOERRS)
  354. #define IOERR_CP5613DPSETMODECLEARFAILED (150 + ERR_IOERRS)
  355. #define IOERR_CP5613DPSETMODEOPERATEFAILED (151 + ERR_IOERRS)
  356. #define IOERR_CP5613NODATAAVAILABLE (152 + ERR_IOERRS)
  357. #define IOERR_CP5613DPSERVICEFAILED (153 + ERR_IOERRS)
  358. #define IOERR_CP5613DPSETMODEOFFLINEFAILED (154 + ERR_IOERRS)
  359. #define IOERR_CP5613DPUSERCLOSEFAILED (155 + ERR_IOERRS)
  360. #define IOERR_CP5613DPCLOSEFAILED (156 + ERR_IOERRS)
  361. #define IOERR_CP5613OTHERSERVICERETURNED (157 + ERR_IOERRS)
  362. #define IOERR_CP5613DPOKASYNC (158 + ERR_IOERRS)
  363. #define IOERR_CP5613DPERROREVENT (159 + ERR_IOERRS)
  364. #define IOERR_CP5613DPERROREVENTNET (160 + ERR_IOERRS)
  365. #define IOERR_CP5613DPERRORREQPAR (161 + ERR_IOERRS)
  366. #define IOERR_CP5613DPERRORCI (162 + ERR_IOERRS)
  367. #define IOERR_CP5613DPERRORRES (163 + ERR_IOERRS)
  368. #define IOERR_CP5613DPERRORUSRABORT (164 + ERR_IOERRS)
  369. #define IOERR_PKWSYNTAXERROR (165 + ERR_IOERRS)
  370. #define IOERR_CP5412A2CDLCFGFAULT (166 + ERR_IOERRS)
  371. #define IOERR_IBSSCITINITLOADCFGERROR (168 + ERR_IOERRS)
  372. #define IOERR_IBSSCITLOADCFGERROR (169 + ERR_IOERRS)
  373. #define IOERR_IBSSCITTERMLOADCFGERROR (170 + ERR_IOERRS)
  374. #define IOERR_IBSSCITINITLOADPDRLERROR (171 + ERR_IOERRS)
  375. #define IOERR_IBSSCITLOADPDRLERROR (172 + ERR_IOERRS)
  376. #define IOERR_IBSSCITTERMLOADPDRLERROR (173 + ERR_IOERRS)
  377. #define IOERR_IBSSCITDELETEOBJECTERROR (174 + ERR_IOERRS)
  378. #define IOERR_IBSSCITCONTROLACTIVECFGGERROR (175 + ERR_IOERRS)
  379. #define IOERR_IBSSCITINITLOADPDDLERROR (176 + ERR_IOERRS)
  380. #define IOERR_IBSSCITLOADPDDLERROR (177 + ERR_IOERRS)
  381. #define IOERR_IBSSCITTERMLOADPDDLERROR (178 + ERR_IOERRS)
  382. #define IOERR_NOMOREMAPSINIMAGE (179 + ERR_IOERRS)
  383. #define IOERR_IBSSCITSETSLAVEINFOERROR (180 + ERR_IOERRS)
  384. #define IOERR_CIF40NOTREADY (190 + ERR_IOERRS)
  385. #define IOERR_C1220SETAMSNETIDFAILED (191 + ERR_IOERRS)
  386. #define IOERR_AMSDEVICEIORESETACTIVE (192 + ERR_IOERRS)
  387. #define IOERR_C1220INITPROGRAMMABLECDL (193 + ERR_IOERRS)
  388. #define IOERR_FCXXXXINVALIDBOXNODOWNLOADED (194 + ERR_IOERRS)
  389. #define IOERR_CP5412A2_RESET (4 + ERR_CP5412A2)
  390. #define IOERR_CP5412A2_LOADBUSPARA (5 + ERR_CP5412A2)
  391. #define IOERR_CP5412A2_LOADSLAVE (6 + ERR_CP5412A2)
  392. #define IOERR_CP5412A2_LOADPRMDATA (7 + ERR_CP5412A2)
  393. #define IOERR_CP5412A2_LOADCFGDATA (8 + ERR_CP5412A2)
  394. #define IOERR_CP5412A2_LOADSLAVECDL (9 + ERR_CP5412A2)
  395. #define IOERR_CP5412A2_ACTIVATESLAVE (10 + ERR_CP5412A2)
  396. #define IOERR_CP5412A2_ADDSLAVE (11 + ERR_CP5412A2)
  397. #define IOERR_CP5412A2_DELETESLAVE (12 + ERR_CP5412A2)
  398. #define IOERR_CP5412A2_STARTDATAEXCH (13 + ERR_CP5412A2)
  399. #define IOERR_CP5412A2_STOPDATAEXCH (14 + ERR_CP5412A2)
  400. #define IOERR_CP5412A2_DEBUGDPM (15 + ERR_CP5412A2)
  401. /* FC Box - stamndadisiert */
  402. #define FCERR_FMNOERROR 0
  403. #define FCERR_FMDEACTIVATED 1
  404. #define FCERR_FMNOANSWER 2
  405. #define FCERR_FMMASTERLOCK 3
  406. #define FCERR_FMINVALIDRESPONSE 4
  407. #define FCERR_FMPRMFAULT 5
  408. #define FCERR_FMFEATURENOTSUPPORTED 6
  409. #define FCERR_FMCFGFAULT 7
  410. #define FCERR_FMSTATIONNOTREADY 8
  411. #define FCERR_FMSTATDIAG 9
  412. #define FCERR_FMDIAGOVERFLOW 10
  413. #define FCERR_FMPHYSICALFAULT 11
  414. #define FCERR_FMDATATRANSFERLEFT 12
  415. #define FCERR_FMSYNIFAULT 13
  416. #define FCERR_FMTELEGRAMFAULT 14
  417. #define FCERR_FMNORESSOURCES 15
  418. #define FCERR_FMSERVICENOTACTIVATED 16
  419. #define FCERR_FMUNEXPECTEDTELEGRAM 17
  420. #define FCERR_FMSTATIONREADY 18
  421. #define FCERR_FMADSSTARTUP 19
  422. #define FCERR_FMINVALIDINDICATION 20
  423. #define FCERR_FMSTATIONINFAULT 21
  424. #define FCERR_FMINDICATIONMISSED 22
  425. #define FCERR_FMWAITFORINDICATIONS 23
  426. #define FCERR_FMFBUSSPECIFIC_1 40
  427. #define FCERR_FMFBUSSPECIFIC_2 41
  428. #define FCERR_FMFBUSSPECIFIC_3 42
  429. #define FCERR_FMFBUSSPECIFIC_4 43
  430. #define FCERR_FMFBUSSPECIFIC_5 44
  431. #define FCERR_FMFBUSSPECIFIC_6 45
  432. #define FCERR_FMFBUSSPECIFIC_7 46
  433. #define FCERR_FMFBUSSPECIFIC_8 47
  434. #define FCERR_FMFBUSSPECIFIC_9 48
  435. /* FC520x */
  436. #define FCERR_FMFC520XHEARTBEATFAULT 40
  437. #define FCERR_FMFC520XSHUTDOWNRECEIVED 41
  438. #define FCERR_FMFC520XEKEYERROR_VENDOR 42
  439. #define FCERR_FMFC520XEKEYERROR_DEVTYPE 43
  440. #define FCERR_FMFC520XEKEYERROR_PRODCODE 44
  441. #define FCERR_FMFC520XEKEYERROR_REVISION 45
  442. #define FCERR_FMFC520XSTARTUPATTR 46
  443. #define FCERR_FMFC520XIOLENGTH_PROD 47
  444. #define FCERR_FMFC520XIOLENGTH_CONS 48
  445. #define FCERR_FMFC520XDEVICEOPERATE_RUN 0
  446. #define FCERR_FMFC520XDEVICEOPERATE_IDLE 1
  447. #define FCERR_FMFC520XDEVICEDUPMAC 2
  448. #define FCERR_FMFC520XDEVICESELFTEST 3
  449. #define FCERR_FMFC520XDEVICESTANDBY 4
  450. #define FCERR_FMFC520XDEVICEMAJORFAULT 5
  451. #define FCERR_FMFC520XDEVICEMINORFAULT 6
  452. #define FCERR_FMFC520XDEVICEBUSSENSEFAIL 7
  453. #define FCERR_FMFC520XCANBUSON 0x01
  454. #define FCERR_FMFC520XCANBUSOFF 0x02
  455. #define FCERR_FMFC520XCANWARNINGLIMIT 0x04
  456. #define FCERR_FMFC520XCANOVERRUN 0x08
  457. /* DP-Slave-Errors */
  458. #define DPSLAVEERROR_NOERROR (FCERR_FMNOERROR + ERR_DPSLAVE)
  459. #define DPSLAVEERROR_STATIONDEACTIVATED (FCERR_FMDEACTIVATED + ERR_DPSLAVE)
  460. #define DPSLAVEERROR_STATIONNONEXISTENT (FCERR_FMNOANSWER + ERR_DPSLAVE)
  461. #define DPSLAVEERROR_MASTERLOCK (FCERR_FMMASTERLOCK + ERR_DPSLAVE)
  462. #define DPSLAVEERROR_INVALIDSLAVERESPONSE (FCERR_FMINVALIDRESPONSE + ERR_DPSLAVE)
  463. #define DPSLAVEERROR_PRMFAULT (FCERR_FMPRMFAULT + ERR_DPSLAVE)
  464. #define DPSLAVEERROR_NOTSUPPORTED (FCERR_FMFEATURENOTSUPPORTED + ERR_DPSLAVE)
  465. #define DPSLAVEERROR_CFGFAULT (FCERR_FMCFGFAULT + ERR_DPSLAVE)
  466. #define DPSLAVEERROR_STATIONNOTREADY (FCERR_FMSTATIONNOTREADY + ERR_DPSLAVE)
  467. #define DPSLAVEERROR_STATDIAG (FCERR_FMSTATDIAG + ERR_DPSLAVE)
  468. #define DPSLAVEERROR_DIAGOVERFLOW (FCERR_FMDIAGOVERFLOW + ERR_DPSLAVE)
  469. #define DPSLAVEERROR_PHYSICALFAULT (FCERR_FMPHYSICALFAULT + ERR_DPSLAVE)
  470. #define DPSLAVEERROR_TELEGRAMFAULT (FCERR_FMTELEGRAMFAULT + ERR_DPSLAVE)
  471. #define DPSLAVEERROR_NORESSOURCES (FCERR_FMNORESSOURCES + ERR_DPSLAVE)
  472. #define DPSLAVEERROR_SERVICENOTACTIVATED (FCERR_FMSERVICENOTACTIVATED + ERR_DPSLAVE)
  473. #define DPSLAVEERROR_UNEXPECTEDTELEGRAM (FCERR_FMUNEXPECTEDTELEGRAM + ERR_DPSLAVE)
  474. #define DPSLAVEERROR_STATIONREADY (FCERR_FMSTATIONREADY + ERR_DPSLAVE)
  475. #define DPSLAVEERROR_ADSSTARTUP (FCERR_FMADSSTARTUP + ERR_DPSLAVE)
  476. /* CAN-Node-Errors */
  477. #define CANNODEERROR_NOERROR (0 + ERR_CANSLAVE)
  478. #define CANNODEERROR_STATIONNONEXISTENT (1 + ERR_CANSLAVE)
  479. #define CANNODEERROR_PRMFAULT (4 + ERR_CANSLAVE)
  480. #define CANNODEERROR_CFGFAULT (6 + ERR_CANSLAVE)
  481. #define CANNODEERROR_DEACTIVATED (8 + ERR_CANSLAVE)
  482. #define CANNODEERROR_PREOPERATIONAL (12 + ERR_CANSLAVE)
  483. #define CANNODEERROR_NOT_OPERATIONAL (13 + ERR_CANSLAVE)
  484. /* IBS-Device-Errors */
  485. #define IBSDEVICEERROR_NOERROR (0 + ERR_IBSSLAVE)
  486. #define IBSDEVICEERROR_STATIONDEACTIVATED (1 + ERR_IBSSLAVE)
  487. #define IBSDEVICEERROR_STATIONNONEXISTENT (2 + ERR_IBSSLAVE)
  488. #define IBSDEVICEERROR_CFGFAULT (6 + ERR_IBSSLAVE)
  489. #define IBSDEVICEERROR_DIAGOVERFLOW (10 + ERR_IBSSLAVE)
  490. #define IBSDEVICEERROR_PHYSICALFAULT (11 + ERR_IBSSLAVE)
  491. /* PLC */
  492. #define PLCWRN_LOADINGBOOTPRJ ((0 + ERR_PLCERRS) | AMSERRCODEISWARNING)
  493. #define PLCWRN_LOADINGRETAINDATA ((1 + ERR_PLCERRS) | AMSERRCODEISWARNING)
  494. /* NC */
  495. #define ERR_NCR0MANERRS (ERR_NCERRS+0x0000)
  496. #define ERR_NCCHNERRS (ERR_NCERRS+0x0100)
  497. /* NC: R0-Manager Error Codes */
  498. #define NCERR_INTERNAL (0x0000 + ERR_NCR0MANERRS)
  499. #define NCERR_NOMEMORY (0x0001 + ERR_NCR0MANERRS)
  500. #define NCERR_UNKNOWNCHANNELID (0x0010 + ERR_NCR0MANERRS)
  501. #define NCERR_UNKNOWNGROUPID (0x0011 + ERR_NCR0MANERRS)
  502. #define NCERR_UNKNOWNAXISID (0x0012 + ERR_NCR0MANERRS)
  503. #define NCERR_UNKNOWNENCODERID (0x0013 + ERR_NCR0MANERRS)
  504. #define NCERR_UNKNOWNCONTROLLERID (0x0014 + ERR_NCR0MANERRS)
  505. #define NCERR_UNKNOWNDRIVEID (0x0015 + ERR_NCR0MANERRS)
  506. #define NCERR_UNKNOWNTABULARID (0x0016 + ERR_NCR0MANERRS)
  507. #define NCERR_UNKNOWNPLCTONCADDR (0x0020 + ERR_NCR0MANERRS)
  508. #define NCERR_UNKNOWNNCTOPLCADDR (0x0021 + ERR_NCR0MANERRS)
  509. #define NCERR_UNKNOWNENCINADDR (0x0022 + ERR_NCR0MANERRS)
  510. #define NCERR_UNKNOWNENCOUTADDR (0x0023 + ERR_NCR0MANERRS)
  511. #define NCERR_UNKNOWNDRIVEINADDR (0x0024 + ERR_NCR0MANERRS)
  512. #define NCERR_UNKNOWNDRIVEOUTADDR (0x0025 + ERR_NCR0MANERRS)
  513. #define NCERR_UNKNOWNDSLAVETYPE (0x0030 + ERR_NCR0MANERRS)
  514. #define NCERR_UNKNOWNAXISTYPE (0x0031 + ERR_NCR0MANERRS)
  515. #define NCERR_UNKNOWNCHNTYPE (0x0032 + ERR_NCR0MANERRS)
  516. #define NCERR_AXISINCOMPATIBLE (0x0040 + ERR_NCR0MANERRS)
  517. #define NCERR_CHANNELINCOMPLETE (0x0050 + ERR_NCR0MANERRS)
  518. #define NCERR_GROUPINCOMPLETE (0x0051 + ERR_NCR0MANERRS)
  519. #define NCERR_AXISINCOMPLETE (0x0052 + ERR_NCR0MANERRS)
  520. #define NCERR_CHANNELEXISTS (0x0060 + ERR_NCR0MANERRS)
  521. #define NCERR_GROUPEXISTS (0x0061 + ERR_NCR0MANERRS)
  522. #define NCERR_AXISEXISTS (0x0062 + ERR_NCR0MANERRS)
  523. #define NCERR_TABULAREXISTS (0x0063 + ERR_NCR0MANERRS)
  524. #define NCERR_WRONGCHANNELINDEX (0x0070 + ERR_NCR0MANERRS)
  525. #define NCERR_WRONGGROUPINDEX (0x0071 + ERR_NCR0MANERRS)
  526. /* Channel Error Codes */
  527. #define NCCHNERR_GROUPINDEX (0x0001 + ERR_NCCHNERRS)
  528. #define NCCHNERR_ADDR_GROUP (0x0002 + ERR_NCCHNERRS)
  529. #define NCCHNERR_NO_PLCINTERFACE (0x0003 + ERR_NCCHNERRS)
  530. #define NCCHNERR_ILLEGALMFUNCNR (0x0004 + ERR_NCCHNERRS)
  531. #define NCCHNERR_NOMEMORY (0x0005 + ERR_NCCHNERRS)
  532. #define NCCHNERR_ISBUSY (0x0006 + ERR_NCCHNERRS)
  533. #define NCCHNERR_NOTSUPPORTED (0x0007 + ERR_NCCHNERRS)
  534. #define NCCHNERR_ILLEGALSETTING (0x0008 + ERR_NCCHNERRS)
  535. #define NCCHNERR_NOFILE (0x0010 + ERR_NCCHNERRS)
  536. #define NCCHNERR_ITPSYNTAXLT (0x0011 + ERR_NCCHNERRS)
  537. #define NCCHNERR_ITPSYNTAXRT (0x0012 + ERR_NCCHNERRS)
  538. #define NCCHNERR_SUBNOTFOUND (0x0013 + ERR_NCCHNERRS)
  539. #define NCCHNERR_LOADBUFFERFULL (0x0014 + ERR_NCCHNERRS)
  540. #define NCCHNERR_INVALIDIDENTIFIER (0x0015 + ERR_NCCHNERRS)
  541. #define NCCHNERR_UNKNOWNIDENTIFIER (0x0016 + ERR_NCCHNERRS)
  542. #define NCCHNERR_SUBINCOMPLETE (0x0017 + ERR_NCCHNERRS)
  543. #define NCCHNERR_ZERODIVIDE (0x0020 + ERR_NCCHNERRS)
  544. #define NCCHNERR_BADCIRCLE (0x0021 + ERR_NCCHNERRS)
  545. #define NCCHNERR_INVALIDOPERATION (0x0022 + ERR_NCCHNERRS)
  546. #define NCCHNERR_CALLSTACKOVR (0x0030 + ERR_NCCHNERRS)
  547. #define NCCHNERR_CALLSTACKUDR (0x0031 + ERR_NCCHNERRS)
  548. #define NCCHNERR_CALCSTACKOVR (0x0032 + ERR_NCCHNERRS)
  549. #define NCCHNERR_CALCSTACKUDR (0x0033 + ERR_NCCHNERRS)
  550. #define NCCHNERR_REGINDEX (0x0040 + ERR_NCCHNERRS)
  551. #define NCCHNERR_GFUNCINDEX (0x0041 + ERR_NCCHNERRS)
  552. #define NCCHNERR_MFUNCINDEX (0x0042 + ERR_NCCHNERRS)
  553. #define NCCHNERR_EXTENDEDADDR (0x0043 + ERR_NCCHNERRS)
  554. #define NCCHNERR_INTERNALINDEXH (0x0044 + ERR_NCCHNERRS)
  555. #define NCCHNERR_MDBACCESSINDEX (0x0045 + ERR_NCCHNERRS)
  556. #define NCTRAFOERR_CANNOTCHANGE (0x0050 + ERR_NCCHNERRS)
  557. #define NCTRAFOERR_CANNOTCORRECT (0x0051 + ERR_NCCHNERRS)
  558. #define NCTRAFOERR_PLANE (0x0052 + ERR_NCCHNERRS)
  559. #define NCTRAFOERR_DPARAMINVALID (0x0053 + ERR_NCCHNERRS)
  560. #define NCTRAFOERR_TOOLRADIUSINV (0x0054 + ERR_NCCHNERRS)
  561. #define NCTRAFOERR_CHANGETOOLRAD (0x0055 + ERR_NCCHNERRS)
  562. #define NCTRAFOERR_CDOVERFLOW (0x0056 + ERR_NCCHNERRS)
  563. #define NCTRAFOERR_CDON (0x0057 + ERR_NCCHNERRS)
  564. #define NCTRAFOERR_CDCHECK (0x0058 + ERR_NCCHNERRS)
  565. #define NCTRAFOERR_CDUNEXPECTED (0x0059 + ERR_NCCHNERRS)
  566. #define NCTRAFOERR_CDNEGRADIUS (0x005A + ERR_NCCHNERRS)
  567. #define NCTRAFOERR_CDOCCURED (0x005B + ERR_NCCHNERRS)
  568. #define NCTRAFOERR_COOKEDTBLFULL (0x005C + ERR_NCCHNERRS)
  569. #define NCTRAFOERR_TFTBLFULL (0x005D + ERR_NCCHNERRS)
  570. #define NCTRAFOERR_EXECTFTBLFULL (0x005E + ERR_NCCHNERRS)
  571. #define NCTRAFOERR_EXECTFT (0x005F + ERR_NCCHNERRS)
  572. #define NCBACKUPERR_WRITEDATA (0x0060 + ERR_NCCHNERRS)
  573. #define NCBACKUPERR_TARGETENTRY (0x0061 + ERR_NCCHNERRS)
  574. #define MACHINEIDENTRYDONTCARE 0xFF
  575. #define AMS_NETIDLEN 23
  576. typedef struct AmsNetId_
  577. {
  578. guint8 b[6];
  579. } AmsNetId;
  580. #define AmsNetId_Len (int)sizeof(AmsNetId)
  581. typedef struct AmsAddr_
  582. {
  583. AmsNetId netId;
  584. guint16 port;
  585. } AmsAddr;
  586. typedef union ErrCodeUnion
  587. {
  588. gint32 errCode;
  589. gint32 hRcv;
  590. } ErrCodeUnion;
  591. typedef union tUserUnion
  592. {
  593. gint32 hUser;
  594. struct
  595. {
  596. guint16 fragmentNo;
  597. guint16 packetNo;
  598. } a;
  599. } UserUnion;
  600. typedef struct
  601. {
  602. AmsAddr target;
  603. AmsAddr sender;
  604. guint16 cmdId;
  605. guint16 stateFlags;
  606. guint32 cbData;
  607. ErrCodeUnion anErrCodeUnion;
  608. UserUnion aUserUnion;
  609. } AmsHead;
  610. #define AmsHead_Len (int)sizeof(AmsHead)
  611. /* State flags */
  612. #define AMSCMDSF_RESPONSE 0x0001
  613. #define AMSCMDSF_NORETURN 0x0002
  614. #define AMSCMDSF_ADSCMD 0x0004
  615. #define AMSCMDSF_SYSCMD 0x0008
  616. #define AMSCMDSF_HIGHPRIO 0x0010
  617. #define AMSCMDSF_TIMESTAMPADDED 0x0020
  618. #define AMSCMDSF_UDP 0x0040
  619. #define AMSCMDSF_INITCMD 0x0080
  620. #define AMSCMDSF_BROADCAST 0x8000
  621. /* AmsCmd */
  622. typedef struct
  623. {
  624. AmsHead head;
  625. } AmsCmd, *PAmsCmd;
  626. /* ADS */
  627. #define ADS_FIXEDNAMESIZE 16
  628. /* ADS Service Ids */
  629. #define ADSSRVID_INVALID 0x00
  630. #define ADSSRVID_READDEVICEINFO 0x01
  631. #define ADSSRVID_READ 0x02
  632. #define ADSSRVID_WRITE 0x03
  633. #define ADSSRVID_READSTATE 0x04
  634. #define ADSSRVID_WRITECTRL 0x05
  635. #define ADSSRVID_ADDDEVICENOTE 0x06
  636. #define ADSSRVID_DELDEVICENOTE 0x07
  637. #define ADSSRVID_DEVICENOTE 0x08
  638. #define ADSSRVID_READWRITE 0x09
  639. /* ADS reserved index groups */
  640. #define ADSIGRP_SYMTAB 0xF000
  641. #define ADSIGRP_SYMNAME 0xF001
  642. #define ADSIGRP_SYMVAL 0xF002
  643. #define ADSIGRP_SYM_HNDBYNAME 0xF003
  644. #define ADSIGRP_SYM_VALBYNAME 0xF004
  645. #define ADSIGRP_SYM_VALBYHND 0xF005
  646. #define ADSIGRP_SYM_RELEASEHND 0xF006
  647. #define ADSIGRP_SYM_INFOBYNAME 0xF007
  648. #define ADSIGRP_SYM_VERSION 0xF008
  649. #define ADSIGRP_SYM_INFOBYNAMEEX 0xF009
  650. #define ADSIGRP_SYM_DOWNLOAD 0xF00A
  651. #define ADSIGRP_SYM_UPLOAD 0xF00B
  652. #define ADSIGRP_SYM_UPLOADINFO 0xF00C
  653. #define ADSIGRP_SYM_DOWNLOAD2 0xF00D
  654. #define ADSIGRP_SYM_DT_UPLOAD 0xF00E
  655. #define ADSIGRP_SYM_UPLOADINFO2 0xF00F
  656. #define ADSIGRP_SYMNOTE 0xF010
  657. #define ADSIGRP_SYM_DT_INFOBYNAMEEX 0xF011
  658. #define ADSIGRP_SYM_ADDRBYHND 0xF012
  659. #define ADSIGRP_IOIMAGE_RWIB 0xF020
  660. #define ADSIGRP_IOIMAGE_RWIX 0xF021
  661. #define ADSIGRP_IOIMAGE_RISIZE 0xF025
  662. #define ADSIGRP_IOIMAGE_RWOB 0xF030
  663. #define ADSIGRP_IOIMAGE_RWOX 0xF031
  664. #define ADSIGRP_IOIMAGE_ROSIZE 0xF035
  665. #define ADSIGRP_IOIMAGE_CLEARI 0xF040
  666. #define ADSIGRP_IOIMAGE_CLEARO 0xF050
  667. #define ADSIGRP_IOIMAGE_RWIOB 0xF060
  668. #define ADSIGRP_IOIMAGE_CREATE 0xF068
  669. #define ADSIGRP_SUMUP_READ 0xF080
  670. #define ADSIGRP_SUMUP_WRITE 0xF081
  671. #define ADS_SUMUP_IGRP(p, i) (((guint32*)p)[(i)*3+0])
  672. #define ADS_SUMUP_IOFFS(p, i) (((guint32*)p)[(i)*3+1])
  673. #define ADS_SUMUP_LENGTH(p, i) (((guint32*)p)[(i)*3+2])
  674. #define ADSIGRP_DEVICE_DATA 0xF100
  675. #define ADSIOFFS_DEVDATA_ADSSTATE 0x0000
  676. #define ADSIOFFS_DEVDATA_DEVSTATE 0x0002
  677. #define ADSIOFFS_DEVDATA_CONFIGID 0x0004
  678. #define ADSIOFFS_DEVDATA_ADSVERSIONCHECK 0x0005
  679. #define ADSIGRP_TASK_DATA 0xF200
  680. /* ADSIGRP_TASK_DATA reserved until 0xF2FF*/
  681. #define ADSIGRP_CANOPEN_BEGIN 0xF300
  682. #define ADSIGRP_CANOPEN_SDO 0xF302
  683. #define ADSIGRP_CANOPEN_SDO_INFO_LIST 0xF3FC
  684. #define ADSIGRP_CANOPEN_SDO_INFO_OBJ 0xF3FD
  685. #define ADSIGRP_CANOPEN_SDO_INFO_ENTRY 0xF3FE
  686. #define ADSIGRP_CANOPEN_END 0xF3FF
  687. #define ADSIGRP_ECAT_FOE_BEGIN 0xF400
  688. #define ADSIGRP_ECAT_FOE_FOPENREAD 0xF401
  689. #define ADSIGRP_ECAT_FOE_FOPENWRITE 0xF402
  690. #define ADSIGRP_ECAT_FOE_FCLOSE 0xF403
  691. #define ADSIGRP_ECAT_FOE_FREAD 0xF404
  692. #define ADSIGRP_ECAT_FOE_FWRITE 0xF405
  693. #define ADSIGRP_ECAT_FOE_PROGRESSINFO 0xF406
  694. #define ADSIGRP_ECAT_FOE_END 0xF41F
  695. #define ADSIGRP_ECAT_SOE 0xF420
  696. #define ADSIOFFS_ECAT_SOE_ELEMENT_MASK 0x00FF0000
  697. #define ADSIOFFS_ECAT_SOE_DATASTATE 0x00010000
  698. #define ADSIOFFS_ECAT_SOE_NAME 0x00020000
  699. #define ADSIOFFS_ECAT_SOE_ATTRIBUTE 0x00040000
  700. #define ADSIOFFS_ECAT_SOE_UNIT 0x00080000
  701. #define ADSIOFFS_ECAT_SOE_MIN 0x00100000
  702. #define ADSIOFFS_ECAT_SOE_MAX 0x00200000
  703. #define ADSIOFFS_ECAT_SOE_VALUE 0x00400000
  704. #define ADSIOFFS_ECAT_SOE_DEFAULT 0x00800000
  705. #define ADSIOFFS_ECAT_SOE_DRIVENO_MASK 0x07000000
  706. #define ADSIOFFS_ECAT_SOE_COMMAND 0x08000000
  707. #define ADSIGRP_ECAT_VOE 0xF430
  708. typedef enum nAdsState
  709. {
  710. ADSSTATE_INVALID =0,
  711. ADSSTATE_IDLE =1,
  712. ADSSTATE_RESET =2,
  713. ADSSTATE_INIT =3,
  714. ADSSTATE_START =4,
  715. ADSSTATE_RUN =5,
  716. ADSSTATE_STOP =6,
  717. ADSSTATE_SAVECFG =7,
  718. ADSSTATE_LOADCFG =8,
  719. ADSSTATE_POWERFAILURE =9,
  720. ADSSTATE_POWERGOOD =10,
  721. ADSSTATE_ERROR =11,
  722. ADSSTATE_SHUTDOWN =12,
  723. ADSSTATE_SUSPEND =13,
  724. ADSSTATE_RESUME =14,
  725. ADSSTATE_CONFIG =15,
  726. ADSSTATE_RECONFIG =16,
  727. ADSSTATE_MAXSTATES
  728. } ADSSTATE;
  729. typedef enum nAdsTransMode
  730. {
  731. ADSTRANS_NOTRANS =0,
  732. ADSTRANS_CLIENTCYCLE =1,
  733. ADSTRANS_CLIENTONCHA =2,
  734. ADSTRANS_SERVERCYCLE =3,
  735. ADSTRANS_SERVERONCHA =4,
  736. ADSTRANS_CLIENT1REQ =10,
  737. ADSTRANS_MAXMODES
  738. }ADSTRANSMODE;
  739. /* ADS error codes */
  740. #define ADSERR_NOERR 0x00
  741. #define ADSERR_DEVICE_ERROR (0x700)
  742. #define ADSERR_DEVICE_SRVNOTSUPP (0x701)
  743. #define ADSERR_DEVICE_INVALIDGRP (0x702)
  744. #define ADSERR_DEVICE_INVALIDOFFSET (0x703)
  745. #define ADSERR_DEVICE_INVALIDACCESS (0x704)
  746. #define ADSERR_DEVICE_INVALIDSIZE (0x705)
  747. #define ADSERR_DEVICE_INVALIDDATA (0x706)
  748. #define ADSERR_DEVICE_NOTREADY (0x707)
  749. #define ADSERR_DEVICE_BUSY (0x708)
  750. #define ADSERR_DEVICE_INVALIDCONTEXT (0x709)
  751. #define ADSERR_DEVICE_NOMEMORY (0x70A)
  752. #define ADSERR_DEVICE_INVALIDPARM (0x70B)
  753. #define ADSERR_DEVICE_NOTFOUND (0x70C)
  754. #define ADSERR_DEVICE_SYNTAX (0x70D)
  755. #define ADSERR_DEVICE_INCOMPATIBLE (0x70E)
  756. #define ADSERR_DEVICE_EXISTS (0x70F)
  757. #define ADSERR_DEVICE_SYMBOLNOTFOUND (0x710)
  758. #define ADSERR_DEVICE_SYMBOLVERSIONINVALID (0x711)
  759. #define ADSERR_DEVICE_INVALIDSTATE (0x712)
  760. #define ADSERR_DEVICE_TRANSMODENOTSUPP (0x713)
  761. #define ADSERR_DEVICE_NOTIFYHNDINVALID (0x714)
  762. #define ADSERR_DEVICE_CLIENTUNKNOWN (0x715)
  763. #define ADSERR_DEVICE_NOMOREHDLS (0x716)
  764. #define ADSERR_DEVICE_INVALIDWATCHSIZE (0x717)
  765. #define ADSERR_DEVICE_NOTINIT (0x718)
  766. #define ADSERR_DEVICE_TIMEOUT (0x719)
  767. #define ADSERR_DEVICE_NOINTERFACE (0x71A)
  768. #define ADSERR_DEVICE_INVALIDINTERFACE (0x71B)
  769. #define ADSERR_DEVICE_INVALIDCLSID (0x71C)
  770. #define ADSERR_DEVICE_INVALIDOBJID (0x71D)
  771. #define ADSERR_DEVICE_PENDING (0x71E)
  772. #define ADSERR_DEVICE_ABORTED (0x71F)
  773. #define ADSERR_DEVICE_WARNING (0x720)
  774. #define ADSERR_DEVICE_INVALIDARRAYIDX (0x721)
  775. #define ADSERR_DEVICE_SYMBOLNOTACTIVE (0x722)
  776. #define ADSERR_DEVICE_ACCESSDENIED (0x723)
  777. #define ADSERR_CLIENT_ERROR (0x740)
  778. #define ADSERR_CLIENT_INVALIDPARM (0x741)
  779. #define ADSERR_CLIENT_LISTEMPTY (0x742)
  780. #define ADSERR_CLIENT_VARUSED (0x743)
  781. #define ADSERR_CLIENT_DUPLINVOKEID (0x744)
  782. #define ADSERR_CLIENT_SYNCTIMEOUT (0x745)
  783. #define ADSERR_CLIENT_W32ERROR (0x746)
  784. #define ADSERR_CLIENT_TIMEOUTINVALID (0x747)
  785. #define ADSERR_CLIENT_PORTNOTOPEN (0x748)
  786. #define ADSERR_CLIENT_NOAMSADDR (0x749)
  787. #define ADSERR_CLIENT_SYNCINTERNAL (0x750)
  788. #define ADSERR_CLIENT_ADDHASH (0x751)
  789. #define ADSERR_CLIENT_REMOVEHASH (0x752)
  790. #define ADSERR_CLIENT_NOMORESYM (0x753)
  791. #define ADSERR_CLIENT_SYNCRESINVALID (0x754)
  792. #define ADSERR_CLIENT_SYNCPORTLOCKED (0x755)
  793. #define FACILITY_TC_ADS 0x1811
  794. #define FACILITY_TC_CNC 0x1821
  795. #define FACILITY_TC_IO 0x1831
  796. #if 0 /* Unused ?? */
  797. #define ADS_E_ERROR (0x98110000L + ADSERR_DEVICE_ERROR)
  798. #define ADS_E_SRVNOTSUPP (0x98110000L + ADSERR_DEVICE_SRVNOTSUPP)
  799. #define ADS_E_INVALIDGRP (0x98110000L + ADSERR_DEVICE_INVALIDGRP)
  800. #define ADS_E_INVALIDOFFSET (0x98110000L + ADSERR_DEVICE_INVALIDOFFSET)
  801. #define ADS_E_INVALIDACCESS (0x98110000L + ADSERR_DEVICE_INVALIDACCESS)
  802. #define ADS_E_INVALIDSIZE (0x98110000L + ADSERR_DEVICE_INVALIDSIZE)
  803. #define ADS_E_INVALIDDATA (0x98110000L + ADSERR_DEVICE_INVALIDDATA)
  804. #define ADS_E_NOTREADY (0x98110000L + ADSERR_DEVICE_NOTREADY)
  805. #define ADS_E_BUSY (0x98110000L + ADSERR_DEVICE_BUSY)
  806. #define ADS_E_INVALIDCONTEXT (0x98110000L + ADSERR_DEVICE_INVALIDCONTEXT)
  807. #define ADS_E_NOMEMORY (0x98110000L + ADSERR_DEVICE_NOMEMORY)
  808. #define ADS_E_INVALIDPARM (0x98110000L + ADSERR_DEVICE_INVALIDPARM)
  809. #define ADS_E_NOTFOUND (0x98110000L + ADSERR_DEVICE_NOTFOUND)
  810. #define ADS_E_SYNTAX (0x98110000L + ADSERR_DEVICE_SYNTAX)
  811. #define ADS_E_INCOMPATIBLE (0x98110000L + ADSERR_DEVICE_INCOMPATIBLE)
  812. #define ADS_E_EXISTS (0x98110000L + ADSERR_DEVICE_EXISTS)
  813. #define ADS_E_SYMBOLNOTFOUND (0x98110000L + ADSERR_DEVICE_SYMBOLNOTFOUND)
  814. #define ADS_E_SYMBOLVERSIONINVALID (0x98110000L + ADSERR_DEVICE_SYMBOLVERSIONINVALID)
  815. #define ADS_E_INVALIDSTATE (0x98110000L + ADSERR_DEVICE_INVALIDSTATE)
  816. #define ADS_E_TRANSMODENOTSUPP (0x98110000L + ADSERR_DEVICE_TRANSMODENOTSUPP)
  817. #define ADS_E_NOTIFYHNDINVALID (0x98110000L + ADSERR_DEVICE_NOTIFYHNDINVALID)
  818. #define ADS_E_CLIENTUNKNOWN (0x98110000L + ADSERR_DEVICE_CLIENTUNKNOWN)
  819. #define ADS_E_NOMOREHDLS (0x98110000L + ADSERR_DEVICE_NOMOREHDLS)
  820. #define ADS_E_INVALIDWATCHSIZE (0x98110000L + ADSERR_DEVICE_INVALIDWATCHSIZE)
  821. #define ADS_E_NOTINIT (0x98110000L + ADSERR_DEVICE_NOTINIT)
  822. #define ADS_E_TIMEOUT (0x98110000L + ADSERR_DEVICE_TIMEOUT)
  823. #define ADS_E_NOINTERFACE (0x98110000L + ADSERR_DEVICE_NOINTERFACE)
  824. #define ADS_E_INVALIDINTERFACE (0x98110000L + ADSERR_DEVICE_INVALIDINTERFACE)
  825. #define ADS_E_INVALIDCLSID (0x98110000L + ADSERR_DEVICE_INVALIDCLSID)
  826. #define ADS_E_INVALIDOBJID (0x98110000L + ADSERR_DEVICE_INVALIDOBJID)
  827. #define ADS_E_PENDING (0x98110000L + ADSERR_DEVICE_PENDING)
  828. #define ADS_E_ABORTED (0x98110000L + ADSERR_DEVICE_ABORTED)
  829. #define ADS_E_WARNING (0x98110000L + ADSERR_DEVICE_WARNING)
  830. #define ADS_E_INVALIDARRAYIDX (0x98110000L + ADSERR_DEVICE_INVALIDARRAYIDX)
  831. #define ADS_E_SYMBOLNOTACTIVE (0x98110000L + ADSERR_DEVICE_SYMBOLNOTACTIVE)
  832. #define ADS_E_ACCESSDENIED (0x98110000L + ADSERR_DEVICE_ACCESSDENIED)
  833. #endif
  834. #ifndef ANYSIZE_ARRAY
  835. #define ANYSIZE_ARRAY 1
  836. #endif
  837. /* ADS AMS command */
  838. /*typedef struct
  839. {
  840. guint32 hNotification;
  841. guint32 cbSampleSize;
  842. guint8 data[ANYSIZE_ARRAY];
  843. } AdsNotificationSample, *PAdsNotificationSample;*/
  844. #define AdsNotificationSample_Min_Len 4
  845. typedef struct
  846. {
  847. guint32 invokeId;
  848. } TAdsReadDeviceInfoReq;
  849. #define TAdsReadDeviceInfoReq_Len (int)sizeof(TAdsReadDeviceInfoReq)
  850. /*typedef struct
  851. {
  852. guint16 adsState;
  853. guint16 deviceState;
  854. guint32 cbLength;
  855. guint16 firstDataWord;
  856. } TAdsWriteControlReq, TAdsWriteControlInd;*/
  857. #define TAdsWriteControlReq_Len 10
  858. typedef struct
  859. {
  860. guint32 invokeId;
  861. } TAdsReadStateReq;
  862. #define TAdsReadStateReq_Len (int)sizeof(TAdsReadStateReq)
  863. typedef struct
  864. {
  865. guint32 indexGroup;
  866. guint32 indexOffset;
  867. guint32 cbLength;
  868. } TAdsReadReq;
  869. #define TAdsReadReq_Len (int)sizeof(TAdsReadReq)
  870. /*typedef struct
  871. {
  872. guint32 indexGroup;
  873. guint32 indexOffset;
  874. guint32 cbLength;
  875. guint16 firstDataWord;
  876. } TAdsWriteReq;*/
  877. #define TAdsWriteReq_Len 14
  878. /*
  879. typedef struct
  880. {
  881. guint32 indexGroup;
  882. guint32 indexOffset;
  883. guint32 cbReadLength;
  884. guint32 cbWriteLength;
  885. guint16 firstDataWord;
  886. } TAdsReadWriteReq;*/
  887. #define TAdsReadWriteReq_Len 18
  888. typedef struct
  889. {
  890. guint32 cbLength;
  891. guint32 nTransMode;
  892. guint32 nMaxDelay;
  893. guint32 nCycleTime;
  894. guint8 nCmpMax[sizeof(double)];
  895. guint8 nCmpMin[sizeof(double)];
  896. } AdsNotificationAttrib;
  897. typedef struct
  898. {
  899. guint32 indexGroup;
  900. guint32 indexOffset;
  901. AdsNotificationAttrib noteAttrib;
  902. } TAdsAddDeviceNotificationReq;
  903. #define TAdsAddDeviceNotificationReq_Len (int)sizeof(TAdsAddDeviceNotificationReq)
  904. typedef struct
  905. {
  906. guint32 hNotification;
  907. } TAdsDelDeviceNotificationReq;
  908. #define TAdsDelDeviceNotificationReq_Len (int)sizeof(TAdsDelDeviceNotificationReq)
  909. typedef struct
  910. {
  911. guint32 cbLength;
  912. guint32 nStamps;
  913. } TAdsDeviceNotificationReq;
  914. #define TAdsDeviceNotificationReq_Len (int)sizeof(TAdsDeviceNotificationReq)
  915. typedef struct
  916. {
  917. guint32 result;
  918. } TAdsRes;
  919. #define TAdsRes_Len (int)sizeof(TAdsRes)
  920. typedef struct
  921. {
  922. guint8 version;
  923. guint8 revision;
  924. guint16 build;
  925. } AdsVersion, *PAdsVersion;
  926. typedef struct
  927. {
  928. guint32 result;
  929. AdsVersion version;
  930. char sName[ADS_FIXEDNAMESIZE];
  931. } TAdsReadDeviceInfoRes;
  932. #define TAdsReadDeviceInfoRes_Len (int)sizeof(TAdsReadDeviceInfoRes)
  933. typedef struct
  934. {
  935. guint32 result;
  936. } TAdsWriteControlRes;
  937. #define TAdsWriteControlRes_Len (int)sizeof(TAdsWriteControlRes)
  938. typedef struct
  939. {
  940. guint32 result;
  941. guint16 adsState;
  942. guint16 deviceState;
  943. } TAdsReadStateRes;
  944. #define TAdsReadStateRes_Len (int)sizeof(TAdsReadStateRes)
  945. typedef struct
  946. {
  947. guint32 result;
  948. guint32 cbLength;
  949. guint16 firstDataWord;
  950. } TAdsReadRes;
  951. #define TAdsReadRes_Len (int)sizeof(TAdsReadRes)
  952. typedef struct
  953. {
  954. guint32 result;
  955. guint32 cbLength;
  956. guint16 firstDataWord;
  957. } TAdsReadWriteRes;
  958. #define TAdsReadWriteRes_Len (int)sizeof(TAdsReadWriteRes)
  959. typedef struct
  960. {
  961. guint32 result;
  962. } TAdsWriteRes;
  963. #define TAdsWriteRes_Len (int)sizeof(TAdsWriteRes)
  964. typedef struct
  965. {
  966. guint32 result;
  967. guint32 handle;
  968. } TAdsAddDeviceNotificationRes;
  969. #define TAdsAddDeviceNotificationRes_Len (int)sizeof(TAdsAddDeviceNotificationRes)
  970. typedef struct
  971. {
  972. guint32 result;
  973. } TAdsDelDeviceNotificationRes;
  974. #define TAdsDelDeviceNotificationRes_Len (int)sizeof(TAdsDelDeviceNotificationRes)
  975. /* structure for decoding the header -----------------------------------------*/
  976. /*typedef struct
  977. {
  978. guint16 reserved;
  979. guint32 cbLength;
  980. } TcpAdsParserHDR;
  981. typedef TcpAdsParserHDR;*/
  982. #define TcpAdsParserHDR_Len 6
  983. #endif
  984. /*
  985. * Editor modelines
  986. *
  987. * Local Variables:
  988. * c-basic-offset: 3
  989. * tab-width: 8
  990. * indent-tabs-mode: nil
  991. * End:
  992. *
  993. * ex: set shiftwidth=3 tabstop=8 expandtab:
  994. * :indentSize=3:tabSize=8:noTabs=true:
  995. */