cs2
 Alle Dateien Funktionen Makrodefinitionen Seiten
cs2.h
gehe zur Dokumentation dieser Datei
1 #ifndef CS2_H
2 #define CS2_H
3 
12 #include <linux/can.h>
13 #include <boolean.h>
14 #include <bitmask.h>
15 
16 #ifdef __cpluplus
17 extern "C" {
18 #endif
19 
25 #define CS2_NUM_CAN_BYTES 8
26 
30 #define CS2_SHIFT_HASH 0
31 #define CS2_SHIFT_RESP 16
32 #define CS2_SHIFT_COMMAND 17
33 #define CS2_SHIFT_PRIO 25
34 
35 #define CS2_MASK_HASH BIT_MASK( 0, 15)
36 #define CS2_MASK_RESP BIT_MASK(16, 16)
37 #define CS2_MASK_COMMAND BIT_MASK(17, 24)
38 #define CS2_MASK_PRIO BIT_MASK(25, 29)
39 
40 #define CS2_SHIFT_HASH_MSB 3
41 #define CS2_MASK_HASH_MAGIC BIT_MASK(7,9)
42 #define CS2_HASH_MAGIC BIT_MASK(8,9)
43 #define CS2_MASK_HASH_LOW_BYTE BIT_MASK(0, 7)
44 #define CS2_MASK_HASH_HIGH_BYTE BIT_MASK(7,15)
45 
49 #define CS2_FOLGENUMMER_LOW BIT_MASK( 0, 6)
50 #define CS2_FOLGENUMMER_HIGH BIT_MASK(10,15)
51 
55 #ifdef CS2_USE_PRIO
56 #define CS2_PRIO_0 0 /* not prio set */
57 #define CS2_PRIO_1 1 /* Stopp / Go / Kurzschluss-Meldungen */
58 #define CS2_PRIO_2 2 /* Rueckmeldungen */
59 #define CS2_PRIO_3 3 /* Lok anhalten */
60 #define CS2_PRIO_4 4 /* Lok / Zubehoerbefehle */
61 #else
62 #define CS2_PRIO_0 0 /* not prio set */
63 #define CS2_PRIO_1 0 /* Stopp / Go / Kurzschluss-Meldungen */
64 #define CS2_PRIO_2 0 /* Rueckmeldungen */
65 #define CS2_PRIO_3 0 /* Lok anhalten */
66 #define CS2_PRIO_4 0 /* Lok / Zubehoerbefehle */
67 #endif
68 
72 #define CS2_CMD_SYSTEM 0x00
73 #define CS2_CMD_DISCOVERY 0x01
74 #define CS2_CMD_BIND 0x02
75 #define CS2_CMD_MFX_VERIFY 0x03
76 #define CS2_CMD_SPEED 0x04
77 #define CS2_CMD_DIRECTION 0x05
78 #define CS2_CMD_FUNCTION 0x06
79 #define CS2_CMD_READ_CONFIG 0x07
80 #define CS2_CMD_WRITE_CONFIG 0x08
81 #define CS2_CMD_ACC_SWITCH 0x0B
82 #define CS2_CMD_ACC_CONF 0x0C
83 #define CS2_CMD_S88_POLL 0x10
84 #define CS2_CMD_S88_EVENT 0x11
85 #define CS2_CMD_SX1_EVENT 0x12
86 #define CS2_CMD_PING 0x18
87 #define CS2_CMD_OFFER_UPDATE 0x19
88 #define CS2_CMD_READ_CFG_DATA 0x1A
89 #define CS2_CMD_BOOTLDR_CAN 0x1B
90 #define CS2_CMD_BOOTLDR_TRACK 0x1C
91 #define CS2_CMD_STATUS 0x1D
92 #define CS2_CMD_CONFIG_QUERY 0x20
93 #define CS2_CMD_CFGDAT_STREAM 0x21
94 #define CS2_CMD_CONNECT_6021 0x22
95 #define CS2_CMD_AUTOMATIC 0x30
96 #define CS2_CMD_DEBUG_MESSAGE 0x42
97 
101 #define CS2_SUBCMD_SYSTEM_STOP 0x00
102 #define CS2_SUBCMD_SYSTEM_GO 0x01
103 #define CS2_SUBCMD_SYSTEM_HALT 0x02
104 #define CS2_SUBCMD_SYSTEM_EMERGENCY_HALT 0x03
105 #define CS2_SUBCMD_SYSTEM_CYCLE_END 0x04
106 #define CS2_SUBCMD_SYSTEM_DATA_PROTOCOLL 0x05
107 #define CS2_SUBCMD_SYSTEM_DECODER_TIMEING 0x06
108 #define CS2_SUBCMD_SYSTEM_MFX_FAST_READ 0x07
109 #define CS2_SUBCMD_SYSTEM_TRACK_PROTOCOLL 0x08
110 #define CS2_SUBCMD_SYSTEM_RESET_MFX_COUNTER 0x09
111 #define CS2_SUBCMD_SYSTEM_OVERLOAD 0x0A
112 #define CS2_SUBCMD_SYSTEM_STATUS 0x0B
113 #define CS2_SUBCMD_SYSTEM_SYSTEM_ID 0x0C
114 #define CS2_SUBCMD_SYSTEM_MFX_SEEK 0x30
115 #define CS2_SUBCMD_SYSTEM_SYSTEM_RESET 0x80
116 
120 #define CS2_UID_BROADCAST 0x00000000l
121 
126 #define CS2_DATA_PROTO_MM2_2040 0
127 #define CS2_DATA_PROTO_MM2_LOK_20 1
128 #define CS2_DATA_PROTO_MM2_FKT_40 2
129 #define CS2_DATA_PROTO_DCC_SHORT_ADDR_28 0
130 #define CS2_DATA_PROTO_DCC_SHORT_ADDR_14 1
131 #define CS2_DATA_PROTO_DCC_SHORT_ADDR_126 2
132 #define CS2_DATA_PROTO_DCC_LONG_ADDR_28 3
133 #define CS2_DATA_PROTO_DCC_LONG_ADDR_126 4
134 
139 #define CS2_TRACK_PROTO_MM2 0x01
140 #define CS2_TRACK_PROTO_MFX 0x02
141 #define CS2_TRACK_PROTO_DCC 0x04
142 #define CS2_TRACK_PROTO_RES1 0x08
143 #define CS2_TRACK_PROTO_RES2 0x10
144 #define CS2_TRACK_PROTO_RES3 0x20
145 #define CS2_TRACK_PROTO_RES4 0x40
146 #define CS2_TRACK_PROTO_RES5 0x80
147 
151 #define CS2_DISCOVERY_MFX_1 0
152 #define CS2_DISCOVERY_MFX_2 32
153 #define CS2_DISCOVERY_MM2_1 33
154 #define CS2_DISCOVERY_MM2_2 34
155 #define CS2_DISCOVERY_DCC_1 35
156 #define CS2_DISCOVERY_DCC_2 36
157 #define CS2_DISCOVERY_DCC_3 37
158 #define CS2_DISCOVERY_SX1_1 38
159 #define CS2_DISCOVERY_SX1_2 39
160 #define CS2_DISCOVERY_MFX_3 64
161 #define CS2_DISCOVERY_MFX_4 96
162 #define CS2_DISCOVERY_MM2_3 98
163 #define CS2_DISCOVERY_DCC_4 99
164 #define CS2_DISCOVERY_DCC_5 100
165 #define CS2_DISCOVERY_SX1_3 101
166 #define CS2_DISCOVERY_SX1_4 102
167 
171 #define CS2_SX1_CV_ADDRESS 1
172 #define CS2_SX1_CV_MAXSPEED 2
173 #define CS2_SX1_CV_ACCELERATION 3
174 #define CS2_SX1_CV_PULSEWIDTH 4
175 #define CS2_SX1_CV_STOPPART 5
176 
180 #define CS2_POSITION_RED 0x00
181 #define CS2_POSITION_GREEN 0x01
182 #define CS2_POSITION_YELLOW 0x02
183 #define CS2_POSITION_WHITE 0x03
184 
188 #define CS2_DEVID_GFP 0x0000
189 #define CS2_DEVID_GLEISBOX 0x0010
190 #define CS2_DEVID_CONNECT 0x0020
191 #define CS2_DEVID_MS2_1 0x0030
192 #define CS2_DEVID_MS2_2 0x0032
193 #define CS2_DEVID_CS2 0xEEEE
194 #define CS2_DEVID_WIRELESS 0xFFE0
195 #define CS2_DEVID_WIRED 0xFFF0
196 #define CS2_DEVID_CS2GUI 0xFFFF
197 
201 #define CS2_CFG_LOCINFO "lokinfo"
202 #define CS2_CFG_LOCNAMES "loknamen"
203 #define CS2_CFG_MAGINFO "maginfo"
204 #define CS2_CFG_LOCDB "lokdb"
205 #define CS2_CFG_LANG "lang"
206 #define CS2_CFG_LDBVER "ldbver"
207 #define CS2_CFG_LANGVER "langver"
208 #define CS2_CFG_LOKS "loks"
209 #define CS2_CFG_MAGS "mags"
210 #define CS2_CFG_GBS "gbs"
211 #define CS2_CFG_GBS_PAGE "gbs-"
212 #define CS2_CFG_FS "fs"
213 #define CS2_CFG_LOK_STAT "lokstat"
214 #define CS2_CFG_MAG_STAT "magstat"
215 #define CS2_CFG_GBS_STAT "gbsstat"
216 #define CS2_CFG_FS_STAT "fsstat"
217 #define CS2_CFG_MS2_CONF "ms2-conf"
218 #define CS2_CFG_LOKLISTE "lokliste"
219 #define CS2_CFG_FILES "files"
220 
221 #define CS2_CFG_DLC 8
222 
226 #define CS2_FILE_EXTENSION ".cs2"
227 #define CS2_GLEISBILD_PAGE_SUBDIR "gleisbilder/"
228 
232 #define Ms2CalcHash(Uid) MrCs2CalcHash(Uid)
233 #define Ms2CalcHashFromFolgenummer(Folgenummer) MrCs2CalcHashFromFolgenummer(Folgenummer)
234 
235 #define Cs2GetNumParamBytes Cs2GetDlc
236 #define Ms2GetNumParamBytes Cs2GetNumParamBytes
237 
238 
242 unsigned short Cs2CalcHash(unsigned long Uid);
243 unsigned short Cs2CalcHashFromFolgenummer(unsigned int Folgenummer);
244 BOOL Cs2IsCs2Msg(unsigned Hash, unsigned Command);
245 void Cs2DecodeId(unsigned long CanId, unsigned *Hash, unsigned *Response,
246  unsigned *Command, unsigned *Prio);
247 unsigned long Cs2EncodeId(unsigned short Hash, unsigned Response,
248  unsigned Command, unsigned Prio);
249 unsigned short Cs2CalcCrc(unsigned char *data, unsigned int length);
250 
254 void Cs2DecSysStop(unsigned char *CanData, unsigned long *Uid);
255 void Cs2DecSysGo(unsigned char *CanData, unsigned long *Uid);
256 void Cs2DecSysHalt(unsigned char *CanData, unsigned long *Uid);
257 void Cs2DecSysEmergencyHalt(unsigned char *CanData, unsigned long *Uid);
258 void Cs2DecSysCycleEnd(unsigned char *CanData, unsigned long *Uid);
259 void Cs2DecSysDataProtocoll(unsigned char *CanData, unsigned long *Uid,
260  int *Proto);
261 void Cs2DecSysDecoderTimeing(unsigned char *CanData, unsigned long *Uid,
262  int *Time);
263 void Cs2DecSysMfxFastRead(unsigned char *CanData, unsigned long *Uid,
264  int *MfxSid);
265 void Cs2DecSysTrackProtocoll(unsigned char *CanData, unsigned long *Uid,
266  int *Proto);
267 void Cs2DecSysResetMfxCounter(unsigned char *CanData, unsigned long *Uid,
268  int *Counter);
269 void Cs2DecSysOverload(unsigned char *CanData, unsigned long *Uid,
270  int *Channel);
271 void Cs2DecSysStatus6(unsigned char *CanData, unsigned long *Uid,
272  int *Channel);
273 void Cs2DecSysStatus7(unsigned char *CanData, unsigned long *Uid,
274  int *Channel, int *Set);
275 void Cs2DecSysStatus8(unsigned char *CanData, unsigned long *Uid,
276  int *Channel, int *Value);
277 void Cs2DecSysSystemId5(unsigned char *CanData, unsigned long *Uid);
278 void Cs2DecSysSystemId7(unsigned char *CanData, unsigned long *Uid,
279  int *Id);
280 void Cs2DecSysSystemReset(unsigned char *CanData, unsigned long *Uid,
281  int *ResteTarget);
285 void Cs2EncSysStop(unsigned char *CanData, unsigned long Uid);
286 void Cs2EncSysGo(unsigned char *CanData, unsigned long Uid);
287 void Cs2EncSysHalt(unsigned char *CanData, unsigned long Uid);
288 void Cs2EncSysEmergencyHalt(unsigned char *CanData, unsigned long Uid);
289 void Cs2EncSysCycleEnd(unsigned char *CanData, unsigned long Uid);
290 void Cs2EncSysDataProtocoll(unsigned char *CanData, unsigned long Uid,
291  int Proto);
292 void Cs2EncSysDecoderTimeing(unsigned char *CanData, unsigned long Uid,
293  int Time);
294 void Cs2EncSysMfxFastRead(unsigned char *CanData, unsigned long Uid,
295  int MfxSid);
296 void Cs2EncSysTrackProtocoll(unsigned char *CanData, unsigned long Uid,
297  int Proto);
298 void Cs2EncSysResetMfxCounter(unsigned char *CanData, unsigned long Uid,
299  int Counter);
300 void Cs2EncSysOverload(unsigned char *CanData, unsigned long Uid,
301  int Channel);
302 void Cs2EncSysStatus6(unsigned char *CanData, unsigned long Uid,
303  int Channel);
304 void Cs2EncSysStatus7(unsigned char *CanData, unsigned long Uid,
305  int Channel, int Set);
306 void Cs2EncSysStatus8(unsigned char *CanData, unsigned long Uid,
307  int Channel, int Value);
308 void Cs2EncSysSystemId5(unsigned char *CanData, unsigned long Uid);
309 void Cs2EncSysSystemId7(unsigned char *CanData, unsigned long Uid,
310  int Id);
311 void Cs2EncSysSystemReset(unsigned char *CanData, unsigned long Uid,
312  int ResteTarget);
316 void Cs2DecDiscovery0(unsigned char *CanData);
317 void Cs2DecDiscovery1(unsigned char *CanData, int *Proto);
318 void Cs2DecDiscovery5(unsigned char *CanData, unsigned long *Uid,
319  int *Range);
320 void Cs2DecDiscovery6(unsigned char *CanData, unsigned long *Uid,
321  int *Range, int *Ask);
322 void Cs2DecBind(unsigned char *CanData, unsigned long *Uid,
323  unsigned int *Sid);
324 void Cs2DecMfxVerify6(unsigned char *CanData, unsigned long *Uid,
325  unsigned int *Sid);
326 void Cs2DecMfxVerify7(unsigned char *CanData, unsigned long *Uid,
327  unsigned int *Sid, int *Ask);
328 void Cs2DecSpeed4(unsigned char *CanData, unsigned long *LocId);
329 void Cs2DecSpeed6(unsigned char *CanData, unsigned long *LocId, int *Speed);
330 void Cs2DecDirection4(unsigned char *CanData, unsigned long *LocId);
331 void Cs2DecDirection5(unsigned char *CanData, unsigned long *LocId,
332  int *Direction);
333 void Cs2DecFunction5(unsigned char *CanData, unsigned long *LocId,
334  int *Function);
335 void Cs2DecFunction6(unsigned char *CanData, unsigned long *LocId,
336  int *Function, int *Value);
337 void Cs2DecFunction8(unsigned char *CanData, unsigned long *LocId,
338  int *Function, int *Value, int *FktVal);
339 void Cs2DecReadConfig6(unsigned char *CanData, unsigned long *LocId,
340  int *CvIndex);
341 void Cs2DecReadConfig7(unsigned char *CanData, unsigned long *LocId,
342  int *CvIndex, int *Param);
343 void Cs2DecWriteConfig(unsigned char *CanData, unsigned long *LocId,
344  int *CvIndex, int *Value, int *CtrlRslt);
345 void Cs2DecAccSwitch6(unsigned char *CanData, unsigned long *LocId,
346  int *Position, int *Current);
347 void Cs2DecAccSwitch8(unsigned char *CanData, unsigned long *LocId,
348  int *Position, int *Current, int *TimeFkt);
349 void Cs2DecS88Poll5(unsigned char *CanData, unsigned long *Uid,
350  int *NumModuls);
351 void Cs2DecS88Poll7(unsigned char *CanData, unsigned long *Uid,
352  int *Modul, int *State);
353 void Cs2DecS88Event4(unsigned char *CanData, int *Device, int *Contact);
354 void Cs2DecS88Event5(unsigned char *CanData, int *Device, int *Contact,
355  int *Param);
356 void Cs2DecS88Event8(unsigned char *CanData, int *Device, int *Contact,
357  int *StateOld, int *StateNew, int *Time);
358 void Cs2DecPing0(unsigned char *CanData);
359 void Cs2DecPing8(unsigned char *CanData, unsigned long *Uid,
360  int *SwVersion, int *DeviceId);
361 void Cs2DecCanBootldr(unsigned char *CanData, char *Bytes);
362 void Cs2DecStatus5(unsigned char *CanData, unsigned long *Uid, int *Index);
363 void Cs2DecStatus6(unsigned char *CanData, unsigned long *Uid, int *Index,
364  int *NumPackets);
365 void Cs2DecStatus8(unsigned char *CanData, char *Bytes);
366 #define Cs2DecConfigQuery0(CanMsg)
367 void Cs2DecConfigQuery(unsigned char *CanData, char *FileName);
368 void Cs2DecCfgdatStream6(unsigned char *CanData, unsigned long *Length,
369  int *Crc);
370 void Cs2DecCfgdatStream7(unsigned char *CanData, unsigned long *Length,
371  int *Crc);
372 void Cs2DecCfgdatStream8(unsigned char *CanData, char *Bytes);
373 void Cs2DecAutomatic6(unsigned char *CanData, int *DeviceId, int *Func,
374  int *Status, int *Param);
375 void Cs2DecAutomatic8(unsigned char *CanData, int *DeviceId, int *Func,
376  unsigned long *LocId);
377 void Cs2DecDebugMessage(unsigned char *CanData, char *Message);
381 void Cs2EncDiscovery0(unsigned char *CanData);
382 void Cs2EncDiscovery1(unsigned char *CanData, int Proto);
383 void Cs2EncDiscovery5(unsigned char *CanData, unsigned long Uid,
384  int Range);
385 void Cs2EncDiscovery6(unsigned char *CanData, unsigned long Uid,
386  int Range, int Ask);
387 void Cs2EncBind(unsigned char *CanData, unsigned long Uid,
388  unsigned int Sid);
389 void Cs2EncMfxVerify6(unsigned char *CanData, unsigned long Uid,
390  unsigned int Sid);
391 void Cs2EncMfxVerify7(unsigned char *CanData, unsigned long Uid,
392  unsigned int Sid, int Ask);
393 void Cs2EncSpeed4(unsigned char *CanData, unsigned long LocId);
394 void Cs2EncSpeed6(unsigned char *CanData, unsigned long LocId, int Speed);
395 void Cs2EncDirection4(unsigned char *CanData, unsigned long LocId);
396 void Cs2EncDirection5(unsigned char *CanData, unsigned long LocId,
397  int Direction);
398 void Cs2EncFunction5(unsigned char *CanData, unsigned long LocId,
399  int Function);
400 void Cs2EncFunction6(unsigned char *CanData, unsigned long LocId,
401  int Function, int Value);
402 void Cs2EncFunction8(unsigned char *CanData, unsigned long LocId,
403  int Function, int Value, int FktVal);
404 void Cs2EncReadConfig6(unsigned char *CanData, unsigned long LocId,
405  int CvIndex);
406 void Cs2EncReadConfig7(unsigned char *CanData, unsigned long LocId,
407  int CvIndex, int Param);
408 void Cs2EncWriteConfig(unsigned char *CanData, unsigned long LocId,
409  int CvIndex, int Value, int CtrlRslt);
410 void Cs2EncAccSwitch6(unsigned char *CanData, unsigned long LocId,
411  int Position, int Current);
412 void Cs2EncAccSwitch8(unsigned char *CanData, unsigned long LocId,
413  int Position, int Current, int TimeFkt);
414 void Cs2EncS88Poll5(unsigned char *CanData, unsigned long Uid,
415  int NumModuls);
416 void Cs2EncS88Poll7(unsigned char *CanData, unsigned long Uid,
417  int Modul, int State);
418 void Cs2EncS88Event4(unsigned char *CanData, int Device, int Contact);
419 void Cs2EncS88Event5(unsigned char *CanData, int Device, int Contact,
420  int Param);
421 void Cs2EncS88Event8(unsigned char *CanData, int Device, int Contact,
422  int StateOld, int StateNew, int Time);
423 void Cs2EncPing0(unsigned char *CanData);
424 void Cs2EncPing8(unsigned char *CanData, unsigned long Uid,
425  int SwVersion, int DeviceId);
426 void Cs2EncCanBootldr(unsigned char *CanData, char *Bytes);
427 void Cs2EncStatus5(unsigned char *CanData, unsigned long Uid, int Index);
428 void Cs2EncStatus6(unsigned char *CanData, unsigned long Uid, int Index,
429  int NumPackets);
430 void Cs2EncStatus8(unsigned char *CanData, char *Bytes);
431 void Cs2EncConfigQuery0(unsigned char *CanData);
432 void Cs2EncConfigQuery(unsigned char *CanData, char *FileName);
433 void Cs2EncCfgdatStream6(unsigned char *CanData, unsigned long Length,
434  int Crc);
435 void Cs2EncCfgdatStream7(unsigned char *CanData, unsigned long Length,
436  int Crc);
437 void Cs2EncCfgdatStream8(unsigned char *CanData, char *Bytes);
438 void Cs2EncAutomatic6(unsigned char *CanData, int DeviceId, int Func,
439  int Status, int Param);
440 void Cs2EncAutomatic8(unsigned char *CanData, int DeviceId, int Func,
441  unsigned long LocId);
442 void Cs2EncDebugMessage(unsigned char *CanData, char *Message);
446 int Cs2StatusInfoEncode(char *Buffer, int NumCfg, int NumStat,
447  unsigned long SerienNummer, char *ArtikelNummer,
448  char *ArtikelName);
449 void Cs2StatusInfoDecode(char *Buffer, int *NumCfg, int *NumStat,
450  unsigned long *SerienNummer, char *ArtikelNummer,
451  char *ArtikelName);
452 
453 /* andere Namen fuer MS2 */
454 
455 /* andere Namen fuer Auswertung MS2 CAN Id */
456 #define MS2_SHIFT_HASH CS2_SHIFT_HASH
457 #define MS2_SHIFT_RESP CS2_SHIFT_RESP
458 #define MS2_SHIFT_COMMAND CS2_SHIFT_COMMAND
459 #define MS2_SHIFT_PRIO CS2_SHIFT_PRIO
460 
461 #define MS2_MASK_HASH CS2_MASK_HASH
462 #define MS2_MASK_RESP CS2_MASK_RESP
463 #define MS2_MASK_COMMAND CS2_MASK_COMMAND
464 #define MS2_MASK_PRIO CS2_MASK_PRIO
465 
466 #define MS2_SHIFT_HASH_MSB CS2_SHIFT_HASH_MSB
467 #define MS2_MASK_HASH_MAGIC CS2_MASK_HASH_MAGIC
468 #define MS2_HASH_MAGIC CS2_HASH_MAGIC
469 #define MS2_MASK_HASH_LOW_BYTE CS2_MASK_HASH_LOW_BYTE
470 #define MS2_MASK_HASH_HIGH_BYTE CS2_MASK_HASH_HIGH_BYTE
471 
472 /* andere Namen fuer prio Feld */
473 #define MS2_PRIO_1 CS2_PRIO_1
474 #define MS2_PRIO_2 CS2_PRIO_2
475 #define MS2_PRIO_3 CS2_PRIO_3
476 #define MS2_PRIO_4 CS2_PRIO_4
477 
478 /* andere Namen fuer command field of MS2 can id */
479 #define MS2_CMD_SYSTEM CS2_CMD_SYSTEM
480 #define MS2_CMD_DISCOVERY CS2_CMD_DISCOVERY
481 #define MS2_CMD_BIND CS2_CMD_BIND
482 #define MS2_CMD_MFX_VERIFY CS2_CMD_MFX_VERIFY
483 #define MS2_CMD_SPEED CS2_CMD_SPEED
484 #define MS2_CMD_DIRECTION CS2_CMD_DIRECTION
485 #define MS2_CMD_FUNCTION CS2_CMD_FUNCTION
486 #define MS2_CMD_READ_CONFIG CS2_CMD_READ_CONFIG
487 #define MS2_CMD_WRITE_CONFIG CS2_CMD_WRITE_CONFIG
488 #define MS2_CMD_ACC_SWITCH CS2_CMD_ACC_SWITCH
489 #define MS2_CMD_ACC_CONF CS2_CMD_ACC_CONF
490 #define MS2_CMD_S88_POLL CS2_CMD_S88_POLL
491 #define MS2_CMD_S88_EVENT CS2_CMD_S88_EVENT
492 #define MS2_CMD_SX1_EVENT CS2_CMD_SX1_EVENT
493 #define MS2_CMD_PING CS2_CMD_PING
494 #define MS2_CMD_OFFER_UPDATE CS2_CMD_OFFER_UPDATE
495 #define MS2_CMD_READ_CFG_DATA CS2_CMD_READ_CFG_DATA
496 #define MS2_CMD_BOOTLDR_CAN CS2_CMD_BOOTLDR_CAN
497 #define MS2_CMD_BOOTLDR_TRACK CS2_CMD_BOOTLDR_TRACK
498 #define MS2_CMD_STATUS CS2_CMD_STATUS
499 #define MS2_CMD_CONFIG_QUERY CS2_CMD_CONFIG_QUERY
500 #define MS2_CMD_CFGDAT_STREAM CS2_CMD_CFGDAT_STREAM
501 #define MS2_CMD_CONNECT_6021 CS2_CMD_CONNECT_6021
502 #define MS2_CMD_AUTOMATIC CS2_CMD_AUTOMATIC
503 
504 /* andere Namen fuer sub commands of MS2 system command (data byte 4) */
505 #define MS2_SUBCMD_SYSTEM_STOP CS2_SUBCMD_SYSTEM_STOP
506 #define MS2_SUBCMD_SYSTEM_GO CS2_SUBCMD_SYSTEM_GO
507 #define MS2_SUBCMD_SYSTEM_HALT CS2_SUBCMD_SYSTEM_HALT
508 #define MS2_SUBCMD_SYSTEM_EMERGENCY_HALT CS2_SUBCMD_SYSTEM_EMERGENCY_HALT
509 #define MS2_SUBCMD_SYSTEM_CYCLE_END CS2_SUBCMD_SYSTEM_CYCLE_END
510 #define MS2_SUBCMD_SYSTEM_DATA_PROTOCOLL CS2_SUBCMD_SYSTEM_DATA_PROTOCOLL
511 #define MS2_SUBCMD_SYSTEM_DECODER_TIMEING CS2_SUBCMD_SYSTEM_DECODER_TIMEING
512 #define MS2_SUBCMD_SYSTEM_MFX_FAST_READ CS2_SUBCMD_SYSTEM_MFX_FAST_READ
513 #define MS2_SUBCMD_SYSTEM_TRACK_PROTOCOLL CS2_SUBCMD_SYSTEM_TRACK_PROTOCOLL
514 #define MS2_SUBCMD_SYSTEM_RESET_MFX_COUNTER CS2_SUBCMD_SYSTEM_RESET_MFX_COUNTER
515 #define MS2_SUBCMD_SYSTEM_OVERLOAD CS2_SUBCMD_SYSTEM_OVERLOAD
516 #define MS2_SUBCMD_SYSTEM_STATUS CS2_SUBCMD_SYSTEM_STATUS
517 #define MS2_SUBCMD_SYSTEM_SYSTEM_ID CS2_SUBCMD_SYSTEM_SYSTEM_ID
518 #define MS2_SUBCMD_SYSTEM_MFX_SEEK CS2_SUBCMD_SYSTEM_MFX_SEEK
519 #define MS2_SUBCMD_SYSTEM_SYSTEM_RESET CS2_SUBCMD_SYSTEM_SYSTEM_RESET
520 
521 /* andere namen fuer Lok Datenprotokoll */
522 #define MS2_DATA_PROTO_MM2_2040 0
523 #define MS2_DATA_PROTO_MM2_LOK_20 1
524 #define MS2_DATA_PROTO_MM2_FKT_40 2
525 #define MS2_DATA_PROTO_DCC_SHORT_ADDR_28 0
526 #define MS2_DATA_PROTO_DCC_SHORT_ADDR_14 1
527 #define MS2_DATA_PROTO_DCC_SHORT_ADDR_126 2
528 #define MS2_DATA_PROTO_DCC_LONG_ADDR_28 3
529 #define MS2_DATA_PROTO_DCC_LONG_ADDR_126 4
530 
531 /* andere Namen fuer uids fue MS3 */
532 #define MS2_UID_BROADCAST CS2_UID_BROADCAST
533 
534 /* andere name fuer Lok Datenprotokoll (MR_CS2_SUBCMD_SYSTEM_DATA_PROTOCOLL) */
535 #define MS2_DATA_PROTO_MM2_2040 0
536 #define MS2_DATA_PROTO_MM2_LOK_20 1
537 #define MS2_DATA_PROTO_MM2_FKT_40 2
538 #define MS2_DATA_PROTO_DCC_SHORT_ADDR_28 0
539 #define MS2_DATA_PROTO_DCC_SHORT_ADDR_14 1
540 #define MS2_DATA_PROTO_DCC_SHORT_ADDR_126 2
541 #define MS2_DATA_PROTO_DCC_LONG_ADDR_28 3
542 #define MS2_DATA_PROTO_DCC_LONG_ADDR_126 4
543 
544 /* andere namen fuer track protocoll */
545 #define MS2_TRACK_PROTO_MM2 0x01
546 #define MS2_TRACK_PROTO_MFX 0x02
547 #define MS2_TRACK_PROTO_DCC 0x04
548 #define MS2_TRACK_PROTO_RES1 0x08
549 #define MS2_TRACK_PROTO_RES2 0x10
550 #define MS2_TRACK_PROTO_RES3 0x20
551 #define MS2_TRACK_PROTO_RES4 0x40
552 #define MS2_TRACK_PROTO_RES5 0x80
553 
554 /* andere namen fuer range/protocll feld von lok discovery */
555 #define MS2_DISCOVERY_MFX_1 CS2_DISCOVERY_MFX_1
556 #define MS2_DISCOVERY_MFX_2 CS2_DISCOVERY_MFX_2
557 #define MS2_DISCOVERY_MM2_1 CS2_DISCOVERY_MM2_1
558 #define MS2_DISCOVERY_MM2_2 CS2_DISCOVERY_MM2_2
559 #define MS2_DISCOVERY_DCC_1 CS2_DISCOVERY_DCC_1
560 #define MS2_DISCOVERY_DCC_2 CS2_DISCOVERY_DCC_2
561 #define MS2_DISCOVERY_DCC_3 CS2_DISCOVERY_DCC_3
562 #define MS2_DISCOVERY_SX1_1 CS2_DISCOVERY_SX1_1
563 #define MS2_DISCOVERY_SX1_2 CS2_DISCOVERY_SX1_2
564 #define MS2_DISCOVERY_MFX_3 CS2_DISCOVERY_MFX_3
565 #define MS2_DISCOVERY_MFX_4 CS2_DISCOVERY_MFX_4
566 #define MS2_DISCOVERY_MM2_3 CS2_DISCOVERY_MM2_3
567 #define MS2_DISCOVERY_DCC_4 CS2_DISCOVERY_DCC_4
568 #define MS2_DISCOVERY_DCC_5 CS2_DISCOVERY_DCC_5
569 #define MS2_DISCOVERY_SX1_3 CS2_DISCOVERY_SX1_3
570 #define MS2_DISCOVERY_SX1_4 CS2_DISCOVERY_SX1_4
571 
572 /* andere namen fuer cv address for SX1 */
573 #define MS2_SX1_CV_ADDRESS CS2_SX1_CV_ADDRESS
574 #define MS2_SX1_CV_MAXSPEED CS2_SX1_CV_MAXSPEED
575 #define MS2_SX1_CV_ACCELERATION CS2_SX1_CV_ACCELERATION
576 #define MS2_SX1_CV_PULSEWIDTH CS2_SX1_CV_PULSEWIDTH
577 #define MS2_SX1_CV_STOPPART CS2_SX1_CV_STOPPART
578 
579 /* andere namen fuer value for position in switch acc */
580 #define MS2_POSITION_RED CS2_POSITION_RED
581 #define MS2_POSITION_GREEN CS2_POSITION_GREEN
582 #define MS2_POSITION_YELLOW CS2_POSITION_YELLOW
583 #define MS2_POSITION_WHITE CS2_POSITION_WHITE
584 
585 /* andere namen fuer device if for ping */
586 #define MS2_DEVID_GFP CS2_DEVID_GFP
587 #define MS2_DEVID_GLEISBOX CS2_DEVID_GLEISBOX
588 #define MS2_DEVID_CONNECT CS2_DEVID_CONNECT
589 #define MS2_DEVID_MS2 CS2_DEVID_MS2
590 #define MS2_DEVID_CS2 CS2_DEVID_CS2
591 #define MS2_DEVID_WIRELESS CS2_DEVID_WIRELESS
592 #define MS2_DEVID_CS2GUI CS2_DEVID_CS2GUI
593 
594 /* andere namen fuerr cfg data */
595 #define MS2_CFG_LOCINFO CS2_CFG_LOCINFO
596 #define MS2_CFG_LOCNAMES CS2_CFG_LOCNAMES
597 #define MS2_CFG_LOCDB CS2_CFG_LOCDB
598 
599 /* andere Namen fuer decode funtions */
600 #define Ms2DecSysStop Cs2DecSysStop
601 #define Ms2DecSysGo Cs2DecSysGo
602 #define Ms2DecSysHalt Cs2DecSysHalt
603 #define Ms2DecSysEmergencyHalt Cs2DecSysEmergencyHalt
604 #define Ms2DecSysCycleEnd Cs2DecSysCycleEnd
605 #define Ms2DecSysDataProtocoll Cs2DecSysDataProtocoll
606 #define Ms2DecSysDecoderTimeing Cs2DecSysDecoderTimeing
607 #define Ms2DecSysMfxFastRead Cs2DecSysMfxFastRead
608 #define Ms2DecSysTrackProtocoll Cs2DecSysTrackProtocoll
609 #define Ms2DecSysResetMfxCounter Cs2DecSysResetMfxCounter
610 #define Ms2DecSysOverload Cs2DecSysOverload
611 #define Ms2DecSysStatus6 Cs2DecSysStatus6
612 #define Ms2DecSysStatus7 Cs2DecSysStatus7
613 #define Ms2DecSysStatus8 Cs2DecSysStatus8
614 #define Ms2DecSysSystemId5 Cs2DecSysSystemId5
615 #define Ms2DecSysSystemId7 Cs2DecSysSystemId7
616 #define Ms2DecSysSystemReset Cs2DecSysSystemReset
617 
618 #define Ms2EncSysStop Cs2EncSysStop
619 #define Ms2EncSysGo Cs2EncSysGo
620 #define Ms2EncSysHalt Cs2EncSysHalt
621 #define Ms2EncSysEmergencyHalt Cs2EncSysEmergencyHalt
622 #define Ms2EncSysCycleEnd Cs2EncSysCycleEnd
623 #define Ms2EncSysDataProtocoll Cs2EDSysDataProtocoll
624 #define Ms2EncSysDecoderTimeing Cs2EnecSysDecoderTimeing
625 #define Ms2EncSysMfxFastRead Cs2EncSysMfxFastRead
626 #define Ms2EncSysTrackProtocoll Cs2EncSysTrackProtocoll
627 #define Ms2EncSysResetMfxCounter Cs2EncSysResetMfxCounter
628 #define Ms2EncSysOverload Cs2EncSysOverload
629 #define Ms2EncSysStatus6 Cs2EncSysStatus6
630 #define Ms2EncSysStatus7 Cs2EncSysStatus7
631 #define Ms2EncSysStatus8 Cs2EncSysStatus8
632 #define Ms2EncSysSystemId5 Cs2EncSysSystemId5
633 #define Ms2EncSysSystemId7 Cs2EncSysSystemId7
634 #define Ms2EncSysSystemReset Cs2EncSysSystemReset
635 
636 #define Ms2DecDiscovery0 Cs2DecDiscovery0
637 #define Ms2DecDiscovery1 Cs2DecDiscovery1
638 #define Ms2DecDiscovery5 Cs2DecDiscovery5
639 #define Ms2DecDiscovery6 Cs2DecDiscovery6
640 #define Ms2DecBind Cs2DecBind
641 #define Ms2DecMfxVerify6 Cs2DecMfxVerify6
642 #define Ms2DecMfxVerify7 Cs2DecMfxVerify7
643 #define Ms2DecSpeed4 Cs2DecSpeed4
644 #define Ms2DecSpeed6 Cs2DecSpeed6
645 #define Ms2DecDirection4 Cs2DecDirection4
646 #define Ms2DecDirection5 Cs2DecDirection5
647 #define Ms2DecFunction5 Cs2DecFunction5
648 #define Ms2DecFunction6 Cs2DecFunction6
649 #define Ms2DecFunction8 Cs2DecFunction8
650 #define Ms2DecReadConfig6 Cs2DecReadConfig6
651 #define Ms2DecReadConfig7 Cs2DecReadConfig7
652 #define Ms2DecWriteConfig Cs2DecWriteConfig
653 #define Ms2DecAccSwitch6 Cs2DecAccSwitch6
654 #define Ms2DecAccSwitch8 Cs2DecAccSwitch8
655 #define Ms2DecS88Poll5 Cs2DecS88Poll5
656 #define Ms2DecS88Poll7 Cs2DecS88Poll7
657 #define Ms2DecS88Event4 Cs2DecS88Event4
658 #define Ms2DecS88Event5 Cs2DecS88Event5
659 #define Ms2DecS88Event8 Cs2DecS88Event8
660 #define Ms2DecPing0 Cs2DecPing0
661 #define Ms2DecPing8 Cs2DecPing8
662 #define Ms2DecCanBootldr Cs2DecCanBootldr
663 #define Ms2DecStatus5 Cs2DecStatus5
664 #define Ms2DecStatus6 Cs2DecStatus6
665 #define Ms2DecStatus8 Cs2DecStatus8
666 #define Ms2DecConfigQuery0 Cs2DecConfigQuery0
667 #define Ms2DecConfigQuery Cs2DecConfigQuery
668 #define Ms2DecCfgdatStream6 Cs2DecCfgdatStream6
669 #define Ms2DecCfgdatStream7 Cs2DecCfgdatStream7
670 #define Ms2DecCfgdatStream8 Cs2DecCfgdatStream8
671 #define Ms2DecAutomatic6 Cs2DecAutomatic6
672 #define Ms2DecAutomatic8 Cs2DecAutomatic8
673 #define Ms2DecDebugMessage Cs2DecDebugMessage
674 
675 #define Ms2EncDiscovery0 Cs2EncDiscovery0
676 #define Ms2EncDiscovery1 Cs2EncDiscovery1
677 #define Ms2EncDiscovery5 Cs2EncDiscovery5
678 #define Ms2EncDiscovery6 Cs2EncDiscovery6
679 #define Ms2EncBind Cs2EncBind
680 #define Ms2EncMfxVerify6 Cs2EncMfxVerify6
681 #define Ms2EncMfxVerify7 Cs2EncMfxVerify7
682 #define Ms2EncSpeed4 Cs2EncSpeed4
683 #define Ms2EncSpeed6 Cs2EncSpeed6
684 #define Ms2EncDirection4 Cs2EncDirection4
685 #define Ms2EncDirection5 Cs2EncDirection5
686 #define Ms2EncFunction5 Cs2EncFunction5
687 #define Ms2EncFunction6 Cs2EncFunction6
688 #define Ms2EncFunction8 Cs2EncFunction8
689 #define Ms2EncReadConfig6 Cs2EncReadConfig6
690 #define Ms2EncReadConfig7 Cs2EncReadConfig7
691 #define Ms2EncWriteConfig Cs2EncWriteConfig
692 #define Ms2EncAccSwitch6 Cs2EncAccSwitch6
693 #define Ms2EncAccSwitch8 Cs2EncAccSwitch8
694 #define Ms2EncS88Poll5 Cs2EncS88Poll5
695 #define Ms2EncS88Poll7 Cs2EncS88Poll7
696 #define Ms2EncS88Event4 Cs2EncS88Event4
697 #define Ms2EncS88Event5 Cs2EncS88Event5
698 #define Ms2EncS88Event8 Cs2EncS88Event8
699 #define Ms2EncPing0 Cs2EncPing0
700 #define Ms2EncPing8 Cs2EncPing8
701 #define Ms2EncCanBootldr Cs2EncCanBootldr
702 #define Ms2EncStatus5 Cs2EncStatus5
703 #define Ms2EncStatus6 Cs2EncStatus6
704 #define Ms2EncStatus8 Cs2EncStatus8
705 #define Ms2EncConfigQuery0 Cs2EncConfigQuery0
706 #define Ms2EncConfigQuery Cs2EncConfigQuery
707 #define Ms2EncCfgdatStream6 Cs2EncCfgdatStream6
708 #define Ms2EncCfgdatStream7 Cs2EncCfgdatStream7
709 #define Ms2EncCfgdatStream8 Cs2EncCfgdatStream8
710 #define Ms2EncAutomatic6 Cs2EncAutomatic6
711 #define Ms2EncAutomatic8 Cs2EncAutomatic8
712 #define Ms2EncDebugMessage Cs2EncDebugMessage
713 
714 #ifdef __cpluplus
715 }
716 #endif
717 
718 #endif