微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于dragonboard 410c的智能魔镜设计(9)——如何实现UI交互控制逻辑

基于dragonboard 410c的智能魔镜设计(9)——如何实现UI交互控制逻辑

时间:02-08 来源:互联网 点击:

在UI原型设计和Python脚本实现UI原型两个blog中已经跟大家介绍了整个智能魔镜端的交互UI的设计原型和实现的Python脚本及方式,这里将进一步教大家如何实现整个UI交互的逻辑控制程序,根据智能魔镜整体设计文章中的设计方案,智能魔镜交互主要是依托摄像头、超声波和显示屏与用户进行交互,智能魔镜依托超声波模块实时的监控镜子前面的人体动态,在有人靠近的时候启动摄像头,然后通过图像识别来处理和识别当前的用户身份,最后根据用户身份启动显示模块控制显示,将指定的用户消息推送显示在当前使用镜子的用户面前。
以上就是在智能魔镜中的显示控制逻辑设计中需要完成的内容,在具体实现的过程中,对于显示逻辑控制这一块,主要是通过构建了一个magic_mirroWindows.py文件来实现,在这里实现了对魔镜的交互UI类的实例化,同时创建了一个magic_mirroWindows类来实现魔镜UI控制的各个逻辑控制功能,其中主逻辑是通过实例化该类来启动魔镜的UI交互程序,在UI交互程序控制中,首先会通过函数调用刷新页面的公共显示信息,然后调用定时器对执行过程进行控制,定时的检测当前镜子前面的情况,然后根据定时检测的结果来执行相应的刷新程序,具体的代码设计如下:

     class magic_mirroWindows(QtWidgets.QWidget):  
    def __init__(self):  
        super(magic_mirroWindows,self).__init__()  
        self.new=Ui_MainWindow()
        self.new.setupUi(self)
 
        #save user video Info
        self.push_video_userID=[]
        self.videoPathList=[]
        
        #self.viedoMsg.setWindowFlags(
        self.zhishuUpdateTIme=0
        #set Text
        self.tp=QtGui.QPalette(self)
        self.tp.setColor(QtGui.QPalette.WindowText,QtGui.QColor(255,255,255))
        self.movie=QtGui.QMovie()      
        #default userID =0 ,camera and face model not find user InfomaTIon
        self.current_userID=0
        self.currentUserName=""
        #default supper sound sensor status, suppper sound sensor not find people
        self.curren_su_status=1
        #self.showPushInfo(4)
        #set html view is black
        self.new.webMessageText.setHtml("<body bgcolor=black></body>")
        self.new.webMemorandum.setHtml("<body bgcolor=black></body>") 
        self.new.webZhishu.setHtml("<body bgcolor=black></body>")   
        self.img=QtGui.QImage()
        self.manager = QtNetwork.QNetworkAccessManager()
        #self.weather=getWeatherInfo()
        self.weather_updateOK=0
        self.new.helloWelcome.setText("<h3>hello,welcom2...</h3>")
        self.Reply=self.manager.get(QtNetwork.QNetworkRequest(QtCore.QUrl("http://wthrcdn.etouch.cn/WeatherApi?city=%E6%B7%B1%E5%9C%B3")))
        self.Reply.finished.connect(self.replayFinished)
        forecast_date_list.append(self.new.forecast_0_date)
        forecast_date_list.append(self.new.forecast_1_date)
        forecast_date_list.append(self.new.forecast_2_date)
        forecast_date_list.append(self.new.forecast_3_date)
        forecast_date_list.append(self.new.forecast_4_date)
        forecast_temp_list.append(self.new.forecast_0_temp)
        forecast_temp_list.append(self.new.forecast_1_temp)
        forecast_temp_list.append(self.new.forecast_2_temp)
        forecast_temp_list.append(self.new.forecast_3_temp)
        forecast_temp_list.append(self.new.forecast_4_temp)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top