Projekt | cs2_parse |
---|---|
Library | libcs2_parse.a |
Includedatei | cs2.h |
#define CS2_NUM_CAN_BYTES 8
#define CS2_SHIFT_HASH 0 #define CS2_SHIFT_RESP 16 #define CS2_SHIFT_COMMAND 17 #define CS2_SHIFT_PRIO 25 #define CS2_MASK_HASH BIT_MASK( 0, 15) #define CS2_MASK_RESP BIT_MASK(16, 16) #define CS2_MASK_COMMAND BIT_MASK(17, 24) #define CS2_MASK_PRIO BIT_MASK(25, 29) #define CS2_SHIFT_HASH_MSB 3 #define CS2_MASK_HASH_MAGIC BIT_MASK(7,9) #define CS2_HASH_MAGIC BIT_MASK(8,9) #define CS2_MASK_HASH_LOW_BYTE BIT_MASK(0, 7) #define CS2_MASK_HASH_HIGH_BYTE BIT_MASK(7,15)
#define CS2_FOLGENUMMER_LOW BIT_MASK( 0, 6) #define CS2_FOLGENUMMER_HIGH BIT_MASK(10,15)
#ifdef CS2_USE_PRIO #define CS2_PRIO_0 0 /* not prio set */ #define CS2_PRIO_1 1 /* Stopp / Go / Kurzschluss-Meldungen */ #define CS2_PRIO_2 2 /* Rueckmeldungen */ #define CS2_PRIO_3 3 /* Lok anhalten */ #define CS2_PRIO_4 4 /* Lok / Zubehoerbefehle */ #else #define CS2_PRIO_0 0 /* not prio set */ #define CS2_PRIO_1 0 /* Stopp / Go / Kurzschluss-Meldungen */ #define CS2_PRIO_2 0 /* Rueckmeldungen */ #define CS2_PRIO_3 0 /* Lok anhalten */ #define CS2_PRIO_4 0 /* Lok / Zubehoerbefehle */ #endif
#define CS2_CMD_SYSTEM 0x00 #define CS2_CMD_DISCOVERY 0x01 #define CS2_CMD_BIND 0x02 #define CS2_CMD_MFX_VERIFY 0x03 #define CS2_CMD_SPEED 0x04 #define CS2_CMD_DIRECTION 0x05 #define CS2_CMD_FUNCTION 0x06 #define CS2_CMD_READ_CONFIG 0x07 #define CS2_CMD_WRITE_CONFIG 0x08 #define CS2_CMD_ACC_SWITCH 0x0B #define CS2_CMD_ACC_CONF 0x0C #define CS2_CMD_S88_POLL 0x10 #define CS2_CMD_S88_EVENT 0x11 #define CS2_CMD_SX1_EVENT 0x12 #define CS2_CMD_PING 0x18 #define CS2_CMD_OFFER_UPDATE 0x19 #define CS2_CMD_READ_CFG_DATA 0x1A #define CS2_CMD_BOOTLDR_CAN 0x1B #define CS2_CMD_BOOTLDR_TRACK 0x1C #define CS2_CMD_STATUS 0x1D #define CS2_CMD_CONFIG_QUERY 0x20 #define CS2_CMD_CFGDAT_STREAM 0x21 #define CS2_CMD_CONNECT_6021 0x22 #define CS2_CMD_AUTOMATIC 0x30 #define CS2_CMD_DEBUG_MESSAGE 0x42
#define CS2_SUBCMD_SYSTEM_STOP 0x00 #define CS2_SUBCMD_SYSTEM_GO 0x01 #define CS2_SUBCMD_SYSTEM_HALT 0x02 #define CS2_SUBCMD_SYSTEM_EMERGENCY_HALT 0x03 #define CS2_SUBCMD_SYSTEM_CYCLE_END 0x04 #define CS2_SUBCMD_SYSTEM_DATA_PROTOCOLL 0x05 #define CS2_SUBCMD_SYSTEM_DECODER_TIMEING 0x06 #define CS2_SUBCMD_SYSTEM_MFX_FAST_READ 0x07 #define CS2_SUBCMD_SYSTEM_TRACK_PROTOCOLL 0x08 #define CS2_SUBCMD_SYSTEM_RESET_MFX_COUNTER 0x09 #define CS2_SUBCMD_SYSTEM_OVERLOAD 0x0A #define CS2_SUBCMD_SYSTEM_STATUS 0x0B #define CS2_SUBCMD_SYSTEM_SYSTEM_ID 0x0C #define CS2_SUBCMD_SYSTEM_MFX_SEEK 0x30 #define CS2_SUBCMD_SYSTEM_SYSTEM_RESET 0x80
#define CS2_UID_BROADCAST 0x00000000l
#define CS2_DATA_PROTO_MM2_2040 0 #define CS2_DATA_PROTO_MM2_LOK_20 1 #define CS2_DATA_PROTO_MM2_FKT_40 2 #define CS2_DATA_PROTO_DCC_SHORT_ADDR_28 0 #define CS2_DATA_PROTO_DCC_SHORT_ADDR_14 1 #define CS2_DATA_PROTO_DCC_SHORT_ADDR_126 2 #define CS2_DATA_PROTO_DCC_LONG_ADDR_28 3 #define CS2_DATA_PROTO_DCC_LONG_ADDR_126 4
#define CS2_TRACK_PROTO_MM2 0x01 #define CS2_TRACK_PROTO_MFX 0x02 #define CS2_TRACK_PROTO_DCC 0x04 #define CS2_TRACK_PROTO_RES1 0x08 #define CS2_TRACK_PROTO_RES2 0x10 #define CS2_TRACK_PROTO_RES3 0x20 #define CS2_TRACK_PROTO_RES4 0x40 #define CS2_TRACK_PROTO_RES5 0x80
#define CS2_DISCOVERY_MFX_1 0 #define CS2_DISCOVERY_MFX_2 32 #define CS2_DISCOVERY_MM2_1 33 #define CS2_DISCOVERY_MM2_2 34 #define CS2_DISCOVERY_DCC_1 35 #define CS2_DISCOVERY_DCC_2 36 #define CS2_DISCOVERY_DCC_3 37 #define CS2_DISCOVERY_SX1_1 38 #define CS2_DISCOVERY_SX1_2 39 #define CS2_DISCOVERY_MFX_3 64 #define CS2_DISCOVERY_MFX_4 96 #define CS2_DISCOVERY_MM2_3 98 #define CS2_DISCOVERY_DCC_4 99 #define CS2_DISCOVERY_DCC_5 100 #define CS2_DISCOVERY_SX1_3 101 #define CS2_DISCOVERY_SX1_4 102
#define CS2_SX1_CV_ADDRESS 1 #define CS2_SX1_CV_MAXSPEED 2 #define CS2_SX1_CV_ACCELERATION 3 #define CS2_SX1_CV_PULSEWIDTH 4 #define CS2_SX1_CV_STOPPART 5
#define CS2_POSITION_RED 0x00 #define CS2_POSITION_GREEN 0x01 #define CS2_POSITION_YELLOW 0x02 #define CS2_POSITION_WHITE 0x03
#define CS2_DEVID_GFP 0x0000 #define CS2_DEVID_GLEISBOX 0x0010 #define CS2_DEVID_CONNECT 0x0020 #define CS2_DEVID_MS2_1 0x0030 #define CS2_DEVID_MS2_2 0x0032 #define CS2_DEVID_CS2 0xEEEE #define CS2_DEVID_WIRELESS 0xFFE0 #define CS2_DEVID_WIRED 0xFFF0 #define CS2_DEVID_CS2GUI 0xFFFF
#define CS2_CFG_LOCINFO "lokinfo" #define CS2_CFG_LOCNAMES "loknamen" #define CS2_CFG_MAGINFO "maginfo" #define CS2_CFG_LOCDB "lokdb" #define CS2_CFG_LANG "lang" #define CS2_CFG_LDBVER "ldbver" #define CS2_CFG_LANGVER "langver" #define CS2_CFG_LOKS "loks" #define CS2_CFG_MAGS "mags" #define CS2_CFG_GBS "gbs" #define CS2_CFG_GBS_PAGE "gbs-" #define CS2_CFG_FS "fs" #define CS2_CFG_LOK_STAT "lokstat" #define CS2_CFG_MAG_STAT "magstat" #define CS2_CFG_GBS_STAT "gbsstat" #define CS2_CFG_FS_STAT "fsstat" #define CS2_CFG_MS2_CONF "ms2-conf" #define CS2_CFG_LOKLISTE "lokliste" #define CS2_CFG_FILES "files" #define CS2_CFG_DLC 8
#define CS2_FILE_EXTENSION ".cs2" #define CS2_GLEISBILD_PAGE_SUBDIR "gleisbilder/"
unsigned short Cs2CalcHash(unsigned long Uid); unsigned short Cs2CalcHashFromFolgenummer(unsigned int Folgenummer); BOOL Cs2IsCs2Msg(unsigned Hash, unsigned Command); void Cs2DecodeId(unsigned long CanId, unsigned *Hash, unsigned *Response, unsigned *Command, unsigned *Prio); unsigned long Cs2EncodeId(unsigned short Hash, unsigned Response, unsigned Command, unsigned Prio); unsigned short Cs2CalcCrc(unsigned char *data, unsigned int length);
void Cs2DecSysStop(unsigned char *CanData, unsigned long *Uid); void Cs2DecSysGo(unsigned char *CanData, unsigned long *Uid); void Cs2DecSysHalt(unsigned char *CanData, unsigned long *Uid); void Cs2DecSysEmergencyHalt(unsigned char *CanData, unsigned long *Uid); void Cs2DecSysCycleEnd(unsigned char *CanData, unsigned long *Uid); void Cs2DecSysDataProtocoll(unsigned char *CanData, unsigned long *Uid, int *Proto); void Cs2DecSysDecoderTimeing(unsigned char *CanData, unsigned long *Uid, int *Time); void Cs2DecSysMfxFastRead(unsigned char *CanData, unsigned long *Uid, int *MfxSid); void Cs2DecSysTrackProtocoll(unsigned char *CanData, unsigned long *Uid, int *Proto); void Cs2DecSysResetMfxCounter(unsigned char *CanData, unsigned long *Uid, int *Counter); void Cs2DecSysOverload(unsigned char *CanData, unsigned long *Uid, int *Channel); void Cs2DecSysStatus6(unsigned char *CanData, unsigned long *Uid, int *Channel); void Cs2DecSysStatus7(unsigned char *CanData, unsigned long *Uid, int *Channel, int *Set); void Cs2DecSysStatus8(unsigned char *CanData, unsigned long *Uid, int *Channel, int *Value); void Cs2DecSysSystemId5(unsigned char *CanData, unsigned long *Uid); void Cs2DecSysSystemId7(unsigned char *CanData, unsigned long *Uid, int *Id); void Cs2DecSysSystemReset(unsigned char *CanData, unsigned long *Uid, int *ResteTarget);
void Cs2EncSysStop(unsigned char *CanData, unsigned long Uid); void Cs2EncSysGo(unsigned char *CanData, unsigned long Uid); void Cs2EncSysHalt(unsigned char *CanData, unsigned long Uid); void Cs2EncSysEmergencyHalt(unsigned char *CanData, unsigned long Uid); void Cs2EncSysCycleEnd(unsigned char *CanData, unsigned long Uid); void Cs2EncSysDataProtocoll(unsigned char *CanData, unsigned long Uid, int Proto); void Cs2EncSysDecoderTimeing(unsigned char *CanData, unsigned long Uid, int Time); void Cs2EncSysMfxFastRead(unsigned char *CanData, unsigned long Uid, int MfxSid); void Cs2EncSysTrackProtocoll(unsigned char *CanData, unsigned long Uid, int Proto); void Cs2EncSysResetMfxCounter(unsigned char *CanData, unsigned long Uid, int Counter); void Cs2EncSysOverload(unsigned char *CanData, unsigned long Uid, int Channel); void Cs2EncSysStatus6(unsigned char *CanData, unsigned long Uid, int Channel); void Cs2EncSysStatus7(unsigned char *CanData, unsigned long Uid, int Channel, int Set); void Cs2EncSysStatus8(unsigned char *CanData, unsigned long Uid, int Channel, int Value); void Cs2EncSysSystemId5(unsigned char *CanData, unsigned long Uid); void Cs2EncSysSystemId7(unsigned char *CanData, unsigned long Uid, int Id); void Cs2EncSysSystemReset(unsigned char *CanData, unsigned long Uid, int ResteTarget);
void Cs2DecDiscovery0(unsigned char *CanData); void Cs2DecDiscovery1(unsigned char *CanData, int *Proto); void Cs2DecDiscovery5(unsigned char *CanData, unsigned long *Uid, int *Range); void Cs2DecDiscovery6(unsigned char *CanData, unsigned long *Uid, int *Range, int *Ask); void Cs2DecBind(unsigned char *CanData, unsigned long *Uid, unsigned int *Sid); void Cs2DecMfxVerify6(unsigned char *CanData, unsigned long *Uid, unsigned int *Sid); void Cs2DecMfxVerify7(unsigned char *CanData, unsigned long *Uid, unsigned int *Sid, int *Ask); void Cs2DecSpeed4(unsigned char *CanData, unsigned long *LocId); void Cs2DecSpeed6(unsigned char *CanData, unsigned long *LocId, int *Speed); void Cs2DecDirection4(unsigned char *CanData, unsigned long *LocId); void Cs2DecDirection5(unsigned char *CanData, unsigned long *LocId, int *Direction); void Cs2DecFunction5(unsigned char *CanData, unsigned long *LocId, int *Function); void Cs2DecFunction6(unsigned char *CanData, unsigned long *LocId, int *Function, int *Value); void Cs2DecFunction8(unsigned char *CanData, unsigned long *LocId, int *Function, int *Value, int *FktVal); void Cs2DecReadConfig6(unsigned char *CanData, unsigned long *LocId, int *CvIndex); void Cs2DecReadConfig7(unsigned char *CanData, unsigned long *LocId, int *CvIndex, int *Param); void Cs2DecWriteConfig(unsigned char *CanData, unsigned long *LocId, int *CvIndex, int *Value, int *CtrlRslt); void Cs2DecAccSwitch6(unsigned char *CanData, unsigned long *LocId, int *Position, int *Current); void Cs2DecAccSwitch8(unsigned char *CanData, unsigned long *LocId, int *Position, int *Current, int *TimeFkt); void Cs2DecS88Poll5(unsigned char *CanData, unsigned long *Uid, int *NumModuls); void Cs2DecS88Poll7(unsigned char *CanData, unsigned long *Uid, int *Modul, int *State); void Cs2DecS88Event4(unsigned char *CanData, int *Device, int *Contact); void Cs2DecS88Event5(unsigned char *CanData, int *Device, int *Contact, int *Param); void Cs2DecS88Event8(unsigned char *CanData, int *Device, int *Contact, int *StateOld, int *StateNew, int *Time); void Cs2DecPing0(unsigned char *CanData); void Cs2DecPing8(unsigned char *CanData, unsigned long *Uid, int *SwVersion, int *DeviceId); void Cs2DecCanBootldr(unsigned char *CanData, char *Bytes); void Cs2DecStatus5(unsigned char *CanData, unsigned long *Uid, int *Index); void Cs2DecStatus6(unsigned char *CanData, unsigned long *Uid, int *Index, int *NumPackets); void Cs2DecStatus8(unsigned char *CanData, char *Bytes); #define Cs2DecConfigQuery0(CanMsg) void Cs2DecConfigQuery(unsigned char *CanData, char *FileName); void Cs2DecCfgdatStream6(unsigned char *CanData, unsigned long *Length, int *Crc); void Cs2DecCfgdatStream7(unsigned char *CanData, unsigned long *Length, int *Crc); void Cs2DecCfgdatStream8(unsigned char *CanData, char *Bytes); void Cs2DecAutomatic6(unsigned char *CanData, int *DeviceId, int *Func, int *Status, int *Param); void Cs2DecAutomatic8(unsigned char *CanData, int *DeviceId, int *Func, unsigned long *LocId); void Cs2DecDebugMessage(unsigned char *CanData, char *Message);
void Cs2EncDiscovery0(unsigned char *CanData); void Cs2EncDiscovery1(unsigned char *CanData, int Proto); void Cs2EncDiscovery5(unsigned char *CanData, unsigned long Uid, int Range); void Cs2EncDiscovery6(unsigned char *CanData, unsigned long Uid, int Range, int Ask); void Cs2EncBind(unsigned char *CanData, unsigned long Uid, unsigned int Sid); void Cs2EncMfxVerify6(unsigned char *CanData, unsigned long Uid, unsigned int Sid); void Cs2EncMfxVerify7(unsigned char *CanData, unsigned long Uid, unsigned int Sid, int Ask); void Cs2EncSpeed4(unsigned char *CanData, unsigned long LocId); void Cs2EncSpeed6(unsigned char *CanData, unsigned long LocId, int Speed); void Cs2EncDirection4(unsigned char *CanData, unsigned long LocId); void Cs2EncDirection5(unsigned char *CanData, unsigned long LocId, int Direction); void Cs2EncFunction5(unsigned char *CanData, unsigned long LocId, int Function); void Cs2EncFunction6(unsigned char *CanData, unsigned long LocId, int Function, int Value); void Cs2EncFunction8(unsigned char *CanData, unsigned long LocId, int Function, int Value, int FktVal); void Cs2EncReadConfig6(unsigned char *CanData, unsigned long LocId, int CvIndex); void Cs2EncReadConfig7(unsigned char *CanData, unsigned long LocId, int CvIndex, int Param); void Cs2EncWriteConfig(unsigned char *CanData, unsigned long LocId, int CvIndex, int Value, int CtrlRslt); void Cs2EncAccSwitch6(unsigned char *CanData, unsigned long LocId, int Position, int Current); void Cs2EncAccSwitch8(unsigned char *CanData, unsigned long LocId, int Position, int Current, int TimeFkt); void Cs2EncS88Poll5(unsigned char *CanData, unsigned long Uid, int NumModuls); void Cs2EncS88Poll7(unsigned char *CanData, unsigned long Uid, int Modul, int State); void Cs2EncS88Event4(unsigned char *CanData, int Device, int Contact); void Cs2EncS88Event5(unsigned char *CanData, int Device, int Contact, int Param); void Cs2EncS88Event8(unsigned char *CanData, int Device, int Contact, int StateOld, int StateNew, int Time); void Cs2EncPing0(unsigned char *CanData); void Cs2EncPing8(unsigned char *CanData, unsigned long Uid, int SwVersion, int DeviceId); void Cs2EncCanBootldr(unsigned char *CanData, char *Bytes); void Cs2EncStatus5(unsigned char *CanData, unsigned long Uid, int Index); void Cs2EncStatus6(unsigned char *CanData, unsigned long Uid, int Index, int NumPackets); void Cs2EncStatus8(unsigned char *CanData, char *Bytes); void Cs2EncConfigQuery0(unsigned char *CanData); void Cs2EncConfigQuery(unsigned char *CanData, char *FileName); void Cs2EncCfgdatStream6(unsigned char *CanData, unsigned long Length, int Crc); void Cs2EncCfgdatStream7(unsigned char *CanData, unsigned long Length, int Crc); void Cs2EncCfgdatStream8(unsigned char *CanData, char *Bytes); void Cs2EncAutomatic6(unsigned char *CanData, int DeviceId, int Func, int Status, int Param); void Cs2EncAutomatic8(unsigned char *CanData, int DeviceId, int Func, unsigned long LocId); void Cs2EncDebugMessage(unsigned char *CanData, char *Message);
int Cs2StatusInfoEncode(char *Buffer, int NumCfg, int NumStat, unsigned long SerienNummer, char *ArtikelNummer, char *ArtikelName); void Cs2StatusInfoDecode(char *Buffer, int *NumCfg, int *NumStat, unsigned long *SerienNummer, char *ArtikelNummer, char *ArtikelName);