Merge remote-tracking branch 'origin/5.X' into 5.X

This commit is contained in:
zzc 2024-08-03 16:09:29 +08:00
commit 82e4ab56db
5 changed files with 692 additions and 91 deletions

View File

@ -1,30 +1,15 @@
package org.dromara.web.controller.app;
import cn.dev33.satoken.secure.BCrypt;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MessageUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.web.core.BaseController;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysUserService;
import org.dromara.web.domain.bo.*;
import org.dromara.web.domain.vo.*;
import org.dromara.web.service.IEqAreaService;
import org.dromara.web.service.IEqEquipmentLogService;
import org.dromara.web.service.IEqEquipmentService;
import org.dromara.web.service.IEqShareService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.*;
/**
* app 固定文本获取
@ -38,14 +23,6 @@ import java.util.List;
@RequestMapping("/app/text")
public class EqTextController extends BaseController {
private final IEqAreaService eqAreaService;
private final IEqEquipmentService eqEquipmentService;
private final IEqEquipmentLogService logService;
private final IEqShareService shareService;
private final ISysUserService userService;
/**
@ -54,29 +31,253 @@ public class EqTextController extends BaseController {
@GetMapping("/noInitDevicePage")
public R<List<String>> noInitDevicePage(){
List<String> list = Arrays.asList(
MessageUtils.message("route.detail1"),
MessageUtils.message("route.detail2"),
MessageUtils.message("route.detail3"),
MessageUtils.message("route.detail4"),
MessageUtils.message("route.detail5"),
MessageUtils.message("route.detail6"),
MessageUtils.message("route.detail7"),
MessageUtils.message("route.detail8"),
MessageUtils.message("route.detail9"),
MessageUtils.message("route.detail10"),
MessageUtils.message("route.detail11"),
MessageUtils.message("route.detail12"),
MessageUtils.message("route.detail13"),
MessageUtils.message("route.detail14"),
MessageUtils.message("route.detail15"),
MessageUtils.message("route.detail16"),
MessageUtils.message("route.detail17"),
MessageUtils.message("route.detail18"),
MessageUtils.message("route.detail19")
MessageUtils.message("noinit.name0"),
MessageUtils.message("noinit.name1"),
MessageUtils.message("noinit.name2"),
MessageUtils.message("noinit.name3"),
MessageUtils.message("noinit.name4"),
MessageUtils.message("noinit.name5"),
MessageUtils.message("noinit.name6"),
MessageUtils.message("noinit.name7"),
MessageUtils.message("noinit.name8"),
MessageUtils.message("noinit.name9"),
MessageUtils.message("noinit.name10"),
MessageUtils.message("noinit.name11"),
MessageUtils.message("noinit.name12"),
MessageUtils.message("noinit.name13"),
MessageUtils.message("noinit.name14"),
MessageUtils.message("noinit.name15"),
MessageUtils.message("noinit.name16"),
MessageUtils.message("noinit.name17"),
MessageUtils.message("noinit.name18")
);
return R.ok(list);
}
/**
* 固定字段文本输出
* @return
*/
@GetMapping("/allText")
public R<Map<String,List<String>>> allText(){
Map<String, List<String>> result = new HashMap<>();
result.put("login",Arrays.asList(
MessageUtils.message("login.name0"),
MessageUtils.message("login.name1"),
MessageUtils.message("login.name2"),
MessageUtils.message("login.name3"),
MessageUtils.message("login.name4")
));
result.put("register",Arrays.asList(
MessageUtils.message("register.name0"),
MessageUtils.message("register.name1"),
MessageUtils.message("register.name2"),
MessageUtils.message("register.name3"),
MessageUtils.message("register.name4")
));
result.put("registerSuccess",Arrays.asList(
MessageUtils.message("registerSuccess.name0"),
MessageUtils.message("registerSuccess.name1"),
MessageUtils.message("registerSuccess.name2"),
MessageUtils.message("registerSuccess.name3")
));
result.put("homepage",Arrays.asList(
MessageUtils.message("homepage.name0"),
MessageUtils.message("homepage.name1"),
MessageUtils.message("homepage.name2"),
MessageUtils.message("homepage.name3")
));
result.put("warningClose",Arrays.asList(
MessageUtils.message("warningClose.name0"),
MessageUtils.message("warningClose.name1"),
MessageUtils.message("warningClose.name2"),
MessageUtils.message("warningClose.name3")
));
result.put("add",Arrays.asList(
MessageUtils.message("add.name0"),
MessageUtils.message("add.name1"),
MessageUtils.message("add.name2"),
MessageUtils.message("add.name3")
));
result.put("addSuccess",Arrays.asList(
MessageUtils.message("addSuccess.name0"),
MessageUtils.message("addSuccess.name1"),
MessageUtils.message("addSuccess.name2")
));
result.put("addFailure",Arrays.asList(
MessageUtils.message("addFailure.name0"),
MessageUtils.message("addFailure.name1"),
MessageUtils.message("addFailure.name2"),
MessageUtils.message("addFailure.name3")
));
result.put("detail",Arrays.asList(
MessageUtils.message("detail.name0"),
MessageUtils.message("detail.name1"),
MessageUtils.message("detail.name2"),
MessageUtils.message("detail.name3"),
MessageUtils.message("detail.name4"),
MessageUtils.message("detail.name5"),
MessageUtils.message("detail.name6"),
MessageUtils.message("detail.name7"),
MessageUtils.message("detail.name8"),
MessageUtils.message("detail.name9"),
MessageUtils.message("detail.name10"),
MessageUtils.message("detail.name11"),
MessageUtils.message("detail.name12"),
MessageUtils.message("detail.name13"),
MessageUtils.message("detail.name14"),
MessageUtils.message("detail.name15"),
MessageUtils.message("detail.name16"),
MessageUtils.message("detail.name17"),
MessageUtils.message("detail.name18")
));
result.put("countdown",Arrays.asList(
MessageUtils.message("countdown.name0"),
MessageUtils.message("countdown.name1"),
MessageUtils.message("countdown.name2")
));
result.put("log",Arrays.asList(
MessageUtils.message("log.name0"),
MessageUtils.message("log.name1"),
MessageUtils.message("log.name2"),
MessageUtils.message("log.name3"),
MessageUtils.message("log.name4"),
MessageUtils.message("log.name5"),
MessageUtils.message("log.name6"),
MessageUtils.message("log.name7"),
MessageUtils.message("log.name8"),
MessageUtils.message("log.name9"),
MessageUtils.message("log.name10")
));
result.put("checkcode",Arrays.asList(
MessageUtils.message("checkcode.name0"),
MessageUtils.message("checkcode.name1"),
MessageUtils.message("checkcode.name2"),
MessageUtils.message("checkcode.name3")
));
result.put("clearcode",Arrays.asList(
MessageUtils.message("clearcode.name0"),
MessageUtils.message("clearcode.name1"),
MessageUtils.message("clearcode.name2"),
MessageUtils.message("clearcode.name3"),
MessageUtils.message("clearcode.name4"),
MessageUtils.message("clearcode.name5")
));
result.put("offDetail",Arrays.asList(
MessageUtils.message("offDetail.name0"),
MessageUtils.message("offDetail.name1")
));
result.put("set",Arrays.asList(
MessageUtils.message("set.name0"),
MessageUtils.message("set.name1"),
MessageUtils.message("set.name2"),
MessageUtils.message("set.name3"),
MessageUtils.message("set.name4"),
MessageUtils.message("set.name5"),
MessageUtils.message("set.name6"),
MessageUtils.message("set.name7"),
MessageUtils.message("set.name8"),
MessageUtils.message("set.name9"),
MessageUtils.message("set.name10"),
MessageUtils.message("set.name11"),
MessageUtils.message("set.name12"),
MessageUtils.message("set.name13"),
MessageUtils.message("set.name14"),
MessageUtils.message("set.name15"),
MessageUtils.message("set.name16"),
MessageUtils.message("set.name17"),
MessageUtils.message("set.name18"),
MessageUtils.message("set.name19"),
MessageUtils.message("set.name20"),
MessageUtils.message("set.name21")
));
result.put("setCommon",Arrays.asList(
MessageUtils.message("setCommon.detail"),
MessageUtils.message("setCommon.add"),
MessageUtils.message("setCommon.edit"),
MessageUtils.message("setCommon.delete"),
MessageUtils.message("setCommon.alert"),
MessageUtils.message("setCommon.cancel"),
MessageUtils.message("setCommon.confirm")
));
result.put("noinit",Arrays.asList(
MessageUtils.message("noinit.name0"),
MessageUtils.message("noinit.name1"),
MessageUtils.message("noinit.name2"),
MessageUtils.message("noinit.name3"),
MessageUtils.message("noinit.name4"),
MessageUtils.message("noinit.name5"),
MessageUtils.message("noinit.name6"),
MessageUtils.message("noinit.name7"),
MessageUtils.message("noinit.name8"),
MessageUtils.message("noinit.name9"),
MessageUtils.message("noinit.name10"),
MessageUtils.message("noinit.name11"),
MessageUtils.message("noinit.name12"),
MessageUtils.message("noinit.name13"),
MessageUtils.message("noinit.name14"),
MessageUtils.message("noinit.name15"),
MessageUtils.message("noinit.name16"),
MessageUtils.message("noinit.name17"),
MessageUtils.message("noinit.name18")
));
result.put("setEqname",Arrays.asList(
MessageUtils.message("setEqname.name0"),
MessageUtils.message("setEqname.name1"),
MessageUtils.message("setEqname.name2"),
MessageUtils.message("setEqname.name3"),
MessageUtils.message("setEqname.name4")
));
result.put("setEqarea",Arrays.asList(
MessageUtils.message("setEqarea.name0"),
MessageUtils.message("setEqarea.name1"),
MessageUtils.message("setEqarea.name2")
));
result.put("setRebound",Arrays.asList(
MessageUtils.message("setRebound.name0"),
MessageUtils.message("setRebound.name1"),
MessageUtils.message("setRebound.name2"),
MessageUtils.message("setRebound.name3")
));
result.put("setDelete",Arrays.asList(
MessageUtils.message("setDelete.name0"),
MessageUtils.message("setDelete.name1"),
MessageUtils.message("setDelete.name2"),
MessageUtils.message("setDelete.name3"),
MessageUtils.message("setDelete.name4")
));
result.put("setZone",Arrays.asList(
MessageUtils.message("setZone.name0"),
MessageUtils.message("setZone.name1")
));
result.put("setWifi",Arrays.asList(
MessageUtils.message("setWifi.name0"),
MessageUtils.message("setWifi.name1"),
MessageUtils.message("setWifi.name2"),
MessageUtils.message("setWifi.name3"),
MessageUtils.message("setWifi.name4"),
MessageUtils.message("setWifi.name5"),
MessageUtils.message("setWifi.name6")
));
return R.ok(result);
}
}

View File

@ -1,13 +1,10 @@
package org.dromara.web.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.web.device.iot.DeviceMsgDto;
import org.dromara.web.domain.EqEquipment;
import java.io.Serial;
import java.io.Serializable;
@ -45,19 +42,65 @@ public class EqEquipmentDetailVo implements Serializable {
private String equipmentName;
/**
* 设备状态
* 设备状态(开合度)
* 0.已关闭
* 10.打开10%
* 20.打开20%
* 30.打开30%
* 40.打开40%
* 50.打开50%
* 60.打开60%
* 70.打开70%
* 80.打开80%
* 90.打开90%
* 100.打开100%
*/
@ExcelProperty(value = "设备状态 设备的打开状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "eq_status_type")
private Integer status;
private Integer openStatus;
/**
* 设备状态
* 设备状态(开合度)
* 0.已关闭
* 10.打开10%
* 20.打开20%
* 30.打开30%
* 40.打开40%
* 50.打开50%
* 60.打开60%
* 70.打开70%
* 80.打开80%
* 90.打开90%
* 100.打开100%
*/
private String openStatusText;
/**
* 设备运行状态
* 0.停止中 stop
* 1.关闭中 closing
* 2.开启中 opening
* 11.红外故障 irException
* 12.电机运转故障 motorRunException
* 13.电机维护故障 motorMaintainException
* 14.设备故障 deviceException
*/
@ExcelProperty(value = "设备状态 设备的打开状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "eq_run_status_type")
private Integer runStatus;
/**
* 设备运行状态文本
* 0.停止中 stop
* 1.关闭中 closing
* 2.开启中 openning
* 11.红外故障 irException
* 12.电机运转故障 motorRunException
* 13.电机维护故障 motorMaintainException
* 14.设备故障 deviceException
*/
private String runStatusText;
/**
* 故障状态
*/

View File

@ -1,7 +1,7 @@
package org.dromara.web.service.impl;
import cn.hutool.core.bean.BeanUtil;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.MessageUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -19,7 +19,6 @@ import org.dromara.web.domain.bo.EqAppHomeBo;
import org.dromara.web.domain.bo.EqDeviceCmdBo;
import org.dromara.web.domain.bo.EqDeviceSetBo;
import org.dromara.web.domain.vo.EqEquipmentDetailVo;
import org.dromara.web.domain.vo.EqEquipmentStatusVo;
import org.dromara.web.service.IotService;
import org.springframework.stereotype.Service;
import org.dromara.web.domain.bo.EqEquipmentBo;
@ -208,14 +207,25 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
EqEquipmentDetailVo result = new EqEquipmentDetailVo();
result.setEquipmentId(bo.getEquipmentId());
result.setEquipmentCode(bo.getEquipmentCode());
//查看设备
EqEquipmentVo eqEquipmentVo = baseMapper.selectVoById(bo.getEquipmentId());
//获取服务属性状态
DeviceServerMsgDto serverMsg = iotService.httpServerGetSend(bo.getEquipmentCode());
result.setLineStatus(serverMsg.getLineStatus()?1:0);
//获取遥测数据
DeviceMsgDto telemetryMsg = iotService.httpTelemetryGetSend(bo.getEquipmentCode());
result.setStatus(telemetryMsg.getOpenPercentage());
//开合状态
result.setOpenStatus(telemetryMsg.getOpenPercentage());
result.setOpenStatusText(
telemetryMsg.getOpenPercentage()==0
?MessageUtils.message("openStatus.name0")
:MessageUtils.message("openStatus.name1")+ telemetryMsg.getOpenPercentage()+"%");
//运行状态
result.setRunStatus(telemetryMsg.getGarageException()==10?telemetryMsg.getWorkState():telemetryMsg.getGarageException());
result.setRunStatusText(MessageUtils.message("runStatus.name"+result.getRunStatus()));
result.setEquipmentName(eqEquipmentVo.getEquipmentName());
result.setBindTime(eqEquipmentVo.getBindTime());
result.setDeviceMsgDto(telemetryMsg);
@ -250,7 +260,7 @@ public class EqEquipmentServiceImpl implements IEqEquipmentService {
DeviceMsgDto deviceMsgDto = iotService.httpTelemetryGetSend(equipmentCode);
eqEquipmentBo.setStatus(deviceMsgDto.getOpenPercentage());//使用半开作为状态值
eqEquipmentBo.setFaultStatus(Integer.valueOf(deviceMsgDto.getGarageException()));
eqEquipmentBo.setFaultStatus(deviceMsgDto.getGarageException());
//判断是否获取到信息 无信息会抛异常 无需判断
EqEquipment add = MapstructUtils.convert(eqEquipmentBo, EqEquipment.class);

View File

@ -61,25 +61,198 @@ tenant.blocked=Sorry, your tenant is disabled. Please contact the administrator
tenant.expired=Sorry, your tenant has expired. Please contact the administrator.
route.detail1= details
route.detail2= Stroke uncalibrated
route.detail3= If the device is not calibrated, the device cannot be controlled
route.detail4= Stroke calibration tutorial
route.detail5= Please perform the operation on the device
route.detail6= Set the opening position:
route.detail7= 1. Hold down the SET key
route.detail8= Observation: The display displays "1" flashing
route.detail9= 2. Press the "SET" key again
route.detail10= Observe: The monitor is "1" on
route.detail11= 3. Long press the "UP" button to make the door to the maximum opening position and then release the hand to stop
route.detail12= Observation: The door runs in the direction of opening the door, when the door reaches the maximum opening position
route.detail13= Set the door closing position:
route.detail14= 4. Press the "SET" button again
route.detail15= Observe: The display is "2" steady on
route.detail16= 5. Press and hold the Down key to close the button and release
route.detail17= Observation: The door runs in the direction of closing, and stops when the door reaches the closed position
route.detail18= Automatic check:
route.detail19= 6. Press the "SET" button again
noinit.name0= details
noinit.name1= Stroke uncalibrated
noinit.name2= If the device is not calibrated, the device cannot be controlled
noinit.name3= Stroke calibration tutorial
noinit.name4= Please perform the operation on the device
noinit.name5= Set the opening position:
noinit.name6= 1. Hold down the SET key
noinit.name7= Observation: The display displays "1" flashing
noinit.name8= 2. Press the "SET" key again
noinit.name9= Observe: The monitor is "1" on
noinit.name10= 3. Long press the "UP" button to make the door to the maximum opening position and then release the hand to stop
noinit.name11= Observation: The door runs in the direction of opening the door, when the door reaches the maximum opening position
noinit.name12= Set the door closing position:
noinit.name13= 4. Press the "SET" button again
noinit.name14= Observe: The display is "2" steady on
noinit.name15= 5. Press and hold the Down key to close the button and release
noinit.name16= Observation: The door runs in the direction of closing, and stops when the door reaches the closed position
noinit.name17= Automatic check:
noinit.name18= 6. Press the "SET" button again
## "Login"
login.name0 = login
login.name1= Please enter your account number
login.name2= Please enter a password
login.name3= I have read and agree to sign
login.name4= Immediate registration
## "Registration"
register.name0 = register
register.name1 = register an account
register.name2= Please enter your account number
register.name3= Please enter your password
register.name4= Please enter your password again
## "Registration Success"
registerSuccess.name0= Registered successfully
registerSuccess.name1= your login account
registerSuccess.name2= your password
registerSuccess.name3= Log in now
## "Home Page"
homepage.name0= homepage
homepage.name1= Status
homepage.name2= Closed
homepage.name3= Open
## "Close Reminder"
warningClose.name0= Closing reminder
warningClose.name1= deviceName- Open -num- minutes, please remember to close the door
warningClose.name2= Close the door
warningClose.name3= I see
## Add Devices
add.name0 = add a device
add.name1= Please enter the device code
add.name2= Please enter
Add. name3= add
## Add Success
addSuccess.name0= Added successfully
addSuccess.name1= Return
addSuccess.name2= Continue searching
## "Add Failure"
addFailure.name0= Add failed
addFailure.name1= Correct device number and try again
addFailure.name2= Return
addFailure.name3= Add again
## "Equipment Details"
detail.name0= Details
## (Closed Open 10% open 100%)
detail.name1= Status
detail.name2= Closed
detail.name3= Open
detail.name4= Running status
detail.name5= half open
detail.name6= off
detail.name7= stop
detail.name8= open
detail.name9= Open the door half way
detail.name10= Indicator management
detail.name11= Set
detail.name12=min Turn off the indicator after the second second
detail.name13= Countdown reset
detail.name14= Number of runs
detail.name15= Number of operations
detail.name16= Data log
detail.name17= clear code
detail.name18= pair code
## Countdown Settings
countdown.name0= countdown setting
countdown.name1= Cancel
countdown.name2= Confirm
## Data Log
log.name0 = Data log
log.name1= Select the date
log.name2= Today
log.name3= Sunday
log.name4= Monday
log.name5= Tuesday
log.name6= Wednesday
log.name7= Thursday
log.name8= Friday
log.name9= Saturday
log.name10= Door opening alert
## "Code"
checkcode.name0= pair code
checkcode.name1= Matching code
checkcode.name2= Code matching succeeded
checkcode.name3= Failed to check the code. Please try again
## "Clear Code"
clearcode.name0= Prompt
clearcode.name1= Please enter the login password
clearcode.name2= Please enter the login password to clear the device code
clearcode.name3= Cancel
clearcode.name4= Confirm
clearcode.name5= Password error Please try again
## "Device Offline Details"
offDetail.name0= Details
offDetail.name1= The device is offline
## "Optimization - Settings"
set.name0 = set
set.name1= Device name
set.name2= Device location
set.name3= Rebound setting
set.name4= infrared sensing
set.name5= Open this function, when the motor is closed, if someone or something passes under the door, the infrared sensor will be triggered, and the door will immediately stop closing and open.
set.name6= distance limit
set.name7= half-open function switch
set.name8= half-door height setting
set.name9= Reminder close function switch
set.name10= Reminder of closing time setting
set.name11= Automatic door closing (prompt to start the automatic door opening function, need to open the infrared protection sensor function first)
set.name12 = Open this function, when the door is opened to the maximum, the door is not controlled within the set countdown time, then the door will automatically close after the countdown ends.
set.name13= Automatic closing time setting
set.name14= Number of runs
set.name15=WiFi network
set.name16= Time zone
set.name17= Device model
set.name18= serial number
set.name19= Module version
set.name20=MCU version
set.name21= Delete device
## "Universal"
setCommon.detail= details
setCommon.add= add
setCommon.edit= edit
setCommon.delete= delete
setCommon.alert= alert
setCommon.cancel= cancel
setCommon.confirm= Confirm
## "Change Device Name"
setEqname.name0= Changes the device name
setEqname.name1= Please enter a name
setEqname.name2= Previous page
setEqname.name3= Confirm
## "Device Location Modification"
setEqarea.name0= Changes the device location
setEqarea.name1= Previous page
setEqarea.name2= Confirm
## Rebound Settings
setRebound.name0= motor rebound force
setRebound.name1= Adjust recoil
setRebound.name2= When the motor opens the door, if the opening force exceeds the set range value, the door will immediately stop opening the door;
setRebound.name3= If the closing force exceeds the set range value, the door will immediately stop closing and open. This function can adjust the range value of the opening/closing induction force.
## "Remove Devices"
setDelete.name0= Delete device
setDelete.name1= Prompt
setDelete.name2= After the device is deleted, it cannot be managed. Exercise caution when performing this operation.
setDelete.name3= Cancel
setDelete.name4= Confirm deletion
## Time Zone Settings
setZone.name0= Time zone
setZone.name1= Time format
## "wifi Network"
setWifi.name0=wifi network
setWifi.name1= Prompt
setWifi.name2= Linked WiFi: XXXXXXXX
setWifi.name3= If you need to change your network, make sure you are next to your device
setWifi.name4= edge, click the reset WiFi button
setWifi.name5 = Confirm deletion
setWifi.name6 = Cancel
## 《开合状态》
openStatus.name0=closed
openStatus.name1=open
## 《运行状态》
runStatus.name0=stop
runStatus.name1=closing
runStatus.name2=opening
runStatus.name11=irException
runStatus.name12=motorRunException
runStatus.name13=motorMaintainException
runStatus.name14=deviceException
message.fault.device.notfound = Device not found

View File

@ -60,24 +60,198 @@ tenant.not.exists=对不起, 您的租户不存在,请联系管理员
tenant.blocked=对不起,您的租户已禁用,请联系管理员
tenant.expired=对不起,您的租户已过期,请联系管理员
route.detail1=详情
route.detail2=行程未校准
route.detail3=设备未校准行程,将不能进行设备控制
route.detail4=行程校准教程
route.detail5=请在设备上操作
route.detail6=设置开门位置:
route.detail7=1.请长按“SET”键
route.detail8=观察:显示器显示”1”闪烁
route.detail9=2.再次按下"SET"键
route.detail10=观察:显示器显示为”1”常亮
route.detail11=3.长按"UP"键,使门至最大开门位置后松手停止
route.detail12=观察:门向开门方向运行,当门达到最大开门位置后
route.detail13=设置关门位置:
route.detail14=4.再次按下”SET"键
route.detail15=观察:显示器显示为”2”常亮
route.detail16=5.长按“向下”键至关闭位置后松手
route.detail17=观察:门向关门方向运行,当门达到关闭位置后停止
route.detail18=自动校验:
route.detail19=6.再次按下"SET"键
noinit.name0=详情
noinit.name1=行程未校准
noinit.name2=设备未校准行程,将不能进行设备控制
noinit.name3=行程校准教程
noinit.name4=请在设备上操作
noinit.name5=设置开门位置:
noinit.name6=1.请长按“SET”键
noinit.name7=观察:显示器显示”1”闪烁
noinit.name8=2.再次按下"SET"键
noinit.name9=观察:显示器显示为”1”常亮
noinit.name10=3.长按"UP"键,使门至最大开门位置后松手停止
noinit.name11=观察:门向开门方向运行,当门达到最大开门位置后
noinit.name12=设置关门位置:
noinit.name13=4.再次按下”SET"键
noinit.name14=观察:显示器显示为”2”常亮
noinit.name15=5.长按“向下”键至关闭位置后松手
noinit.name16=观察:门向关门方向运行,当门达到关闭位置后停止
noinit.name17=自动校验:
noinit.name18=6.再次按下"SET"键
##《登录》
login.name0=登录
login.name1=请输入账号
login.name2=请输入密码
login.name3=我已阅读并同意签署
login.name4=立即注册
##《注册》
register.name0=注册
register.name1=注册账号
register.name2=请输入账号
register.name3=请输入密码
register.name4=请再次输入密码
##《注册成功》
registerSuccess.name0=注册成功
registerSuccess.name1=您的登录账号
registerSuccess.name2=您的密码
registerSuccess.name3=立即登录
##《首页》
homepage.name0=首页
homepage.name1=状态
homepage.name2=已关闭
homepage.name3=打开
##《关门提醒》
warningClose.name0=关门提醒
warningClose.name1=设备-deviceName-已开门-num-分钟了,请记得关门
warningClose.name2=关门
warningClose.name3=我知道了
##《添加设备》
add.name0=添加设备
add.name1=请输入设备编码
add.name2=请输入
add.name3=添加
## 《添加成功》
addSuccess.name0=添加成功
addSuccess.name1=返回
addSuccess.name2=继续搜索
##《添加失败》
addFailure.name0=添加失败
addFailure.name1=请正确的设备编号后再试
addFailure.name2=返回
addFailure.name3=重新添加
##《设备详情》
detail.name0=详情
##(已关闭 打开10% 打开100%
detail.name1=状态
detail.name2=已关闭
detail.name3=打开
detail.name4=运行状态
detail.name5=半开
detail.name6=
detail.name7=
detail.name8=
detail.name9=半开门
detail.name10=灯管理
detail.name11=设置
detail.name12=min分second秒后关灯
detail.name13=倒计时重置
detail.name14=运行次数
detail.name15=操作次数
detail.name16=数据日志
detail.name17=清码
detail.name18=对码
##《倒计时设置》
countdown.name0=倒计时设置
countdown.name1=取消
countdown.name2=确认
##《数据日志》
log.name0=数据日志
log.name1=选择日期
log.name2=今天
log.name3=周日
log.name4=周一
log.name5=周二
log.name6=周三
log.name7=周四
log.name8=周五
log.name9=周六
log.name10=开门提醒
##《对码》
checkcode.name0=对码
checkcode.name1=对码中
checkcode.name2=对码成功
checkcode.name3=对码失败请重试
##《清码》
clearcode.name0=提示
clearcode.name1=请输入登录密码
clearcode.name2=请输入登录密码才能进行设备清码
clearcode.name3=取消
clearcode.name4=确认
clearcode.name5=密码错误请重试
##《设备掉线详情》
offDetail.name0=详情
offDetail.name1=设备已离线
##《优化-设置》
set.name0=设置
set.name1=设备名称
set.name2=设备位置
set.name3=反弹力设置
set.name4=红外感应
set.name5=开启此功能,电机关门时,如有人或物在门下经过则触发红外感应器 ,门会立即停止关闭,并打开。
set.name6=行程距离限制
set.name7=半开门功能开关
set.name8=半开门高度设置
set.name9=提醒关门功能开关
set.name10=提醒关门时间设置
set.name11=自动关门 (提示 启动自动开门功能,需要先打开红外保护感应功能)
set.name12=打开此功能,当门开到最大时,在设置的倒计时时间内,门没有被控制,则在倒计时结束后,门会自动关闭。
set.name13=自动关门时间设置
set.name14=运行次数
set.name15=WiFi网络
set.name16=时区
set.name17=设备型号
set.name18=序列号
set.name19=模组版本
set.name20=MCU版本
set.name21=删除设备
##《通用》
setCommon.detail=详情
setCommon.add=添加
setCommon.edit=编辑
setCommon.delete=删除
setCommon.alert=提示
setCommon.cancel=取消
setCommon.confirm=确认
##《修改设备名称》
setEqname.name0=修改设备名称
setEqname.name1=请输入名称
setEqname.name2=上一页
setEqname.name3=确认
##《设备位置修改》
setEqarea.name0=修改设备位置
setEqarea.name1=上一页
setEqarea.name2=确认
##《反弹力设置》
setRebound.name0=电机反弹力
setRebound.name1=调节反弹力
setRebound.name2=电机在开门时,若开门的力超出设定范围值,门会立即停止开门;
setRebound.name3=若关门的力超出设定范围值,门会立即停止关闭并开门,此功能可以调整开/关门感应力的范围值。
##《删除设备》
setDelete.name0=删除设备
setDelete.name1=提示
setDelete.name2=删除设备后,将不能管理设备请谨慎操作!
setDelete.name3=取消
setDelete.name4=确认删除
##《时区设置》
setZone.name0=时区
setZone.name1=时间格式
##《wifi网络》
setWifi.name0=wifi网络
setWifi.name1=提示
setWifi.name2=已链接WiFiXXXXXXXX
setWifi.name3=若需更换网络,请确保你在设备旁
setWifi.name4=边后点击重置WiFi按钮
setWifi.name5=确认删除
setWifi.name6=取消
## 《开合状态》
openStatus.name0=已关闭
openStatus.name1=打开
## 《运行状态》
runStatus.name0=停止中
runStatus.name1=关闭中
runStatus.name2=开启中
runStatus.name11=红外故障
runStatus.name12=电机运转故障
runStatus.name13=电机维护故障
runStatus.name14=设备故障
message.fault.device.notfound = 设备不存在