MR CS2MS2
 Alle Datenstrukturen Dateien Funktionen Variablen Makrodefinitionen Seiten
Datenstrukturen | Makrodefinitionen | Funktionen
mr_cs2ms2.h-Dateireferenz
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <linux/can.h>
#include <boolean.h>
#include <bitmask.h>

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  MrCs2CanDataType

Makrodefinitionen

#define MR_CS2_NUM_CAN_BYTES   8
#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
#define MS1_CAN_ID_NODE_SHIFT   0
#define MS1_CAN_ID_DIRECTION_SHIFT   7
#define MS1_CAN_ID_MID_SHIFT   8
#define MS1_CAN_ID_STUFE_SHIFT   15
#define MS1_CAN_ID_UID_SHIFT   18
#define MS1_CAN_ID_PRIO_SHIFT   26
#define MS1_CAN_ID_NODE_MASK   BIT_MASK( 0, 6)
#define MS1_CAN_ID_DIRECTION_MASK   BIT_MASK( 7, 7)
#define MS1_CAN_ID_MID_MASK   BIT_MASK( 8,14)
#define MS1_CAN_ID_STUFE_MASK   BIT_MASK(15,17)
#define MS1_CAN_ID_UID_MASK   BIT_MASK(18,25)
#define MS1_CAN_ID_PRIO_MASK   BIT_MASK(26,28)
#define MS1_CAN_ID_CMD_SHIFT   7
#define MS1_CAN_ID_OBJECT_SHIFT   10
#define MS1_CAN_ID_HANDLE1_SHIFT   10
#define MS1_CAN_ID_HANDLE2_SHIFT   18
#define MS1_CAN_ID_CMD_MASK   BIT_MASK( 7, 9)
#define MS1_CAN_ID_OBJECT_MASK   BIT_MASK(10,25)
#define MS1_CAN_ID_HANDLE1_MASK   BIT_MASK(10,25)
#define MS1_CAN_ID_HANDLE2_MASK   BIT_MASK(10,25)
#define MR_CS2_UDP_LOCAL_PORT   15731
#define MR_CS2_UDP_REMOTE_PORT   15730
#define MR_CS2_UDP_LENGTH   13
#define MR_ETH_CS2_RCV_ERROR   -1
#define MR_ETH_CS2_RCV_CLOSED   0
#define MR_ETH_CS2_RCV_OK   1
#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)

Ausführliche Beschreibung

Makro-Dokumentation

#define MR_CS2_NUM_CAN_BYTES   8

Konstanten für Anzahl CAN Datenbytes

#define MR_CS2_UDP_LENGTH   13
#define MR_CS2_UDP_LOCAL_PORT   15731

Konstanten für CS2 Ethernet

#define MR_CS2_UDP_REMOTE_PORT   15730
#define MR_ETH_CS2_RCV_CLOSED   0
#define MR_ETH_CS2_RCV_ERROR   -1

Returnwerte für MrEthCs2Recv()

#define MR_ETH_CS2_RCV_OK   1
#define MrCs2GetCommand (   CanData)    (CanData)->Command
#define MrCs2GetData (   CanData)    (CanData)->Data
#define MrCs2GetDlc (   CanData)    (CanData)->Dlc
#define MrCs2GetHash (   CanData)    (CanData)->Hash
#define MrCs2GetId (   CanData)    (CanData)->Id
#define MrCs2GetIsCs2 (   CanData)    (CanData)->IsCs2
#define MrCs2GetPrio (   CanData)    (CanData)->Prio
#define MrCs2GetResponse (   CanData)    (CanData)->Response
#define MrCs2GetSystemSubcmd (   CanData)    (CanData)->Data[4]
#define MrCs2IsCs2 (   CanData)    (CanData)->IsCs2

Konstanten füer Zugriff auf MrCs2CanDataType Struktur

#define MrCs2SetCommand (   CanData,
  Cmd 
)    (CanData)->Command=Cmd
#define MrCs2SetDlc (   CanData,
  dlc 
)    (CanData)->Dlc=dlc
#define MrCs2SetHash (   CanData,
  hash 
)    (CanData)->Hash=hash
#define MrCs2SetId (   CanData,
  id 
)    (CanData)->Id=id
#define MrCs2SetIsCs2 (   CanData,
  is_cs2 
)    (CanData)->IsCs2=is_cs2
#define MrCs2SetPrio (   CanData,
  prio 
)    (CanData)->Prio=prio
#define MrCs2SetResponse (   CanData,
  response 
)    (CanData)->Response=response
#define MrCs2SetSystemSubcmd (   CanData,
  SubCmd 
)    (CanData)->Data[4]=SubCmd
#define MrEthCs2Close (   socket)    close(socket)
#define MS1_CAN_ID_CMD_MASK   BIT_MASK( 7, 9)
#define MS1_CAN_ID_CMD_SHIFT   7
#define MS1_CAN_ID_DIRECTION_MASK   BIT_MASK( 7, 7)
#define MS1_CAN_ID_DIRECTION_SHIFT   7
#define MS1_CAN_ID_HANDLE1_MASK   BIT_MASK(10,25)
#define MS1_CAN_ID_HANDLE1_SHIFT   10
#define MS1_CAN_ID_HANDLE2_MASK   BIT_MASK(10,25)
#define MS1_CAN_ID_HANDLE2_SHIFT   18
#define MS1_CAN_ID_MID_MASK   BIT_MASK( 8,14)
#define MS1_CAN_ID_MID_SHIFT   8
#define MS1_CAN_ID_NODE_MASK   BIT_MASK( 0, 6)
#define MS1_CAN_ID_NODE_SHIFT   0
#define MS1_CAN_ID_OBJECT_MASK   BIT_MASK(10,25)
#define MS1_CAN_ID_OBJECT_SHIFT   10
#define MS1_CAN_ID_PRIO_MASK   BIT_MASK(26,28)
#define MS1_CAN_ID_PRIO_SHIFT   26
#define MS1_CAN_ID_STUFE_MASK   BIT_MASK(15,17)
#define MS1_CAN_ID_STUFE_SHIFT   15
#define MS1_CAN_ID_UID_MASK   BIT_MASK(18,25)
#define MS1_CAN_ID_UID_SHIFT   18

Dokumentation der Funktionen

void MrCs2Decode ( MrCs2CanDataType CanMsg,
struct can_frame *  CanFrame 
)
void MrCs2DumpCanMsg ( MrCs2CanDataType CanMsg,
char *  Info 
)
void MrCs2Encode ( MrCs2CanDataType CanMsg,
struct can_frame *  CanFrame 
)
void MrCs2Trace ( MrCs2CanDataType CanMsg)
int MrEthCs2Accept ( int  ServSock)
int MrEthCs2ConnectClient ( void  )
int MrEthCs2ConnectTcpClient ( struct sockaddr_in *  UdpSrvAddr)
void MrEthCs2Decode ( MrCs2CanDataType CanMsg,
char *  UdpFrame 
)
void MrEthCs2Encode ( char *  UdpFrame,
MrCs2CanDataType CanMsg 
)
void MrEthCs2MkBcAddr ( struct sockaddr_in *  baddr,
char *  IpAddr 
)
int MrEthCs2Recv ( int  Socket,
struct sockaddr_in *  ClntAddr,
char *  Data 
)
void MrEthCs2Send ( int  Socket,
char *  Data 
)
void MrEthCs2SendTo ( int  Socket,
struct sockaddr_in *  baddr,
char *  Data 
)
int MrEthCs2StartAppServer ( void  )
int MrEthCs2StartBcServer ( void  )
int MrEthCs2StartServer ( void  )