Tange Cloud for Device
 Rev.345
载入中...
搜索中...
未找到
TgCloudUtil.h
浏览该文件的文档.
1/** \file TgCloudUtil.h
2 *
3 *
4 */
5
6#pragma once
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
12struct tgJSON;
13
14/** 温度单位 */
15typedef enum {
16 TEMP_C, ///< Celcius
17 TEMP_F ///< Farenheit
19/** 生成 ECEVENT_TEMPERATURE_H/ECEVENT_TEMPERATURE_L 事件的额外参数
20 * @param type 温度单位
21 * @param temper 温度
22 * @param obuf 输出的json格式字符串缓冲区
23 * @param size 输入时, size 为缓冲区大小
24 * @return json字符串长度+1。如果大于等于size, 意味obuf缓冲区不足,要重新分配大小至少为返回值的空间并再次调用
25 * @see MKEVTDAT_Temperatur
26 */
27int MKEVTDATA_Temperatur(TEMPTYPE type, float temper, char *obuf, int size);
28
29/** 返回json对象表示的温度事件参数.
30 * @see MKEVTDATA_Temperatur
31 */
32struct tgJSON *MKEVTDAT_Temperatur(TEMPTYPE type, float temper);
33
34/** 生成 ECEVENT_HUMIDITY_H/ECEVENT_HUMIDITY_L 事件的额外参数
35 * @param humid 湿度: 0~100
36 * @param obuf 输出的json格式字符串缓冲区
37 * @param size 输入时, size 为缓冲区大小
38 * @return json字符串长度+1。如果大于等于size, 意味obuf缓冲区不足,要重新分配大小至少为返回值的空间并再次调用
39 * @see MKEVTDAT_Humidity
40 */
41int MKEVTDATA_Humidity(int humid, char *obuf, int size);
42
43/** 返回json对象表示的湿度参数
44 * @param humid 湿度: 0~100
45 */
46struct tgJSON *MKEVTDAT_Humidity(int humid);
47
48/** ECEVENT_SITPOSE 事件参数
49 * @param sens 坐姿检测灵敏度参数。0(最灵敏)|1|2(最准确)
50 */
51struct tgJSON *MKEVTDAT_SitPoseSens(int sens);
52
53/** 生成喂食事件的数据 */
54int MKEVTDATA_Feeding(int nServings, char *obuf, int size);
55
56/** 上报喂食事件
57 * @param isManually 手动还是自动喂食
58 * @param nServing 喂食份数
59 * @param pic 图片
60 * @param pic_len 图片长度
61 * @return <0: 错误码
62 */
63int TcuSendFeedingEvent(int isManually, int nServing, void *pic, int pic_len);
64
65
66//length: >0 data is a pointer to content
67// =0 data is the file path
68int TcuCalcMd5(const char *path_or_data, long len, unsigned char digest[16]);
69int TcuCalcSha256(const char *path_or_data, long len, unsigned char digest[32]);
70
71/** 对保存在云端的设备属性的操作 */
72typedef enum {
73 PROPACT_UPDATE = 1, ///< 更新属性
74 PROPACT_DELETE = 2 ///< 删除属性
76
77/** 编辑保存在云端的属性值.
78 * @param act 动作
79 * @param jprops 要更新或删除的属性,不为能NULL. 删除时属性值被忽略. jprops由本接口释放
80 * @param verNo 版本号
81 * @return 0:ok; !=0:错误码
82 * @sa https://tange-ai.feishu.cn/docx/YTqwdQl1MoVytBxQjBmctBitn5f
83 */
84int TcuUpdateProperties(EPROPACTION act, struct tgJSON *jprops, int verNo);
85
86/** 编辑保存在云端的属性值.
87 * @param sprops 属性的json格式字符串, 不能为NULL. 删除时属性值被忽略.
88 * @param verNo 版本号
89 * @return 0:ok; !=0:错误码
90 * @note 应用想使用自己的json工具时使用本接口.
91 * @sa https://tange-ai.feishu.cn/docx/YTqwdQl1MoVytBxQjBmctBitn5f
92 */
93int TcuUpdatePropertiesS(EPROPACTION act, const char *sprops, int verNo);
94
95
96/** 获取保存在云端的属性.
97 * @param jprops 要获取的属性. NULL为全部属性. jprops由本接口释放
98 * @param verNo 版本号. 输入时为要获取的版本号,-1 为最新版本; 输出时为返回的版本号
99 * @param ppJData 返回属性值. 要调用 tgJSON_Delete() 释放
100 * @return 0:ok; !=0:错误码
101 * @sa https://tange-ai.feishu.cn/docx/YTqwdQl1MoVytBxQjBmctBitn5f
102 */
103int TcuGetProperties(struct tgJSON *jprops, int *verNo, struct tgJSON **ppJData);
104
105/** 获取保存在云端的属性.
106 * @param sprops 要获取的属性的json字符串表示. NULL为全部属性.
107 * @param verNo 版本号. 输入时为要获取的版本号,-1 为最新版本; 输出时为返回的版本号
108 * @param ppJData 返回的json格式表示的属性值.
109 * @return 0:ok; !=0:错误码
110 * @note 应用想使用自己的json工具时使用本接口.
111 */
112int TcuGetPropertiesS(const char *sprops, int *verNo, char **ppJData);
113
114#ifdef __cplusplus
115} /* extern "C" */
116#endif
int MKEVTDATA_Feeding(int nServings, char *obuf, int size)
生成喂食事件的数据
int TcuSendFeedingEvent(int isManually, int nServing, void *pic, int pic_len)
上报喂食事件
EPROPACTION
对保存在云端的设备属性的操作
@ PROPACT_UPDATE
更新属性
@ PROPACT_DELETE
删除属性
int MKEVTDATA_Humidity(int humid, char *obuf, int size)
生成 ECEVENT_HUMIDITY_H/ECEVENT_HUMIDITY_L 事件的额外参数
struct tgJSON * MKEVTDAT_Humidity(int humid)
返回json对象表示的湿度参数
int TcuGetPropertiesS(const char *sprops, int *verNo, char **ppJData)
获取保存在云端的属性.
int TcuUpdatePropertiesS(EPROPACTION act, const char *sprops, int verNo)
编辑保存在云端的属性值.
int MKEVTDATA_Temperatur(TEMPTYPE type, float temper, char *obuf, int size)
生成 ECEVENT_TEMPERATURE_H/ECEVENT_TEMPERATURE_L 事件的额外参数
TEMPTYPE
温度单位
@ TEMP_F
Farenheit
@ TEMP_C
Celcius
struct tgJSON * MKEVTDAT_SitPoseSens(int sens)
ECEVENT_SITPOSE 事件参数
int TcuUpdateProperties(EPROPACTION act, struct tgJSON *jprops, int verNo)
编辑保存在云端的属性值.
struct tgJSON * MKEVTDAT_Temperatur(TEMPTYPE type, float temper)
返回json对象表示的温度事件参数.
int TcuGetProperties(struct tgJSON *jprops, int *verNo, struct tgJSON **ppJData)
获取保存在云端的属性.