更新时间:2024-11-20 08:51:33下载pdf
TuyaOS SDK 是借助设备的联网能力,直接与涂鸦 AI +开发者平台、涂鸦 App 建立通信链路并进行涂鸦标准数据交互的一个软件中间件。本文为您介绍 TuyaOS SDK 的 Linux 版本。
TuyaOS SDK Linux 版是以 C 语言动态链接库(.so)或者静态库(.a)的形式提供给您。因此,您需要提供其系统的交叉编译工具链打包 SDK 。
同时,TuyaOS SDK Linux 版也会定时上传到 GitHub,如果编译的产物已包含您的交叉编译工具链,可以直接下载使用。
目录结构说明以及使用方法,请参见产物包的 README.md
文件。
├── build_App.sh ├── CHANGELOG.md ├── Apps ├── platforms └── sdk ├── include └── lib ├── libtuya_iot.a
uuid
和 authkey
。uuid
和 authkey
成对出现,每一台设备都必须拥有专属的 uuid
和 authkey
。如果调试过程中需要使用多组 uuid
和 authkey
, 请提交工单。tuya_iot_set_gw_prod_info
设置。注意:Demo 中
pid
、uuid
和authkey
仅用作测试使用,不能用于实际产品,否则会造成后续产品不可用。pid
需要您自行从涂鸦开发者平台申请。每一台设备都必须拥有专属的uuid
和authkey
。
函数原型
OPERATE_RET tuya_iot_init(IN CONST CHAR_T *fs_storge_path)
功能说明(Summary)
用于涂鸦 IoT 系统的初始化,必须最先调用。
参数说明(Parameters)
参数名称 | 说明 |
---|---|
fs_storge_path | 为 SDK 分配可读写的路径。 路径长度不大于 110 字节。 |
返回值(Return Values)
返回值 | 说明 |
---|---|
OPRT_OK | 成功 |
错误码 | 执行失败返回的错误码 |
函数原型
CHAR_T *tuya_iot_get_sdk_info(VOID);
功能说明(Summary)
获取 SDK 版本信息。
参数说明(Parameters)
参数名称 | 说明 |
---|---|
VOID | 空 |
返回值(Return Values)
返回值 | 说明 |
---|---|
SDK 信息字符串 | 包含 SDK 的编译时间、平台、版本号和功能等。 |
函数原型
typedef struct {
GW_STATUS_CHANGED_CB gw_status_cb;
GW_UG_INFORM_CB gw_ug_cb;
GW_RESET_IFM_CB gw_reset_cb;
DEV_OBJ_DP_CMD_CB dev_obj_dp_cb;
DEV_RAW_DP_CMD_CB dev_raw_dp_cb;
DEV_DP_QUERY_CB dev_dp_query_cb;
ACTIVE_SHORTURL_CB active_shorturl;
}TY_IOT_CBS_S;
功能说明(Summary)
SDK 回调接口。
成员说明
成员名称 | 说明 |
---|---|
gw_status_cb | SDK 内部状态变化的时候会进行调用,详见 gw_status_cb。 |
gw_ug_cb | SDK 检测到的时候会进行调用,详见 gw_ug_cb。 |
gw_reset_cb | SDK 进行设备重置的时候进行调用,详见 gw_reset_cb。 |
dev_obj_dp_cb | SDK 收到 DP 的时候进行调用,详见 dev_obj_dp_cb。 |
dev_raw_dp_cb | SDK 收到 RAW DP的时候进行调用,详见 dev_raw_dp_cb。 |
dev_dp_query_cb | SDK 收到 DP 查询命令的时候进行调用,详见 dev_dp_query_cb。 |
active_shorturl | SDK 收到二维码连接的时候进行调用,详见 active_shourturl_cb。 |
函数原型
VOID gw_status_cb(IN CONST GW_STATUS_E status);
/* tuya sdk gateway status info */
typedef BYTE_T GW_STATUS_E;
#define GW_RESET 0 // gw reset
#define GW_ACTIVED 1 // gw actived
#define GW_FIRST_START 2 // start tuya-sdk in the first time.
#define GW_NORMAL 3 // tuya-sdk is actived and started
成员说明
成员名称 | 说明 |
---|---|
GW_RESET | 复位的时候调用(本地复位,App 移除设备)。 |
GW_ACTIVED | 只在激活成功的时候回调,只有一次。 |
GW_FIRST_START | 每次重启都会调用。 |
GW_NORMAL | 只有当设备激活成功后,每次重启都会调用。 |
函数原型
OPERATE_RET tuya_iot_soc_init(IN CONST TY_IOT_CBS_S *cbs, IN CONST CHAR_T *product_key, IN CONST CHAR_T *sw_ver);
功能说明
联网模块 SoC 设备初始化接口。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
cbs | 回调函数数组,您在回调函数中实现自己的功能。 | TY_IOT_CBS_S* | 是 | 参看例子的中的使用方法。 |
product_key | 从涂鸦开放平台获取的 product key | 字符串 | 是 | 注意:长度不超过 16 个字节。 |
sw_ver: | 软件版本号 | 字符串 | 是 | 设备固件版本号。 合法的格式:xx.xx.xx (0 <=x <= 9) |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 执行失败返回的错误码 |
函数原型
OPERATE_RET tuya_iot_set_gw_prod_info(IN CONST GW_PROD_INFO_S *prod_info);
设置联网模块的授权信息,授权信息需通过涂鸦获取,否则设备无法正常使用。
typedef struct {
CHAR_T *uuid;
CHAR_T *auth_key;
} GW_PROD_INFO_S;
成员说明
成员名称 | 说明 |
---|---|
uuid | uuid 字符串。一定不能为 NULL 。 |
auth_key | auth_key 字符串。一定不能为 NULL 。 |
参数说明(Parameters)
参数名称 | 说明 |
---|---|
prod_info | 产品信息。见 GW_PROD_INFO_S |
返回值(Return Values)
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 执行失败返回的错误码 |
函数原型
OPERATE_RET tuya_iot_reg_get_wf_nw_stat_cb(IN CONST GET_WF_NW_STAT_CB nw_stat_cb);
功能说明(Summary)
在注册的回调函数中,您根据回调函数参数获取当前网络状态。
参数说明(Parameters)
参数名称 | 说明 |
---|---|
nw_stat_cb | 注册网络状态回调函数 |
回调函数 nw_stat_cb
参数为 GW_WIFI_NW_STAT_E
类型, 定义如下:
/* tuya sdk definition of wired-net status */
typedef uint8_t GW_BASE_NW_STAT_T;
/* offline in LAN. user wired callback <tuya_hal_wired_station_conn> return <false> */
#define GB_STAT_LAN_UNCONN 0
/* online in LAN, offline in WAN.
user wired callback <tuya_hal_wired_station_conn> return <true> but mqtt is offline
*/
#define GB_STAT_LAN_CONN 1
/* online in WAN.
user wired callback <tuya_hal_wired_station_conn> return <true> and mqtt is online
*/
#define GB_STAT_CLOUD_CONN 2
返回值(Return Values)
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 执行失败返回的错误码 |
您通过 涂鸦智能 App 扫码进行激活和绑定设备。
函数原型
VOID active_shourturl_cb(OUT CONST CHAR_T *shorturl);
功能说明
获取二维码连接回调。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
shorturl | 格式:{“shorturl”: “qrcode link”},需要把qrcode link转成二维码,如果NULL,则获取失败 | CONST CHAR_T * | 是 | - |
返回值
无。
您可通过 App 进行重置。
函数原型
VOID gw_reset_cb(GW_RESET_TYPE_E type);
功能说明(Summary)
您注册 TY_IOT_CBS_S 的回调函数 gw_reset_cb
。
参数说明(Parameters)
参数名称 | 说明 |
---|---|
type | 空 |
GW_RESET_TYPE_E
定义:
typedef enum {
GW_LOCAL_RESET_FACTORY = 0,
GW_REMOTE_UNACTIVE,
GW_LOCAL_UNACTIVE,
GW_REMOTE_RESET_FACTORY,
GW_RESET_DATA_FACTORY, //need clear local data when active
}GW_RESET_TYPE_E;
目前回调中需要处理 GW_REMOTE_RESET_FACTORY
以及 GW_RESET_DATA_FACTORY
重置类型,重置后应用需要重启。
返回值(Return Values)
返回值 | 说明 |
---|---|
VOID | 空 |
SDK 留有本地重置网关能力,您可通过按键等方式本地重置网关。
函数原型
OPERATE_RET tuya_iot_gw_unactive(VOID);
功能说明(Summary)
重置设备,解除网关有 App 的绑定关系,使得网关处于非激活(待配网)状态。
注意:该函数为异步,执行后会触发 gw_reset_cb 回调,只需在该回调中处理进程重启。
参数说明(Parameters)
参数名称 | 说明 |
---|---|
VOID | 空 |
返回值(Return Values)
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 执行失败返回的错误码 |
涂鸦提供基于 MQTT 网络应用协议,实现设备控制和状态上报,MQTT 是一个轻量的发布订阅模式消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用设计。
TuyaOS SDK 封装了 MQTT 协议层实现,以功能点(以下称为 DP 点)的形式呈现,支持数值型、布尔型、枚举型、字符串型、故障型,RAW 型数据,像定义 C 变量一样简单。
开发者需要根据设备功能在涂鸦开发者平台创建对应的功能点,新建 DP 点说明参见自定义功能。
特点
函数原型
VOID dev_obj_dp_cb(IN CONST TY_RECV_OBJ_DP_S *dp);
功能说明
OBJ 功能点信息命令回调。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
dp | TY_RECV_OBJ_DP_S 中包含:
|
TY_RECV_OBJ_DP_S* | 是 | 参见开发者平台中功能点定义。 |
返回值
返回值 | 说明 |
---|---|
无 | 无返回值 |
错误码 | 执行失败返回的错误码 |
函数原型
VOID dev_raw_dp_cb(IN CONST TY_RECV_RAW_DP_S *dp);
功能说明
透传类功能点信息命令回调。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
dp | 该结构体中包含:
|
TY_RECV_RAW_DP_S* | 是 | 无 |
返回值
无。
函数原型
VOID dev_dp_query_cb(IN CONST TY_DP_QUERY_S *dp_qry);
功能说明
设备特定数据查询入口。可选实现。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
dp_qry | TY_DP_QUERY_S* | 是 |
返回值
无。
函数原型
OPERATE_RET dev_report_dp_json_async(IN CONST CHAR_T *dev_id, IN CONST TY_OBJ_DP_S *dp_data,IN CONST UINT_T cnt);
功能说明
异步方式,上报功能点信息。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
dev_id | 设备 ID | 字符串 | 是 | 根据设备的类型进行设置:
|
dp_data | 功能点数据结构体 | TY_OBJ_DP_S 结构体数组指针 | 是 | |
cnt | dp_data 结构体数组个数 |
UINT_T | 是 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 执行失败返回的错误码 |
函数原型
OPERATE_RET dev_report_dp_raw_sync (IN CONST CHAR_T *dev_id, IN CONST BYTE_T dpid, IN CONST
BYTE_T *data,IN CONST UINT_T len,
IN CONST UINT_T timeout);
功能说明
设备透传数据同步上报接口,由调用者保障数据上报的可靠性。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
dev_id | 设备 ID | 字符串 | 是 | 根据设备的类型进行设置:
|
dpid | 功能点 ID | UINT_T | 是 | |
data | 数据 | BYTE_T * | 是 | |
len | 数据长度 | UINT_T | 是 | |
timeout | 函数阻塞超时时间 | UINT_T | 是 | 单位为秒 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 执行失败返回的错误码 |
函数原型
OPERATE_RET dev_report_dp_stat_sync (IN CONST CHAR_T *dev_id, IN CONST TY_OBJ_DP_S *dp_data, IN CONST UINT_T cnt, IN CONST UINT_T timeout);
功能说明
设备结构化数据同步上报接口,由调用者保障数据上报的可靠性,通常用于统计类数据的上报。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
dev_id | 设备 ID | 字符串 | 是 | 根据设备的类型进行设置:
|
dp_data | 功能点信息结构体数组 | TY_OBJ_DP_S * | 是 | |
cnt | 功能点状态数组长度 | UINT_T | 是 | |
timeout | 函数阻塞超时时间 | UINT_T | 是 | 单位为秒 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 执行失败返回的错误码 |
设备固件上传到云端后,设备不会立即收到升级消息。目前涂鸦支持以下升级方式:
/span>
函数原型
VOID gw_ug_cb(IN CONST FW_UG_S *fw);
功能说明(Summary)
您注册TY_IOT_CBS_S的回调函数 gw_ug_cb
。
参数说明(Parameters)
参数名称 | 说明 |
---|---|
fw | 固件升级信息 |
FW_UG_S定义:
/* tuya sdk ota firmware info */
typedef struct {
DEV_TYPE_T tp; // firmware type
UPGRADE_TYPE_T type;
CHAR_T fw_url[FW_URL_LEN+1]; // firmware download url
CHAR_T sw_ver[SW_VER_LEN+1]; // firmware version
UINT_T file_size; // firmware size in BYTE
CHAR_T fw_hmac[FW_HMAC_LEN+1]; // firmware hmac
}FW_UG_S;
函数原型
OPERATE_RET tuya_iot_upgrade_gw(IN CONST FW_UG_S *fw,
IN CONST GET_FILE_DATA_CB get_file_cb,
IN CONST UPGRADE_NOTIFY_CB upgrd_nofity_cb,
IN CONST PVOID_T pri_data,
BOOL_T notify,
UINT_T download_buf_size);
功能说明
联网模块固件升级处理接口。
参数说明
名称 | 说明 | 类型 | 是否必选 | 备注 |
---|---|---|---|---|
fw | 固件信息 | FW_UG_S 结构体指针 | 是 | |
get_file_cb | 下载内容存储 | 回调函数 | 是 | |
upgrd_nofity_cb | 通知应用的升级状态 | 回调函数 | 是 | |
pri_data | 传递给 get_file_cb 以及 upgrd_nofity_cb 的参数 |
指针 | 否 | 如果不传参数,则设置为 NULL 。 |
notify | 选择是否由 SDK 上报升级进度 | 布尔型 | 是 | TRUE 为 SDK 上报,FALSE 为应用层上报。 |
download_buf_size | 下载最大缓存,单位字节 | UINT_T | 否 | 如果传入 0 , 则下载最大缓存为 SDK 默认缓存大小。 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 成功 |
错误码 | 执行失败返回的错误码 |
函数原型
OPERATE_RET tuya_iot_dev_upgd_progress_rept(IN CONST UINT_T percent, IN CONST CHAR_T *devid, IN CONST DEV_TYPE_T tp);
功能说明
上报升级进度。
参数说明
名称 | 说明 | 类型 | 是否必选 | 备注 |
---|---|---|---|---|
percent | 升级进度值 | UINT_T | 是 | 0~99 |
devid | 根据设备的类型进行设置:
|
CHAR_T * | 是 | 参考 Demo |
tp | 设备类型 | DEV_TYPE_T | 是 | 参考 Demo |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 成功 |
错误码 | 执行失败返回的错误码 |
TuyaOS 日志管理支持日志的输出、重定向功能。默认情况下,TuyaOS SDK 的日志输出到标准输出终端,同时支持重定向,例如输出到文件或云端等。
函数原型
OPERATE_RET AddOutputTerm(IN CONST CHAR_T *name,IN CONST LOG_OUTPUT term);
功能说明
为 TuyaOS SDK 日志新增一个输出回调,用于将日志写到文件。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
name | 日志回调名称。 | 字符串 | 是 | 可用于 DelOutputTerm 以注销对应的回调。 |
term | LOG_OUTPUT | 回调 | 是 | 无 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 执行失败返回的错误码 |
函数原型
VOID DelOutputTerm(IN CONST CHAR_T *name);
功能说明
注销 AddOutputTerm 接口注册的日志回调。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
name | 日志回调名称 | 字符串 | 是 | 注销 AddOutputTerm 接口注册的日志回调 |
返回值
VOID
函数原型
OPERATE_RET SetLogManageAttr(IN CONST LOG_LEVEL curLogLevel);
功能说明
设置日志等级。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
curLogLevel | 日志等级 | UINT | 是 | 参考 uni_log.h 说明 |
返回值
返回值 | 说明 |
---|---|
OPRT_OK | 操作成功 |
错误码 | 执行失败返回的错误码 |
添加一个系统定时器
函数原型
OPERATE_RET sys_add_timer(IN CONST P_TIMER_FUNC pTimerFunc,
IN CONST PVOID pTimerArg, OUT TIMER_ID *p_timerID);
功能说明
添加一个系统定时器。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
pTimerFunc | 定时器处理函数 | P_TIMER_FUNC | 是 | 定时器老化调用的回调函数指针。 |
pTimerArg | 定时器处理参数 | PVOID | 是 | 定时器的相关参数,具体类型由回调函数内部决定 |
p_timerID | 定时器ID编号 | TIMER_ID * | 是 | 输出参数,添加成功返回 timer id |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
OPERATE_RET sys_stop_timer(IN CONST TIMER_ID timerID));
功能说明
停止一个定时器。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
timerID | 定时器 ID 编号 | TIMER_ID * | 是 | 需要停止的定时器 timer id |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
BOOL IsThisSysTimerRun(IN CONST TIMER_ID timerID);
功能说明
判断一个定时器是否运行。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
timerID | 定时器 ID 编号 | TIMER_ID * | 是 | 需要判断是否运行的定时器 timer id |
返回值
返回值 | 说明 |
---|---|
BOOL | 定时是否运行 |
函数原型
OPERATE_RET sys_start_timer(IN CONST TIMER_ID timerID, IN CONST TIME_MS timeCycle, IN CONST TIMER_TYPE timer_type);
功能说明
启动一个定时器。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
timerID | 定时器ID编号 | TIMER_ID * | 是 | 需要判断是否运行的定时器 timer id |
timeCycle | 定时周期 | TIME_MS | 是 | 定时的周期,(单位毫秒) |
timer_type | 定时器类型 | TIMER_TYPE | 是 |
|
返回值
返回值 | 说明 |
---|---|
BOOL | 定时是否运行 |
函数原型
OPERATE_RET CreateMsgQueAndInit(OUT MSG_QUE_HANDLE *pMsgQueHandle);
功能说明
消息队列创建。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
pMsgQueHandle | 消息管理结构句柄 | MSG_QUE_HANDLE * | 是 | 输出参数,创建成功返回句柄 |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
OPERATE_RET AddMsgNodeToQueue(IN CONST MSG_QUE_HANDLE msgQueHandle, IN CONST MSG_ID msgID, IN CONST P_MSG_DATA pMsgData,IN CONST MSG_DATA_LEN msgDataLen, IN CONST MSG_TYPE msgType);
功能说明
消息队列创建。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
pMsgQueHandle | 消息管理结构句柄 | MSG_QUE_HANDLE | 是 | 创建成功返回的句柄 |
msgID | 消息 ID | MSG_ID | 是 | |
pMsgData | 消息数据 | P_MSG_DATA | 是 | |
msgDataLen | 消息数据长度 | MSG_DATA_LEN | 是 | |
msgType | 消息类型 | MSG_TYPE | 是 |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
OPERATE_RET GetMsgNodeFromQueue(IN CONST MSG_QUE_HANDLE msgQueHandle, IN CONST MSG_ID msgID, OUT P_MSG_LIST *ppMsgListNode);
功能说明
获取指定ID的消息节点。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
pMsgQueHandle | 消息管理结构句柄 | MSG_QUE_HANDLE | 是 | 创建成功返回的句柄 |
msgID | 消息 ID | MSG_ID | 是 | |
pMsgListNode | 消息节点 | P_MSG_LIST * | 是 | 输出参数,获取到的消息节点 |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
OPERATE_RET GetFirstMsgFromQueue(IN CONST MSG_QUE_HANDLE msgQueHandle, OUT P_MSG_LIST *ppMsgListNode);
功能说明
获取首先入链的消息节点。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
pMsgQueHandle | 消息管理结构句柄 | MSG_QUE_HANDLE | 是 | 创建成功返回的句柄 |
pMsgListNode | 消息节点 | P_MSG_LIST * | 是 | 输出参数,获取到的消息节点 |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
OPERATE_RET GetMsgNodeNum(IN CONST MSG_QUE_HANDLE msgQueHandle,OUT PINT pMsgNodeNum);
功能说明
获取链表中的消息节点总数。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
pMsgQueHandle | 消息管理结构句柄 | MSG_QUE_HANDLE | 是 | 创建成功返回的句柄 |
pMsgNodeNum | 消息节点总数 | PINT | 是 | 输出参数,获取到的消息节点总数 |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
OPERATE_RET DelAndFreeMsgNodeFromQueue(IN CONST MSG_QUE_HANDLE msgQueHandle, IN CONST P_MSG_LIST pMsgListNode);
功能说明
从链中删除消息节点并释放消息节点内存。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
pMsgQueHandle | 消息管理结构句柄 | MSG_QUE_HANDLE | 是 | 创建成功返回的句柄 |
pMsgListNode | 删除的消息节点 | P_MSG_LIST | 是 | 删除的消息节点 |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
OPERATE_RET ReleaseMsgQue(IN CONST MSG_QUE_HANDLE msgQueHandle);
功能说明
释放消息队列所占用内存。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
pMsgQueHandle | 消息管理结构句柄 | MSG_QUE_HANDLE | 是 | 创建成功返回的句柄 |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
OPERATE_RET PostMessage(IN CONST MSG_QUE_HANDLE msgQueHandle, IN CONST MSG_ID msgID, IN CONST P_MSG_DATA pMsgData, IN CONST MSG_DATA_LEN msgDataLen);
功能说明
递送一个消息至模块(消息先进先执行)。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
msgQueHandle | 消息处理句柄 | MSG_QUE_HANDLE | 是 | 创建成功返回的句柄 |
msgID | 消息 ID | MSG_ID | 是 | |
pMsgData | 消息数据 | P_MSG_DATA | 是 | |
msgDataLen | 消息数据长度 | MSG_DATA_LEN | 是 |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
OPERATE_RET PostInstancyMsg(IN CONST MSG_QUE_HANDLE msgQueHandle, IN CONST MSG_ID msgID, IN CONST P_MSG_DATA pMsgData, IN CONST MSG_DATA_LEN msgDataLen);
功能说明
投递紧急消息(消息立刻执行)。
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
msgQueHandle | 消息处理句柄 | MSG_QUE_HANDLE | 是 | 创建成功返回的句柄 |
msgID | 消息 ID | MSG_ID | 是 | |
pMsgData | 消息数据 | P_MSG_DATA | 是 | |
msgDataLen | 消息数据长度 | MSG_DATA_LEN | 是 |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
OPERATE_RET WaitMessage(IN CONST MSG_QUE_HANDLE msgQueHandle, OUT P_MSG_LIST *ppMsgListNode);
功能说明
投递紧急消息(消息立刻执行)。WaitMessage成功需调用,消息处理完后需调用DelAndFreeMsgNodeFromQueue释放消息
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
msgQueHandle | 消息处理句柄 | MSG_QUE_HANDLE | 是 | 创建成功返回的句柄 |
ppMsgListNode | 消息节点 | P_MSG_LIST * | 是 | 输出参数,收到的消息节点 |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
OPERATE_RET CreateAndStart(OUT THRD_HANDLE *pThrdHandle, IN CONST P_THRD_FUNC pThrdFunc,
IN CONST PVOID pThrdFuncArg, IN CONST STACK_SIZE stack_size,IN CONST TRD_PRI pri,
IN CONST CHAR *thrd_name);;
功能说明
任务创建
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
pThrdHandle | pThrdHandle 任务句柄 | MSG_QUE_HANDLE | 是 | 创建成功返回句柄 |
pThrdFunc | 任务处理函数 | P_THRD_FUNC | 是 | |
pThrdFuncArg | 任务参数 | PVOID | 是 | |
stack_size | 指定任务堆栈大小 | STACK_SIZE | 是 | |
pri | 任务优先级 | TRD_PRI | 是 | |
thrd_name | 任务名称 | CHAR * | 是 |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
函数原型
OPERATE_RET ThrdJoin(IN CONST THRD_HANDLE thrdHandle, OUT VOID **ppThrdRet);;
功能说明
任务创建
参数说明
名称 | 说明 | 类型 | 是否必选 | 设置方法 |
---|---|---|---|---|
thrdHandle | pThrdHandle 任务句柄 | MSG_QUE_HANDLE | 是 | 创建成功返回句柄 |
ppThrdRet | 任务退出码 | VOID * | 是 |
返回值
返回值 | 说明 |
---|---|
OPERATE_RET | 错误码信息 |
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈