1use thiserror::Error;
2
3#[derive(Error, Debug, PartialEq, Eq, Clone)]
4pub enum TryIntoError {
5 #[error("try_into failed. self is wrong response!")]
6 TryIntoResponseFailed,
7 #[error("try_into failed. self is wrong request!")]
8 TryIntoRequestFailed,
9}
10
11#[derive(Error, Debug, PartialEq, Eq, Clone)]
12pub enum AmsAddressError {
13 #[error("Failed parsing address from &str")]
14 ParseError { source: std::num::ParseIntError },
15 #[error("Split length wrong. Length is {}", length)]
16 SplitError { length: usize },
17 #[error("Supplied address length {}! Expected a length of 6", length)]
18 InvalidAddressLength { length: usize },
19}
20
21#[derive(Error, Debug, PartialEq, Eq, Clone)]
22pub enum AdsError {
23 #[error("No error")]
25 ErrNoError,
26 #[error("Inernal error")]
27 ErrInternal,
28 #[error("No real-time")]
29 ErrNoRTime,
30 #[error("Allocation locked – memory error")]
31 ErrAllocLockedMem,
32 #[error("Mailbox full- the ADS message could not be sent. Reducing the number of ADS messages per cylce will help")]
33 ErrInsertMailBox,
34 #[error("Wrong HMSG")]
35 ErrWrongRecieveHMSG,
36 #[error("Target port not found - ADS server is not started or is not reachable")]
37 ErrTargetPortNotFound,
38 #[error("Error target computer not found - AMS route was not found")]
39 ErrTargetMachineNotFound,
40 #[error("Unknown command ID")]
41 ErrUnknownCmdId,
42 #[error("Invalid task ID")]
43 ErrBadTaskId,
44 #[error("No IO")]
45 ErrNoIO,
46 #[error("Unknown AMS command")]
47 ErrUnknownAmsCmd,
48 #[error("Wind32 error")]
49 ErrWin32Error,
50 #[error("Port not connected")]
51 ErrPortNotConnected,
52 #[error("Invalid AMS length")]
53 ErrInvalidAmsLength,
54 #[error("Invalid AMS net ID")]
55 ErrInvalidAmsNetId,
56 #[error("Installatin level is too low - TwinCat 2 licence error")]
57 ErrLowInstLevel,
58 #[error("No debuging available")]
59 ErrNoDebugingAvailable,
60 #[error("Port disabled - TwinCat system service not started")]
61 ErrPortDisabled,
62 #[error("Port already connected")]
63 ErrPortAlreadyConnected,
64 #[error("AMS sync wind32 error")]
65 ErrAmsSyncW32Error,
66 #[error("Ams sync timeout")]
67 ErrAmsSyncTimeout,
68 #[error("AMS sync error")]
69 ErrAmsSyncAmsError,
70 #[error("No index map for AMS sysnc available")]
71 ErrAmsSyncNoIndexInMap,
72 #[error("Invalid AMS port")]
73 ErrInvalidAmsPort,
74 #[error("No memory")]
75 ErrNoMemory,
76 #[error("TCP send error")]
77 ErrTcpSend,
78 #[error("Host unreachable")]
79 ErrHostUnreachable,
80 #[error("Invalid AMS fragment")]
81 ErrInvalidAmsFragment,
82 #[error("TLS send error - secure ADS connection failed")]
83 ErrTlsSend,
84 #[error("Access denied - secure ADS access denied")]
85 ErrAccessDenied,
86 #[error("Locked memory cannot be alocated")]
88 RouterErrNoLockedMemory,
89 #[error("The router memory size could not be changed")]
90 RouterErrResizeMemory,
91 #[error("The mailbox has reached the maximum number of possible messages")]
92 RouterErrMailboxFull,
93 #[error("The debug mailbox has reached the maximum number of possible messages")]
94 RouterErrDebugBoxFull,
95 #[error("The port type is unknown")]
96 RouterErrUnknownPortType,
97 #[error("The router is not initialized")]
98 RouterErrNotInitialized,
99 #[error("The port number is already assigned")]
100 RouterErrPortAlreadyInUse,
101 #[error("The port is not registered")]
102 RouterErrNotRegistered,
103 #[error("The maximum number of ports has been reached")]
104 RouterErrNoMoreQueues,
105 #[error("The port is invalid")]
106 RouterErrInvalidPort,
107 #[error("The router is not activated")]
108 RouterErrNotActivated,
109 #[error("The mailbox has reached the maximum number for fragmented messages")]
110 RouterErrFragmentBoxFull,
111 #[error("A fragment timeout has occured")]
112 RouterErrFragmentTimeout,
113 #[error("The port is removed")]
114 RouterErrToBeRemoved,
115 #[error("General device error")]
117 AdsErrDeviceError,
118 #[error("Service is not support by the server")]
119 AdsErrDeviceSrvNotSupp,
120 #[error("Invalid index group")]
121 AdsErrDeviceInvalidGrp,
122 #[error("Invalid index offset")]
123 AdsErrDeviceInvalidOffset,
124 #[error("Reading or writing not permittet")]
125 AdsErrDeviceInvalidAccess,
126 #[error("Parameter size not correct")]
127 AdsErrDeviceInvalidSize,
128 #[error("Invalid data values")]
129 AdsErrDeviceInvalidData,
130 #[error("Device is not ready to operate")]
131 AdsErrDeviceNotReady,
132 #[error("Device is busy")]
133 AdsErrDeviceBusy,
134 #[error(
135 "Invalid operating system context. This can result from use of ADS function blocks in different tasks.
136 It may be possible to resolve this through multitasking synchronization in the PLC"
137 )]
138 AdsErrDeviceInvalidContext,
139 #[error("Inusfficient memory")]
140 AdsErrDeviceNoMemory,
141 #[error("Invalid parameter values")]
142 AdsErrDeviceInvalidParm,
143 #[error("Not found (files, ...)")]
144 AdsErrDeviceNotFound,
145 #[error("Syntax error in file or command")]
146 AdsErrDeviceSyntax,
147 #[error("Objects do not match")]
148 AdsErrDeviceIncompatible,
149 #[error("Object already exists")]
150 AdsErrDeviceExists,
151 #[error("Symbol not found")]
152 AdsErrDeviceSymbolNotFound,
153 #[error("Invalid symbol version. This can occure due to an online change. Crate a new handle")]
154 AdsErrDeviceSymbolVersionInvalid,
155 #[error("Device (server) is in invalid state")]
156 AdsErrDeviceInvalidState,
157 #[error("Ads transmode not supported")]
158 AdsErrDeviceTransModeNotSupp,
159 #[error("Notification handle is invalid")]
160 AdsErrDeviceNotifyHndInvalid,
161 #[error("Notification client not registered")]
162 AdsErrDeviceClientUnknown,
163 #[error("No further notification handle available")]
164 AdsErrDeviceNoMoreHDLS,
165 #[error("Notification size too large")]
166 AdsErrDeviceInvalidWatchSize,
167 #[error("Device not initialized")]
168 AdsErrDeviceNotInit,
169 #[error("Device has a timeout")]
170 AdsErrDeviceTimeout,
171 #[error("Interface query failed")]
172 AdsErrDeviceNoInterface,
173 #[error("Wrong interface request")]
174 AdsErrDeviceInvalidInterface,
175 #[error("Class ID is invalid")]
176 AdsErrDeviceInvalidClsID,
177 #[error("Object ID is invalid")]
178 AdsErrDeviceInvalidOBJID,
179 #[error("Request pending")]
180 AdsErrDevicePending,
181 #[error("Request is aborted")]
182 AdsErrDeviceAborted,
183 #[error("Signal warning")]
184 AdsErrDeviceWarning,
185 #[error("Invalid array index")]
186 AdsErrDeviceInvalidArrayIDX,
187 #[error("Symbol not active")]
188 AdsErrDeviceSymbolNotActive,
189 #[error("Access denied")]
190 AdsErrDeviceAccessDenied,
191 #[error("Missing license")]
192 AdsErrDeviceLicenseNotFound,
193 #[error("License expired")]
194 AdsErrDeviceLicenseExpired,
195 #[error("License exceeded")]
196 AdsErrDeviceLicenseExceeded,
197 #[error("Invalid license")]
198 AdsErrDeviceLicenseInvalid,
199 #[error("License problem: System ID is invalid")]
200 AdsErrDeviceLicenseSystemID,
201 #[error("License not limited in time")]
202 AdsErrDeviceLicenseNoTimeLimit,
203 #[error("License problem: Time in the future")]
204 AdsErrDeviceLicenseFuturReissue,
205 #[error("License period too long")]
206 AdsErrDeivceLicenseTimeToLong,
207 #[error("Exception at system startup")]
208 AdsErrDeviceException,
209 #[error("License file read twice")]
210 AdsErrDeviceLicenseDublicated,
211 #[error("Invalid signature")]
212 AdsErrDeviceSignatureInvalid,
213 #[error("Invalid certificate")]
214 AdsErrDeviceCertificateInvalid,
215 #[error("Public key not known from OEM")]
216 AdsErrDeviceLicenseOemNotFound,
217 #[error("License not valid for system ID")]
218 AdsErrDeviceLicenseRestricted,
219 #[error("Demo license prohibited")]
220 AdsErrDeviceLicenseDemoDenied,
221 #[error("Invalid function ID")]
222 AdsErrDeviceInvalidFncID,
223 #[error("Outside the valid range")]
224 AdsErrDeviceOutOfRange,
225 #[error("Invalid alignment")]
226 AdsErrDeviceInvalidAlignment,
227 #[error("Invalid platform level")]
228 AdsErrDeviceLicensePlatform,
229 #[error("Context - forward to passive level")]
230 AdsErrDeviceForwardPL,
231 #[error("Context - forward to sispatch level")]
232 AdsErrDeviceForwardDL,
233 #[error("Contect - forward to real-time")]
234 AdsErrDeviceForwardRT,
235 #[error("Client error")]
236 AdsErrClientError,
237 #[error("Service contains an invalid parameter")]
238 AdsErrClientInvalidParm,
239 #[error("Possing list is empty")]
240 AdsErrClientListEmpty,
241 #[error("Var connection already in use")]
242 AdsErrClientVarUsed,
243 #[error("The called ID is already in use")]
244 AdsErrClientDublIvokeID,
245 #[error(
246 "Timeout has occured - the remote terminal is not responding in the specific ADS timeout.
247 The router setting of the remote terminal may be configured incorrectly"
248 )]
249 AdsErrClientSyncTimeout,
250 #[error("Error in win32 subsystem")]
251 AdsErrClientW32Error,
252 #[error("Invalid client timeout value")]
253 AdsErrClientTimeoutInvalid,
254 #[error("Port not open")]
255 AdsErrClientPortNotOpen,
256 #[error("No Ams Address")]
257 AdsErrClientNoAmsAddress,
258 #[error("Internal error in ADS sync")]
259 AdsErrClientSyncInternal,
260 #[error("Hash table overflow")]
261 AdsErrClientAddHash,
262 #[error("Key not found in the table")]
263 AdsErrClientRemoveHash,
264 #[error("No symbols in the cache")]
265 AdsErrClientNoMoreSym,
266 #[error("Invalid response received")]
267 AdsErrClientSyncResInvalid,
268 #[error("Sync port is locked")]
269 AdsErrClientSyncPortLocked,
270 #[error("Internal error in the real-time system")]
272 RtErrInternal,
273 #[error("Time value is not valid")]
274 RtErrBadTimerPeriods,
275 #[error("Task pointer has the invalid value 0 (zero)")]
276 RtErrInvalidTaskPtr,
277 #[error("Stack pointer has the invalid value 0 (zero)")]
278 RtErrInvalidStackPtr,
279 #[error("The requested task priority is already assigned")]
280 RtErrPrioExists,
281 #[error("No free TCB (Task control block) available. The maximum number of TCB's is 64")]
282 RtErrNoMoreTCB,
283 #[error("No free semaphores available. The maximum number of semaphores is 64")]
284 RtErrNoMoreSemas,
285 #[error(
286 "No free space available in the queue. The maximum number of positions in the queue is 64"
287 )]
288 RtErrNoMoreQueues,
289 #[error("An external synchronization interrupt is already applied")]
290 RtErrExtIrqAlreadyDef,
291 #[error("No externel sync interrupt applied")]
292 RtErrExtIrqNotDef,
293 #[error("Application of the external synchronization interrupt has failed")]
294 RtErrExtIrgInstallFaild,
295 #[error("Call of a service function in the wrong context")]
296 RtErrIrqlNotLessOrEqual,
297 #[error("Intel VT-x extension not supported")]
298 RtErrVmxNotSupported,
299 #[error("Intel VT-x extension is not enabled in the BIOS")]
300 RtErrVmxDisabled,
301 #[error("Missing function in Intel VT-x extension")]
302 RtErrVmxControlsMissing,
303 #[error("Activation of intel VT-x fails")]
304 RtErrVmxEnableFails,
305 #[error("Unknown Ads error code. Possibly a Win32 error code (Winsock)")]
307 ErrUnknowAdsError { error_code: u32 },
308}
309
310impl From<u32> for AdsError {
311 fn from(error_code: u32) -> Self {
312 match error_code {
313 0 => AdsError::ErrNoError,
315 1 => AdsError::ErrInternal,
316 2 => AdsError::ErrNoRTime,
317 3 => AdsError::ErrAllocLockedMem,
318 4 => AdsError::ErrInsertMailBox,
319 5 => AdsError::ErrWrongRecieveHMSG,
320 6 => AdsError::ErrTargetPortNotFound,
321 7 => AdsError::ErrTargetMachineNotFound,
322 8 => AdsError::ErrUnknownCmdId,
323 9 => AdsError::ErrBadTaskId,
324 10 => AdsError::ErrNoIO,
325 11 => AdsError::ErrUnknownAmsCmd,
326 12 => AdsError::ErrWin32Error,
327 13 => AdsError::ErrPortNotConnected,
328 14 => AdsError::ErrInvalidAmsLength,
329 15 => AdsError::ErrInvalidAmsNetId,
330 16 => AdsError::ErrLowInstLevel,
331 17 => AdsError::ErrNoDebugingAvailable,
332 18 => AdsError::ErrPortDisabled,
333 19 => AdsError::ErrPortAlreadyConnected,
334 20 => AdsError::ErrAmsSyncW32Error,
335 21 => AdsError::ErrAmsSyncTimeout,
336 22 => AdsError::ErrAmsSyncAmsError,
337 23 => AdsError::ErrAmsSyncNoIndexInMap,
338 24 => AdsError::ErrInvalidAmsPort,
339 25 => AdsError::ErrNoMemory,
340 26 => AdsError::ErrTcpSend,
341 27 => AdsError::ErrHostUnreachable,
342 28 => AdsError::ErrInvalidAmsFragment,
343 29 => AdsError::ErrTlsSend,
344 30 => AdsError::ErrAccessDenied,
345 1280 => AdsError::RouterErrNoLockedMemory,
347 1281 => AdsError::RouterErrResizeMemory,
348 1282 => AdsError::RouterErrMailboxFull,
349 1283 => AdsError::RouterErrDebugBoxFull,
350 1284 => AdsError::RouterErrUnknownPortType,
351 1285 => AdsError::RouterErrNotInitialized,
352 1286 => AdsError::RouterErrPortAlreadyInUse,
353 1287 => AdsError::RouterErrNotRegistered,
354 1288 => AdsError::RouterErrNoMoreQueues,
355 1289 => AdsError::RouterErrInvalidPort,
356 1290 => AdsError::RouterErrNotActivated,
357 1291 => AdsError::RouterErrFragmentBoxFull,
358 1292 => AdsError::RouterErrFragmentTimeout,
359 1293 => AdsError::RouterErrToBeRemoved,
360 1792 => AdsError::AdsErrDeviceError,
362 1793 => AdsError::AdsErrDeviceSrvNotSupp,
363 1794 => AdsError::AdsErrDeviceInvalidGrp,
364 1795 => AdsError::AdsErrDeviceInvalidOffset,
365 1796 => AdsError::AdsErrDeviceInvalidAccess,
366 1797 => AdsError::AdsErrDeviceInvalidSize,
367 1798 => AdsError::AdsErrDeviceInvalidData,
368 1799 => AdsError::AdsErrDeviceNotReady,
369 1800 => AdsError::AdsErrDeviceBusy,
370 1801 => AdsError::AdsErrDeviceInvalidContext,
371 1802 => AdsError::AdsErrDeviceNoMemory,
372 1803 => AdsError::AdsErrDeviceInvalidParm,
373 1804 => AdsError::AdsErrDeviceNotFound,
374 1805 => AdsError::AdsErrDeviceSyntax,
375 1806 => AdsError::AdsErrDeviceIncompatible,
376 1807 => AdsError::AdsErrDeviceExists,
377 1808 => AdsError::AdsErrDeviceSymbolNotFound,
378 1809 => AdsError::AdsErrDeviceSymbolVersionInvalid,
379 1810 => AdsError::AdsErrDeviceInvalidState,
380 1811 => AdsError::AdsErrDeviceTransModeNotSupp,
381 1812 => AdsError::AdsErrDeviceNotifyHndInvalid,
382 1813 => AdsError::AdsErrDeviceClientUnknown,
383 1814 => AdsError::AdsErrDeviceNoMoreHDLS,
384 1815 => AdsError::AdsErrDeviceInvalidWatchSize,
385 1816 => AdsError::AdsErrDeviceNotInit,
386 1817 => AdsError::AdsErrDeviceTimeout,
387 1818 => AdsError::AdsErrDeviceNoInterface,
388 1819 => AdsError::AdsErrDeviceInvalidInterface,
389 1820 => AdsError::AdsErrDeviceInvalidClsID,
390 1821 => AdsError::AdsErrDeviceInvalidOBJID,
391 1822 => AdsError::AdsErrDevicePending,
392 1823 => AdsError::AdsErrDeviceAborted,
393 1824 => AdsError::AdsErrDeviceWarning,
394 1825 => AdsError::AdsErrDeviceInvalidArrayIDX,
395 1826 => AdsError::AdsErrDeviceSymbolNotActive,
396 1827 => AdsError::AdsErrDeviceAccessDenied,
397 1828 => AdsError::AdsErrDeviceLicenseNotFound,
398 1829 => AdsError::AdsErrDeviceLicenseExpired,
399 1830 => AdsError::AdsErrDeviceLicenseExceeded,
400 1831 => AdsError::AdsErrDeviceLicenseInvalid,
401 1832 => AdsError::AdsErrDeviceLicenseSystemID,
402 1833 => AdsError::AdsErrDeviceLicenseNoTimeLimit,
403 1834 => AdsError::AdsErrDeviceLicenseFuturReissue,
404 1835 => AdsError::AdsErrDeivceLicenseTimeToLong,
405 1836 => AdsError::AdsErrDeviceException,
406 1837 => AdsError::AdsErrDeviceLicenseDublicated,
407 1838 => AdsError::AdsErrDeviceSignatureInvalid,
408 1839 => AdsError::AdsErrDeviceCertificateInvalid,
409 1840 => AdsError::AdsErrDeviceLicenseOemNotFound,
410 1841 => AdsError::AdsErrDeviceLicenseRestricted,
411 1842 => AdsError::AdsErrDeviceLicenseDemoDenied,
412 1843 => AdsError::AdsErrDeviceInvalidFncID,
413 1844 => AdsError::AdsErrDeviceOutOfRange,
414 1845 => AdsError::AdsErrDeviceInvalidAlignment,
415 1846 => AdsError::AdsErrDeviceLicensePlatform,
416 1847 => AdsError::AdsErrDeviceForwardPL,
417 1848 => AdsError::AdsErrDeviceForwardDL,
418 1849 => AdsError::AdsErrDeviceForwardRT,
419 1856 => AdsError::AdsErrClientError,
420 1857 => AdsError::AdsErrClientInvalidParm,
421 1858 => AdsError::AdsErrClientListEmpty,
422 1859 => AdsError::AdsErrClientVarUsed,
423 1860 => AdsError::AdsErrClientDublIvokeID,
424 1861 => AdsError::AdsErrClientSyncTimeout,
425 1862 => AdsError::AdsErrClientW32Error,
426 1863 => AdsError::AdsErrClientTimeoutInvalid,
427 1864 => AdsError::AdsErrClientPortNotOpen,
428 1865 => AdsError::AdsErrClientNoAmsAddress,
429 1872 => AdsError::AdsErrClientSyncInternal,
430 1873 => AdsError::AdsErrClientAddHash,
431 1874 => AdsError::AdsErrClientRemoveHash,
432 1875 => AdsError::AdsErrClientNoMoreSym,
433 1876 => AdsError::AdsErrClientSyncResInvalid,
434 1877 => AdsError::AdsErrClientSyncPortLocked,
435 4096 => AdsError::RtErrInternal,
437 4097 => AdsError::RtErrBadTimerPeriods,
438 4098 => AdsError::RtErrInvalidTaskPtr,
439 4099 => AdsError::RtErrInvalidStackPtr,
440 4100 => AdsError::RtErrPrioExists,
441 4101 => AdsError::RtErrNoMoreTCB,
442 4102 => AdsError::RtErrNoMoreSemas,
443 4103 => AdsError::RtErrNoMoreQueues,
444 4109 => AdsError::RtErrExtIrqAlreadyDef,
445 4110 => AdsError::RtErrExtIrqNotDef,
446 4111 => AdsError::RtErrExtIrgInstallFaild,
447 4112 => AdsError::RtErrIrqlNotLessOrEqual,
448 4119 => AdsError::RtErrVmxNotSupported,
449 4120 => AdsError::RtErrVmxDisabled,
450 4121 => AdsError::RtErrVmxControlsMissing,
451 4122 => AdsError::RtErrVmxEnableFails,
452 val => AdsError::ErrUnknowAdsError { error_code: val },
453 }
454 }
455}
456
457impl AdsError {
458 pub fn as_u32(&self) -> u32 {
459 match self {
460 AdsError::ErrNoError => 0,
462 AdsError::ErrInternal => 1,
463 AdsError::ErrNoRTime => 2,
464 AdsError::ErrAllocLockedMem => 3,
465 AdsError::ErrInsertMailBox => 4,
466 AdsError::ErrWrongRecieveHMSG => 5,
467 AdsError::ErrTargetPortNotFound => 6,
468 AdsError::ErrTargetMachineNotFound => 7,
469 AdsError::ErrUnknownCmdId => 8,
470 AdsError::ErrBadTaskId => 9,
471 AdsError::ErrNoIO => 10,
472 AdsError::ErrUnknownAmsCmd => 11,
473 AdsError::ErrWin32Error => 12,
474 AdsError::ErrPortNotConnected => 13,
475 AdsError::ErrInvalidAmsLength => 14,
476 AdsError::ErrInvalidAmsNetId => 15,
477 AdsError::ErrLowInstLevel => 16,
478 AdsError::ErrNoDebugingAvailable => 17,
479 AdsError::ErrPortDisabled => 18,
480 AdsError::ErrPortAlreadyConnected => 19,
481 AdsError::ErrAmsSyncW32Error => 20,
482 AdsError::ErrAmsSyncTimeout => 21,
483 AdsError::ErrAmsSyncAmsError => 22,
484 AdsError::ErrAmsSyncNoIndexInMap => 23,
485 AdsError::ErrInvalidAmsPort => 24,
486 AdsError::ErrNoMemory => 25,
487 AdsError::ErrTcpSend => 26,
488 AdsError::ErrHostUnreachable => 27,
489 AdsError::ErrInvalidAmsFragment => 28,
490 AdsError::ErrTlsSend => 29,
491 AdsError::ErrAccessDenied => 30,
492 AdsError::RouterErrNoLockedMemory => 1280,
494 AdsError::RouterErrResizeMemory => 1281,
495 AdsError::RouterErrMailboxFull => 1282,
496 AdsError::RouterErrDebugBoxFull => 1283,
497 AdsError::RouterErrUnknownPortType => 1284,
498 AdsError::RouterErrNotInitialized => 1285,
499 AdsError::RouterErrPortAlreadyInUse => 1286,
500 AdsError::RouterErrNotRegistered => 1287,
501 AdsError::RouterErrNoMoreQueues => 1288,
502 AdsError::RouterErrInvalidPort => 1289,
503 AdsError::RouterErrNotActivated => 1290,
504 AdsError::RouterErrFragmentBoxFull => 1291,
505 AdsError::RouterErrFragmentTimeout => 1292,
506 AdsError::RouterErrToBeRemoved => 1293,
507 AdsError::AdsErrDeviceError => 1792,
509 AdsError::AdsErrDeviceSrvNotSupp => 1793,
510 AdsError::AdsErrDeviceInvalidGrp => 1794,
511 AdsError::AdsErrDeviceInvalidOffset => 1795,
512 AdsError::AdsErrDeviceInvalidAccess => 1796,
513 AdsError::AdsErrDeviceInvalidSize => 1797,
514 AdsError::AdsErrDeviceInvalidData => 1798,
515 AdsError::AdsErrDeviceNotReady => 1799,
516 AdsError::AdsErrDeviceBusy => 1800,
517 AdsError::AdsErrDeviceInvalidContext => 1801,
518 AdsError::AdsErrDeviceNoMemory => 1802,
519 AdsError::AdsErrDeviceInvalidParm => 1803,
520 AdsError::AdsErrDeviceNotFound => 1804,
521 AdsError::AdsErrDeviceSyntax => 1805,
522 AdsError::AdsErrDeviceIncompatible => 1806,
523 AdsError::AdsErrDeviceExists => 1807,
524 AdsError::AdsErrDeviceSymbolNotFound => 1808,
525 AdsError::AdsErrDeviceSymbolVersionInvalid => 1809,
526 AdsError::AdsErrDeviceInvalidState => 1810,
527 AdsError::AdsErrDeviceTransModeNotSupp => 1811,
528 AdsError::AdsErrDeviceNotifyHndInvalid => 1812,
529 AdsError::AdsErrDeviceClientUnknown => 1813,
530 AdsError::AdsErrDeviceNoMoreHDLS => 1814,
531 AdsError::AdsErrDeviceInvalidWatchSize => 1815,
532 AdsError::AdsErrDeviceNotInit => 1816,
533 AdsError::AdsErrDeviceTimeout => 1817,
534 AdsError::AdsErrDeviceNoInterface => 1818,
535 AdsError::AdsErrDeviceInvalidInterface => 1819,
536 AdsError::AdsErrDeviceInvalidClsID => 1820,
537 AdsError::AdsErrDeviceInvalidOBJID => 1821,
538 AdsError::AdsErrDevicePending => 1822,
539 AdsError::AdsErrDeviceAborted => 1823,
540 AdsError::AdsErrDeviceWarning => 1824,
541 AdsError::AdsErrDeviceInvalidArrayIDX => 1825,
542 AdsError::AdsErrDeviceSymbolNotActive => 1826,
543 AdsError::AdsErrDeviceAccessDenied => 1827,
544 AdsError::AdsErrDeviceLicenseNotFound => 1828,
545 AdsError::AdsErrDeviceLicenseExpired => 1829,
546 AdsError::AdsErrDeviceLicenseExceeded => 1830,
547 AdsError::AdsErrDeviceLicenseInvalid => 1831,
548 AdsError::AdsErrDeviceLicenseSystemID => 1832,
549 AdsError::AdsErrDeviceLicenseNoTimeLimit => 1833,
550 AdsError::AdsErrDeviceLicenseFuturReissue => 1834,
551 AdsError::AdsErrDeivceLicenseTimeToLong => 1835,
552 AdsError::AdsErrDeviceException => 1836,
553 AdsError::AdsErrDeviceLicenseDublicated => 1837,
554 AdsError::AdsErrDeviceSignatureInvalid => 1838,
555 AdsError::AdsErrDeviceCertificateInvalid => 1839,
556 AdsError::AdsErrDeviceLicenseOemNotFound => 1840,
557 AdsError::AdsErrDeviceLicenseRestricted => 1841,
558 AdsError::AdsErrDeviceLicenseDemoDenied => 1842,
559 AdsError::AdsErrDeviceInvalidFncID => 1843,
560 AdsError::AdsErrDeviceOutOfRange => 1844,
561 AdsError::AdsErrDeviceInvalidAlignment => 1845,
562 AdsError::AdsErrDeviceLicensePlatform => 1846,
563 AdsError::AdsErrDeviceForwardPL => 1847,
564 AdsError::AdsErrDeviceForwardDL => 1848,
565 AdsError::AdsErrDeviceForwardRT => 1849,
566 AdsError::AdsErrClientError => 1856,
567 AdsError::AdsErrClientInvalidParm => 1857,
568 AdsError::AdsErrClientListEmpty => 1858,
569 AdsError::AdsErrClientVarUsed => 1859,
570 AdsError::AdsErrClientDublIvokeID => 1860,
571 AdsError::AdsErrClientSyncTimeout => 1861,
572 AdsError::AdsErrClientW32Error => 1862,
573 AdsError::AdsErrClientTimeoutInvalid => 1863,
574 AdsError::AdsErrClientPortNotOpen => 1864,
575 AdsError::AdsErrClientNoAmsAddress => 1865,
576 AdsError::AdsErrClientSyncInternal => 1872,
577 AdsError::AdsErrClientAddHash => 1873,
578 AdsError::AdsErrClientRemoveHash => 1874,
579 AdsError::AdsErrClientNoMoreSym => 1875,
580 AdsError::AdsErrClientSyncResInvalid => 1876,
581 AdsError::AdsErrClientSyncPortLocked => 1877,
582 AdsError::RtErrInternal => 4096,
584 AdsError::RtErrBadTimerPeriods => 4097,
585 AdsError::RtErrInvalidTaskPtr => 4098,
586 AdsError::RtErrInvalidStackPtr => 4099,
587 AdsError::RtErrPrioExists => 4100,
588 AdsError::RtErrNoMoreTCB => 4101,
589 AdsError::RtErrNoMoreSemas => 4102,
590 AdsError::RtErrNoMoreQueues => 4103,
591 AdsError::RtErrExtIrqAlreadyDef => 4109,
592 AdsError::RtErrExtIrqNotDef => 4110,
593 AdsError::RtErrExtIrgInstallFaild => 4111,
594 AdsError::RtErrIrqlNotLessOrEqual => 4112,
595 AdsError::RtErrVmxNotSupported => 4119,
596 AdsError::RtErrVmxDisabled => 4120,
597 AdsError::RtErrVmxControlsMissing => 4121,
598 AdsError::RtErrVmxEnableFails => 4122,
599 AdsError::ErrUnknowAdsError { error_code } => *error_code,
600 }
601 }
602}