Research Article

JAUS to EtherCAT Bridge: Toward Real-Time and Deterministic Joint Architecture for Unmanned Systems

Algorithm 2

CoE frame structure (header file: ecat_packet.h).
struct CAN_Packet_Header
{
 UINT32  ulDest;
 UINT32  ulSrc;
 UINT32  ulDestId;
 UINT32  ulSrcId;
 UINT32  ulLen;
 UINT32  ulId;
 UINT32  ulSta;
 UINT32  ulCmd;
 UINT32  ulExt;
 UINT32  ulRout;
};
struct CAN_Packet_Body
{
 //MbxHeader
 UINT16  Length
 UINT16  Address;
 UINT8  Channel_Prio;
 UINT8    Type_Cntr;
 //CoE_Cmd
 UINT16  Num_Res_Type;
 //CoE_Specific_Data
 UINT8    ulNodeId;
 UINT16  ulIndex;
 UINT8    ulSubIndex;
 UINT32  ulDataCnt;
};
struct CAN_Packet_Data
{
 UINT8  abSdoData 100 ;
};
struct CAN_Packet
{
 CAN_Packet_Header   can_pkt_header;
 CAN_Packet_Body    can_pkt_body;
 CAN_Packet_Data    can_pkt_data;
};
struct SDO_Services_Packet
{
 EthernetHeader     ethernet_header;
 EthercatFrameHeader   ethercat_frame_header;
 EthercatDatagramHeader
 ethercat_datagram_header;
 CAN_Packet      can_pkt;
 WorkingCounter    wkc;
};