import dxui from '../../dxmodules/dxUi.js'
|
import std from '../../dxmodules/dxStd.js'
|
import viewUtils from "./viewUtils.js"
|
import topView from "./topView.js"
|
import screen from '../screen.js'
|
import mainView from './mainView.js'
|
import dxCommonUtils from '../../dxmodules/dxCommonUtils.js'
|
import driver from '../driver.js'
|
import i18n from "./i18n.js"
|
const wechatFaceView = {}
|
|
let option = {}
|
|
wechatFaceView.init = function () {
|
/**************************************************创建屏幕*****************************************************/
|
const screenMain = dxui.View.build('wechatFaceView', dxui.Utils.LAYER.MAIN)
|
wechatFaceView.screenMain = screenMain
|
screenMain.scroll(false)
|
screenMain.bgOpa(0)
|
|
screenMain.on(dxui.Utils.ENUM.LV_EVENT_SCREEN_LOADED, () => {
|
topView.changeTheme(true)
|
|
faceTackLbl.show()
|
wechatFaceView.ccount = 4
|
faceTackLbl.text(i18n.t('wechatFaceView.countdown').replace('{n}', wechatFaceView.ccount - 1))
|
wechatFaceView.ctimer = std.setInterval(() => {
|
wechatFaceView.ccount--
|
faceTackLbl.text(i18n.t('wechatFaceView.countdown').replace('{n}', wechatFaceView.ccount - 1))
|
if (wechatFaceView.ccount == 1) {
|
faceTackLbl.hide()
|
} else if (wechatFaceView.ccount == 0) {
|
std.clearInterval(wechatFaceView.ctimer)
|
wechatFaceView.ctimer = null
|
|
let faceData = null, featureBase64 = null, faceBase64 = null, code = screen.MQTT_CODE.E_100
|
try {
|
// 人脸抓拍,超时时间是10秒,10秒内没有抓拍到人脸,则mqtt返回失败
|
faceData = screen.tackFace()
|
faceBase64 = dxCommonUtils.fs.fileToBase64(faceData.picPath)
|
featureBase64 = faceData.feature
|
|
// let fea=driver.face.getFeaByFile(faceData.picPath)
|
// console.log('--后---');
|
// console.log('----fea--',JSON.stringify(fea));
|
// featureBase64 = fea.feature
|
wechatFaceView.statusPanel.success("wechatFaceView.tackSuccess")
|
} catch (error) {
|
wechatFaceView.statusPanel.fail("wechatFaceView.tackError")
|
}
|
if (faceBase64 && featureBase64) {
|
code = screen.MQTT_CODE.S_000
|
}
|
let payload
|
console.log('----option.type----', option.type);
|
|
if (option.type == 1) {
|
payload = screen.mqttReply(option.serialNo, { keyId: option.keyId, faceBase64: faceBase64, type: option.type }, code)
|
} else if (option.type == 2) {
|
payload = screen.mqttReply(option.serialNo, { keyId: option.keyId, featureBase64: featureBase64, type: option.type }, code)
|
} else {
|
payload = screen.mqttReply(option.serialNo, { keyId: option.keyId, featureBase64: featureBase64, faceBase64: faceBase64, type: option.type }, code)
|
}
|
|
|
option = {}
|
payload.uuid = payload.uuid.toUpperCase()
|
screen.driver.mqtt.send("access_device/v2/cmd/control_reply", JSON.stringify(payload))
|
std.setTimeout(() => {
|
dxui.loadMain(mainView.screenMain)
|
}, 1000);
|
}
|
}, 1000);
|
})
|
|
screenMain.on(dxui.Utils.ENUM.LV_EVENT_SCREEN_UNLOADED, () => {
|
if (wechatFaceView.ctimer) {
|
std.clearInterval(wechatFaceView.ctimer)
|
wechatFaceView.ctimer = null
|
}
|
})
|
|
const titleBoxBg = dxui.View.build(screenMain.id + 'titleBoxBg', screenMain)
|
viewUtils._clearStyle(titleBoxBg)
|
titleBoxBg.setSize(screen.screenSize.width * (600 / 600), screen.screenSize.height * (70 / 1024))
|
titleBoxBg.align(dxui.Utils.ALIGN.TOP_MID, 0, 0)
|
titleBoxBg.bgColor(0xffffff)
|
|
// 远程抓拍标题
|
const titleBox = dxui.View.build("wechatFaceViewTitle", screenMain)
|
viewUtils._clearStyle(titleBox)
|
titleBox.setSize(screen.screenSize.width * (600 / 600), screen.screenSize.height * (70 / 1024))
|
titleBox.bgColor(0xffffff)
|
|
// 远程抓拍标题文字
|
const titleLbl = dxui.Label.build('wechatFaceViewTitle' + 'title', titleBox)
|
titleLbl.textFont(viewUtils.font(32))
|
titleLbl.align(dxui.Utils.ALIGN.CENTER, 0, 0)
|
titleLbl.dataI18n = 'wechatFaceView.title'
|
titleBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (70 / 1024))
|
|
const faceTack = dxui.Image.build('faceTack', screenMain)
|
faceTack.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (140 / 1024))
|
faceTack.source(screen.resourcePath.imagePath + '/faceRec2.png')
|
|
const faceTackLbl = dxui.Label.build('faceTackLbl', screenMain)
|
faceTackLbl.align(dxui.Utils.ALIGN.CENTER, 0, 0)
|
faceTackLbl.dataI18n = 'wechatFaceView.countdown'
|
faceTackLbl.text(i18n.t('wechatFaceView.countdown').replace('{n}', wechatFaceView.ccount || 3))
|
faceTackLbl.textFont(viewUtils.font(28))
|
faceTackLbl.textColor(0xffffff)
|
|
wechatFaceView.statusPanel = viewUtils.statusPanel(screenMain)
|
}
|
|
// 抓拍人脸
|
wechatFaceView.weComTackFace = function (data) {
|
option.keyId = data.data.extra.keyId
|
option.serialNo = data.serialNo
|
option.type = data.data.extra.type
|
|
}
|
|
|
export default wechatFaceView
|