mr_cs2ms2

Bibliothek

Projektlibs/mr_cs2ms2
Librarylibmr_cs2ms2.a
Includedateimr_cs2ms2.h

Definitionen

Datentypen

typedef struct {
   unsigned long Id;
   unsigned char Dlc; /* = number of data bytes */
   unsigned char Data[MR_CS2_NUM_CAN_BYTES];
   BOOL IsCs2;
   unsigned Hash;     /* in network order */
   unsigned Response;
   unsigned Command;
   unsigned Prio;
} MrCs2CanDataType;

Konstanten

Konstanten für Anzahl CAN Datenbytes

#define MR_CS2_NUM_CAN_BYTES 8

Konstanten füer Zugriff auf MrCs2CanDataType Struktur

#define MrCs2IsCs2(CanData)                  (CanData)->IsCs2
#define MrCs2GetCommand(CanData)             (CanData)->Command
#define MrCs2GetSystemSubcmd(CanData)        (CanData)->Data[4]
#define MrCs2SetCommand(CanData,Cmd)         (CanData)->Command=Cmd
#define MrCs2SetSystemSubcmd(CanData,SubCmd) (CanData)->Data[4]=SubCmd
#define MrCs2GetId(CanData)                  (CanData)->Id
#define MrCs2SetId(CanData,id)               (CanData)->Id=id
#define MrCs2GetDlc(CanData)                 (CanData)->Dlc
#define MrCs2SetDlc(CanData,dlc)             (CanData)->Dlc=dlc
#define MrCs2GetIsCs2(CanData)               (CanData)->IsCs2
#define MrCs2SetIsCs2(CanData,is_cs2)        (CanData)->IsCs2=is_cs2
#define MrCs2GetHash(CanData)                (CanData)->Hash
#define MrCs2SetHash(CanData,hash)           (CanData)->Hash=hash
#define MrCs2GetResponse(CanData)            (CanData)->Response
#define MrCs2SetResponse(CanData,response)   (CanData)->Response=response
#define MrCs2GetPrio(CanData)                (CanData)->Prio
#define MrCs2SetPrio(CanData,prio)           (CanData)->Prio=prio
#define MrCs2GetData(CanData)                (CanData)->Data

Konstanten für CS2 Ethernet

#define MR_CS2_UDP_LOCAL_PORT  15731
#define MR_CS2_UDP_REMOTE_PORT 15730
#define MR_CS2_UDP_LENGTH 13

Returnwerte für MrEthCs2Recv()

#define MR_ETH_CS2_RCV_ERROR  -1
#define MR_ETH_CS2_RCV_CLOSED 0
#define MR_ETH_CS2_RCV_OK     1

Makros

#define MrEthCs2Close(socket)   close(socket)

Funktionen

void MrEthCs2Encode(char *UdpFrame, MrCs2CanDataType *CanMsg);
void MrEthCs2Decode(MrCs2CanDataType *CanMsg, char *UdpFrame);
int MrEthCs2StartServer(void);
int MrEthCs2StartBcServer(void);
int MrEthCs2StartAppServer(void);
int MrEthCs2Accept(int ServSock);
void MrEthCs2MkBcAddr(struct sockaddr_in *baddr, char *IpAddr);
int MrEthCs2Recv(int Socket, struct sockaddr_in *ClntAddr, char *Data);
void MrEthCs2SendTo(int Socket, struct sockaddr_in *baddr, char *Data);
void MrEthCs2Send(int Socket, char *Data);
int MrEthCs2ConnectClient(void);
int MrEthCs2ConnectTcpClient(struct sockaddr_in *UdpSrvAddr);

void MrCs2Decode(MrCs2CanDataType *CanMsg, struct can_frame *CanFrame);
void MrCs2Encode(MrCs2CanDataType *CanMsg, struct can_frame *CanFrame);

void MrCs2DumpCanMsg(MrCs2CanDataType *CanMsg, char *Info);
void MrCs2Trace(MrCs2CanDataType *CanMsg);


Zurück zur Modellbahn Startseite - Zurück zur Homepage