网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务

接口函数

更新时间:2024-06-14 GMT+08:00
分享
表1 edge.h中支持的接口函数

接口

说明

edge_init

初始化sdk的工作环境,加载证书、读取配置等

edge_set_callbacks

注册回调接口,登录、子设备添加、删除、设备消息、设备命令等都是异步通知的,故需要注册对应的处理函数

edge_login

用于SDK登录边缘,该函数是异步函数,登录成功会调用4.2章节中已注册的pfn_connected回调函数

edge_logout

用于SDK登出边缘

edge_destroy

用于清理SDK资源

edge_send_add_sub_device

网关添加子设备,可批量添加

edge_send_delete_sub_device

删除子设备,可批量删除

edge_send_batch_device_data

批量上报子设备数据,可以同时上报多个设备的多个service数据

edge_send_batch_device_data_v2

该接口主要用于上报单个设备单服务的属性数据

edge_send_batch_device_data_v3

上报子设备数据,自行构造json数据

edge_send_batch_device_discovery_data

上报子设备数据,若设备不存在则上报子设备发现事件

edge_send_command_rsp

用于响应平台下发的设备命令

edge_send_get_sub_device_shadow

用于网关发送请求给平台获取子设备影子

edge_send_sub_device_event

用于网关给平台发送子设备事件

edge_send_get_product

用于网关给平台发送获取产品的请求

edge_send_sub_device_property_get_rsp

用于网关响应平台的子设备属性获取请求

edge_send_sub_device_property_set_rsp

用于网关响应平台的子设备属性设置请求

edge_send_customized_message

用于网关发送自定义topic消息

edge_set_bus_message_cb

为消息总线输入点设置回调函数

edge_send_bus_message

向消息总线输出点发送数据

edge_call_device_command

调用产品模型里定义的命令

edge_set_send_mode

设置发送模式(异步|同步)

edge_forbid_send_when_broker_overloaded

设置是否在离线缓存满时禁止发送

edge_get_devices_statuses

查询子设备状态

edge_init_devices_statuses

初始化用于存放子设备状态查询结果的结构体

edge_release_devices_statuses

释放子设备状态结构体

详细接口说明参见代码解析

说明:

include目录下的头文件edge.h,包括所有C SDK提供的回调函数和接口。以下是具体函数介绍。

edge.h回调函数说明

  1. 模块影子数据回调

    函数描述:

    typedef  EDGE_RETCODE (FN_SHADOW_ARRIVED)(const char* shadow, unsigned int shadow_len);

    函数功能:

    当下发模块配置时,通过此函数通知到用户,用户应用的配置也通过此函数通知。

    表2 参数说明

    参数名称

    类型

    参数描述

    示例

    shadow

    char*

    模块影子数据(json字符串),第三方应用下发用户的配置数据

    {

    “config”:”test”

    }

    shadow_len

    unsigned int

    影子数据的长度

    -

  2. 命令下发回调

    函数描述:

    typedef EDGE_RETCODE (FN_COMMAND_ARRIVED)(const char* command_name, const char* device_id, const char* service_id, const char* request_id, const char* body, unsigned int body_len);

    函数功能:

    此函数声明用户命令下发通知,设备命令下发即使用此函数声明。

    表3 参数说明

    参数名称

    类型

    参数描述

    command_name

    char*

    设备命令名称,在设备关联的产品模型中定义。

    device_id

    char*

    命令对应的目标设备ID,命令下发对应的最终目标设备

    service_id

    char*

    设备的服务ID,在设备关联的产品模型中定义

    request_id

    char*

    {request_id}用于唯一标识这次请求,响应该命令时需要带上。

    body

    char*

    json字符串,设备命令的执行参数,具体字段在设备关联的产品模型中定义

    body_len

    unsigned int

    -

  3. 消息下发回调

    函数描述:

    typedef  EDGE_RETCODE (FN_MESSAGE_ARRIVED)(const char* message_id, const char* message_name, const char* device_id, const char* body, unsigned int body_len);

    函数功能:

    此函数声明用于消息下发通知,平台使用此接口承接平台下发给设备的自定义格式的数据。

    表4 参数说明

    参数名称

    类型

    参数描述

    message_id

    char*

    消息名称

    message_name

    char*

    消息的唯一标识

    device_id

    char*

    命令对应的目标设备ID,命令下发对应的最终目标设备

    body

    char*

    消息内容。

    body_len

    unsigned int

    消息长度

  4. 事件下发回调

    函数描述:

    typedef  EDGE_RETCODE (FN_DEVICE_EVENT_ARRIVED)(const char* device_id, const char* body, unsigned int body_len);

    函数功能:

    此函数声明用于事件下发通知,平台使用此接口承接平台下发给设备的自定义格式的数据。

    表5 参数说明

    参数名称

    类型

    参数描述

    示例

    device_id

    char*

    命令对应的目标设备ID,命令下发对应的最终目标设备

    -

    body

    char*

    事件内容。

    {

    "object_device_id":"deviceId",

    "services":[

    {

    "service_id":"serviceTest",

    "event_id":"eventTest",

    "event_type":"eventTypeTest",

    "event_time":"time",

    "paras":{

    "test":"test"

    }

    }

    ]

    }

    body_len

    unsigned int

    消息长度

    -

  5. 子设备添加回调

    函数描述:

    typedef  EDGE_RETCODE (FN_SUB_DEVICE_ADD_ARRIVED)(const char* addSubDeviceInfo, unsigned int body_len);

    函数功能:

    此函数声明用于通知子设备添加,使用此接口承接平台添加成功子设备的通知。

    表6 参数说明

    参数名称

    类型

    参数描述

    示例

    addSubDeviceInfo

    char*

    添加成功的子设备信息,具体格式见示例

    {"devices":

    [{"parent_device_id":"c6b39067b03421a48",

    "node_id": "subdevice11",

    "device_id":"2bb77-063ad2f5a6cc",

    "name": "subDevice11",

    "description": null,

    "product_id":"c6b3b34663d3ea42f6",

    "fw_version": null,

    "sw_version": null,

    "status": "ONLINE"

    }],"version":1}

    body_len

    unsigned int

    长度

    -

  6. 子设备删除回调

    函数描述:

    typedef  EDGE_RETCODE (FN_SUB_DEVICE_DELETED_ARRIVED)(const char* deleteSubDeviceInfo, unsigned int body_len);

    函数功能:

    此函数声明用于通知子设备删除,使用此接口承接平台删除成功子设备的通知。

    表7 参数说明

    参数名称

    类型

    参数描述

    示例

    deleteSubDeviceInfo

    char*

    删除成功的子设备信息,具体格式见示例

    {"devices":

    [{"parent_device_id":"c6b39067b03421a48",

    "node_id": "subdevice11",

    "device_id":"2bb77-063ad2f5a6cc",

    "name": "subDevice11",

    "description": null,

    "product_id":"c6b3b34663d3ea42f6",

    "fw_version": null,

    "sw_version": null,

    "status": "ONLINE"

    }],"version":1}

    body_len

    unsigned int

    长度

    -

  7. 子设备扫描回调

    函数描述:

    typedef  EDGE_RETCODE (FN_START_SCAN_ARRIVED)(const char* protocol, const char* channel, const char* parentDeviceId,const char* scan_setting, unsigned int body_len);

    函数功能:

    此函数声明用于通知网关扫描子设备。

    表8 参数说明

    参数名称

    类型

    参数描述

    protocol

    char*

    协议

    channel

    char*

    通道信息

    parentDeviceId

    char*

    父设备ID

    scan_setting

    char*

    扫描设备

    body_len

    unsigned int

    配置长度

  8. 子设备属性设置回调

    函数描述:

    typedef  EDGE_RETCODE (FN_DEVICE_PROPERTIES_SET_ARRIVED)(ST_PROPERTY_SET* sub_device_property_set);

    函数功能:

    此函数声明用于接收平台对子设备的属性设置。

    表9 参数说明

    参数名称

    类型

    参数描述

    示例

    sub_device_property_set

    ST_PROPERTY_SET*

    属性设置

    参见edge.h

  9. 子设备属性获取回调

    函数描述:

    typedef  EDGE_RETCODE (FN_DEVICE_PROPERTIES_GET_ARRIVED)(ST_PROPERTY_GET* sub_device_property_get);

    函数功能:

    此函数声明用于接收平台获取子设备的属性。

    表10 参数说明

    参数名称

    类型

    参数描述

    示例

    sub_device_property_get

    ST_PROPERTY_GET*

    属性设置

    参见edge.h

  10. 子设备影子回调

    函数描述:

    typedef  EDGE_RETCODE (FN_DEVICE_SHADOW_ARRIVED)(ST_DEVICE_SHADOW* sub_device_shadow);

    函数功能:

    此函数声明用于接收平台设置子设备的影子。

    表11 参数说明

    参数名称

    类型

    参数描述

    示例

    sub_device_property_get

    ST_DEVICE_SHADOW*

    属性设置

    参见edge.h

  11. 自定义topic消息通知回调

    函数描述:

    typedef  EDGE_RETCODE (FN_CUSTOMIZED_MESSAGE_ARRIVED)(const char* topic, const char* payload, unsigned int len);

    函数功能:

    此函数声明用于接收平台设置子设备的影子。

    表12 参数说明

    参数名称

    类型

    参数描述

    topic

    char*

    自定义topic

    payload

    char*

    消息内容

    len

    unsigned int

    消息长度

edge.h的接口函数介绍

所有接口函数定义的数据结构均呈现在edge_struct.h头文件中。

1. 初始化

接口描述:

int  edge_init(const char* workdir)

接口功能:

初始化sdk的工作环境,加载证书、读取配置等

表13 参数说明

参数名称

类型

参数描述

示例

workdir

workdir

初始化文件所在目录,conf目录所在的目录,conf是存放证书文件以及日志配置的目录

conf在/code/api_test/workdir目录下,就填写/code/api_test/workdir

2. 注册回调接口

接口描述:

int edge_set_callbacks(ST_MODULE_CBS* module_cbs, ST_DEVICE_CBS* device_cbs)

接口功能:

注册回调接口,登录、子设备添加、删除、设备消息、设备命令等都是异步通知的,故需要注册对应的处理函数。

表14 参数说明

参数名称

类型

参数描述

module_cbs

ST_MODULE_CBS

模块回调函数结构体

device_cbs

ST_DEVICE_CBS

设备回调函数结构体

表15 ST_MODULE_CBS模块相关的回调函数说明

参数名称

类型

参数描述

pfn_shadow_cb

FN_SHADOW_ARRIVED*

模块影子回调函数类型,模块的配置可以使该接口接收

pfn_command_cb

FN_COMMAND_ARRIVED*

发送到模块的命令的接收函数声明,

pfn_connected

FN_SDK_CONNECTED

SDK连接到边缘hub的回调函数声明

pfn_disconnected

FN_SDK_DISCONNECTED

SDK和边缘hub断链的回调函数声明

表16 ST_DEVICE_CBS子设备相关的回调函数

参数名称

类型

参数描述

pfn_device_message_cb

FN_MESSAGE_ARRIVED*

子设备消息回调

pfn_device_command_cb

FN_COMMAND_ARRIVED*

子设备命令回调

pfn_device_event_cb

FN_DEVICE_EVENT_ARRIVED*

子设备事件回调

pfn_sub_device_add_cb

FN_SUB_DEVICE_ADD_ARRIVED*

子设备添加通知回调

pfn_sub_device_deleted_cb

FN_SUB_DEVICE_DELETED_ARRIVED*

子设备删除通知回调

pfn_on_start_scan_cb

FN_START_SCAN_ARRIVED*

收到子设备扫描通知回调

pfn_device_properties_set_cb

FN_DEVICE_PROPERTIES_SET_ARRIVED*

收到子设备属性设置通知回调

pfn_device_properties_get_cb

FN_DEVICE_PROPERTIES_GET_ARRIVED*

收到子设备属性获取通知回调

pfn_device_shadow_cb

FN_DEVICE_SHADOW_ARRIVED*

收到子设备影子

3. 登录

接口描述:

int edge_login()

接口功能:

用于SDK登录边缘,该函数是异步函数,登录成功会调用4.2章节中已注册的pfn_connected回调函数。

4. 登出

接口描述:

void edge_logout()

接口功能:

用于SDK登出边缘

5. 清理

接口描述:

void edge_destroy()

接口功能:

用于清理SDK资源。

6. 网关添加子设备

接口描述:

int edge_send_add_sub_device(ST_DEVICE_INFO* device_info, unsigned int size)

接口功能:

网关添加子设备,可批量添加,device_info为ST_DEVICE_INFO数组,size为数组的大小(个数);

表17 参数描述

参数名称

类型

参数描述

示例

device_info

ST_DEVICE_INFO

设备信息

参见edge.h

size

Int

数组个数

-

备注:

该接口的调用成功不代表添加成功,仅仅代表添加子设备的请求发送到hub,设备的添加成功与否需要edge.h中注册的设备回调接口pfn_sub_device_add_cb。

样例:

[{
"parent_device_id": "c6b39067b0325db34663d3ef421a42f6_12345678",
"node_id": "subdevice11",
"device_id": "2bb4ddba-fb56-4566-8577-063ad2f5a6cc",
"name": "subDevice11",
"description": null,
"product_id": "c6b39067b0325db34663d3ef421a42f6",
"fw_version": null,
"sw_version": null,
"status": "ONLINE"
}]

7. 网关删除子设备

接口描述:

int edge_send_delete_sub_device (ST_DEVICE_INFO* device_info, unsigned int size)

接口功能:

删除子设备,可批量删除,device_info为ST_DEVICE_INFO数组,size为数组的大小(个数);

表18 参数描述

参数名称

类型

参数描述

示例

device_info

ST_DEVICE_INFO

设备信息

-

size

Int

数组个数

-

备注:

该接口的调用成功不代表删除成功,仅仅代表删除子设备的请求发送到hub,设备的删除成功与否需要edge.h中注册的设备回调接口pfn_sub_device_deleted_cb。

样例:

[{
"parent_device_id": "c6b39067b0325db34663d3ef421a42f6_12345678",
"node_id": "subdevice11",
"device_id": "2bb4ddba-fb56-4566-8577-063ad2f5a6cc",
"name": "subDevice11",
"description": null,
"product_id": "c6b39067b0325db34663d3ef421a42f6",
"fw_version": null,
"sw_version": null,
"status": "ONLINE"
}]

8. 设备数据批量上报v1

接口描述:

int edge_send_batch_device_data(ST_DEVICE_SERVICE* devices,unsigned int size)

接口功能:

批量上报子设备数据,可以同时上报多个设备的多个servicce数据,devices为ST_DEVICE_SERVICE数组,size为数组的个数;

表19 参数描述

参数名称

类型

参数描述

devices

ST_DEVICE_SERVICE

设备数据

size

Int

数组个数

样例:

ST_DEVICE_SERVICE样式

{
"device_id":"bf40f0c4-4022-41c6-a201-c5133122054a",
"services":[
{
"service_id":"analog",
"properties":{
"PhV_phsA":"1",
"PhV_phsB":"2"
},
"event_time":"20190606T121212Z"
}
]
}

9. 设备数据批量上报v2(单设备单serviceId上报)

接口描述:

int edge_send_batch_device_data_v2(const char *device_id, const char *service_id, const char *service_properties, const char *event_time)

接口功能:

该接口主要用于上报单个设备单服务的属性数据;

表20 参数描述

参数名称

类型

参数描述

示例

device_id

char*

设备ID

-

service_id

char*

服务Id

-

properties

char*

属性值(Json字符串)

-

event_time

char*

时间戳

"20190606T121212Z"

10. 设备数据批量上报v3(自行构造json体上报)

接口描述:

int edge_send_batch_device_data_v3(const char *service_properties, unsigned int size)

接口功能:

上报子设备数据,自行构造json数据;

表21 参数描述

参数名称

类型

参数描述

示例

service_properties

Json字符串

设备数据

-

size

Int

长度

-

样例:

service_properties数据格式如下:

[{
"device_id":"bf40f0c4-4022-41c6-a201-c5133122054a",
"services":[
{
"service_id":"test",
"properties":{
"PhV_phsA":"1",
"PhV_phsB":"2"
},
"event_time":"20190606T121212Z"
}
]
}]

11. 设备命令响应

接口描述:

int  edge_send_command_rsp(const char* rsp_name, const char* request_id, int result_code, const char* rsp_body, unsigned int body_lens);

接口功能:

用于响应平台下发的设备命令,该接口和"命令下发回调"搭配使用。

表22 参数描述

参数名称

类型

参数描述

示例

request_id

char*

长度

{request_id}用于唯一标识这次请求,匹配下发的命令,

rsp_name

char*

命令响应名称

命令的响应名称,在设备关联的产品模型中定义

result_code

char*

命令响应码

标识命令的执行结果,0表示成功,其他表示失败。不带默认认为成功。

rsp_body

char*

响应参数

命令的响应参数,具体字段在设备关联的产品模型中定义。

body_lens

unsigned int

rsp_body长度

-

12. 获取子设备影子

接口描述:

int edge_send_get_sub_device_shadow(const char* request_id, ST_DEVICE_SHADOW_GET* device_shadow_get);

接口功能:

用于网关发送请求给平台获取子设备影子,该接口和"子设备影子回调"搭配使用,请求后将通过"子设备影子回调"的回调函数通知到网关。

表23 参数描述

参数名称

类型

参数描述

示例

request_id

char*

长度

{request_id}用于唯一标识这次请求,

device_shadow_get

ST_DEVICE_SHADOW_GET*

获取影子结构

具体示例参见edge.h

13. 发送子设备消息

接口描述:

int  edge_send_sub_device_message(ST_DEVICE_MESSAGE* device_message);

接口功能:

用于网关给平台发送子设备消息;

表24 参数描述

参数名称

类型

参数描述

示例

device_message

ST_DEVICE_MESSAGE*

设备消息格式

具体示例参见edge.h

14. 发送子设备事件

接口描述:

int  edge_send_sub_device_event(ST_DEVICE_EVENT* device_event);

接口功能:

用于网关给平台发送子设备事件;

表25 参数描述

参数名称

类型

参数描述

示例

device_event

ST_DEVICE_EVENT*

设备事件格式

具体示例参见edge.h

15. 发送获取产品请求

接口描述:

int edge_send_get_product(const char** product_ids, unsigned int product_id_size);

接口功能:

用于网关给平台发送获取产品的请求;

表26 参数描述

参数名称

类型

参数描述

示例

product_ids

char**

产品id的数组列表

[

"productId1",

"productId2",

]

product_id_size

unsigned int

数组长度

-

16. 发送子设备属性获取响应

接口描述:

int edge_send_sub_device_property_get_rsp(const char* request_id, ST_DEVICE_PROPERTY_GET_RSP* device_property_get_rsp);

接口功能:

用于网关响应平台的子设备属性获取请求,和"子设备属性获取回调"回调请求搭配子设备属性获取回调子设备属性获取回调使用。

表27 参数描述

参数名称

类型

参数描述

示例

request_id

char*

请求id

{request_id}用于唯一标识这次请求,

device_property_get_rsp

ST_DEVICE_PROPERTY_GET_RS子设备属性获取回调P*

属性获取响应

参见edge.h

17. 发送子设备属性设置响应

接口描述:

int edge_send_sub_device_property_set_rsp(const char* request_id, ST_IOT_RESULT* iot_result);

接口功能:子设备属性设置回调

用于网关响应平台的子设备属性设置请求,和"子设备属性获取回调"回调请求搭配使用。

表28 参数描述

参数名称

类型

参数描述

示例

request_id

char*

请求id

{request_id}用于唯一标识这次请求,

iot_result

ST_IOT_RESULT*

属性设置响应

参见edge.h子设备属性获取回调

18. 发送自定义topic消息

接口描述:

int edge_send_customized_message(const char* topic, const char* body, unsigned int body_len);

接口功能:

用于网关发送自定义topic消息。

表29 参数描述

参数名称

类型

参数描述

topic

char*

自定义topic

body

char*

消息体

body_len

unsigned int

消息长度

图1 图示

解释:

用户在调用设备接入的自定义消息时,注册的自定义topic需要附加上/modules/{moduleId}/前缀。

19. 设置发送总线消息回调

接口描述:

int edge_set_bus_message_cb(const char* input_name);

接口功能

为消息总线输入点设置回调函数。

表30 参数描述

参数名称

类型

参数描述

示例

input_name

char*

消息总线输入点

见Demo

20. 发送总线消息

接口描述:

edge_send_bus_message(const char* output_name, const char* body, unsigned int body_len);

接口功能:

向消息总线输出点发送数据。

表31 参数描述

参数名称

类型

参数描述

output_name

char*

消息总线输出点

body

char*

消息体

body_len

unsigned int

消息长度

21. 调用设备命令

接口描述

int   edge_call_device_command(ST_COMMAND* command, unsigned int timeout);

接口功能:

调用产品模型里定义的命令。

表32 参数描述

参数名称

类型

参数描述

示例

command

ST_COMMAND*

设备命令

{

"device_123",

"power",

"restart"

}

timeout

unsigned int

超时参数(以秒为单位)

-

22. 设置发送模式

接口描述

int edge_set_send_mode(EN_SEND_MODE mode);

接口功能

设置点位上报、属性上报的发送模式,有同步、异步两种可选。

表33 参数描述

参数名称

类型

参数描述

示例

mode

EN_SEND_MODE

上报模式

SEND_ASYNC

注意:

此设置只影响点位上报和属性上报。默认为异步发送,若您设置为同步后,所有的点位上报、属性上报发送请求都会调整为同步发送(最多阻塞3秒),超时则返回非0错误码。

23. 设置是否在Hub离线缓存满时禁止发送

接口描述

int edge_forbid_send_when_broker_overloaded(_BOOL forbidden);

接口功能

当SDK感知到Hub的离线缓存已满时,是否继续发送数据。

表34 参数描述

参数名称

类型

参数描述

示例

forbidden

_BOOL

是否禁止

_TRUE

注意:

此设置只影响点位上报和属性上报。默认为否(不禁止发送),若您设置为是,所有的点位上报、属性上报发送请求都会在Hub离线缓存满时被禁止,并返回非0错误码。

24. 获取子设备状态

接口描述

int edge_get_devices_statuses(ST_DEVICES_STATUSES* devices_statuses, const char** devices_ids, unsigned int device_id_size, unsigned int timeout

接口功能

用于获取指定的子设备的状态

表35 参数描述

参数名称

类型

参数描述

示例

devices_statuses

ST_DEVICES_STATUSES*

用于存放查询结果的结构体

见 25. 初始化子设备状态结构体

devices_ids

const char**

存放要查询的子设备id(数组)

const char* devices_ids[2] = {0};

devices_ids[0] = "dev_id1";

devices_ids[1] = "dev_ids2";

device_id_size

unsigned int

上述数组的大小

2

timeout

unsigned int

超时,单位为毫秒,范围为1ms~30000ms

3000

表36 ST_DEVICES_STATUSES结构体描述

参数名称

类型

参数描述

devices

ST_DEVICE_STATUS*

设备状态

size

Int

数组个数

表37 ST_DEVICE_STATUS结构体描述

参数名称

类型

参数描述

device_id

char*

设备ID

status

char*

设备状态

注意:

ST_DEVICES_STATUSES参数必须使用特定的接口进行初始化和释放操作,具体见25 和 26

25. 初始化子设备状态结构体

接口描述

int edge_init_devices_statuses(ST_DEVICES_STATUSES* devices_statuses, unsigned int size);

接口功能

用于存放子设备状态查询结果的结构体,需要使用该接口进行初始化后,才能传递给edge_get_devices_statuses

参数描述

表38 参数描述

参数名称

类型

参数描述

示例

devices_statuses

ST_DEVICES_STATUSES*

指向该结构体的指针

ST_DEVICES_STATUSES devices_statuses = {0};

edge_init_devices_statuses(&devices_statuses, 2);

size

unsigned int

要查询的子设备数,与24. 中的devices_id_size一致

2

注意:

在调用子设备查询接口前,请务必使用本接口对ST_DEVICES_STATUSES进行初始化操作,查询结束后,必须使用对应的释放接口对资源进行释放。(具体见26.)

26. 释放子设备状态结构体

接口描述

int edge_release_devices_statuses(ST_DEVICES_STATUSES* devices_statuses);

接口功能

用于释放子设备状态结构体所占有的资源

表39 参数描述

参数名称

类型

参数描述

示例

devices_statuses

ST_DEVICES_STATUSES*

指向该结构体的指针

edge_release_devices_statuses(&devices_statuses);

注意:

在调用edge_get_devices_statuses完成相关操作后,请及时使用该接口对资源进行释放,避免出现内存泄漏的问题。

27. 设备数据批量上报(支持子设备发现事件)

接口描述

int edge_send_batch_device_discovery_data(ST_DEVICE_DISCOVERY_SERVICE* devices, unsigned int size);

接口功能:

上报子设备数据,自行构造json体上报,支持在上报的数据中,携带product_id、device_name,当发现设备不存在时则上报子设备发现事件

表40 参数描述

参数名称

类型

参数描述

示例

devices

ST_DEVICES_DISCOVERY_SERVICE*

设备数据

/

size

unsigned int

长度

/

表41 ST_DEVICES_DISCOVERY_SERVICE结构体描述

参数名称

类型

参数描述

device_id

char*

设备ID

product_id

char*

产品ID

device_name

char*

设备名

services

ST_SERVICE_DATA*

子设备数据

size

unsigned int

数组长度

表42 ST_SERVICE_DATA结构体描述

参数名称

类型

参数描述

service_id

char*

服务ID

properties

char*

属性值(Json字符串)

event_time

char*

时间戳

提示

您即将访问非华为云网站,请注意账号财产安全

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容