ethercat foe字节对齐解决方案

发现ecat从站的代码没实现字节对齐,头是3字节,在转换foe数据会丢数数据

修改前

/**
 * \brief Mailbox header
 */
typedef struct MBX_STRUCT_PACKED_START
{
    UINT16                          Length; /**< \brief Length*/
    UINT16                          Address; /**< \brief Address*/

    UINT16                          Flags[1]; /**< \brief Flags*/
    #define    MBX_OFFS_TYPE        0 /**< \brief Protocol type offset*/
    #define    MBX_MASK_TYPE        0x0F00 /**< \brief Protocol type mask*/
    #define    MBX_SHIFT_TYPE       8 /**< \brief Protocol type shift*/
    #define    MBX_OFFS_COUNTER     0 /**< \brief Protocol counter offset*/
    #define    MBX_MASK_COUNTER     0xF000 /**< \brief Protocol counter mask*/
    #define    MBX_SHIFT_COUNTER    12 /**< \brief Protocol counter shift*/
}MBX_STRUCT_PACKED_END
TMBXHEADER;
修改后,加入#pragma pack(1) 不对齐

#pragma pack

你可能感兴趣的:(java,前端,服务器)