lgq
3 天以前 081f12a52906abe6c2d139fdc144135978681009
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import dxui from '../../../../../dxmodules/dxUi.js'
import viewUtils from "../../../viewUtils.js"
import topView from "../../../topView.js"
import configView from '../../configView.js'
import screen from '../../../../screen.js'
import developerView from '../developerView.js'
import std from '../../../../../dxmodules/dxStd.js'
import i18n from "../../../i18n.js"
 
const capcalView = {}
capcalView.init = function () {
    /**************************************************创建屏幕*****************************************************/
    const screenMain = dxui.View.build('capcalView', dxui.Utils.LAYER.MAIN)
    capcalView.screenMain = screenMain
    screenMain.scroll(false)
    screenMain.bgColor(0xffffff)
    capcalView.isRunning = false
 
    screenMain.on(dxui.Utils.ENUM.LV_EVENT_SCREEN_LOADED, () => {
        capcalView.timeout = new Date().getTime()
        capcalView.isRunning = true
        topView.changeTheme(true)
        screen.getCapcal().init()
        capcalView1.show()
        capcalView2.hide()
 
        if (capcalView.timer) {
            std.clearInterval(capcalView.timer)
        }
        let cnt = 0
        capcalView.timer = std.setInterval(() => {
            // 执行标定
            let flag = screen.getCapcal().calculate(cnt)
            if (flag) {
                let language=screen.getConfig()["base.language"]||"CN"
                if (cnt >= 1) {
                    // 标定成功
                    screen.updateFaceConfig({ capcal_path: "/etc/.cameraCalibration" })
                    dxui.loadMain(developerView.screenMain)
                    
                    screen.driver.audio.play(`/app/code/resource/wav/${language}/calibration_2s.wav`)
                }else{
                    capcalView1.hide()
                    capcalView2.show()
                    cnt++
                    screen.driver.audio.play(`/app/code/resource/wav/${language}/calibration_1s.wav`)
                }
            }
            if (new Date().getTime() - capcalView.timeout > 30000) {
                // 超时退出
                dxui.loadMain(developerView.screenMain)
            }
            const remaining = 55 - Math.floor((new Date().getTime() - capcalView.timeout) / 1000)
            const timeoutMsg = i18n.t('capcalView.timeoutMessage')
            capcaltimeout.text(remaining + timeoutMsg)
        }, 500)
        capcaltimeout.dataI18n = 'capcalView.timeoutPrefix'
        capcaltimeout.text(i18n.t('capcalView.timeoutPrefix'))
    })
 
    screenMain.on(dxui.Utils.ENUM.LV_EVENT_SCREEN_UNLOADED, () => {
        capcalView.isRunning = false
        screen.getCapcal().deinit()
        if (capcalView.timer) {
            std.clearInterval(capcalView.timer)
            capcalView.timer = null
        }
    })
 
    const topMask = dxui.View.build('topMask', screenMain)
    viewUtils._clearStyle(topMask)
    topMask.setSize(screen.screenSize.width, screen.screenSize.height * (70 / 1024))
    topMask.bgColor(0xffffff)
 
    const titleBox = viewUtils.title(screenMain, configView.screenMain, 'capcalViewTitle', 'capcalView.title')
    titleBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (50 / 1024))
 
    const capcalBox = dxui.View.build('capcalBox', screenMain)
    viewUtils._clearStyle(capcalBox)
    capcalBox.setSize(screen.screenSize.width, screen.screenSize.height - screen.screenSize.height * (140 / 1024))
    capcalBox.align(dxui.Utils.ALIGN.TOP_MID, 0, screen.screenSize.height * (140 / 1024))
    capcalBox.bgColor(0xf7f737)
    capcalBox.bgOpa(0)
 
    let box1 = screen.getCapcal().getBox(0)
    let box2 = screen.getCapcal().getBox(1)
 
    const capcalView1 = dxui.View.build('capcalView1', capcalBox)
    capcalView1.bgOpa(0)
    capcalView1.borderWidth(screen.screenSize.width * (5 / 600))
    capcalView1.setSize(box1.w, box1.h)
    capcalView1.setPos(box1.x, box1.y - screen.screenSize.height * (140 / 1024))
    capcalView1.setBorderColor(0xAE2011)
    // capcalView1.hide()
 
    const capcalViewLab1 = dxui.Label.build('capcalViewLab1', capcalView1)
    capcalViewLab1.align(dxui.Utils.ALIGN.BOTTOM_MID, 0, 0)
    capcalViewLab1.textFont(viewUtils.font(26))
    capcalViewLab1.dataI18n = 'capcalView.firstCalibration'
    capcalViewLab1.text(i18n.t('capcalView.firstCalibration'))
    capcalViewLab1.textColor(0xffffff)
 
    const capcalView2 = dxui.View.build('capcalView2', capcalBox)
    capcalView2.bgOpa(0)
    capcalView2.borderWidth(screen.screenSize.width * (5 / 600))
    capcalView2.setSize(box2.w, box2.h)
    capcalView2.setPos(box2.x, box2.y - screen.screenSize.height * (140 / 1024))
    capcalView2.setBorderColor(0xAE2011)
    capcalView2.hide()
 
    const capcalViewLab2 = dxui.Label.build('capcalViewLab2', capcalView2)
    capcalViewLab2.align(dxui.Utils.ALIGN.BOTTOM_MID, 0, 0)
    capcalViewLab2.textFont(viewUtils.font(26))
    capcalViewLab2.dataI18n = 'capcalView.secondCalibration'
    capcalViewLab2.text(i18n.t('capcalView.secondCalibration'))
    capcalViewLab2.textColor(0xffffff)
 
    const capcaltimeout = dxui.Label.build('capcaltimeout', screenMain)
    capcaltimeout.align(dxui.Utils.ALIGN.CENTER, 0, 0)
    capcaltimeout.textFont(viewUtils.font(26))
    capcaltimeout.text("55秒后超时退出")
    capcaltimeout.textColor(0xffffff)
}
 
 
export default capcalView