【功能完善】IOT: ThingModel 服务和事件

This commit is contained in:
puhui999
2024-12-25 12:15:58 +08:00
parent ed901bc97f
commit 94cfc4a1b1
8 changed files with 169 additions and 37 deletions

View File

@@ -1,9 +1,15 @@
package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model;
import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelArgument;
import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelServiceEventTypeEnum;
import lombok.Data;
import java.util.List;
/**
* 物模型中的事件
*
* @author HUIHUI
*/
@Data
public class ThingModelEvent {
@@ -19,14 +25,28 @@ public class ThingModelEvent {
* 事件描述
*/
private String description;
/**
* 是否是标准品类的必选事件。
*
* - true
* - false
*/
private Boolean required;
/**
* 事件类型
*
* "info"、"alert"、"error"
* 关联枚举 {@link IotProductThingModelServiceEventTypeEnum}
*/
private String eventType;
/**
* 事件的输出参数
*
* 输出参数定义事件调用后返回的结果或反馈信息,用于确认操作结果或提供额外的信息。
*/
private List<ThingModelInputOutputParam> outputParams;
/**
* 标识设备需要执行的具体操作
*/
private String type;
private List<ThingModelArgument> outputData;
private String method;
}

View File

@@ -0,0 +1,52 @@
package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model;
import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelDataSpecs;
import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelParamDirectionEnum;
import lombok.Data;
import java.util.List;
/**
* IOT 产品物模型中的服务、事件的输入输出参数
*
* @author HUIHUI
*/
@Data
public class ThingModelInputOutputParam {
/**
* 参数标识符
*/
private String identifier;
/**
* 参数名称
*/
private String name;
/**
* 参数描述
*/
private String description;
/**
* 用于区分输入或输出参数
*
* 关联枚举 {@link IotProductThingModelParamDirectionEnum}
*/
private String direction;
/**
* 参数的序号。从 0 开始排序,且不能重复。
*/
private Integer paraOrder;
/**
* 参数值的数据类型,与 dataSpecs 的 dataType 保持一致
*/
private String dataType;
/**
* 参数值的数据类型dataType为非列表型int、float、double、text、date、array的数据规范存储在 dataSpecs 中
*/
private ThingModelDataSpecs dataSpecs;
/**
* 参数值的数据类型dataType为列表型enum、bool、struct的数据规范存储在 dataSpecsList 中
*/
private List<ThingModelDataSpecs> dataSpecsList;
}

View File

@@ -1,9 +1,15 @@
package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model;
import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType.ThingModelArgument;
import cn.iocoder.yudao.module.iot.enums.thingmodel.IotProductThingModelServiceCallTypeEnum;
import lombok.Data;
import java.util.List;
/**
* 物模型中的服务
*
* @author HUIHUI
*/
@Data
public class ThingModelService {
@@ -19,15 +25,34 @@ public class ThingModelService {
* 服务描述
*/
private String description;
/**
* 是否是标准品类的必选服务。
*
* - true
* - false
*/
private Boolean required;
/**
* 调用类型
*
* "sync"、"async"
* 关联枚举 {@link IotProductThingModelServiceCallTypeEnum}
*/
private String callType;
private List<ThingModelArgument> inputData;
private List<ThingModelArgument> outputData;
/**
* 服务的输入参数
*
* 输入参数定义服务调用时所需提供的信息,用于控制设备行为或执行特定任务
*/
private List<ThingModelInputOutputParam> inputParams;
/**
* 服务的输出参数
*
* 输出参数定义服务调用后返回的结果或反馈信息,用于确认操作结果或提供额外的信息。
*/
private List<ThingModelInputOutputParam> outputParams;
/**
* 标识设备需要执行的具体操作
*/
private String method;
}

View File

@@ -1,26 +0,0 @@
package cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.dataType;
import cn.iocoder.yudao.module.iot.controller.admin.thingmodel.model.ThingModelProperty;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class ThingModelArgument {
public static final String DIRECTION_INPUT = "input";
public static final String DIRECTION_OUTPUT = "output";
private String identifier;
private String name;
/**
* 物模型中的属性
*/
private ThingModelProperty property;
/**
* 用于区分输入或输出参数,"input" 或 "output"
*/
private String direction;
private String description;
}