本文介绍如何快速连接到物联网平台,以及对物模型的基本使用
前提条件
已经在devops完成产品和设备的创建,如要实现属性事件方法等操作,需要提前定义好物模型。
依赖引入
<dependency>
<groupId>com.cainiao.iot</groupId>
<artifactId>loginx-device-sdk</artifactId>
<version>5.0.1</version>
</dependency>
样例代码
//本示例使用扫码注册的方式获取设备政策,更多方法见设备注册
DeviceRegister register = new DeviceRegister();
DeviceRegister.Registration registration = new DeviceRegister.Registration();
registration.setDeviceType(deviceType);
registration.setDeviceName(deviceName);
DevicePolicy policy = register.registerByUrl(registerUrl, registration);
//这一步用户持久化获得的policy到本地
//设备连接操作,policy从本地获取
Device device = new Device(policy);
device.init();
//设备上报属性
Map<String, ValueWrapper> propertyValueMap = new HashMap<>();
propertyValueMap.put("testProperty", new ValueWrapper.StringValueWrapper("test"));
device.postProperty(propertyValueMap , null);
//设备上报事件
Event event = new Event();
event.setName("notify");
Map<String, ValueWrapper> params = new HashMap<>();
params.put("param", new ValueWrapper.StringValueWrapper("ok"));
event.setParams(params);
device.postEvent(event, null)
//设备注册方法
device.registerAsyncMethod("asyncPushMessage", new ITResRequestHandler() {
@Override
public void onProcess(String s, Object request, ITResResponseCallback itResResponseCallback) {
System.out.println("Receive params:" + request);
OutputParams outputParams = new OutputParams();
outputParams.put("result", new ValueWrapper.StringValueWrapper("ok"));
itResResponseCallback.onComplete("syncPushMessage",null, outputParams);
}
@Override
public void onSuccess(Object o, OutputParams outputParams) {
}
@Override
public void onFail(Object o, ErrorInfo errorInfo) {
}
});