XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
SOC间点对点通讯协议:协议层
SOC间点对点通讯协议:协议层 的协作图:
#define XWSSC_SOF   ((xwu8_t)0xAA)
 
#define XWSSC_EOF   (XWSSC_SOF ^ (xwu8_t)0xFF)
 
#define XWSSC_SOF_SIZE   (2U)
 
#define XWSSC_EOF_SIZE   (2U)
 
#define XWSSC_FRMHEAD_SIZE(size)   ((size) & 0xFU)
 
#define XWSSC_FRMHEAD_SIZE_MIRROR(size)   ((size) & 0xF0U)
 
#define XWSSC_FRMHEAD_MAXSIZE   (16U)
 
#define XWSSC_FRM_ONSTACK_MAXSIZE   (64U)
 
#define XWSSC_ID_MSK   (0xFFU)
 
#define XWSSC_ID(id)   ((xwu8_t)((xwu8_t)(id) & XWSSC_ID_MSK))
 
#define XWSSC_ECSIZE(head)
 
#define XWSSC_SDUPOS(head)   (&((head)->ecsdusz[XWSSC_ECSIZE(head)]))
 
#define XWSSC_RXSDUSIZE(slot)
 
#define XWSSC_CRC32_SIZE   (4U)
 
#define XWSSC_SDU_MAX_SIZE   (XWSSC_MEMPOOL_SIZE / 8)
 
#define XWSSC_TXTHD_STACK   (4096U)
 
#define XWSSC_RXTHD_STACK   (4096U)
 
#define xwssclogf(xwssc, lv, fmt, ...)
 
#define XWSSC_BUG()   XWOS_BUG()
 
#define XWSSC_BUG_ON(x)   XWOS_BUG_ON(x)
 
#define XWSSC_VALIDATE(exp, errstr, ...)
 
#define XWSSC_VALIDATE_FORCE(exp, errstr, ...)
 
enum  xwssc_flag_em { XWSSC_FLAG_CONNECT = 0x10U , XWSSC_FLAG_ACK = 0x80U , XWSSC_FLAG_SDU = 0x00U , XWSSC_FLAG_MSK = 0xF0U }
 协议内部标志 更多...
 
enum  xwssc_frm_ack_em {
  XWSSC_ACK_OK = 0 , XWSSC_ACK_ECONNRESET , XWSSC_ACK_EALREADY , XWSSC_ACK_NOMEM ,
  XWSSC_ACK_NUM
}
 应答信号枚举 更多...
 
xwer_t xwssc_grab (struct xwssc *xwssc)
 
xwer_t xwssc_put (struct xwssc *xwssc)
 
void xwssc_encode_sdusize (xwsz_t sdusize, xwu8_t *ecsdusz, xwu8_t *ecsize)
 
void xwssc_decode_sdusize (xwu8_t *ecsdusz, xwsz_t *sdusize)
 
xwu8_t xwssc_cal_head_chksum (xwu8_t data[], xwsz_t size)
 
bool xwssc_chk_head (xwu8_t data[], xwsz_t size)
 
union xwssc_slotxwssc_rxq_choose (struct xwssc *xwssc, xwu8_t port)
 
xwer_t xwssc_rxthd (struct xwssc *xwssc)
 
struct xwssc_carrierxwssc_txq_carrier_alloc (struct xwssc *xwssc)
 
void xwssc_txq_carrier_free (struct xwssc *xwssc, struct xwssc_carrier *car)
 
struct xwssc_carrierxwssc_txq_choose (struct xwssc *xwssc)
 
xwer_t xwssc_eq_msg (struct xwssc *xwssc, const xwu8_t sdu[], xwsz_t sdusize, xwu8_t pri, xwu8_t port, xwu8_t qos, xwssc_ntf_f ntfcb, void *cbarg, xwssc_txh_t *txhbuf)
 
xwer_t xwssc_tx_ack_sdu (struct xwssc *xwssc, xwu8_t port, xwu8_t id, xwu8_t ack)
 
xwer_t xwssc_txthd (struct xwssc *xwssc)
 

详细描述

宏定义说明

◆ XWSSC_BUG

#define XWSSC_BUG ( )    XWOS_BUG()

在文件 protocol.h68 行定义.

◆ XWSSC_BUG_ON

#define XWSSC_BUG_ON (   x)    XWOS_BUG_ON(x)

在文件 protocol.h69 行定义.

◆ XWSSC_CRC32_SIZE

#define XWSSC_CRC32_SIZE   (4U)

在文件 protocol.h55 行定义.

◆ XWSSC_ECSIZE

#define XWSSC_ECSIZE (   head)
值:
(XWSSC_FRMHEAD_SIZE((head)->headsize) - \
sizeof(struct xwssc_frmhead))
#define XWSSC_FRMHEAD_SIZE(size)
Definition protocol.h:41
XWSSC帧的信息头
Definition protocol.h:109

在文件 protocol.h49 行定义.

◆ XWSSC_EOF

#define XWSSC_EOF   (XWSSC_SOF ^ (xwu8_t)0xFF)

在文件 protocol.h37 行定义.

◆ XWSSC_EOF_SIZE

#define XWSSC_EOF_SIZE   (2U)

在文件 protocol.h39 行定义.

◆ XWSSC_FRM_ONSTACK_MAXSIZE

#define XWSSC_FRM_ONSTACK_MAXSIZE   (64U)

在文件 protocol.h44 行定义.

◆ XWSSC_FRMHEAD_MAXSIZE

#define XWSSC_FRMHEAD_MAXSIZE   (16U)

在文件 protocol.h43 行定义.

◆ XWSSC_FRMHEAD_SIZE

#define XWSSC_FRMHEAD_SIZE (   size)    ((size) & 0xFU)

在文件 protocol.h41 行定义.

◆ XWSSC_FRMHEAD_SIZE_MIRROR

#define XWSSC_FRMHEAD_SIZE_MIRROR (   size)    ((size) & 0xF0U)

在文件 protocol.h42 行定义.

◆ XWSSC_ID

#define XWSSC_ID (   id)    ((xwu8_t)((xwu8_t)(id) & XWSSC_ID_MSK))

在文件 protocol.h47 行定义.

◆ XWSSC_ID_MSK

#define XWSSC_ID_MSK   (0xFFU)

在文件 protocol.h46 行定义.

◆ XWSSC_RXSDUSIZE

#define XWSSC_RXSDUSIZE (   slot)
值:
((slot)->frmsize - \
XWSSC_FRMHEAD_SIZE((slot)->frm.head.headsize) - \
#define XWSSC_EOF_SIZE
Definition protocol.h:39
#define XWSSC_CRC32_SIZE
Definition protocol.h:55
#define XWSSC_SOF_SIZE
Definition protocol.h:38

在文件 protocol.h52 行定义.

◆ XWSSC_RXTHD_STACK

#define XWSSC_RXTHD_STACK   (4096U)

在文件 protocol.h59 行定义.

◆ XWSSC_SDU_MAX_SIZE

#define XWSSC_SDU_MAX_SIZE   (XWSSC_MEMPOOL_SIZE / 8)

在文件 protocol.h56 行定义.

◆ XWSSC_SDUPOS

#define XWSSC_SDUPOS (   head)    (&((head)->ecsdusz[XWSSC_ECSIZE(head)]))

在文件 protocol.h51 行定义.

◆ XWSSC_SOF

#define XWSSC_SOF   ((xwu8_t)0xAA)

在文件 protocol.h36 行定义.

◆ XWSSC_SOF_SIZE

#define XWSSC_SOF_SIZE   (2U)

在文件 protocol.h38 行定义.

◆ XWSSC_TXTHD_STACK

#define XWSSC_TXTHD_STACK   (4096U)

在文件 protocol.h58 行定义.

◆ XWSSC_VALIDATE

#define XWSSC_VALIDATE (   exp,
  errstr,
  ... 
)
值:
if (!(exp)) { \
return __VA_ARGS__; \
}

在文件 protocol.h72 行定义.

◆ XWSSC_VALIDATE_FORCE

#define XWSSC_VALIDATE_FORCE (   exp,
  errstr,
  ... 
)
值:
if (!(exp)) { \
return __VA_ARGS__; \
}

在文件 protocol.h80 行定义.

◆ xwssclogf

#define xwssclogf (   xwssc,
  lv,
  fmt,
  ... 
)

在文件 protocol.h65 行定义.

枚举类型说明

◆ xwssc_flag_em

协议内部标志

枚举值
XWSSC_FLAG_CONNECT 

连接标志

XWSSC_FLAG_ACK 

应答标志

XWSSC_FLAG_SDU 

数据

XWSSC_FLAG_MSK 

在文件 protocol.h88 行定义.

88 {
89 XWSSC_FLAG_CONNECT = 0x10U,
90 XWSSC_FLAG_ACK = 0x80U,
91 XWSSC_FLAG_SDU = 0x00U,
92 XWSSC_FLAG_MSK = 0xF0U,
93};
@ XWSSC_FLAG_MSK
Definition protocol.h:92
@ XWSSC_FLAG_SDU
Definition protocol.h:91
@ XWSSC_FLAG_ACK
Definition protocol.h:90
@ XWSSC_FLAG_CONNECT
Definition protocol.h:89

◆ xwssc_frm_ack_em

应答信号枚举

枚举值
XWSSC_ACK_OK 

OK

XWSSC_ACK_ECONNRESET 

链接被重置(远端复位?)

XWSSC_ACK_EALREADY 

已经完成

XWSSC_ACK_NOMEM 

内存不足

XWSSC_ACK_NUM 

ACK的数量

在文件 protocol.h98 行定义.

98 {
99 XWSSC_ACK_OK = 0,
104};
@ XWSSC_ACK_EALREADY
Definition protocol.h:101
@ XWSSC_ACK_OK
Definition protocol.h:99
@ XWSSC_ACK_NOMEM
Definition protocol.h:102
@ XWSSC_ACK_ECONNRESET
Definition protocol.h:100
@ XWSSC_ACK_NUM
Definition protocol.h:103

函数说明

◆ xwssc_cal_head_chksum()

xwu8_t xwssc_cal_head_chksum ( xwu8_t  data[],
xwsz_t  size 
)

◆ xwssc_chk_head()

bool xwssc_chk_head ( xwu8_t  data[],
xwsz_t  size 
)

◆ xwssc_decode_sdusize()

void xwssc_decode_sdusize ( xwu8_t ecsdusz,
xwsz_t sdusize 
)

◆ xwssc_encode_sdusize()

void xwssc_encode_sdusize ( xwsz_t  sdusize,
xwu8_t ecsdusz,
xwu8_t ecsize 
)

◆ xwssc_eq_msg()

xwer_t xwssc_eq_msg ( struct xwssc xwssc,
const xwu8_t  sdu[],
xwsz_t  sdusize,
xwu8_t  pri,
xwu8_t  port,
xwu8_t  qos,
xwssc_ntf_f  ntfcb,
void *  cbarg,
xwssc_txh_t txhbuf 
)

◆ xwssc_grab()

xwer_t xwssc_grab ( struct xwssc xwssc)

◆ xwssc_put()

xwer_t xwssc_put ( struct xwssc xwssc)

◆ xwssc_rxq_choose()

union xwssc_slot * xwssc_rxq_choose ( struct xwssc xwssc,
xwu8_t  port 
)

◆ xwssc_rxthd()

xwer_t xwssc_rxthd ( struct xwssc xwssc)

◆ xwssc_tx_ack_sdu()

xwer_t xwssc_tx_ack_sdu ( struct xwssc xwssc,
xwu8_t  port,
xwu8_t  id,
xwu8_t  ack 
)

◆ xwssc_txq_carrier_alloc()

struct xwssc_carrier * xwssc_txq_carrier_alloc ( struct xwssc xwssc)

◆ xwssc_txq_carrier_free()

void xwssc_txq_carrier_free ( struct xwssc xwssc,
struct xwssc_carrier car 
)

◆ xwssc_txq_choose()

struct xwssc_carrier * xwssc_txq_choose ( struct xwssc xwssc)

◆ xwssc_txthd()

xwer_t xwssc_txthd ( struct xwssc xwssc)