设备控制设备状态等大致框架

This commit is contained in:
zhangzhicheng 2024-07-25 17:57:37 +08:00
parent 814a52c707
commit 5d847e626a
13 changed files with 359 additions and 90 deletions

View File

@ -16,10 +16,12 @@ public class CommonYmlConfig {
public static String URL_IOT_SERVER_ATTRIBUTE = "服务器属性"; public static String URL_IOT_SERVER_ATTRIBUTE = "服务器属性";
public static String URL_IOT_TELEMETRY = "遥测"; public static String URL_IOT_TELEMETRY = "遥测";
public static String URL_IOT_OPERATE = "操作控制"; public static String URL_IOT_OPERATE = "操作控制";
public static String URL_IOT_BASEURL = "ip端口";
public String serverAttribute = ""; public String serverAttribute = "";
public String telemetry = ""; public String telemetry = "";
public String operate = ""; public String operate = "";
public String baseurl = "";
@Value("${iot.url.serverAttribute}") @Value("${iot.url.serverAttribute}")
public String setServerAttribute(String serverAttribute) { public String setServerAttribute(String serverAttribute) {
@ -35,4 +37,9 @@ public class CommonYmlConfig {
public String setOperate(String operate) { public String setOperate(String operate) {
return URL_IOT_OPERATE = operate; return URL_IOT_OPERATE = operate;
} }
@Value("${iot.baseurl}")
public String setBase(String baseurl) {
return URL_IOT_BASEURL = baseurl;
}
} }

View File

@ -18,8 +18,12 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/** /**
* app首页 * app 设备业务
* *
* @author Lion Li * @author Lion Li
* @date 2024-07-14 * @date 2024-07-14
@ -70,12 +74,10 @@ public class EqDeviceController extends BaseController {
* @param bo * @param bo
* @return * @return
*/ */
@GetMapping("/getDeviceStatus") @GetMapping("/getDeviceMsg")
public R<EqEquipmentStatusVo> getDeviceStatus(EqAppHomeBo bo){ public R<EqEquipmentStatusVo> getDeviceMsg(EqAppHomeBo bo){
EqEquipmentStatusVo result = new EqEquipmentStatusVo(); if (bo.getEquipmentCode() == null) throw new ServiceException("设备编码不能为空");
return R.ok(eqEquipmentService.getDeviceMsg(bo));
return R.ok(result);
} }
@ -98,6 +100,23 @@ public class EqDeviceController extends BaseController {
*/ */
@GetMapping("/saveDeviceLogs") @GetMapping("/saveDeviceLogs")
public void saveDeviceLogs(EqEquipmentLogBo eqEquipmentLogBo){ public void saveDeviceLogs(EqEquipmentLogBo eqEquipmentLogBo){
Date createTime = eqEquipmentLogBo.getCreateTime();
if (createTime == null) {
createTime = new Date();
eqEquipmentLogBo.setCreateTime(createTime);
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 格式化当前时间
String formattedDate = dateFormat.format(createTime);
String[] timeStr = formattedDate.split(" ");
eqEquipmentLogBo.setCreatedYearDay(timeStr[0]);//年月日
eqEquipmentLogBo.setCreatedHourSecond(timeStr[1]);//时分秒
//星期
Calendar calendar = Calendar.getInstance();
calendar.setTime(createTime);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
eqEquipmentLogBo.setDayOfWeek(dayOfWeek - 1);// Calendar类中星期日为1星期一为2依此类推
logService.insertByBo(eqEquipmentLogBo); logService.insertByBo(eqEquipmentLogBo);
} }

View File

@ -23,7 +23,7 @@ import java.util.Collections;
import java.util.List; import java.util.List;
/** /**
* app首页 * app通用业务
* *
* @author Lion Li * @author Lion Li
* @date 2024-07-14 * @date 2024-07-14

View File

@ -27,7 +27,7 @@ import java.util.Collections;
import java.util.List; import java.util.List;
/** /**
* 固定文本获取 * app 固定文本获取
* *
* @author zzc * @author zzc
* @date 2024-07-14 * @date 2024-07-14

View File

@ -1,65 +0,0 @@
package org.dromara.web.device;
/**
* @ClassName : DeviceMsg
* @Author : ZZC
* @Date : 2024/7/25 0:44
* @Description : 设备信息
**/
public class DeviceMsg {
//属性上报 todo 该属性上报 无需解析指令 需要调用api 当前需要创建属性用来装载
//自动关门功能开关 AT+ECTPP=GarageDoorLightControl,AutomaticDoorClosingSwitch,0,false,{},b2
//自动关门功能开关 AT+ECTPP=GarageDoorLightControl,AutomaticDoorClosingSwitch,0,true,{},a7
//延时自动关门的延时时长 AT+ECTPP=GarageDoorLightControl,AutomaticDoorClosingTime,1,1,{},98
//运行次数开关 AT+ECTPP=GarageDoorLightControl,DoorRunningTimesSwitch,0,true,{},ae
//运行次数开关 AT+ECTPP=GarageDoorLightControl,DoorRunningTimesSwitch,0,false,{},2e
//倒计时剩余时间 AT+ECTPP=GarageDoorLightControl,ResidualCountDown,1,180
//运行次数 AT+ECTPP=GarageDoorLightControl,DoorRunningTimes,1,0
//车库门异常状态无异常 AT+ECTPP=GarageDoorLightControl,GarageException,3,none,{}
//车库门异常状态电机运行故障 AT+ECTPP=GarageDoorLightControl,GarageException,3,motorRunException,{}
//倒计时设置时间 AT+ECTPP=GarageDoorLightControl,CountDownConfig,1,188
//照明灯开关 AT+ECTPP=GarageDoorLightControl,LightSwitch,0,false,{},4d
//照明灯开关 AT+ECTPP=GarageDoorLightControl,LightSwitch,0,true,{},98
//提醒关门时间设置 AT+ECTPP=CustomGarageDoor,RemindCloseDoorConfig,1,1,{},ee
//提醒关门功能开关 AT+ECTPP=CustomGarageDoor,RemindCloseDoorSwitch,0,true,{},7c
//提醒关门功能开关 AT+ECTPP=CustomGarageDoor,RemindCloseDoorSwitch,0,false,{},c5
//半开门高度设置 AT+ECTPP=CustomGarageDoor,PartOpenConfig,1,10,{},aa
//半开门功能开关 AT+ECTPP=CustomGarageDoor,PartOpenSwitch,0,false,{},f9
//半开门功能开关 AT+ECTPP=CustomGarageDoor,PartOpenSwitch,0,true,{},52
//开合度百分比 AT+ECTPP=CustomGarageDoor,OpenPercentage,1,50
//门体运行状态停止中 AT+ECTPP=CustomGarageDoor,WorkState,3,stop,{}
//门体运行状态关闭中 AT+ECTPP=CustomGarageDoor,WorkState,3,closing,{}
//门体运行状态开启中 AT+ECTPP=CustomGarageDoor,WorkState,3,openning,{}
//是否已经校准行程 AT+ECTPP=GarageDoor,RouteCorrectStatus,0,true
//遇阻回弹的阻力设置 AT+ECTPP=GarageDoor,BounceSensitivity,1,3
//红外感应开关开启 AT+ECTPP=GarageDoor,IRSwitch,0,true,{},52
////枚举型属性枚举值
//车库门异常状态 AT+ECTPP=GarageDoorLightControl,GarageException, = {"3,none"}; //车库门异常状态//无故障
// = {"3,irException"}; //车库门异常状态//红外故障
// = {"3,motorRunException"}; //车库门异常状态//电机运转故障
// = {"3,motorMaintainException"}; //车库门异常状态//电机维护故障
// = {"3,deviceException"}; //车库门异常状态//设备故障
//
//门体开合状态 AT+ECTPP=CustomGarageDoor,WorkState, = {"3,stop"}; //车库门工作状态//车库门停止中
// = {"3,closing"}; //车库门工作状态//车库门正在关闭
// = {"3,openning"}; //车库门工作状态//车库门正在开启
//事件上报
//烟雾报警 AT+ECTEP=GarageDoorLightControl,SmokeAlarm,{}
//红外触发报警 AT+ECTEP=GarageDoorLightControl,InfraredTrig,{}
//电机运行报警 AT+ECTEP=GarageDoorLightControl,MotorAbnormal,{}
//电机维修报警 AT+ECTEP=GarageDoorLightControl,MotorMaintenance,{}
//非APP开门提醒 AT+ECTEP=GarageDoorLightControl,NonAppOpen,{}
//非APP关门提醒 AT+ECTEP=GarageDoorLightControl,NonAppClose,{}
//关门故障报警 AT+ECTEP=GarageDoorLightControl,CloseFault,{}
//开门故障报警 AT+ECTEP=GarageDoorLightControl,OpenFault,{}
//开门运行提醒 AT+ECTEP=GarageDoorLightControl,OpenGarage,{}
//关门运行提醒 AT+ECTEP=GarageDoorLightControl,CloseGarage,{}
//忘记关门提醒 AT+ECTEP=GarageDoorLightControl,CloseDoorRemind,{}
//门体手动开启提醒 AT+ECTEP=GarageDoorLightControl,OpenManual,{}
//半开门运行提醒 AT+ECTEP=GarageDoorLightControl,PartOpenGarage,{}
//门体停止运行提醒 AT+ECTEP=GarageDoorLightControl,StopGarage,{}
}

View File

@ -0,0 +1,191 @@
package org.dromara.web.device;
import lombok.Data;
/**
* @ClassName : DeviceMsgDto
* @Author : ZZC
* @Date : 2024/7/25 0:44
* @Description : 设备信息
**/
@Data
public class DeviceMsgDto {
//属性上报 todo 该属性上报 无需解析指令 需要调用api 当前需要创建属性用来装载
//自动关门功能开关 AT+ECTPP=GarageDoorLightControl,AutomaticDoorClosingSwitch,0,false,{},b2
//自动关门功能开关 AT+ECTPP=GarageDoorLightControl,AutomaticDoorClosingSwitch,0,true,{},a7
//延时自动关门的延时时长 AT+ECTPP=GarageDoorLightControl,AutomaticDoorClosingTime,1,1,{},98
//运行次数开关 AT+ECTPP=GarageDoorLightControl,DoorRunningTimesSwitch,0,true,{},ae
//运行次数开关 AT+ECTPP=GarageDoorLightControl,DoorRunningTimesSwitch,0,false,{},2e
//倒计时剩余时间 AT+ECTPP=GarageDoorLightControl,ResidualCountDown,1,180
//运行次数 AT+ECTPP=GarageDoorLightControl,DoorRunningTimes,1,0
//车库门异常状态无异常 AT+ECTPP=GarageDoorLightControl,GarageException,3,none,{}
//车库门异常状态运行故障 AT+ECTPP=GarageDoorLightControl,GarageException,3,motorRunException,{}
//倒计时设置时间 AT+ECTPP=GarageDoorLightControl,CountDownConfig,1,188
//照明灯开关 AT+ECTPP=GarageDoorLightControl,LightSwitch,0,false,{},4d
//照明灯开关 AT+ECTPP=GarageDoorLightControl,LightSwitch,0,true,{},98
//提醒关门时间设置 AT+ECTPP=CustomGarageDoor,RemindCloseDoorConfig,1,1,{},ee
//提醒关门功能开关 AT+ECTPP=CustomGarageDoor,RemindCloseDoorSwitch,0,true,{},7c
//提醒关门功能开关 AT+ECTPP=CustomGarageDoor,RemindCloseDoorSwitch,0,false,{},c5
//半开门高度设置 AT+ECTPP=CustomGarageDoor,PartOpenConfig,1,10,{},aa
//半开门功能开关 AT+ECTPP=CustomGarageDoor,PartOpenSwitch,0,false,{},f9
//半开门功能开关 AT+ECTPP=CustomGarageDoor,PartOpenSwitch,0,true,{},52
//开合度百分比 AT+ECTPP=CustomGarageDoor,OpenPercentage,1,50
//门体运行状态停止中 AT+ECTPP=CustomGarageDoor,WorkState,3,stop,{}
//门体运行状态关闭中 AT+ECTPP=CustomGarageDoor,WorkState,3,closing,{}
//门体运行状态开启中 AT+ECTPP=CustomGarageDoor,WorkState,3,openning,{}
//是否已经校准行程 AT+ECTPP=GarageDoor,RouteCorrectStatus,0,true
//遇阻回弹的阻力设置 AT+ECTPP=GarageDoor,BounceSensitivity,1,3
//红外感应开关开启 AT+ECTPP=GarageDoor,IRSwitch,0,true,{},52
////枚举型属性枚举值
//车库门异常状态 AT+ECTPP=GarageDoorLightControl,GarageException,
// = {"3,none"}; //车库门异常状态//无故障
// = {"3,irException"}; //车库门异常状态//红外故障
// = {"3,motorRunException"}; //车库门异常状态//电机运转故障
// = {"3,motorMaintainException"}; //车库门异常状态//电机维护故障
// = {"3,deviceException"}; //车库门异常状态//设备故障
//
//门体开合状态 AT+ECTPP=CustomGarageDoor,WorkState,
// = {"3,stop"}; //车库门工作状态//车库门停止中
// = {"3,closing"}; //车库门工作状态//车库门正在关闭
// = {"3,openning"}; //车库门工作状态//车库门正在开启
//事件上报
//烟雾报警 AT+ECTEP=GarageDoorLightControl,SmokeAlarm,{}
//红外触发报警 AT+ECTEP=GarageDoorLightControl,InfraredTrig,{}
//电机运行报警 AT+ECTEP=GarageDoorLightControl,MotorAbnormal,{}
//电机维修报警 AT+ECTEP=GarageDoorLightControl,MotorMaintenance,{}
//非APP开门提醒 AT+ECTEP=GarageDoorLightControl,NonAppOpen,{}
//非APP关门提醒 AT+ECTEP=GarageDoorLightControl,NonAppClose,{}
//关门故障报警 AT+ECTEP=GarageDoorLightControl,CloseFault,{}
//开门故障报警 AT+ECTEP=GarageDoorLightControl,OpenFault,{}
//开门运行提醒 AT+ECTEP=GarageDoorLightControl,OpenGarage,{}
//关门运行提醒 AT+ECTEP=GarageDoorLightControl,CloseGarage,{}
//忘记关门提醒 AT+ECTEP=GarageDoorLightControl,CloseDoorRemind,{}
//门体手动开启提醒 AT+ECTEP=GarageDoorLightControl,OpenManual,{}
//半开门运行提醒 AT+ECTEP=GarageDoorLightControl,PartOpenGarage,{}
//门体停止运行提醒 AT+ECTEP=GarageDoorLightControl,StopGarage,{}
//属性上报
/**
* //自动关门功能开关 false
* //自动关门功能开关 true
*/
private Boolean AutomaticDoorClosingSwitch;
/**
* //延时自动关门的延时时长
*/
private Integer AutomaticDoorClosingTime;
/**
* //运行次数开关 false
* //运行次数开关 true
*/
private Integer DoorRunningTimesSwitch;
/**
* //倒计时剩余时间
*/
private Integer ResidualCountDown;
/**
* //运行次数
*/
private Integer DoorRunningTimes;
/**
车库门异常状态
10.无异常 none
11.红外故障 irException
12.电机运转故障 motorRunException
13.电机维护故障 motorMaintainException
14.设备故障 deviceException
*/
private String GarageException;
/**
* //倒计时设置时间
*/
private Integer CountDownConfig;
/**
* //照明灯开关 false
* //照明灯开关 true
*/
private Boolean LightSwitch;
/**
* //提醒关门时间设置
*/
private Integer RemindCloseDoorConfig;
/**
* //提醒关门功能开关 false
* //提醒关门功能开关 true
*/
private Boolean RemindCloseDoorSwitch;
/**
* //半开门高度设置
*/
private Integer PartOpenConfig;
/**
* //半开门功能开关 false
* //半开门功能开关 true
*/
private Boolean PartOpenSwitch;
/**
* //开合度百分比
*/
private Integer OpenPercentage;
/**
* //门体运行状态
* 0.停止中 stop
* 1.关闭中 closing
* 2.开启中 openning
*/
private String WorkState;
/**
* //是否已经校准行程
*/
private Boolean RouteCorrectStatus;
/**
* //遇阻回弹的阻力设置
*/
private Integer BounceSensitivity;
/**
* //红外感应开关开启关闭
*/
private Boolean IRSwitch;
/**
* 事件上报
* 101.烟雾报警
* 102.红外触发报警
* 103.电机运行报警
* 104.电机维修报警
* 105.非APP开门提醒
* 106.非APP关门提醒
* 107.关门故障报警
* 108.开门故障报警
* 109.开门运行提醒
* 110.关门运行提醒
* 111.忘记关门提醒
* 112.门体手动开启提醒
* 113.半开门运行提醒
* 114.门体停止运行提醒
*/
private Integer warningStatus;
}

View File

@ -0,0 +1,15 @@
package org.dromara.web.device;
import lombok.Data;
/**
* @ClassName : DeviceMsgDto
* @Author : ZZC
* @Date : 2024/7/25 0:44
* @Description : 设备信息
**/
@Data
public class DeviceServerMsgDto {
private Boolean lineStatus;
}

View File

@ -62,12 +62,12 @@ public class EqEquipmentLog extends BaseEntity {
/** /**
* 年月日 * 年月日
*/ */
private Date createdYearDay; private String createdYearDay;
/** /**
* 时分秒 * 时分秒
*/ */
private Date createdHourSecond; private String createdHourSecond;
/** /**
* 星期几 * 星期几

View File

@ -48,18 +48,49 @@ public class EqEquipmentLogBo extends BaseEntity {
/** /**
* 状态 * 状态
* 0.停止中 stop
* 1.关闭中 closing
* 2.开启中 openning
*
* 10.无异常 none
* 11.红外故障 irException
* 12.电机运转故障 motorRunException
* 13.电机维护故障 motorMaintainException
* 14.设备故障 deviceException
*
* 101.烟雾报警
* 102.红外触发报警
* 103.电机运行报警
* 104.电机维修报警
* 105.非APP开门提醒
* 106.非APP关门提醒
* 107.关门故障报警
* 108.开门故障报警
* 109.开门运行提醒
* 110.关门运行提醒
* 111.忘记关门提醒
* 112.门体手动开启提醒
* 113.半开门运行提醒
* 114.门体停止运行提醒
*/ */
@NotNull(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer status; private Integer status;
/** /**
* 故障状态 * 故障状态
* 10.无异常 none
* 11.红外故障 irException
* 12.电机运转故障 motorRunException
* 13.电机维护故障 motorMaintainException
* 14.设备故障 deviceException
*/ */
@NotNull(message = "故障状态不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "故障状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer faultStatus; private Integer faultStatus;
/** /**
* 离线状态 * 离线状态
* 1.在线
* 0.离线
*/ */
@NotNull(message = "离线状态不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "离线状态不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer lineStatus; private Integer lineStatus;
@ -68,16 +99,23 @@ public class EqEquipmentLogBo extends BaseEntity {
* 年月日 * 年月日
*/ */
@NotNull(message = "年月日不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "年月日不能为空", groups = { AddGroup.class, EditGroup.class })
private Date createdYearDay; private String createdYearDay;
/** /**
* 时分秒 * 时分秒
*/ */
@NotNull(message = "时分秒不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "时分秒不能为空", groups = { AddGroup.class, EditGroup.class })
private Date createdHourSecond; private String createdHourSecond;
/** /**
* 星期几 * 星期几
* 0."星期日",
* 1."星期一",
* 2."星期二",
* 3."星期三",
* 4."星期四",
* 5."星期五",
* 6."星期六"
*/ */
@NotNull(message = "星期几不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "星期几不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer dayOfWeek; private Integer dayOfWeek;

View File

@ -79,13 +79,13 @@ public class EqEquipmentLogVo implements Serializable {
* 年月日 * 年月日
*/ */
@ExcelProperty(value = "年月日") @ExcelProperty(value = "年月日")
private Date createdYearDay; private String createdYearDay;
/** /**
* 时分秒 * 时分秒
*/ */
@ExcelProperty(value = "时分秒") @ExcelProperty(value = "时分秒")
private Date createdHourSecond; private String createdHourSecond;
/** /**
* 星期几 * 星期几

View File

@ -3,6 +3,7 @@ package org.dromara.web.service;
import org.dromara.web.domain.bo.EqAppHomeBo; import org.dromara.web.domain.bo.EqAppHomeBo;
import org.dromara.web.domain.bo.EqDeviceCmdBo; import org.dromara.web.domain.bo.EqDeviceCmdBo;
import org.dromara.web.domain.bo.EqDeviceSetBo; import org.dromara.web.domain.bo.EqDeviceSetBo;
import org.dromara.web.domain.vo.EqEquipmentStatusVo;
import org.dromara.web.domain.vo.EqEquipmentVo; import org.dromara.web.domain.vo.EqEquipmentVo;
import org.dromara.web.domain.bo.EqEquipmentBo; import org.dromara.web.domain.bo.EqEquipmentBo;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -73,4 +74,10 @@ public interface IEqEquipmentService {
String setting(EqDeviceSetBo bo); String setting(EqDeviceSetBo bo);
/**
* 获取设备信息
* @param bo
* @return
*/
EqEquipmentStatusVo getDeviceMsg(EqAppHomeBo bo);
} }

View File

@ -1,7 +1,9 @@
package org.dromara.web.service.impl; package org.dromara.web.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -11,11 +13,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.web.config.CommonYmlConfig; import org.dromara.web.config.CommonYmlConfig;
import org.dromara.web.device.DeviceCtlCmd; import org.dromara.web.device.*;
import org.dromara.web.device.DeviceCtlDto; import org.dromara.web.domain.bo.EqAppHomeBo;
import org.dromara.web.device.DeviceSetCmd;
import org.dromara.web.domain.bo.EqDeviceCmdBo; import org.dromara.web.domain.bo.EqDeviceCmdBo;
import org.dromara.web.domain.bo.EqDeviceSetBo; import org.dromara.web.domain.bo.EqDeviceSetBo;
import org.dromara.web.domain.vo.EqEquipmentStatusVo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.dromara.web.domain.bo.EqEquipmentBo; import org.dromara.web.domain.bo.EqEquipmentBo;
import org.dromara.web.domain.vo.EqEquipmentVo; import org.dromara.web.domain.vo.EqEquipmentVo;
@ -160,7 +162,7 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
return "指令类型错误"; return "指令类型错误";
} }
//增加操作次数 更新到设备表中 //增加操作次数 更新到设备表中
return httpCtlPostSend(cmd); return httpCtlPostSend(bo.getEquipmentCode(),cmd);
} }
@Override @Override
@ -190,18 +192,72 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
cmd = cmd.replace(DeviceSetCmd.MODEL,bo.getOperateValue()+""); cmd = cmd.replace(DeviceSetCmd.MODEL,bo.getOperateValue()+"");
} }
//增加操作次数 更新到设备表中 //增加操作次数 更新到设备表中
return httpCtlPostSend(cmd); return httpCtlPostSend(bo.getEquipmentCode(),cmd);
}
@Override
public EqEquipmentStatusVo getDeviceMsg(EqAppHomeBo bo) {
EqEquipmentStatusVo result = new EqEquipmentStatusVo();
result.setEquipmentId(bo.getEquipmentId());
result.setEquipmentCode(bo.getEquipmentCode());
//获取服务属性状态
String serverMsg = httpServerGetSend(bo.getEquipmentCode());
DeviceServerMsgDto serverMsgDto = JSONObject.parseObject(serverMsg, DeviceServerMsgDto.class);
if (!serverMsgDto.getLineStatus()){
result.setLineStatus(0);//离线
return result;
}
//获取遥测数据
String telemetryMsg = httpTelemetryGetSend(bo.getEquipmentCode());
DeviceMsgDto deviceMsgDto = JSONObject.parseObject(telemetryMsg, DeviceMsgDto.class);
BeanUtil.copyProperties(deviceMsgDto,result,true);
return result;
} }
private String httpCtlPostSend(String cmd){ /**
* 设备控制指令
* @param deviceCode
* @param cmd
* @return
*/
private String httpCtlPostSend(String deviceCode,String cmd){
DeviceCtlDto dto = new DeviceCtlDto(); DeviceCtlDto dto = new DeviceCtlDto();
// dto.setMethod();//todo 方法 // dto.setMethod();//todo 方法
DeviceCtlDto.Params params = dto.getParams(); DeviceCtlDto.Params params = dto.getParams();
params.setCommand(cmd); params.setCommand(cmd);
dto.setParams(params); dto.setParams(params);
// todo 登录相关 token // todo 登录相关 token
return HttpUtil.post(CommonYmlConfig.URL_IOT_OPERATE, JSON.toJSONString(dto)); String url = CommonYmlConfig.URL_IOT_BASEURL+CommonYmlConfig.URL_IOT_OPERATE;
url = url.replace("{deviceId}",deviceCode) ;
return HttpUtil.post(url, JSON.toJSONString(dto));
}
/**
* 获取设备信息
* @param deviceCode
* @return
*/
private String httpTelemetryGetSend(String deviceCode){
String url = CommonYmlConfig.URL_IOT_BASEURL+CommonYmlConfig.URL_IOT_TELEMETRY;
url = url.replace("{entityType}","DEVICE") ;
url = url.replace("{entityId}",deviceCode) ;
// todo 登录相关 token
return HttpUtil.get(url);
}
/**
* 获取服务端属性信息
* @param deviceCode
* @return
*/
private String httpServerGetSend(String deviceCode){
String url = CommonYmlConfig.URL_IOT_BASEURL+CommonYmlConfig.URL_IOT_SERVER_ATTRIBUTE;
url = url.replace("{entityType}","DEVICE") ;
url = url.replace("{entityId}",deviceCode) ;
// todo 登录相关 token
return HttpUtil.get(url);
} }
} }

View File

@ -258,7 +258,8 @@ justauth:
redirect-uri: ${justauth.address}/social-callback?source=gitlab redirect-uri: ${justauth.address}/social-callback?source=gitlab
iot: iot:
baseurl: http://127.0.0.1:4523/m1/4875377-0-default
url: url:
serverAttribute: https://www.baidu.com serverAttribute: /api/plugins/telemetry/{entityType}/{entityId}/values/attributes
telemetry: https://www.baidu.com telemetry: /api/plugins/telemetry/{entityType}/{entityId}/values/timeseries
operate: https://www.baidu.com operate: /api/plugins/rpc/oneway/{deviceId}