T-Box Basic dev
Loading...
Searching...
No Matches
icc_protocol.h File Reference

ICC 核间通信协议引擎定义,包含状态机、帧解析、ACK 重传及心跳管理等数据结构与接口 More...

#include "icc_config.h"
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  icc_proto_stats_t
struct  icc_ack_entry_t
struct  icc_parser_ctx_t
struct  icc_proto_mgr_t

Typedefs

typedef void(* icc_proto_send_func_t) (const uint8_t *buf, uint16_t len, void *userData)
typedef void(* icc_proto_msg_cb_t) (uint16_t cmd, const uint8_t *data, uint16_t len, void *userData)
typedef void(* icc_proto_evt_cb_t) (icc_proto_event_t event, void *userData)

Enumerations

enum  icc_proto_err_t {
  ICC_PROTO_OK = 0 , ICC_PROTO_BUSY = 1 , ICC_PROTO_FULL = 2 , ICC_ERR_STATE = 3 ,
  ICC_ERR_PARAM = 4
}
enum  icc_proto_state_t { ICC_PROTO_STOPPED = 0 , ICC_PROTO_HANDSHAKE = 1 , ICC_PROTO_RUNNING = 2 }
enum  icc_proto_event_t { ICC_EVT_HANDSHAKE_OK = 0 , ICC_EVT_HEARTBEAT_LOST = 1 , ICC_EVT_HANDSHAKE_FAIL = 2 }

Functions

icc_proto_err_t icc_proto_init (icc_proto_mgr_t *mgr)
 初始化 ICC 协议管理器。
void icc_proto_deinit (icc_proto_mgr_t *mgr)
 反初始化 ICC 协议管理器。
void icc_proto_start (icc_proto_mgr_t *mgr)
 启动 ICC 协议栈并进入握手状态。
void icc_proto_stop (icc_proto_mgr_t *mgr)
 停止 ICC 协议栈。
icc_proto_err_t icc_proto_send (icc_proto_mgr_t *mgr, uint16_t cmd, uint8_t need_ack, const uint8_t *data, uint16_t len)
 发送一条 ICC 协议消息。
icc_proto_err_t icc_proto_send_space_enough (icc_proto_mgr_t *mgr, uint8_t need_ack, uint16_t len)
 检查 ICC 协议发送空间是否充足。
void icc_proto_feed (icc_proto_mgr_t *mgr, const uint8_t *buf, uint16_t len)
 向 ICC 协议栈输入接收字节流。
void icc_proto_tick (icc_proto_mgr_t *mgr)
 驱动 ICC 协议栈周期处理。
void icc_proto_set_send_func (icc_proto_mgr_t *mgr, icc_proto_send_func_t func)
 设置 ICC 协议底层发送函数。
void icc_proto_on_message (icc_proto_mgr_t *mgr, icc_proto_msg_cb_t cb)
 设置 ICC 协议消息接收回调。
void icc_proto_on_event (icc_proto_mgr_t *mgr, icc_proto_evt_cb_t cb)
 设置 ICC 协议事件回调。
void icc_proto_set_user_data (icc_proto_mgr_t *mgr, void *user_data)
 设置 ICC 协议用户数据。
icc_proto_state_t icc_proto_get_state (icc_proto_mgr_t *mgr)
 获取 ICC 协议状态。
void icc_proto_get_stats (icc_proto_mgr_t *mgr, icc_proto_stats_t *stats)
 获取 ICC 协议统计信息。
void icc_proto_reset_stats (icc_proto_mgr_t *mgr)
 清空 ICC 协议统计信息。

Detailed Description

ICC 核间通信协议引擎定义,包含状态机、帧解析、ACK 重传及心跳管理等数据结构与接口

Version
1.0.0
Date
2026-07-04

Function Documentation

◆ icc_proto_deinit()

void icc_proto_deinit ( icc_proto_mgr_t * mgr)

反初始化 ICC 协议管理器。

Parameters
mgrICC 协议管理器。

◆ icc_proto_feed()

void icc_proto_feed ( icc_proto_mgr_t * mgr,
const uint8_t * buf,
uint16_t len )

向 ICC 协议栈输入接收字节流。

Parameters
mgrICC 协议管理器。
buf接收字节流。
len接收字节流长度。

◆ icc_proto_get_state()

icc_proto_state_t icc_proto_get_state ( icc_proto_mgr_t * mgr)

获取 ICC 协议状态。

Parameters
mgrICC 协议管理器。
Returns
ICC 协议状态。

◆ icc_proto_get_stats()

void icc_proto_get_stats ( icc_proto_mgr_t * mgr,
icc_proto_stats_t * stats )

获取 ICC 协议统计信息。

Parameters
mgrICC 协议管理器。
stats统计信息输出缓冲区。

◆ icc_proto_init()

icc_proto_err_t icc_proto_init ( icc_proto_mgr_t * mgr)

初始化 ICC 协议管理器。

Parameters
mgrICC 协议管理器。
Returns
0 成功,其他 失败

◆ icc_proto_on_event()

void icc_proto_on_event ( icc_proto_mgr_t * mgr,
icc_proto_evt_cb_t cb )

设置 ICC 协议事件回调。

Parameters
mgrICC 协议管理器。
cb事件回调。

◆ icc_proto_on_message()

void icc_proto_on_message ( icc_proto_mgr_t * mgr,
icc_proto_msg_cb_t cb )

设置 ICC 协议消息接收回调。

Parameters
mgrICC 协议管理器。
cb消息接收回调。

◆ icc_proto_reset_stats()

void icc_proto_reset_stats ( icc_proto_mgr_t * mgr)

清空 ICC 协议统计信息。

Parameters
mgrICC 协议管理器。

◆ icc_proto_send()

icc_proto_err_t icc_proto_send ( icc_proto_mgr_t * mgr,
uint16_t cmd,
uint8_t need_ack,
const uint8_t * data,
uint16_t len )

发送一条 ICC 协议消息。

Parameters
mgrICC 协议管理器。
cmdICC 命令字。
need_ack是否需要 ACK。
data待发送消息数据,可为空。
len待发送消息长度。
Returns
0 成功,其他 失败

◆ icc_proto_send_space_enough()

icc_proto_err_t icc_proto_send_space_enough ( icc_proto_mgr_t * mgr,
uint8_t need_ack,
uint16_t len )

检查 ICC 协议发送空间是否充足。

Parameters
mgrICC 协议管理器。
need_ack是否需要 ACK。
len待发送消息长度。
Returns
0 空间充足,其他 空间不足或状态异常

◆ icc_proto_set_send_func()

void icc_proto_set_send_func ( icc_proto_mgr_t * mgr,
icc_proto_send_func_t func )

设置 ICC 协议底层发送函数。

Parameters
mgrICC 协议管理器。
func底层发送函数。

◆ icc_proto_set_user_data()

void icc_proto_set_user_data ( icc_proto_mgr_t * mgr,
void * user_data )

设置 ICC 协议用户数据。

Parameters
mgrICC 协议管理器。
user_data用户数据。

◆ icc_proto_start()

void icc_proto_start ( icc_proto_mgr_t * mgr)

启动 ICC 协议栈并进入握手状态。

Parameters
mgrICC 协议管理器。

◆ icc_proto_stop()

void icc_proto_stop ( icc_proto_mgr_t * mgr)

停止 ICC 协议栈。

Parameters
mgrICC 协议管理器。

◆ icc_proto_tick()

void icc_proto_tick ( icc_proto_mgr_t * mgr)

驱动 ICC 协议栈周期处理。

Parameters
mgrICC 协议管理器。