发送数据包括数据点和数据流从远程经理的角度来看,也是一个新的概念叫做数据点云连接器API的集合:

  • 一个数据点代表一个值在一个特定的时刻,可能在一个地理定位。完成信息,数据点必须属于一个数据流,它包含元数据共同所有的数据点。

  • 一个数据流定义了所有数据点属于公共信息,包括其流ID(远程经理的名字),类型(浮点数、整数、字符串等等),和单位(C, km / h,秒,等等)。

  • 一个数据点集合是一组数据点(来自一个或多个数据流)等待上传他们的远程管理流(s)。在发送一个数据点集合中的所有数据点都推到他们的数据流(s)在同一事务中,最小化网络使用。

发送数据到远程管理,遵循这些步骤:

一个可能的错误列表接收请求从远程设备管理器,看看错误的描述

数码网络嵌入包含的必要数据点的例子演示如何从远程接收设备请求经理。

1。创建一个数据点集合

在处理数据的第一步是创建一个空集合。您可以使用ccapi_dp_create_collection ()函数。

ccapi_dp_error_t ccapi_dp_create_collection (ccapi_dp_collection_handle_t *常量dp_collection)
参数 描述

dp_collection

地址的处理程序将数据点集的结构。可能是当返回如果创建过程失败。

创建一个数据点集合
ccapi_dp_collection_handle_t dp_collection;ccapi_dp_error_t错误;[…]/ * 1。创建数据点集合* /错误= ccapi_dp_create_collection (&dp_collection);如果(dp_collection = =){log_error (“不能创建数据点集合,错误% d”、错误);}[…]

函数ccapi_dp_create_collection ()返回一个ccapi_dp_error_t错误代码表示的过程中是否发生故障。以下的子集ccapi_dp_error_t可以返回的错误ccapi_dp_create_collection ():

  • CCAPI_DP_ERROR_NONE

  • CCAPI_DP_ERROR_INVALID_ARGUMENT

  • CCAPI_DP_ERROR_LOCK_FAILED

看到错误的描述为更多的信息。

2。数据流添加到集合中

添加一个数据点集合之前,您必须添加至少一个数据流的集合。这个步骤解释了许多参数的数据流将和订单预计。

数据流定义:

  • 公共信息数据点属于一个数据流,如单位、类型,或流ID。

  • 数据点是如何添加到一个集合,也就是说,他们预计多少参数和顺序。

有两个功能。第一个排除最后两个参数:

ccapi_dp_error_t ccapi_dp_add_data_stream_to_collection (ccapi_dp_collection_handle_t常量dp_collection,字符常量*常量stream_id,字符常量*常量format_string) ccapi_dp_error_t ccapi_dp_add_data_stream_to_collection_extra (ccapi_dp_collection_handle_t常量dp_collection,字符常量*常量stream_id,字符常量*常量format_string,字符常量*常量单位,字符常量*常量forward_to)
参数 描述

dp_collection

数据点集合添加的数据流。它必须被初始化ccapi_dp_create_collection ()

stream_id

数据流的目的地的名称在偏远的经理。它必须是唯一的。

例如,名称“温度”创建一个流远程管理的路径<的DeviceID >/温度,在那里<的DeviceID >是你的设备的ID。

format_string

空结尾字符串定义的数据类型,以及它是如何的预期。请参阅下面的解释。

单位(1]

字符串定义单元的数据流,例如,秒,C等。任何单位。

forward_to(1]

数据流名称复制数据点。(2]

可以如果不使用。

1。只对ccapi_dp_add_data_stream_to_collection_extra ()函数

2。一旦数据存储在数据流,它也是复制或复制的数据流,他的名字叫forward_to参数。

添加一个数据流的集合
ccapi_dp_collection_handle_t dp_collection;ccapi_dp_error_t错误;[…]/ * 2。添加数据流的“温度”。它将数据点属性:*浮动值*位置要求*时间戳将通过远程管理器*质量不存在* /错误= ccapi_dp_add_data_stream_to_collection (dp_collection,“温度”,“浮动loc”);如果(错误! = CCAPI_DP_ERROR_NONE) {log_error (“不能将温度数据流添加到收藏、错误% d”、错误);}[…]

format_string是一些关键字的组合由一个空格分开。每个关键字定义了一个数据点的属性将被添加到数据流:

  • 数据类型。必需属性来表示数据点的值的类型添加到这个数据流。

  • 时间戳。可选属性来表示数据点的时间戳的格式。

  • 的位置。可选属性来表示如果数据点的位置将被捕获。

  • 质量。可选属性来表示如果样品质量会被捕获。

以下为每个属性选项可用:

信息类型 关键字 描述

数据类型

int32

32位带符号整数的值

int64

64位带符号整数的值

浮动

浮点值

双精度浮点值

字符串

以null结尾的字符串

json

以null结尾的字符串代表一个JSON对象

geojson

以null结尾的字符串代表一个GeoJSON对象

时间戳

(不存在)

时间戳将通过远程管理器根据上传的时间

ts_epoch

结构的秒运行就是UTC 1970年1月1日和毫秒部分

ts_epoch_ms

64位无符号整数的毫秒数就是UTC时间1970年1月1日

ts_iso

与ISO 8601格式的时间戳以null结尾的字符串

位置

疯狂的

位置结构,与纬度、经度和海拔浮点值(可选)

质量

数据点质量价值,作为一个整数

关键词的顺序format_string是非常重要的。它定义了预期的订单当添加一个数据点(如printf / scanf功能)。

例如:

  • format_string“int32 loc”意味着所有数据点添加到数据流必须通过一个32位整数作为第一个参数和结构的第二个位置。时间戳将通过远程管理器。

  • format_string“字符串ts_epoch_ms loc”意味着所有数据点添加到数据流必须通过一个以null结尾的字符串作为第一个参数,一个64位无符号整数时间戳的第二个,和位置结构作为第三个。

功能ccapi_dp_add_data_stream_to_collection ()ccapi_dp_add_data_stream_to_collection_extra ()返回一个ccapi_dp_error_t错误代码表示的过程中是否发生故障。以下的子集ccapi_dp_error_t错误可以返回:

  • CCAPI_DP_ERROR_NONE

  • CCAPI_DP_ERROR_INVALID_ARGUMENT

  • CCAPI_DP_ERROR_INVALID_STREAM_ID

  • CCAPI_DP_ERROR_INVALID_FORMAT

  • CCAPI_DP_ERROR_INVALID_UNITS

  • CCAPI_DP_ERROR_INVALID_FORWARD_TO

  • CCAPI_DP_ERROR_INSUFFICIENT_MEMORY

  • CCAPI_DP_ERROR_LOCK_FAILED

看到错误的描述为更多的信息。

你也可以管理流和数据点集合的功能:

函数 描述

ccapi_dp_error_tccapi_dp_remove_data_stream_from_collection (ccapi_dp_collection_handle_tconst dp_collection, const char * const stream_id)

删除给定的流(stream_id)dp_collection数据点集合

ccapi_dp_error_tccapi_dp_get_collection_points_count (ccapi_dp_collection_handle_t常量dp_collection, uint32_t * const计数)

回报中存储的数据点的数量dp_collection

ccapi_dp_error_t ccapi_dp_clear_collection (ccapi_dp_collection_handle_tconst dp_collection)

删除所有的数据流信息和数据存储dp_collection

这些函数返回一个ccapi_dp_error_t错误代码表示的过程中是否发生故障。以下的子集ccapi_dp_error_t错误可以返回:

  • CCAPI_DP_ERROR_NONE

  • CCAPI_DP_ERROR_INVALID_ARGUMENT

  • CCAPI_DP_ERROR_INVALID_STREAM_ID(1、2]

  • CCAPI_DP_ERROR_LOCK_FAILED(1]

(1)不是为了ccapi_dp_get_collection_points_count ()

(2)不是为了ccapi_dp_clear_collection ()

3所示。添加一个数据点

一个数据点代表一个值存储在一个特定时间在远程数据流管理器。定义一个数据点的属性:

  • 价值。所需的属性,代表样本值来存储。其类型必须匹配与选择的类型format_string当数据流添加到集合中。

  • 时间戳。可选值来指定值时被俘。其类型必须匹配与选择的类型format_string

  • 的位置。可选值(ccapi_location_t)建立设备样本时的位置。只需要如果疯狂的关键字中format_string

  • 质量。可选值(int32_t)定义样本的质量。只需要如果关键字中format_string

所需的数据点值是数据点添加到集合中。其余的属性都是可选的,只有那些的format_stringccapi_dp_add_data_stream_to_collection ()需要提供。看到2。数据流添加到集合中

这个函数ccapi_dp_add ()允许您将数据添加到数据点集合提供流他们所属的名称和所需的数据点的属性。

ccapi_dp_error_t ccapi_dp_add (ccapi_dp_collection_handle_t常量dp_collection,字符常量*常量stream_id,…)
参数 描述

dp_collection

数据点集合添加的数据流。它必须被初始化ccapi_dp_create_collection ()

stream_id

数据流的目的地的名称在偏远的经理。它必须是唯一的。

属性值的数据点添加(价值、时间戳、位置、质量)。

他们必须匹配(在数量和顺序)format_string当指定stream_id添加了数据流ccapi_dp_add_data_stream_to_collection ()

函数ccapi_dp_add ()返回一个ccapi_dp_error_t错误代码表示的过程中是否发生故障。以下的子集ccapi_dp_error_t错误可以返回:

  • CCAPI_DP_ERROR_NONE

  • CCAPI_DP_ERROR_INVALID_ARGUMENT

  • CCAPI_DP_ERROR_INVALID_STREAM_ID

  • CCAPI_DP_ERROR_INSUFFICIENT_MEMORY

  • CCAPI_DP_ERROR_LOCK_FAILED

看到错误的描述为更多的信息。

数据点添加到集合中
ccapi_dp_collection_handle_t dp_collection;ccapi_dp_error_t错误;int常量FIVE_MINUTES =5*60;int我;[…]错误= ccapi_dp_add_data_stream_to_collection (dp_collection,“温度”,“浮动loc”);[…](我=0;我<10;我+ +){浮动温度;ccapi_location_t位置;温度= get_sensor_temperature ();get_gps_location(位置。纬度,&location.longitude);的位置。海拔=90年;/ * 3。添加数据点。通过温度浮动和中指定的位置,因为它是format_string * /错误= ccapi_dp_add (dp_collection,“温度”、温度、位置);如果(错误! = CCAPI_DP_ERROR_NONE) {log_error (“不能添加温度数据点,错误:% d”、错误);}睡眠(FIVE_MINUTES);}[…]

你可以得到的数据点的数量存储在一组使用ccapi_dp_get_collection_points_count ()函数。

ccapi_dp_error_t ccapi_dp_get_collection_points_count (ccapi_dp_collection_handle_t常量dp_collection,uint32_t*常量数)

4所示。发送数据点集合到远程管理器

一旦所有数据点添加到适当的数据流在你的数据点集合,送他们到远程经理使用以下功能:

ccapi_dp_collection_handle_t ccapi_dp_error_t ccapi_dp_send_collection (ccapi_transport_t运输常量dp_collection)
参数 描述

运输

必须始终CCAPI_TRANSPORT_TCP

dp_collection

数据点集合发送到远程管理器

所有数据点集合被发送到各自的数据流收集上传到远程管理时,添加的顺序无关。

函数ccapi_dp_send_collection ()返回一个ccapi_dp_error_t错误代码表示的过程中是否发生故障。以下的子集ccapi_dp_error_t错误可以返回:

  • CCAPI_DP_ERROR_NONE

  • CCAPI_DP_ERROR_INVALID_ARGUMENT

  • CCAPI_DP_ERROR_INSUFFICIENT_MEMORY

  • CCAPI_DP_ERROR_LOCK_FAILED

  • CCAPI_DP_ERROR_CCAPI_NOT_RUNNING

  • CCAPI_DP_ERROR_TRANSPORT_NOT_STARTED

  • CCAPI_DP_ERROR_INITIATE_ACTION_FAILED

  • CCAPI_DP_ERROR_RESPONSE_BAD_REQUEST

  • CCAPI_DP_ERROR_RESPONSE_UNAVAILABLE

  • CCAPI_DP_ERROR_RESPONSE_CLOUD_ERROR

  • CCAPI_DP_ERROR_STATUS_CANCEL

  • CCAPI_DP_ERROR_STATUS_INVALID_DATA

  • CCAPI_DP_ERROR_STATUS_SESSION_ERROR

看到错误的描述为更多的信息。

发送数据到远程管理器
ccapi_dp_collection_handle_t dp_collection;ccapi_dp_error_t错误;int常量FIVE_MINUTES =5*60;[…]/ * 1。创建数据点集合* /错误= ccapi_dp_create_collection (&dp_collection);如果(dp_collection = =){log_error (“不能创建数据点集合,错误% d”、错误);}/ * 2。添加数据流的“温度”。它将数据点属性:*浮动值*位置要求*时间戳将通过远程管理器*质量不存在* /错误= ccapi_dp_add_data_stream_to_collection (dp_collection,“温度”,“浮动loc”);如果(错误! = CCAPI_DP_ERROR_NONE) {log_error (“不能将温度数据流添加到收藏、错误% d”、错误);转到完成;}(;;){int我;(我=0;我<10;我+ +){浮动温度;ccapi_location_t位置;温度= get_sensor_temperature ();get_gps_location(位置。纬度,&location.longitude);的位置。海拔=90年;/ * 3。添加数据点。通过温度浮动和中指定的位置,因为它是format_string * /错误= ccapi_dp_add (dp_collection,“温度”、温度、位置);如果(错误! = CCAPI_DP_ERROR_NONE) {log_error (“不能添加温度数据点,错误:% d”、错误);}睡眠(FIVE_MINUTES);}/ * 4。发送的数据点集合到远程管理器* /错误= ccapi_dp_send_collection (CCAPI_TRANSPORT_TCP dp_collection);如果(错误! = CCAPI_DP_ERROR_NONE) {log_error (“不能发送数据点,错误% d”、错误);打破;}}完成:/ * 5。摧毁集合* /ccapi_dp_destroy_collection (dp_collection);[…]

5。破坏数据点集合

在任何时候,你可以自由的分配资源通过调用集合2022世界杯G组ccapi_dp_destroy_collection ()。你也可以明确一个集合ccapi_dp_clear_collection ()删除所有的数据流信息和存储的数据点。

ccapi_dp_error_t ccapi_dp_destroy_collection (ccapi_dp_collection_handle_t常量dp_collection)
参数 描述

dp_collection

数据点集合摧毁

函数ccapi_dp_destroy_collection ()返回一个ccapi_dp_error_t错误代码表示的过程中是否发生故障。以下的子集ccapi_dp_error_t错误可以返回:

  • CCAPI_DP_ERROR_NONE

  • CCAPI_DP_ERROR_LOCK_FAILED

看到错误的描述为更多的信息。

错误的描述

错误 描述

CCAPI_DP_ERROR_NONE

操作成功完成。

CCAPI_DP_ERROR_INVALID_ARGUMENT

在大多数情况下,这指的是空字符串或结构的指针。

CCAPI_DP_ERROR_INVALID_STREAM_ID

当添加一个数据流收集这个错误可能意味着提供流名称包含无效字符或者它已经存在于集合中。当添加一个数据点,这意味着这样的流名称集合中不存在。

CCAPI_DP_ERROR_INVALID_FORMAT

创建数据流时,所提供的格式字符串包含无效的关键词或字符或模棱两可(重复关键字)。

CCAPI_DP_ERROR_INVALID_UNITS

单位可以,但不是一个空字符串。

CCAPI_DP_ERROR_INVALID_FORWARD_TO

当创建一个数据流,必须只包含有效的字符。

CCAPI_DP_ERROR_INSUFFICIENT_MEMORY

云连接器遇到问题分配内存来执行请求的操作。您的系统可能会耗尽资源。2022世界杯G组

CCAPI_DP_ERROR_LOCK_FAILED

云连接器遇到问题使用同步机制。您的系统可能会耗尽资源。2022世界杯G组

CCAPI_DP_ERROR_CCAPI_NOT_RUNNING

你错过了电话initialize_cloud_connection ()函数或它失败了。

CCAPI_DP_ERROR_TRANSPORT_NOT_STARTED

你错过了电话start_cloud_connection ()函数或它失败了。

CCAPI_DP_ERROR_INITIATE_ACTION_FAILED

较低的通信层发生意外失败。你可以检查特定的错误日志输出。

CCAPI_DP_ERROR_RESPONSE_BAD_REQUEST

收集上传但远程经理反应表明,无效数据。

CCAPI_DP_ERROR_RESPONSE_UNAVAILABLE

远程管理器响应表明,这时服务不可用,可以稍后重试。帐户也可能没有足够的权限数据点服务。

CCAPI_DP_ERROR_RESPONSE_CLOUD_ERROR

远程管理器在处理请求时发生错误。

CCAPI_DP_ERROR_STATUS_CANCEL

正常操作没有完成,因为它是由用户取消了(可能是通过阻止云连接器)。

CCAPI_DP_ERROR_STATUS_INVALID_DATA

无效的数据传递到较低的通信层;这个错误不应该回来了。

CCAPI_DP_ERROR_STATUS_SESSION_ERROR

显示一个错误在较低的通信层。

数据点的例子

上传数据点的例子演示了使用云连接器发送数据API。在这个例子中,一个整数值增加每五秒,添加到“增量”数据流中数据点集合。收集发送到远程经理当它包含10个样本。

这个例子包含在数码网络嵌入的必要。去GitHub查看应用程序源代码。