青岛广电多媒体大屏嵌入式系统的开发应用

2021-01-04 07:05
科技传播 2020年22期
关键词:大屏串口青岛

刘 海

随着多媒体户外大屏的兴起,公共场所、地铁、广场等地都纷纷投入了众多媒体设备,这些设备不仅有效地提升了宣传内容的传播效率,一些可交互式的智能屏设备更是提供了体验良好的公共服务。本文结合青岛市广播电视台的应用开发实例,分享在嵌入式系统中开发多媒体可交互式屏幕的经验与应用。

1 开发系统产品介绍

青岛是多媒体起步较早的地区,近年更是尝试了多媒体门户平台、App与相应网站、移动电视与同频数字广播等各种技术传播手段,于是开发一种基于IP网络和广播网络双网结构的户外大屏系统,能集中展示青岛台多种媒体的综合大屏的研发与实践便随之展开。最终我们交付了一套跨平台的程序软体以及几种交互终端,它能将青岛数字广播、主流网站、青岛台多媒体平台、以及日常公益信息的展示融为一体。图1展示的终端高为2 300mm,宽为880mm,配以55寸3 000尼特高亮度交互触摸屏。

图1 高亮度交互触摸屏

2 系统的功能

这款设备之所以设计成双网结构——IP网与数字广播接收网,目的在于通过终端内置CDR(Convergent Digital Radio)广播接收系统解码出青岛试播的数字广播嵌入信息,该信息在灾害来临时,即使IP网断开,仍能通过广播这种灾害中被证明最有效的传播方式,来提供紧急的应急与服务信息[1]。CDR数字广播系统智能屏实时接收同频广播信息,通过独有芯片解码出文字与图片信息,软件设定展示权限为最高级别,接收完整信息后屏幕将强制锁定为应急展示界面(图2),同时系统声音功放将播放相应信息。当无应急事件时,系统将使用高速IP网络进行工作,终端可进入交互式界面(图3),用以展示指定的链接内容,链接功能使用了安全技术,不可随意输入,不可下载资源或运行脚本,技术上实现了浏览内容的安全;同时界面可随时更新,用以引导群众多浏览公益知识、宣教内容。

图2 锁屏应急信息界面

图3 交互界面

大屏同时支持播出单播放,在指定时段展示媒体内容,包括指定的图片、视频、以及电视广播节目,支持实时推流直播,可由后台将各种直播信号推流到服务器,并由大屏幕展示。

3 系统的设计与实现

多媒体系统逻辑上由显示系统、CDR(Convergent Digital Radio)接收系统、状态监测系统三大部分构造而成,如图4所示,显示系统负责所有的界面交互逻辑与平时公益信息的展示;CDR接收系统负责实时接收CDR广播的内容,并解压提出相关的嵌入信号,解压后通过相应的串口信号发送到显示系统;状态监测系统则时刻注意着设备自身的状态,通过浸水检测器、烟火监测器、防震检测器等嵌入模块,随时监控设备的状态,并将信息发送到监控中心。这三部分各自由编写的三个程序控制,并配有进程狗,在各类Linux系统和Windows系统上均能良好的编译运行。

图4 多媒体系统中配备的三个子模块系统

三个系统互相独立存在,通过连线与协议互相连接。CDR接收系统在得到报警信息后,还能直接输出蜂鸣报警声音,避免单独一个系统损坏影响其它系统功能。

3.1 显示系统

显示系统是展示的核心,也是最为复杂的部分,在考虑到多平台、易于开发部署、生态丰富等要求后,最终采用了Electron技术[2],这让我们不仅可以方便测试,也便于在不同的系统下,读取多种连接串口的输入信号。

在实际开发中,我们运用了Vue[3]与Electron结合的方式来进行技术实现,使用的Vue-Electron-builder[4]。之所以选择Vue技术,他有几大优势:

1)它赋予界面开发一个MVVM(Model,View,ViewModel)的架构。

2)它将Electron中的多网页结构变成了SPA架构(Single Page Application),单网页架构的最大好处在与它节省了Electron中各窗口之间的多线程通信,即再也不用使用多个ipcMain与ipcRender之间相互通信,降低了通信研发成本。

3)通过VUE的router机制,可以做出复杂的界面逻辑,并尽量保证其组件化,开发起来迅捷快速。

4)通过Vue搭建的VUEX,可以保持状态的统一化以及通用功能在组件之间的复用。

3.2 串口输入信号的处理

从前文阐述中可知,我们的显示系统一直在接收CDR接收系统解码出来的串口信号。这里涉及两个问题,一是广播解码下来的串口信号并不稳定,偶有误码产生;一是我们需要在显示中锁屏,使得界面无法交互并立即显示正确信息。

解决串口信息不稳定的情况要从我们的实际测试中来寻找比较合适的办法。CDR嵌入信号目前传输的传输带宽为110Kbps,当传输文字信息时,一般不会超过500字,假设我们设定重复播发信息的周期为1S,并在信息的发端将文字分段标识并配置验证码,比如将字符串“information1information2”分成两段加上标识:“information1--md5information2--md5”,这样配置后,通过几次的接收比对,我们不仅通过MD5码保证每段信息的完整性,也通过信息分段以及高频重复接收保证了排除串口乱码工作的效率。

在Vue-Electron架构中,我们把这段串口的解析程序单独做成一个线程,按照Electron推荐的方法[5],我们单独创立一个不可见的子窗口,并运行这段程序,设置窗口崩溃时自动重启。通过这样的方式,我们就可以在后台运行一个一直监听串口接收信号,并在接收完整后立即锁屏切换的线程。

3.3 窗口之间的切换

为了做到界面之间根据状态的切换,实际上我们使用的是Vue Router,以及VUEX。当我们有锁屏的需求时,事实上我们其实是在router中做了一个“/locking-screen”的路径,并配置一个没有任何界面响应的“locking-screen.vue”文件,这样当我们在任何情况与条件下,只需调用this.$router.push(‘/ locking-screen’),就能够进入到这个界面中,完成了锁屏预警信息的展示。

同时我们还需要一个退出的机制,如倒计时60秒,此时再无CDR信息输入,那么我们就调用this.$router.push(‘/‘),返回屏幕初始状态。而这个倒计时则返回的功能,以及一些状态我们会在全局中经常用到。比如正在浏览,人走后需要过段时间自动切回;如长时间无人互动屏幕,则播放播单等等。由于这个功能在此系统中如此常见,而且需要很多的全局状态,我们选择使用了Vuex,优点是代码条理清晰,远胜于Electron各窗口进程的独自管理。

如上,在vuex的actions中设置异步函数,各个组件通过读写state来掌控页面的状态,同时传入closeFunc作为倒计时结束后的执行动作,达到了功能复用,状态唯一。

3.4 设置与搭配

纵观本程序,由于选用了Vue-Electron的方式,我们可以使用很多NPM组件[6],比如串口就可以使用SerialPort这个组件[7],样式则可以使用Vuetify[8],这里需要注意的一点是,当使用SerialPort这种组件时,需要在vue.config.js中添加如下配置。

3.5 环境监控系统

系统主要构成由硬件和软件组成,硬件部分采用ESP32+STM32双芯片共同服务模式。ESP32主要功能是将数据上传到MQTT服务器(图5),同时还负责对光照,电压,空气质量,液晶显示屏的处理。STM32负责温湿度,门磁,漏水,振动开关的处理及继电器的操作,STM32通过串口与ESP32通信。采用双芯片工作模式的优点是提高系统可靠性,数据采集更准确,灵活性更高。ESP32将采集到的数据上传到MQTT服务器,MQTT服务器将数据转发到后台的设备GIS监控服务器,这样我们就可以在后端的地图监控系统中看到设备运行时的监控指标了。

图5 MQTT服务器基本通讯简图

CDR接收系统(图6)核心芯片是我国自主知识产权的芯片,单芯片集成400MHZ、32位MIPS指令集的龙芯处理器,芯片集成射频调谐器、CDR/FM解调和AD/DA电路,并具有射频信号处理专用的DSP电路和USB接口电路。

图6 CDR接收系统工作流程图

CDR接收系统将数字音频信号中的嵌入信息不断解码,通过程序验正完整性后,将信息传递给显示系统,得以优先展示。

4 系统的完成与展望

多媒体大屏嵌入式系统原型试成并运行,有效的整合了青岛台平台资源,在公众展示屏这一概念下,拓展了资讯的展示渠道,添加了新的赛道与舞台。综合本系统来说,使用的硬件与软件都具有跨平台性,在自研成品能良好展示、完成目标功能的同时,与第三方合作共同开发下,也有着强大的整合与移植能力,如在Windows系统下的公交亭系统(图7),我们可以迅速改造与融合。可以说为青岛广电的嵌入式产品开发,打下了一个良好的开端。

图7 Windows系统公交亭展示屏产品

猜你喜欢
大屏串口青岛
从618看电视发展趋势,大屏、高端以及激光电视成热门首选
浅谈AB PLC串口跟RFID传感器的通讯应用
为大屏而生,让体验更佳 峰米4K激光家庭影院Max
超越DCI影院色彩的百寸大屏王者 海信(Hisense) 100L9-PRO
浅谈客厅大屏显示未来
上合,从青岛再启航
青岛如何引进人才
青岛明月申牌?
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信