TuyaOS SDK Linux 版

更新时间:2022-11-24 09:19:59下载pdf

TuyaOS SDK 是借助设备的联网能力,直接与涂鸦 AI + IoT 开发者平台、涂鸦 App 建立通信链路并进行涂鸦标准数据交互的一个软件中间件。本文为您介绍 TuyaOS SDK 的 Linux 版本。

前提条件

  • 目前仅带屏幕设备支持使用 TuyaOS SDK Linux 版本,通过扫码配网完成设备的绑定和激活。
  • 在开发之前,您需要先注册涂鸦 IoT 平台账号,获取设备开发阶段的必要信息,包含产品 ID、授权码等。具体操作指导,请参见选品类创建产品

SDK 下载

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

SDK 初始化

设备认证

  • 设备的身份认证采用一机一密的方式,在设备上烧写设备的唯一的 uuidauthkey
  • uuidauthkey 成对出现,每一台设备都必须拥有专属的 uuidauthkey。如果调试过程中需要使用多组 uuidauthkey, 请提交工单。
  • 设备认证消息通过接口 tuya_iot_set_gw_prod_info 设置。

注意:Demo 中 piduuidauthkey 仅用作测试使用,不能用于实际产品,否则会造成后续产品不可用。pid 需要您自行从涂鸦开发者平台申请。每一台设备都必须拥有专属的 uuidauthkey

初始化接口说明

初始化流程

TuyaOS SDK Linux 版

tuya_iot_init

  • 函数原型

    OPERATE_RET tuya_iot_init(IN CONST CHAR_T *fs_storge_path)
    
  • 功能说明(Summary)

    用于涂鸦 IoT 系统的初始化,必须最先调用。

  • 参数说明(Parameters)

    参数名称 说明
    fs_storge_path 为 SDK 分配可读写的路径。 路径长度不大于 110 字节。
  • 返回值(Return Values)

    返回值 说明
    OPRT_OK 成功
    错误码 执行失败返回的错误码

tuya_iot_get_sdk_info

  • 函数原型

    CHAR_T *tuya_iot_get_sdk_info(VOID);
    
  • 功能说明(Summary)

    获取 SDK 版本信息。

  • 参数说明(Parameters)

    参数名称 说明
    VOID
  • 返回值(Return Values)

    返回值 说明
    SDK 信息字符串 包含 SDK 的编译时间、平台、版本号和功能等。

TY_IOT_CBS_S

  • 函数原型

    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
gw_status_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 只有当设备激活成功后,每次重启都会调用。

tuya_iot_soc_init

  • 函数原型

    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 操作成功
    错误码 执行失败返回的错误码

tuya_iot_set_gw_prod_info

  • 函数原型

    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 操作成功
    错误码 执行失败返回的错误码

tuya_iot_reg_get_wf_nw_stat_cb

  • 函数原型

    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 扫码进行激活和绑定设备。

回调说明

active_shourturl_cb

  • 函数原型

    VOID active_shourturl_cb(OUT CONST CHAR_T *shorturl);
    
  • 功能说明

    获取二维码连接回调。

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    shorturl 格式:{“shorturl”: “qrcode link”},需要把qrcode link转成二维码,如果NULL,则获取失败 CONST CHAR_T * -
  • 返回值
    无。

设备重置

App 重置

您可通过 App 进行重置。

gw_reset_cb
  • 函数原型

    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 留有本地重置网关能力,您可通过按键等方式本地重置网关。

tuya_iot_gw_unactive
  • 函数原型

    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 点说明参见自定义功能

特点

  • 目前支持每个产品最多创建 35 个 DP,复杂功能请用 RAW 型数据实现。
  • Obj 型:布尔型(bool)、数值型(value)、字符串型(string)、枚举型(enum)、故障型(bitmap),TuyaOS SDK 会对连续上报的数值进行过滤,相同则不予上传。

接口说明

dev_obj_dp_cb

  • 函数原型

    VOID dev_obj_dp_cb(IN CONST TY_RECV_OBJ_DP_S *dp);
    
  • 功能说明

    OBJ 功能点信息命令回调。

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    dp TY_RECV_OBJ_DP_S 中包含:
    • 功能点的命令类型。
    • 功能点控制的设备 ID。
    • 群组 ID。
      说明:仅当dtt_tp 为多播时,返回群组 ID mb_id
    • 功能点结构体数组长度。
    • 功能点结构体数组。 参见 tuya_cloud_com_defs.h
    TY_RECV_OBJ_DP_S* 参见 IoT 平台中功能点定义。
  • 返回值

    返回值 说明
    无返回值
    错误码 执行失败返回的错误码

dev_raw_dp_cb

  • 函数原型

    VOID dev_raw_dp_cb(IN CONST TY_RECV_RAW_DP_S *dp);
    
  • 功能说明

    透传类功能点信息命令回调。

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    dp 该结构体中包含:
    • 功能点的命令类型。
    • 功能点控制的设备 ID。
    • 群组 ID。
      说明:仅当dtt_tp 为多播时,返回群组 ID mb_id
    • 功能点结构体数组长度。
    • 透传数据。 参见 tuya_cloud_com_defs.h
    TY_RECV_RAW_DP_S*
  • 返回值

    无。

dev_dp_query_cb

  • 函数原型

    VOID dev_dp_query_cb(IN CONST TY_DP_QUERY_S *dp_qry);
    
  • 功能说明

    设备特定数据查询入口。可选实现。

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    dp_qry TY_DP_QUERY_S*
  • 返回值
    无。

dev_report_dp_json_async

  • 函数原型

    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 字符串 根据设备的类型进行设置:
    • 子设备:子设备的 ID
    • 网关或 MCU:NULL
    dp_data 功能点数据结构体 TY_OBJ_DP_S 结构体数组指针
    cnt dp_data 结构体数组个数 UINT_T
  • 返回值

    返回值 说明
    OPRT_OK 操作成功
    错误码 执行失败返回的错误码

dev_report_dp_raw_sync

  • 函数原型

    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 字符串 根据设备的类型进行设置:
    • 子设备:子设备的 ID
    • 网关或 MCU:NULL
    dpid 功能点 ID UINT_T
    data 数据 BYTE_T *
    len 数据长度 UINT_T
    timeout 函数阻塞超时时间 UINT_T 单位为秒
  • 返回值

    返回值 说明
    OPRT_OK 操作成功
    错误码 执行失败返回的错误码

dev_report_dp_stat_sync

  • 函数原型

    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 字符串 根据设备的类型进行设置:
    • 子设备:子设备的 ID
    • 网关或 MCU:NULL
    dp_data 功能点信息结构体数组 TY_OBJ_DP_S *
    cnt 功能点状态数组长度 UINT_T
    timeout 函数阻塞超时时间 UINT_T 单位为秒
  • 返回值

    返回值 说明
    OPRT_OK 操作成功
    错误码 执行失败返回的错误码

固件升级

流程描述

固件包配置说明

  • 网关或子设备配网成功后,从 App 上获取设备信息里的虚拟 ID,作为固件升级的白名单。
  • 编译出要升级的固件包,固件版本要高于设备中运行的固件版本。
  • 登录 IoT 平台 ,到对应创建的产品下,上传配置固件包。
  • 操作说明

升级开始的方式

设备固件上传到云端后,设备不会立即收到升级消息。目前涂鸦支持以下升级方式:

  • App 提醒升级: App 用户首次打开设备面板时,会收到升级提醒弹框,选择升级或不升级。
  • App 静默升级: 即设备静默升级。设备重启后,向云端请求一次是否存在静默升级任务,如果存在,即直接进行升级。此时 App 用户去打开设备面板则显示进度框,同时设备无法操作。
  • App 强制升级: App 用户首次打开设备面板时,会收到升级提醒弹框,必选选择升级,否则设备无法操作。
  • App 检测升级: 即 App 用户主动点击对应设备的面板,然后点击右上角进入设备信息界面,检测设备固件版本,主动更新;

固件升级交互流程

TuyaOS SDK Linux 版

接口说明

/span>

gw_ug_cb<

  • 函数原型

    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;

tuya_iot_upgrade_gw_notify

  • 函数原型

    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 成功
    错误码 执行失败返回的错误码

tuya_iot_dev_upgd_progress_rept

  • 函数原型

    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 根据设备的类型进行设置:
    • 子设备:子设备的 ID
    • 网关:NULL
    CHAR_T * 参考 Demo
    tp 设备类型 DEV_TYPE_T 参考 Demo
  • 返回值

    返回值 说明
    OPRT_OK 成功
    错误码 执行失败返回的错误码

日志管理

TuyaOS 日志管理支持日志的输出、重定向功能。默认情况下,TuyaOS SDK 的日志输出到标准输出终端,同时支持重定向,例如输出到文件或云端等。

AddOutputTerm

  • 函数原型

    OPERATE_RET AddOutputTerm(IN CONST CHAR_T *name,IN CONST LOG_OUTPUT term);
    
  • 功能说明

    为 TuyaOS SDK 日志新增一个输出回调,用于将日志写到文件。

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    name 日志回调名称。 字符串 可用于 DelOutputTerm 以注销对应的回调。
    term LOG_OUTPUT 回调
  • 返回值

    返回值 说明
    OPRT_OK 操作成功
    错误码 执行失败返回的错误码

DelOutputTerm

  • 函数原型

    VOID DelOutputTerm(IN CONST CHAR_T *name);
    
  • 功能说明

    注销 AddOutputTerm 接口注册的日志回调。

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    name 日志回调名称 字符串 注销 AddOutputTerm 接口注册的日志回调
  • 返回值
    VOID

SetLogManageAttr

  • 函数原型

    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 错误码信息

sys_stop_timer

  • 函数原型

    OPERATE_RET sys_stop_timer(IN CONST TIMER_ID timerID));
    
  • 功能说明

    停止一个定时器。

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    timerID 定时器 ID 编号 TIMER_ID * 需要停止的定时器 timer id
  • 返回值

    返回值 说明
    OPERATE_RET 错误码信息

IsThisSysTimerRun

  • 函数原型

    BOOL IsThisSysTimerRun(IN CONST TIMER_ID timerID);
    
  • 功能说明

    判断一个定时器是否运行。

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    timerID 定时器 ID 编号 TIMER_ID * 需要判断是否运行的定时器 timer id
  • 返回值

    返回值 说明
    BOOL 定时是否运行

sys_start_timer

  • 函数原型

    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
    • TIMER_ONCE:单次执行
    • TIMER_CYCLE:循环执行
  • 返回值

    返回值 说明
    BOOL 定时是否运行

消息队列

CreateMsgQueAndInit

  • 函数原型

    OPERATE_RET CreateMsgQueAndInit(OUT MSG_QUE_HANDLE *pMsgQueHandle);
    
  • 功能说明

    消息队列创建。

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    pMsgQueHandle 消息管理结构句柄 MSG_QUE_HANDLE * 输出参数,创建成功返回句柄
  • 返回值

    返回值 说明
    OPERATE_RET 错误码信息

AddMsgNodeToQueue

  • 函数原型

    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 错误码信息

GetMsgNodeFromQueue

  • 函数原型

    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 错误码信息

GetFirstMsgFromQueue

  • 函数原型

    OPERATE_RET GetFirstMsgFromQueue(IN CONST MSG_QUE_HANDLE msgQueHandle, OUT P_MSG_LIST *ppMsgListNode);
    
  • 功能说明

    获取首先入链的消息节点。

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    pMsgQueHandle 消息管理结构句柄 MSG_QUE_HANDLE 创建成功返回的句柄
    pMsgListNode 消息节点 P_MSG_LIST * 输出参数,获取到的消息节点
  • 返回值

    返回值 说明
    OPERATE_RET 错误码信息

GetMsgNodeNum

  • 函数原型

    OPERATE_RET GetMsgNodeNum(IN CONST MSG_QUE_HANDLE msgQueHandle,OUT PINT pMsgNodeNum);
    
  • 功能说明

    获取链表中的消息节点总数。

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    pMsgQueHandle 消息管理结构句柄 MSG_QUE_HANDLE 创建成功返回的句柄
    pMsgNodeNum 消息节点总数 PINT 输出参数,获取到的消息节点总数
  • 返回值

    返回值 说明
    OPERATE_RET 错误码信息

DelAndFreeMsgNodeFromQueue

  • 函数原型

    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 错误码信息

ReleaseMsgQue

  • 函数原型

    OPERATE_RET ReleaseMsgQue(IN CONST MSG_QUE_HANDLE msgQueHandle);
    
  • 功能说明

    释放消息队列所占用内存。

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    pMsgQueHandle 消息管理结构句柄 MSG_QUE_HANDLE 创建成功返回的句柄
  • 返回值

    返回值 说明
    OPERATE_RET 错误码信息

PostMessage

  • 函数原型

    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 错误码信息

PostInstancyMsg

  • 函数原型

    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 错误码信息

WaitMessage

  • 函数原型

    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 错误码信息

任务队列

CreateAndStart

  • 函数原型

    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 错误码信息

ThrdJoin

  • 函数原型

    OPERATE_RET ThrdJoin(IN CONST THRD_HANDLE thrdHandle, OUT VOID **ppThrdRet);;
    
  • 功能说明

    任务创建

  • 参数说明

    名称 说明 类型 是否必选 设置方法
    thrdHandle pThrdHandle 任务句柄 MSG_QUE_HANDLE 创建成功返回句柄
    ppThrdRet 任务退出码 VOID *
  • 返回值

    返回值 说明
    OPERATE_RET 错误码信息