云连接器是一项新的Android服务,用于与远程管理器通信,远程管理器是Digi的专有平台,用于远程管理设备。默认情况下,此服务是禁用的,因为在运行它之前需要执行一些配置步骤。中启用和配置它远程管理部分的设置。有关远程管理器和ConnectCore 8x特定功能的详细信息,请参阅远程管理主题。

云连接器包括一个丰富的API,可以在您的应用程序中使用它与Remote Manager通信,接收远程命令并在云中保存数据。在Digi APIx javadoc文档中可以找到这个API中可用方法的完整列表。

除非特别说明,否则所有Cloud Connector API方法都需要com.digi.android.permission.CLOUD_CONNECTOR许可。

如果您的应用程序没有com.digi.android.permission.CLOUD_CONNECTOR权限,它将无法访问任何云连接器服务功能。

要使用此API并与Remote Manager通信,第一步是实例化一个CloudConnectorManager对象。为此,您需要提供Android应用程序Context。

实例化CloudConnectorManager
进口android.app.Activity;进口android.os.Bundle;进口com.digi.android.cloudconnector.CloudConnectorManager;公共CloudConnectorSampleActivity扩展{CloudConnectorManager connectorManager;[…]@Override公共无效onCreate(Bundle savedInstanceState) {超级onCreate(savedInstanceStace);//实例化CloudConnector管理器对象。connectorManager =CloudConnectorManager ();[…]}[…]}

云连接器API包括允许您执行以下操作的功能:

执行基本操作

获取设备ID

在远程管理器中注册的每个设备都有一个唯一标识符,平台使用该标识符引用该设备并与之通信。设备ID由业务根据以太网接口的MAC地址自动计算。它可以在Android设置中的远程管理器配置中获得,或者通过使用远程管理器API的特定方法获得。

方法 描述

getDeviceID ()

返回云连接器设备ID

您不需要连接到Remote Manager来获取设备ID。
获取设备ID
进口com.digi.android.cloudconnector.CloudConnectorManager;[…]//实例化CloudConnector管理器对象。CloudConnectorManager connectorManager =CloudConnectorManager ();//获取设备ID。deviceID = connectorManager。getDeviceID();

配置厂商ID

在连接Remote Manager之前,需要配置设备的厂商ID。

vendor ID是一个4字节的值,表示所选设备的制造商。该值将用于确定设备所属的制造商,通常与Remote Manager帐户绑定。

供应商ID可以通过登录您的Remote Manager帐户并导航到“Admin > Account Settings”。这将显示我的帐户页面;在页面的供应商信息部分,您可以请求供应商ID(如果您还没有)或查看分配给您的供应商ID。如果您没有正确配置此设置,或者设置为空,则在尝试连接时将显示错误。

此设置的格式为:

0 xxxxxxxxx

您可以在远程管理章节,或者通过使用云连接器API。

方法 描述

getVendorID ()

返回设备厂商ID

setVendorID(字符串)

设置云连接器供应商ID设置

setVendorID(字符串)方法可能会失败,原因如下:

  • 指定的厂商ID为扔……NullPointerException

  • 指定的供应商ID不符合正确的格式,抛出错误IllegalArgumentException

配置厂商ID
进口com.digi.android.cloudconnector.CloudConnectorManager;[…]//实例化CloudConnector管理器对象。CloudConnectorManager connectorManager =CloudConnectorManager ();//配置供应商ID(记住你必须从远程管理器的帐户页面获取)。connectorManager。setVendorID“0 x12345678”);
配置的设置在启动之间是持久的。不需要在每次设备上电时重新配置Cloud Connector服务。

连接/断开远程管理器

一旦配置了供应商ID,下一步就是打开与平台的连接。使用远程管理器API,您可以随时连接或断开远程管理器。您可以使用以下方法管理与Remote Manager的连接。

方法 描述

connect ()

打开Cloud Connector连接

断开()

关闭云连接器连接

与()

返回Cloud Connector连接状态

管理远程管理器连接
进口com.digi.android.cloudconnector.CloudConnectorManager;[…]//实例化CloudConnector管理器对象。CloudConnectorManager connectorManager =CloudConnectorManager ();//检查设备是否已经连接到远程管理器。如果没有,联系。如果(! connectorManager。与一()) connectorManager。连接();[…]//断开远程管理器。connectorManager。断开连接();
根据远程管理器服务的自动连接设置的值,设备可能在系统初始化后立即尝试自动连接到远程管理器。
连接和断开连接进程生成事件,指示设备何时与远程管理器连接或断开连接。看到捕获云连接器事件

在尝试连接之前,请确保您的设备已在远程管理器帐户中注册。有关在远程管理器中注册设备的详细信息,请参见将ConnectCore 8X添加到远程管理器

启用/禁用系统监控特性

系统监控是嵌入在云连接器服务中的一个功能,用于远程监控设备的一些参数。看到监控系统了解更多信息。

该特性可以在远程管理部分的Android设置,但它也可以使用以下云连接器API方法进行管理:

方法 描述

enableSystemMonitor(布尔)

启用/禁用系统监视器特性

isSystemMonitorEnabled ()

返回系统监视器的当前状态

管理系统监控特性
进口com.digi.android.cloudconnector.CloudConnectorManager;[…]//实例化CloudConnector管理器对象。CloudConnectorManager connectorManager =CloudConnectorManager ();//检查系统监控是否已经开启。如果没有,请启用它。如果(! connectorManager。isSystemMonitorEnabled()) connectorManager。enableSystemMonitor真正的);[…]//关闭系统监视器。connectorManager。enableSystemMonitor);

捕获云连接器事件

Cloud Connector服务执行的某些流程会生成您可能希望知道的事件,以便执行特定操作。云连接器API允许您注册一个侦听器,以便在发生以下事件时收到通知:

  • 连接事件

  • 数据点事件

要侦听Cloud Connector事件,必须做的第一件事是创建事件侦听器。此侦听器必须实现ICloudConnectorEventListener接口。

云连接器事件侦听器
进口com.digi.android.cloudconnector.ICloudConnectorEventListener;公共MyEventsListener实现了ICloudConnectorEventListener {@Override公共无效连接() {/ / TODO@Override公共无效断开连接() {/ / TODO@Override公共无效connectionError(字符串s) {/ / TODO@Override公共无效sendDataPointsSuccess() {/ / TODO@Override公共无效sendDataPointsError(字符串s) {/ / TODO}}

ICloudConnectorEventListener接口实现了以下方法来通知您不同的事件。

方法 描述

连接()

通知Cloud Connector服务已连接。connect方法立即返回,但连接过程可能需要几秒钟才能完成。

断开连接()

通知Cloud Connector服务已断开连接

connectionError(字符串)

通知连接出现错误并提供错误消息

sendDataPointsSuccess ()

通知数据点已成功发送。看到发送数据到远程管理器有关发送数据点的详细信息。

sendDataPointsError(字符串)

通知在发送数据点时发生错误,并提供错误消息

您必须编写希望在您感兴趣的事件回调中执行的代码。您可以将不想执行的回调保留为空。

控件中注册事件侦听器CloudConnectorManager实例。如果在注册侦听器之后生成任何事件,Cloud Connector将执行相应回调中包含的代码。如果要停止接收事件,请取消注册事件侦听器。

方法 描述

registerEventListener (ICloudConnectorEventListener)

注册给定的侦听器以接收Cloud Connector事件

unregisterEventListener (ICloudConnectorEventListener)

从事件侦听器列表中删除给定的侦听器

时,上述方法可能会失败ICloudConnectorEventListener注册或注销是扔一个NullPointerException

注册和取消注册事件侦听器
进口com.digi.android.cloudconnector.CloudConnectorManager;[…]//实例化CloudConnector管理器对象。CloudConnectorManager connectorManager =CloudConnectorManager ();//注册一个事件监听器类的实例来开始接收事件。MyEventsListener MyEventsListener =MyEventsListener ();connectorManager。registerEventListener(myEventsListener);[…]//注销事件监听器以停止接收事件。connectorManager。unregisterEventListener(myEventsListener);

配置云连接器服务

Cloud Connector服务已经配置了一些默认值。您可以在远程管理部分,或者您可以使用Cloud Connector API来这样做。

如果您使用Android设置菜单或Cloud Connector API修改设置,则无关紧要。设置值保存在Android系统中,重启后将以设置值为准。

使用Cloud Connector API读取或修改Cloud Connector设置的第一步是获取CloudConnectorPreferencesManagerCloudConnectorManager

获取CloudConnectorPreferencesManager
进口com.digi.android.cloudconnector.CloudConnectorManager;进口com.digi.android.cloudconnector.CloudConnectorPreferencesManager;[…]//实例化CloudConnector管理器对象。CloudConnectorManager connectorManager =CloudConnectorManager ();//获取CloudConnectorPreferencesManager对象CloudConnectorPreferencesManager preferencesManager = connectorManager。getPreferencesManager();

中的所有设置CloudConnectorPreferencesManager设置和获取的方式相同,但为了更好地理解它们,可以将它们分为以下几组。

设备信息

此组的设置允许您在远程管理器中提供有关设备的一些描述性信息。这些信息可以通过平台访问,并可以帮助您以一种简单的方式识别您的设备。

设备ID

“设备ID”用于在Remote Manager中识别设备。设备ID是一个16字节的数字,对于设备来说是唯一的,并且在其生命周期内不会改变。ConnectCore 6的Device ID来源于以太网接口的MAC地址。

写入设备id的规范方法是四组八位十六进制数字,用破折号分隔,如下所示:

XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX

设备ID是由Cloud Connector服务自动生成的,因此无法设置。的只读设置CloudConnectorPreferencesManager

方法 描述

getDeviceID ()

返回设备ID

供应商ID

vendor ID是一个4字节的值,表示所选设备的制造商。该值将用于确定设备所属的制造商,通常与Remote Manager帐户绑定。

您可以通过登录Remote Manager帐户并导航到“Admin > Account Settings”。进入“我的帐户”页面;在页面的供应商信息部分,您可以请求供应商ID(如果您还没有)或查看分配给您的供应商ID。如果您没有正确配置此设置,或者设置为空,则在尝试连接时将显示错误。

此设置的格式为:

0 xxxxxxxxx

在将设备连接到远程管理器之前,获取并配置供应商ID非常重要。

方法 描述

getVendorID ()

返回设备厂商ID

setVendorID(字符串)

设置云连接器供应商ID设置

setVendorID(字符串)方法可能会失败,原因如下:

  • 指定的厂商ID为扔……NullPointerException

  • 指定的供应商ID不符合正确的格式,抛出错误IllegalArgumentException

设备名称

该值是设备的模型信息。它是一个字符串,在远程管理器服务器中唯一标识设备的此型号。当服务器发现具有相同设备名称的两个设备时,它推断它们是相同的产品,并且产品范围的数据可以在相同设备类型的所有设备之间共享。设备的类型不能是空字符串,也不能只包含空白。

远程管理器使用设备名称以及固件版本和供应商ID设置来缓存RCI设备描述符。更改这些值中的任何一个都将导致远程管理器向设备请求新的RCI设备描述符。

方法 描述

getDeviceName ()

返回配置的设备名称首选项

setDeviceName(字符串)

设置设备名称首选项

setDeviceName(字符串)方法可能会失败,原因如下:

  • 指定的设备名称为扔……NullPointerException

  • 设备名长度大于等于0CloudConnectorPreferencesManager。DEVICE_NAME_MAXIMUM_LENGTH,投掷IllegalArgumentException

设备描述

此设置是对运行Cloud Connector服务的设备的描述。它允许将描述性设备信息分配给您的每个设备。

方法 描述

getDeviceDescription ()

返回配置的设备描述首选项

setDeviceDescription(字符串)

设置设备描述首选项

setDeviceDescription(字符串)方法可能会失败,原因如下:

  • 指定的描述为扔……NullPointerException

  • 描述的长度大于CloudConnectorPreferencesManager。DESCRIPTION_MAXIMUM_LENGTH,投掷IllegalArgumentException

联系信息

设备维护人员的联系方式。

方法 描述

getDeviceContactInformation ()

返回配置的设备联系信息首选项

setDeviceContactInformation(字符串)

设置设备联系人首选项

setDeviceContactInformation(字符串)方法可能会失败,原因如下:

  • 指定的联系方式为扔……NullPointerException

  • 联系人信息的长度大于CloudConnectorPreferencesManager。CONTACT_MAXIMUM_LENGTH,投掷IllegalArgumentException

连接

CloudConnectorPreferencesManager通过该界面,配置ConnectCore 8X与远程管理器建立连接的相关参数。

连接URL

Remote Manager的URL不打算更改,但是如果您想使用不同的Remote Manager服务器(如测试服务器),则可以修改它。

方法 描述

getURL ()

返回配置的云连接器URL首选项

setURL(字符串)

设置云连接器URL首选项

setURL(字符串)方法可能失败,如果指定的URL为扔……NullPointerException

谨慎!此设置的值应始终设置为remotemanager.digi.com

Auto-connect

此设置用于指示Cloud Connector服务,它应该在启动后或Internet连接丢失时尝试连接到Remote Manager。

方法 描述

isAutoConnectEnabled ()

返回是否启用自动连接设置

setAutoConnectEnabled(布尔)

设置自动连接设置的新值

默认情况下禁用此设置。

安全连接

此设置允许您使用安全协议(SSL)连接到Remote Manager或建立标准TCP连接。启用该设置后,Cloud Connector将使用安全协议(SSL)连接到Remote Manager。如果它被禁用,云连接器将建立一个标准的TCP连接。

方法 描述

isSecureConnectionEnabled ()

返回是否启用安全连接

setSecureConnectionEnabled(布尔)

为使用安全连接设置设置新值

默认情况下禁用此设置。应用于此设置的更改仅在重新连接后生效。

信息压缩

此设置可用于减少网络流量。如果启用该设置,云连接器将在从远程管理器发送/接收数据时使用ZLib压缩。

方法 描述

isCompressionEnabled ()

返回是否启用消息压缩

setCompressionEnabled(布尔)

设置压缩消息设置的新值

默认情况下禁用此设置。应用于此设置的更改仅在重新连接后生效。

系统监控

Cloud Connector的系统监控功能允许您远程控制设备的一些参数。看到监控系统

系统监控可以获得当前系统内存、CPU负载和CPU温度的样例值。从CloudConnectorPreferencesManager您可以启用或禁用此功能,并配置一些高级设置,例如要监视的参数。

方法 描述

isSystemMonitorEnabled ()

返回系统监视器的当前状态

enableSystemMonitor(布尔)

设置启用系统监视器设置的新值

默认情况下禁用此设置。

采样率

这是以秒为单位捕获每个参数样本的时间。样品被捕获并保存,直到它们到达getSystemMonitorUploadSamplesSize ()价值。然后上传到Remote Manager。

方法 描述

getSystemMonitorSampleRate ()

返回系统监视器采样率

setSystemMonitorSampleRate (int)

设置系统监视器采样率

setSystemMonitorSampleRate (int)方法可能失败,如果采样率设置低于5,则抛出IllegalArgumentException

上传前的样本

此系统监控设置确定在将每个参数上传到Remote Manager之前要捕获的样本数量。

方法 描述

getSystemMonitorUploadSamplesSize ()

返回上传到远程管理器之前要为每个通道存储的样本的系统监视器数

setSystemMonitorUploadSamplesSize (int)

设置上传到远程管理器之前要为每个通道存储的样本的系统监视器数量。

setSystemMonitorUploadSamplesSize (int)方法如果要设置的样本大小值小于1或大于最大上传样本大小(CloudConnectorPreferencesManager。MAXIMUM_UPLOAD_SAMPLES_SIZE),投掷IllegalArgumentException

监控系统内存

此设置启用或禁用系统内存监视。它是以MB为单位的设备所使用的总RAM内存。

方法 描述

isSystemMonitorMemorySamplingEnabled ()

返回是否启用了系统监视器内存采样

enableSystemMonitorMemorySampling(布尔)

设置启用系统监视器内存采样的新值

监控CPU负载

通过此设置,您可以启用或禁用系统监控特性中的CPU负载参数。CPU负载以%表示。

方法 描述

isSystemMonitorCPULoadSamplingEnabled ()

返回系统监视器CPU负载采样是否已启用

enableSystemMonitorCPULoadSampling(布尔)

设置启用系统监控CPU负载采样的新值

监控CPU温度

通过该设置,可以开启或关闭系统监控特性中的CPU温度参数。温度的值以摄氏度的形式被获取并保存在Remote Manager中。

方法 描述

isSystemMonitorCPUTemperatureSamplingEnabled ()

返回系统监控CPU温度采样是否开启

enableSystemMonitorCPUTemperatureSampling(布尔)

设置使能系统监控CPU温度采样的新值

配置示例

的用法示例CloudConnectorPreferencesManager对象:

使用CloudConnectorPreferencesManager配置设置
进口com.digi.android.cloudconnector.CloudConnectorManager;进口com.digi.android.cloudconnector.CloudConnectorPreferencesManager;[…]//实例化CloudConnector管理器对象。CloudConnectorManager connectorManager =CloudConnectorManager ();//获取CloudConnectorPreferencesManager对象CloudConnectorPreferencesManager preferencesManager = connectorManager。getPreferencesManager();//配置设备信息参数。preferencesManager。setVendorID“0 x12345678”);preferencesManager。setDeviceDescription“我的设备描述”);preferencesManager。setContactInformation“my.name@company.com”);//配置一些连接参数如果(! preferencesManager。isAutoConnectEnabled()) preferencesManager。setAutoConnectEnabled真正的);如果(! preferencesManager。isSecureConnectionEnabled{preferencesManager。setSecureConnectionEnabled真正的);//此设置需要重新连接才能应用它。connectorManager。断开连接();connectorManager。连接();}//配置并启用系统监控有了这个配置//系统监控将每个参数共上传10个样本//每隔150秒。preferencesManager。setSystemMonitorSampleRate15);preferencesManager。setSystemMonitorUploadSamplesSize10);如果(! preferencesManager。isSystemMonitorEnabled()) preferencesManager。enableSystemMonitor真正的);

从远程管理器接收数据

云连接器服务提供的另一个特性是从Remote Manager接收数据,也称为接收设备请求。传输是从连接到远程管理器的Web服务客户端发起的,远程管理器承载ConnectCore 8X设备。这种传输用于向设备发送数据,设备可以发回响应。

为了使您的应用程序意识到发送到设备的设备请求,首先创建您自己的设备请求侦听器。此侦听器类必须实现IDeviceRequestListener接口。

云连接器设备请求监听器
进口com.digi.android.cloudconnector.IDeviceRequestListener;MyDeviceRequestListener实现了IDeviceRequestListener {@Override公共字符串handleDeviceRequest(字符串的目标,字节[] data) {返回;}@Override公共字符串handleDeviceRequest(字符串目标,字符串数据){返回;}}

IDeviceRequestListener接口实现了以下方法来处理通过云发送的数据。

方法 描述

handleDeviceRequest(字符串,byte [])

用给定的数据处理给定目标的二进制设备请求

handleDeviceRequest(字符串,字符串)

使用给定数据处理给定目标的普通设备请求

第一个参数对应于目标名称,它是设备请求的标识符。第二个参数是设备请求的数据,根据所执行的回调,它以字符串或字节数组的形式提供。这些方法可选地返回一个字符串,该字符串将作为设备请求的响应发送到远程管理器。设备请求的最大数据大小为2MB。

handleDeviceRequest(字符串,byte [])Callback只在发送到设备的请求的数据格式为base64

在每个回调中编写要执行的代码。您可以使用回调的第一个参数(目标)来标识接收到的设备请求的ID。

的设备请求侦听器中注册设备请求侦听器CloudConnectorManager实例,用于指定目标。每当设备在注册侦听器后接收到注册目标的设备请求时,Cloud Connector将执行相应回调中包含的代码。如果要停止侦听设备请求,请取消侦听器的注册。

方法 描述

IDeviceRequestListener registerDeviceRequestListener(字符串)

注册给定的侦听器以接收来自云连接器的针对给定目标的设备请求

unregisterDeviceRequestListener (IDeviceRequestListener)

从设备请求侦听器列表中删除给定的侦听器

时,上述方法可能会失败IDeviceRequestListener注册或注销是扔……NullPointerException

注册和取消注册事件侦听器
进口com.digi.android.cloudconnector.CloudConnectorManager;[…]//实例化CloudConnector管理器对象。CloudConnectorManager connectorManager =CloudConnectorManager ();//注册一个设备请求监听器类的实例来开始接收设备请求//设置目标为myTarget。MyDeviceRequestListener =MyDeviceRequestListener ();connectorManager。registerDeviceRequestListener“myTarget”, myDeviceRequestListener);[…]//注销设备请求监听器,停止监听设备请求。connectorManager。unregisterDeviceRequestListener(myDeviceRequestListener);

使用API资源管理器发送设备请求

设备请求可以通过远程管理器平台内的Web服务发送。如果你已经实现了一个设备请求监听器,并且你想要测试它,请遵循以下步骤:

  1. 登录您的远程管理器帐户(https://remotemanager.digi.com)。

  2. 文档> API资源管理器

  3. 选择示例> SCI >数据服务>发送请求

    远程管理器自动创建必要的代码

  4. 将“设备id”值替换为设备的id。

  5. 输入设备请求的目标名称和数据。

    远程管理- API资源管理器
    < sci_requestversion =“1.0”>< data_service ><目标><设备id =“00000000-00000000-00000000-00000000”/>> < /目标< >的请求< device_requesttarget_name =“myTarget”>这是一个设备请求示例< / device_request >> < /请求< / data_service >< / sci_request >
  6. 点击发送

发送数据到远程管理器

Cloud Connector服务允许您在Remote Manager中存储时间序列数据,这些数据以后可以由外部应用程序使用WEB服务检索。这个特性在远程管理器中也称为数据流。

几乎任何类型的数据都可以存储,您可以创建实时图表来监控数据流。数据流是完全可搜索的,流中的数据可以卷成时间间隔摘要。数据存储和复制在多个安全的商业级存储系统中,以确保数据的完整保护。

时间序列数据涉及两个概念:

  • 数据点是存储在具有唯一时间戳的数据流中的单个值。

  • 数据流是数据点的容器。数据流包含关于其中所包含的数据点的元数据。数据流及其包含的数据点使用分层路径寻址(很像文件夹)。

数据流

在将数据点发送到Remote Manager之前,您需要定义保存它的数据流。请记住,数据流可以存储相同类型的多个数据点。一个数据流对象(com.digi.android.cloudconnector.DataStream)表示远程管理器中数据点的目的地。例如,a数据流对象名称为"temperature"将在远程管理器中创建一个带有路径的流<的DeviceID > /温度,在那里<的DeviceID >为设备的ID。

数据流的实例化可以只在构造函数中提供名称,然后再配置其他参数,或者直接在构造函数中提供所有设置。实例化后,您可以使用以下方法管理其参数。

方法 描述

getName ()

返回此数据流的名称

getForwardTo ()

返回用于将数据点复制到*的数据流名称数组

setForwardTo (String [])

设置要复制数据点的流列表

getUnits ()

返回此数据流的单位

setUnits(流)

设置数据流单位

数据流名称列表包含要复制数据点的数据流名称。因此,一旦数据点存储在数据流中,它也将被复制或复制到名称包含在该列表中的每个数据流中。
数据流构造器
进口com.digi.android.cloudconnector.DataStream;[…]//创建一个新的数据流,名称为“temperature”,单位为“C”。数据流温度=数据流(“温度”);temperatureDataStream。setUnits“C”);
数据流构造函数2
进口com.digi.android.cloudconnector.DataStream;[…]//创建一个新的数据流,名称为“temperature”,单位为“C”。数据流温度=数据流(“温度”“C”String [0]);

数据点

定义一个数据点数据点类(com.digi.android.cloudconnector.DataPoint),它表示在远程管理器的数据流中存储在特定时间的单个值。

数据点值和流目的地(a数据流对象)来创建数据点。您需要根据数据点的值类型使用正确的构造函数。Android系统时间被用作实例化数据点的时间戳。其他属性,如描述、质量和位置,可以使用相应的集合方法来指定。

方法 描述

getData ()

返回数据点数据

getDataStream ()

返回数据点的数据流目的地

getTimestamp ()

返回数据点时间戳

getDescription ()

返回数据点描述

setDescription(字符串)

设置数据点描述

getLocation ()

返回数据点位置

setLocation (android.location.Location)

设置数据点位置

getQuality ()

返回数据点质量

setQuality (int)

设置数据点质量

数据点构造函数
进口com.digi.android.cloudconnector.DataPoint;进口com.digi.android.cloudconnector.DataStream;[…]数据流温度=数据流(“温度”“C”String [0]);数据流inValveDataStream =数据流(“inValve””“String [0]);DataStream =数据流(“水平”“%”String [0]);数据点温度=数据点(20.7度, temperatureDataStream);temperatureDataPoint。setDescription“水箱温度”);数据点inValveDataPoint =数据点(真正的, inValveDataStream);inValveDataPoint。setDescription“在阀状态”);数据点levelDataPoint =数据点(64, levelDataStream);levelDataPoint。setDescription“油箱液位百分比”);

创建所有数据点后,使用控件中的以下方法之一将它们发送到远程管理器CloudConnectorManager对象。

方法 描述

sendDataPoint(数据)

将给定的数据点发送到远程管理器

sendDataPoints(列表<数据>)

将给定的数据点列表发送到远程管理器

sendDataPoint(数据)方法可能会失败,原因如下:

  • 指定的数据点扔……NullPointerException

  • 云连接器与远程管理器断开连接,抛出UnsupportedOperationException

sendDataPoints(列表<数据>)方法可能会失败,原因如下:

  • 指定的数据点列表扔……NullPointerException

  • 云连接器与远程管理器断开连接,抛出UnsupportedOperationException

  • 数据点列表的大小小于CloudConnectorManager。MINIMUM_DATA_POINTS或者数据点列表的大小大于CloudConnectorManager。MAXIMUM_DATA_POINTS,投掷IllegalArgumentException

发送单个数据点
进口com.digi.android.cloudconnector.CloudConnectorManager;进口com.digi.android.cloudconnector.DataPoint;进口com.digi.android.cloudconnector.DataStream;[…]CloudConnectorManager connectorManager =CloudConnectorManager ();connectorManager。连接();数据流myDataStream =数据流(“温度”“C”String [0]);dataPoint1 =数据点(20.7度, myDataStream);dataPoint2 =数据点(21.2度, myDataStream);dataPoint3 =数据点(21.5度, myDataStream);//将数据点逐个上传到Remote Manager。connectorManager。sendDataPoint(dataPoint1);connectorManager。sendDataPoint(dataPoint2);connectorManager。sendDataPoint(dataPoint3);
发送数据点列表
进口com.digi.android.cloudconnector.CloudConnectorManager;进口com.digi.android.cloudconnector.DataPoint;进口com.digi.android.cloudconnector.DataStream;[…]CloudConnectorManager connectorManager =CloudConnectorManager ();connectorManager。连接();数据流myDataStream =数据流(“温度”“C”String [0]);ArrayList数据点=ArrayList <数据> ();据点。添加数据点(20.7度myDataStream));据点。添加数据点(21.2度myDataStream));据点。添加数据点(21.5度myDataStream));//上传一个数据点列表到Remote ManagerconnectorManager。sendDataPoints(点);

将数据点上传到Remote Manager的过程会生成可由应用程序捕获的事件。Send方法会立即返回,因此如果希望跟踪操作的结果,则需要使用Cloud Connector事件侦听器。看到捕获云连接器事件有关事件的更多信息。

二进制数据点

如果您需要最小化数据流量,请使用二进制简洁替代格式向远程管理器发送数据点。它满足了简洁和精简的要求sendDataPoint方法:您可以指定一个简单的二进制值,当您将该值推送到Remote Manager时,它将以您提供的精确二进制格式原样存储。

要使用这种格式,必须定义二进制数据点。他们由阶级来代表BinaryDataPointcom.digi.android.cloudconnector.BinaryDataPoint),并包含单个值,该值在远程管理器中的数据流中存储在特定时间,类似于数据点具有以下区别的对象:

  • 它们的数据总是一个字节数组。

  • 它们没有其他属性,如描述、质量或位置。

  • 接收到该值时,远程管理器将始终设置时间戳。

  • 包含二进制数据点的数据流将没有单元,并且不可能使用其他数据流名称列表来复制数据点。这是单位身向前关联的属性数据流对象将不会被使用。

构造函数需要二进制数据点的值(这是一个字节数组)和数据流对象作为参数。实例化后,您可以使用以下方法获得它的一些参数。

方法 描述

getData ()

返回数据点数据的副本

getDataStream ()

返回数据点的数据流目的地。

BinaryDataPoint构造函数
进口com.digi.android.cloudconnector.BinaryDataPoint;进口com.digi.android.cloudconnector.DataStream;[…]数据流binaryDataStream =数据流(“binaryData”);BinaryDataPoint =BinaryDataPoint (字节(16), binaryDataStream);

二进制简洁机制有以下限制:

  • 同一时间只能上传一个二进制数据点。

  • 的数据BinaryDataPointobject必须小于64KB。

实例化二进制数据点后,可以使用以下方法将其上传到远程管理器CloudConnectorManager对象。

方法 描述

sendBinaryDataPoint (BinaryDataPoint)

将给定的BinaryDataPoint发送到远程管理器。

sendBinaryDataPoint (BinaryDataPoint)方法可能会失败,原因如下:

  • 指定的BinaryDataPoint扔……NullPointerException

  • 云连接器与远程管理器断开连接,抛出UnsupportedOperationException

  • 要发送的二进制值小于CloudConnectorManager。MAX_SIZE_OF_BINARY_DATA_POINTS_KB,投掷IllegalArgumentException

发送二进制数据点
进口com.digi.android.cloudconnector.BinaryDataPoint;进口com.digi.android.cloudconnector.CloudConnectorManager;进口com.digi.android.cloudconnector.DataStream;[…]CloudConnectorManager connectorManager =CloudConnectorManager ();connectorManager。连接();数据流binaryDataStream =数据流(“binaryData”);BinaryDataPoint =BinaryDataPoint (字节(16), binaryDataStream);//上传二进制数据点到远程管理器。connectorManager。sendBinaryDataPoint(binaryDataPoint);

回顾数据流系列在远程管理器

您可以从Remote Manager平台查看存储在云中的数据点(以图表和文本格式)。要做到这一点,请遵循以下步骤:

  1. 登录您的远程管理器帐户(https://remotemanager.digi.com)。

  2. 数据服务TAB键并选择数据流

  3. 从流列表中选择要分析的数据流。

  4. 在下面的框中,选择表示值的格式(图表原始数据)。数据流中包含的数据点显示在图表或列表中。

    远程管理器:数据流

云连接器示例

示例:云连接器

云连接器示例应用程序演示了云连接器API的用法。在本例中,您可以远程启动和关闭该服务、配置一些参数、向Remote Manager发送数据和接收命令。

您可以使用Digi的Android Studio插件导入示例。有关更多信息,请参见导入Digi示例应用程序。要查看应用程序源代码,请转到GitHub库