Commit 51b2aef1 by 朱建香

#28wifi绑定设备激活成功后下发激活成功指令

#27在线离线
#24远程开门前获取休眠状态
parent 76db91b9
......@@ -141,6 +141,8 @@
"openDoorFailure": "远程开门失败",
"remoteTimeout": "远程开门超时",
"remoteOpendoorAgain": "请尝试重试",
"offlineTip": "设备已离线,收到远程开门请求后,请尽快处理",
"textlengthTip": "密码长度为6~12位数字",
"error": {
"noPasswordTip": "远程密码不能为空"
}
......@@ -193,9 +195,9 @@
},
"wifiAdd": {
"unbindWifiTip": "当前无Wi-Fi",
"wifiBinding": "配网中",
"wifiBindSuccess": "Wi-Fi连接成功,正在激活设备",
"deviceActivating": "Wi-Fi连接成功,正在激活设备",
"wifiBinding": "正在连接网络...",
"wifiBindSuccess": "Wi-Fi连接成功,正在激活设备...",
"deviceActivating": "Wi-Fi连接成功,正在激活设备...",
"deviceActivateSuccess":"激活成功",
"deviceActivateFailure":"激活失败",
"bindTimeout":"连接超时",
......@@ -204,6 +206,7 @@
"remindCont1": "1. 请确保Wi-Fi信号良好",
"remindCont2": "2. 本产品暂不支持5GHz无线网络",
"noticeTip": "检测到您还未开启通知,将无法及时<br>接收安全推送",
"countDownText": "{0}s",
"error": {
}
......@@ -241,7 +244,7 @@
"unbind": "未绑定"
},
"addUser":{
"nameInputTip": "请输入您想添加的用户名",
"nameInputTip": "请为门锁用户创建显示昵称",
"addUserSuccess": "添加用户成功",
"addUserFailure": "添加用户失败",
"error": {
......@@ -284,7 +287,7 @@
},
"unlockInfo":{
"bindUnlockInfo": "已关联的开锁信息",
"noInfoTip": "当前无绑定开锁ID,请添加",
"noInfoTip": "尚未关联开锁信息",
"passwordOpenDoor": "密码",
"fingerprintOpenDoor": "指纹",
"ICcardOpenDoor": "IC卡",
......
......@@ -141,6 +141,8 @@
"openDoorFailure": "远程开门失败",
"remoteTimeout": "远程开门超时",
"remoteOpendoorAgain": "请尝试重试",
"offlineTip": "设备已离线,收到远程开门请求后,请尽快处理",
"textlengthTip": "密码长度为6~12位数字",
"error": {
"noPasswordTip": "远程密码不能为空"
}
......@@ -242,7 +244,7 @@
"unbind": "未绑定"
},
"addUser":{
"nameInputTip": "请输入您想添加的用户名",
"nameInputTip": "请为门锁用户创建显示昵称",
"addUserSuccess": "添加用户成功",
"addUserFailure": "添加用户失败",
"error": {
......@@ -285,7 +287,7 @@
},
"unlockInfo":{
"bindUnlockInfo": "已关联的开锁信息",
"noInfoTip": "当前无绑定开锁ID,请添加",
"noInfoTip": "尚未关联开锁信息",
"passwordOpenDoor": "密码",
"fingerprintOpenDoor": "指纹",
"ICcardOpenDoor": "IC卡",
......
......@@ -27,13 +27,15 @@ export default {
"model": "USMARTLOCK_SECURITY_SMARTDOOR_SMART_LOCK",
"GET_MSG_INTERVAL": 5000,
"wifi_add_timeout": 150000,
"add_wifi_timeout": 60,
"active_device_timeout": 30,
//门铃晃动间隔时间
"await_time": 3000,
//门铃晃动次数
"shake_times": 3,
//门锁晃动总时间
"ring_time": 12000,
"remote_opendoor_timeout": 30000,
"remote_opendoor_timeout": 15000,
//二维码失效时间
"qrcode_timeout": 600000,
"remote_timeout": 120,
......@@ -41,7 +43,8 @@ export default {
"maxlength": 16
},
"password":{
"maxlength": 6
"maxlength": 12,
"minlength": 6
},
"ringBell_timeout": 300,
"intervalTime": 3,
......
......@@ -2,4 +2,5 @@ export default {
"url": "https://cloud.iot.u-gen.net/",
// "url": "http://192.168.2.96:20000",
"model": "UGEN_SECURITY_SMARTDOOR_YJ2017"
// "model": "USMARTLOCK_SECURITY_SMARTDOOR_SMART_LOCK"
}
\ No newline at end of file
......@@ -25,7 +25,9 @@ function init() {
componentsConfig: initComponentsConfig(),
noticeTipShowFlag: false,
timeout: null,
countDownText: 60,
countDownText: config.add_wifi_timeout,
wifiAddSuccess: false,
activeSuccess: false,
activing: false
},
mounted(){
......@@ -150,10 +152,11 @@ function backTap(){
//tap 连接
function connectButtonTap(self){
self.countDownText = 60;
self.countDownText = config.add_wifi_timeout;
self.activing = false;
let countDown = setInterval(() => {
self.countDownText --;
if(self.countDownText <= 0){
if((self.countDownText <= 0) && (self.wifiAddSuccess == false)){
window.clearInterval(countDown);
addFailue(self);
// iot.business.sds.stopFindWIFI({
......@@ -222,6 +225,7 @@ function connectButtonTap(self){
iot.business.sds.findDevices({
success: (response) => {
console.log('findDevices');
console.log(response);
if(window.iotDebug){
iotDebug.push('end: 找设备'+JSON.stringify(response));
}
......@@ -236,12 +240,13 @@ function connectButtonTap(self){
if (window.iotDebug) {
iotDebug.upload(iot,'激活中');
}
if(self.activing === false){
self.wifiAddSuccess = true;
if(self.activing == false){
self.countDownText = config.active_device_timeout;
window.clearInterval(countDown);
self.countDownText = 60;
countDown = setInterval(() => {
self.countDownText --;
if(self.countDownText <= 0){
if((self.countDownText <= 0) && (self.activeSuccess == false)){
window.clearInterval(countDown);
addFailue(self);
iot.business.sds.stopFindDevices({
......@@ -250,9 +255,9 @@ function connectButtonTap(self){
});
}
},1000);
uComponents.showProcess(self, 0, Vue.t('wifiAdd.deviceActivating'));
self.activing = true;
}
uComponents.showProcess(self, 0, Vue.t('wifiAdd.deviceActivating'));
}else if(response.data == "joined success"){
if(window.iotDebug){
iotDebug.push('end: 激活成功'+JSON.stringify(response));
......@@ -261,7 +266,27 @@ function connectButtonTap(self){
iotDebug.upload(iot,'激活成功');
}
let deviceId = response.info.sn;
unbind(self, deviceId, productId);
// unbind(self, deviceId, productId);
bind(self, deviceId, productId);
iot.business.sds.setDeviceStatus({
data: {
uuid: response.info.uuid,
setParams: {
'action': {
'value': 'regiserSuccess'
}
}
},
success: (response) => {
//激活成功
console.log(response);
},
error: (error) => {
console.log(error);
uPublic.openRequestErrorAlert(self);
},
complete(){}
});
}else if(response.data == "fail"){
//连接失败
if(window.iotDebug){
......@@ -290,15 +315,15 @@ function connectButtonTap(self){
}
});
}
self.timeout = setTimeout(function (){
console.log("timeout");
window.clearTimeout(self.timeout);
addFailue(self);
iot.business.sds.stopFindDevices({
success: (response) => {},
error: (error) => {}
});
},config.wifi_add_timeout);
// self.timeout = setTimeout(function (){
// console.log("timeout");
// window.clearTimeout(self.timeout);
// addFailue(self);
// iot.business.sds.stopFindDevices({
// success: (response) => {},
// error: (error) => {}
// });
// },config.wifi_add_timeout);
}
//云端绑定之前先解绑
......@@ -347,6 +372,7 @@ function bind(self, deviceId, productId){
let data = response.data;
if(data.success){
addSuccess(self);
self.activeSuccess = true;
}
if(window.iotDebug){
iotDebug.push('end: 绑定成功'+JSON.stringify(response));
......
......@@ -15,6 +15,8 @@ import {iot, uPublic, uComponents} from '../../public/public.js';
import uloop from '../../public/uloop.js';
import unotify from '../../public/unotify.js';
const ON_LINE = 'on';
const OFF_LINE = 'off';
iot.ready(init);
function init() {
uPublic.closeSlideBack();
......@@ -89,7 +91,7 @@ function init() {
//最新消息
newMsg: [],
//是否第一次获取门锁信息
isFirstGetLockInfo: true,
// isFirstGetLockInfo: true,
opendoorRecordFlag: false,
securityAlarmFlag: false,
hijackAlarmFlag: false,
......@@ -107,7 +109,8 @@ function init() {
//门铃总计时器
timeout: null,
//远程开门计时器
remoteTime: null
remoteTime: null,
boolPasswordMinlength: false
},
mounted(){
//显示loading
......@@ -117,7 +120,7 @@ function init() {
//获取设备信息
getDevices(this);
//注册监听上报
registerPushListener(this);
// registerPushListener(this);
unotify.getCid((response) => {
console.log(response);
},(error) => {
......@@ -129,7 +132,7 @@ function init() {
//获取设备信息
getDevices(self);
//注册监听上报
registerPushListener(self);
// registerPushListener(self);
if(event.detail.needClose){
iot.navigator.closeAllBesidesItself();
}
......@@ -230,12 +233,12 @@ function init() {
setUuid(){
this.uuid = id;
},
getIsFirstGetLockInfo(){
return this.isFirstGetLockInfo;
},
setIsFirstGetLockInfo(flag){
this.isFirstGetLockInfo = flag
},
// getIsFirstGetLockInfo(){
// return this.isFirstGetLockInfo;
// },
// setIsFirstGetLockInfo(flag){
// this.isFirstGetLockInfo = flag
// },
getLockId(){
return this.lockId;
},
......@@ -332,6 +335,9 @@ function init() {
//tap 停止闪铃
onStopDoorbellRing(){
stopDoorbellRing(this);
},
onPasswordMatchlength(value){
passwordMatchlength(this, value);
}
}
}).$mount('#app');
......@@ -427,7 +433,8 @@ function initComponentsConfig() {
class: 'custom-text',
icon: '&#xe64d;',
placeholder: Vue.t('remoteOpendoor.passwordInputTip'),
maxlength: config.password.maxlength
maxlength: config.password.maxlength,
minlength: config.password.minlength
}
},
ucommloading: {
......@@ -539,10 +546,10 @@ function getLockInfoSuccess(self, data){
self.setLockId(data.lock_id);
self.setRole(data.role);
//判断是否第一次获取门锁信息
if(self.isFirstGetLockInfo){
// if(self.isFirstGetLockInfo){
getDeviceStatus(self);
self.setIsFirstGetLockInfo(false);
}
// self.setIsFirstGetLockInfo(false);
// }
//存储最后一条历史记录的ID
let historyId = null
historyId = data.info.historyId ? data.info.historyId : null;
......@@ -597,6 +604,10 @@ function getDeviceStatus(self){
let data = uPublic.checkResponseData(response.data);
if(data){
setBatteryPercentAndIcon(self, data.BatteryPercentage.value);
iot.storage.setMap('onLineState', data.onlineState.value, (response) => {
console.log(res);
}, () => {});
registerPushListener(self);
}
},
error: (error) => {
......@@ -812,10 +823,12 @@ function registerPushListener(self){
}
//sds消息处理方法
function sdsDataPorcessing(self, data){
async function sdsDataPorcessing(self, data){
let onlineState = await iot.storage.getMap('onLineState');
console.log(data);
//设置电量百分比和icon
setBatteryPercentAndIcon(self, data.BatteryPercentage.value);
if(onlineState == data.onlineState.value){
switch(data.action.value){
case 'notify':
switch(data.notify_type.value){
......@@ -853,6 +866,11 @@ function sdsDataPorcessing(self, data){
}
break;
}
}else{
iot.storage.setMap('onLineState', data.onlineState.value, (response) => {
console.log(res);
}, () => {});
}
}
//设置电量百分比、电量icon
......@@ -1104,10 +1122,32 @@ function doorlockUserTap(self){
//tap 远程开门
function remoteOpendoorTap(self){
iot.business.sds.getDeviceStatus({
data: {
uuid: self.uuid
},
success: (response) => {
console.log(response);
let data = uPublic.checkResponseData(response.data);
if(data){
if(data.onlineState.value == ON_LINE){
if(self.valueRemoteOpendoor){
self.setTextPassword('');
self.setRemoteOpendoorShowFlag(true);
}
}else{
uComponents.openAlert(self, Vue.t('remoteOpendoor.offlineTip'), {
text: Vue.t('dialog.confirm'), callback: function () {
}
});
}
}
},
error: (error) => {
console.log(error);
uPublic.openRequestErrorAlert(self);
}
});
}
//tap 门锁管理
......@@ -1155,19 +1195,35 @@ function passwordChange(self,text){
console.log('passwordChange: ' + self.textPassword);
}
//获取远程密码是否达到最小长度
function passwordMatchlength(self, bool) {
console.log(bool);
self.boolPasswordMinlength = bool;
}
//tap 确定(远程开门密码)
function confirmButtonTap(self){
iot.business.sds.getDeviceStatus({
data: {
uuid: self.uuid
},
success: (response) => {
console.log(response);
let data = uPublic.checkResponseData(response.data);
if(data){
if(data.onlineState.value == ON_LINE){
if(self.boolPasswordMinlength){
if(self.getTextPassword() == null || self.getTextPassword().trim() == ''){
self.setTextErrorTip(Vue.t('remoteOpendoor.error.noPasswordTip'));
}else{
uComponents.showCommLoading(self);
setRemoteOpenDoorLoading(self, 0, Vue.t('remoteOpendoor.loading'));
let keyIv = crypto.enkey(self.mac.replace(/:/g,''));
// console.log(keyIv);
// console.log(keyIv);
let pwd = crypto.encode(self.getTextPassword(), keyIv);
// console.log(pwd);
// let msg = crypto.decode(pwd, keyIv);
// console.log(msg);
// console.log(pwd);
// let msg = crypto.decode(pwd, keyIv);
// console.log(msg);
iot.business.sds.setDeviceStatus({
data: {
uuid: self.getUuid(),
......@@ -1203,6 +1259,25 @@ function confirmButtonTap(self){
setRemoteOpenDoorLoading(self, 2, Vue.t('remoteOpendoor.remoteTimeout'), Vue.t('remoteOpendoor.remoteOpendoorAgain'));
}
},config.remote_opendoor_timeout);
}else{
uComponents.openAlert(self, Vue.t('remoteOpendoor.textlengthTip'), {
text: Vue.t('dialog.confirm'), callback: function () {
}
});
}
}else{
uComponents.openAlert(self, Vue.t('remoteOpendoor.offlineTip'), {
text: Vue.t('dialog.confirm'), callback: function () {
}
});
}
}else{}
},
error: (error) => {
console.log(error);
uPublic.openRequestErrorAlert(self);
}
});
}
//tap comm-loading ‘确认’
......
......@@ -104,7 +104,8 @@
<div class="content">
<div class="inputBox">
<u-text :init-param="componentsConfig.passwordInput.initParam" :text="textPassword"
v-on:u-text-change="onPasswordChange(arguments[0])"></u-text>
v-on:u-text-change="onPasswordChange(arguments[0])"
v-on:u-text-match-minlength="onPasswordMatchlength(arguments[0])"></u-text>
<p class="errorTip" v-if="textErrorTip">{{ textErrorTip }}</p>
</div>
<u-button :init-param="componentsConfig.confirmButton.initParam" v-on:u-button-tap="onConfirmButtonTap"></u-button>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment