发 帖  
原厂入驻New
[问答]

mqtt怎么上传数据到指定主题?如何获取数据流信息?

637 OneNET MQTT
分享
OneNET初始化函数
mqtt怎么上传数据到指定主题
如何获取数据流信息?

设备管理

0
2021-3-30 07:50:57   评论 分享淘帖 邀请回答
2个回答
OneNET 初始化

int onenet_mqtt_init(void);OneNET 初始化函数,需要在使用 OneNET 功能前调用。
[tr]参数描述[/tr]
返回--
0成功
-1获得设备信息失败
-2mqtt 客户端初始化失败
设置命令响应函数

void onenet_set_cmd_rsp_cb(void(*cmd_rsp_cb)(uint8_t *recv_data, size_t recv_size, uint8_t **resp_data, size_t *resp_size));设置命令响应回调函数。
[tr]参数描述[/tr]
recv_data接收到的数据
recv_size数据的长度
resp_data响应数据
resp_size响应数据的长度
返回--
数据上传

mqtt 上传数据到指定主题

rt_err_t onenet_mqtt_publish(const char *topic, const uint8_t *msg, size_t len);利用 mqtt 向指定 topic 发送消息。
[tr]参数描述[/tr]
topic主题
msg要上传的数据
len数据长度
返回--
0上传成功
-1上传失败
mqtt 上传字符串到 OneNET

rt_err_t onenet_mqtt_upload_string(const char *ds_name, const char *str);利用 mqtt 向 OneNET 平台发送字符串数据。
[tr]参数描述[/tr]
ds_name数据流名称
str要上传的字符串
返回--
0上传成功
-5内存不足
mqtt 上传数字到 OneNET

rt_err_t onenet_mqtt_upload_digit(const char *ds_name, const double digit);利用 mqtt 向 OneNET 平台发送数字数据。
[tr]参数描述[/tr]
ds_name数据流名称
digit要上传的数字
返回--
0上传成功
-5内存不足
mqtt 上传二进制文件到 OneNET

rt_err_t onenet_mqtt_upload_bin(const char *ds_name, const uint8_t *bin, size_t len);利用 mqtt 向 OneNET 平台发送二进制文件。会动态申请内存来保存二进制文件,使用前请确保有足够的内存。
[tr]参数描述[/tr]
ds_name数据流名称
bin二进制文件
len二进制文件大小
返回--
0上传成功
-1上传失败
mqtt 通过路径上传二进制文件到 OneNET

rt_err_t onenet_mqtt_upload_bin_by_path(const char *ds_name, const char *bin_path);利用 mqtt 向 OneNET 平台发送二进制文件。
[tr]参数描述[/tr]
ds_name数据流名称
bin_path二进制文件路径
返回--
0上传成功
-1上传失败
http 上传字符串到 OneNET

rt_err_t onenet_http_upload_string(const char *ds_name, const char *str);利用 http 向 OneNET 平台发送字符串数据,不推荐使用,推荐使用mqtt上传。
[tr]参数描述[/tr]
ds_name数据流名称
str要上传的字符串
返回--
0上传成功
-5内存不足
http 上传数字到 OneNET

rt_err_t onenet_http_upload_digit(const char *ds_name, const double digit);利用 http 向 OneNET 平台发送数字数据,不推荐使用,推荐使用mqtt上传。
[tr]参数描述[/tr]
ds_name数据流名称
digit要上传的数字
返回--
0上传成功
-5内存不足
信息获取

获取数据流信息

rt_err_t onenet_http_get_datastream(const char *ds_name, struct rt_onenet_ds_info *datastream);从 OneNET 平台获取指定数据流信息,并将信息保存在 datastream 结构体中。
[tr]参数描述[/tr]
ds_name数据流名称
datastream保存数据流信息的结构体
返回--
0成功
-1获取响应失败
-5内存不足
获取最后N个数据点信息

cJSON *onenet_get_dp_by_limit(char *ds_name, size_t limit);从 OneNET 平台获取指定数据流的 n 个数据点信息。
[tr]参数描述[/tr]
ds_name数据流名称
limit要获取的数据点个数
返回--
cJSON数据点信息
RT_NULL失败
获取指定时间内的数据点信息

cJSON *onenet_get_dp_by_start_end(char *ds_name, uint32_t start, uint32_t end, size_t limit);从 OneNET 平台获取指定数据流指定时间段内的n个数据点信息。时间参数需要填入Unix时间戳。
[tr]参数描述[/tr]
ds_name数据流名称
start开始查询的时间
end结束查询的时间
limit要获取的数据点个数
返回--
cJSON数据点信息
RT_NULL失败
获取指定时间n秒的数据点信息

cJSON *onenet_get_dp_by_start_duration(char *ds_name, uint32_t start, size_t duration, size_t limit);从 OneNET 平台获取指定数据流指定时间后n秒内的n个数据点信息。时间参数需要填入Unix时间戳。
[tr]参数描述[/tr]
ds_name数据流名称
start开始查询的时间
duration要查询的秒数
limit要获取的数据点个数
返回--
cJSON数据点信息
RT_NULL失败
设备管理

注册设备

rt_err_t onenet_http_register_device(const char *dev_name, const char *auth_info);向 OneNET 平台注册设备,并返回设备 id 和 apikey。设备id 和 apikey 会调用 onenet_port_save_device_info交由用户处理。
[tr]参数描述[/tr]
dev_name设备名字
auth_info鉴权信息
返回--
0注册成功
-5内存不足
保存设备信息

rt_err_t onenet_port_save_device_info(char *dev_id, char *api_key); 保存注册后返回的设备信息,需要用户实现。
[tr]参数描述[/tr]
dev_id设备id
api_key设备apikey
返回--
0成功
-1失败
获取设备注册信息

rt_err_t onenet_port_get_register_info(char *dev_name, char *auth_info);获取注册设备需要的信息,需要用户实现。
[tr]参数描述[/tr]
ds_name指向存放设备名字的指针
auth_info指向存放鉴权信息的指针
返回--
0成功
-1失败
获取设备信息

rt_err_t onenet_port_get_device_info(char *dev_id, char *api_key, char *auth_info);获取设备信息用于登陆 OneNET 平台,需要用户实现。
[tr]参数描述[/tr]
dev_id指向存放设备id的指针
api_key指向存放设备apikey的指针
auth_info指向存放鉴权信息的指针
返回--
0成功
-1失败
设备是否注册

rt_bool_t onenet_port_is_registed(void);判断设备使用已经注册,需要用户实现。
[tr]参数描述[/tr]
返回--
RT_TURE已经注册
RT_FALSE未注册
                                          
2021-3-31 15:15:47 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
我要提问
快速回复 返回顶部 返回列表