update 设备配置

V0.5.x
jay 2024-06-21 13:07:21 +08:00
parent b552b24bfc
commit 45c4962765
1 changed files with 52 additions and 29 deletions

View File

@ -40,6 +40,7 @@ import cc.iotkit.mq.MqProducer;
import cc.iotkit.plugin.core.thing.IDevice;
import cc.iotkit.plugin.core.thing.IThingService;
import cc.iotkit.plugin.core.thing.actions.ActionResult;
import cc.iotkit.plugin.core.thing.actions.down.DeviceConfig;
import cc.iotkit.plugin.core.thing.actions.down.PropertyGet;
import cc.iotkit.plugin.core.thing.actions.down.PropertySet;
import cc.iotkit.plugin.core.thing.actions.down.ServiceInvoke;
@ -134,53 +135,75 @@ public class PluginMainImpl implements IPluginMain, DeviceService {
String type = service.getType();
String identifier = service.getIdentifier();
ActionResult result = null;
if (ThingService.TYPE_SERVICE.equals(type)) {
if (!(service.getParams() instanceof Map)) {
throw new BizException(ErrCode.PARAMS_EXCEPTION);
}
Map<String, ?> params = (Map<String, ?>) service.getParams();
//服务调用
ServiceInvoke action = ServiceInvoke.builder()
.id(service.getMid())
.productKey(linkPk)
.deviceName(linkDn)
.name(service.getIdentifier())
.params(params)
.build();
//调用插件设备服务接口
result = deviceService.serviceInvoke(action);
publish(service, deviceInfo.getDeviceId(), result.getCode());
} else if (ThingService.TYPE_PROPERTY.equals(type)) {
if ("set".equals(identifier)) {
Map<String, ?> params = null;
switch (type){
case ThingService.TYPE_SERVICE:
if (!(service.getParams() instanceof Map)) {
throw new BizException(ErrCode.PARAMS_EXCEPTION);
}
Map<String, ?> params = (Map<String, ?>) service.getParams();
//属性设置
PropertySet action = PropertySet.builder()
params = (Map<String, ?>) service.getParams();
//服务调用
ServiceInvoke action = ServiceInvoke.builder()
.id(service.getMid())
.productKey(linkPk)
.deviceName(linkDn)
.name(service.getIdentifier())
.params(params)
.build();
//调用插件设备服务接口
result = deviceService.propertySet(action);
result = deviceService.serviceInvoke(action);
publish(service, deviceInfo.getDeviceId(), result.getCode());
} else if ("get".equals(identifier)) {
//属性获取
PropertyGet action = PropertyGet.builder()
break;
case ThingService.TYPE_PROPERTY:
if ("set".equals(identifier)) {
if (!(service.getParams() instanceof Map)) {
throw new BizException(ErrCode.PARAMS_EXCEPTION);
}
params = (Map<String, ?>) service.getParams();
//属性设置
PropertySet actionSet = PropertySet.builder()
.id(service.getMid())
.productKey(linkPk)
.deviceName(linkDn)
.params(params)
.build();
//调用插件设备服务接口
result = deviceService.propertySet(actionSet);
publish(service, deviceInfo.getDeviceId(), result.getCode());
} else if ("get".equals(identifier)) {
//属性获取
PropertyGet actionGet = PropertyGet.builder()
.id(service.getMid())
.productKey(linkPk)
.deviceName(linkDn)
.keys((List<String>) service.getParams())
.build();
//调用插件设备服务接口
result = deviceService.propertyGet(actionGet);
publish(service, deviceInfo.getDeviceId(), result.getCode());
}
break;
case ThingService.TYPE_OTA:
break;
case ThingService.TYPE_CONFIG:
// 下发配置:
DeviceConfig actionConfigSet = DeviceConfig.builder()
.id(service.getMid())
.productKey(linkPk)
.deviceName(linkDn)
.keys((List<String>) service.getParams())
.config((Map<String, Object>) service.getParams())
.build();
//调用插件设备服务接口
result = deviceService.propertyGet(action);
result = deviceService.config(actionConfigSet);
publish(service, deviceInfo.getDeviceId(), result.getCode());
}
break;
default:
break;
}
if (result == null || result.getCode() != 0) {
throw new BizException(ErrCode.DEVICE_ACTION_FAILED, result == null ? "" : result.getReason());
}