基于B/S架构的场强遥控测量系统设计与实现
覃有论
国家广播电视总局海南监测台
摘要:在广播电视监测过程中,值班员经常需要对广播信号进行实时场强测量,本文从实际工作出发,设计并实现一套场强遥控测量系统,该系统是集远程设备控制、网络通信、语音通信、场强数据采集、场强测量数据分析于一身的广播信号场强测量系统。该系统采用B/S架构进行部署,实现对多台场强测量仪器进行遥控测量,并将测量数据实时返回和入库存储,同时可以下发任务对频率进行自动测量和频谱扫描等功能。
关键词:场强遥控测量;自动测量频率;设计与实现;B/S架构
一、引言
信号场强是指无线电信号在传播过程中,单位面积上所接收到的功率密度,它是衡量信号强度的一个重要参数,在广播电视监测中,信号场强的测量有着重要意义,它实时反映了信号在该地区的信号覆盖强度。
广播信号的场强测量对测量环境要求较为严格,值班机房一般很难满足场强测量的环境要求,因此场强测量仪器一般放在专业的场强室内,而值班机房与专业的场强测量机房分属不同区域,有一定的距离,在值班业务开展的过程中,传统的场强测量方法通常需要操作人员亲临现场,存在操作不便、实时性不强等问题,为了解决这些问题,远程场强测量系统的研究和开发变得尤为重要。本文设计并实现了一种基于B/S架构的场强遥控测量系统,该系统采用浏览器/服务器模式,实现了场强测量设备的远程控制和数据采集。系统由场强测量模块、服务器端和客户端三部分组成,通过HTTP协议进行通信。系统设计采用了模块化思想,实现了数据采集、场强测量数据分析、用户管理、设备控制和可视化等功能。
二、系统设计及原理
近年来,基于B/S架构的远程控制系统因其跨平台、易维护和可扩展性强等优点,在工业控制、环境监测等领域得到了广泛应用。将B/S架构应用于场强测量领域,可以实现测量设备的远程控制和数据的实时采集,大大提高测量效率和时效性。本文旨在设计并实现一种基于B/S架构的场强遥控测量系统,通过Web技术实现测量设备的远程控制和数据可视化,为场强测量提供一种便捷、高效的解决方案。
本文采用B/S架构对场强遥控测量系统进行部署,系统由场强测量模块、服务器端和客户端三部分组成。场强测量模块负责场强数据的采集和传输;服务器端负责接收客户端传输过来的测量指令和测量任务,根据测量指令和任务采集相应的场强值和语言等指标,并实时将相应数据及语言回传测量客户端或存储到后台数据库中,同时将系统设备状态回传测量客户端;客户端通过浏览器访问系统,实现对场强测量模块的远程控制和测量数据可视化。该系统实现了远程自动测量频率场强值,并将测量数据自动存储入库,测量结果实时返回等功能。
2.1、网络拓扑图
场强遥控测量系统采用B/S架构进行部署,在场强测量机房部署服务器设备和场强仪器,场强仪通过GPIB-USB-HS采集卡和USB集线器连接服务器,作为系统的服务端,客户端部署在广播业务机房,通过web浏览器访问服务端,实现对场强仪的远程控制,服务端和客户端通过光缆和网络设备进行通讯。
2.2、系统架构图
该系统硬件组成部分包括ML428B场强仪、RSHS10场强仪、KFI-3301C场强仪、场强仪天线、服务器、计算机客户端、USB集线器以及辅助设备等。每台场强仪都配备天线接收装置,用于接收中短波信号,这些天线通过馈线与场强仪相连,场强仪采用IEEE488接口用作数据传输的标准接口,通过USB集线器与服务器相连,以确保信号的稳定传输和高效管理。中央控制模块是整个系统的核心部分,它包括数据采集模块和语音处理模块、设备控制模以及块场强测量模块。数据采集模块负责从各个场强仪和接口中收集数据,并将这些数据存储在系统中以便后续处理和分析。语音处理模块则用于处理来自语音输入设备的信号,对声音进行采集保存。场强测量模块,用于对信号进行精确的场强测量,以获取更准确的测量结果。
场强遥控测量系统服务器端采用Qt实现,使用Cutelyst框架搭建Web服务器,通过RESTful API与客户端通信。数据库采用MySQL,用于存储用户信息、设备状态和测量数据等。客户端使用HTML5、CSS3和JavaScript实现,采用Vue.js框架构建用户界面。通过Axios库与服务器端进行数据交互,使用ECharts库实现数据可视化。系统采用WebSocket实现实时数据传输,确保测量数据的及时更新。
三、设备接口调试
场强遥控测量系统的场强测量模块由ML428B场强仪、RSHS10场强仪和KFI-3301C场强仪组成,场强仪均采用IEEE488接口用作数据传输的标准接口,通过USB集线器与服务器相连。该系统实现的难点在场强仪与服务器的接口通信,本文给出了系统使用到的3种场强仪的接口代码,供开发人员参考。
1、ML428B场强仪代码:
#include "Gpib428B.h"
Gpib428B::Gpib428B(Dev428B *device, QObject *parent) : GpibBase(device, parent)
{ dev = device;}
/** 初始化参数 */
void Gpib428B::SetParam(){
this->SetDetMode(0); // 平均模式
QThread::msleep(50);
this->SetAutoRange(true); // 打开自动范围
QThread::msleep(50);
this->SetEqualizer(true); // 打开均衡器
QThread::msleep(50);
this->SetBandWidth(2); // 9kHz
QThread::msleep(50);
this->SetLevelUnit(1); // dBμV/m
//QThread::msleep(50);
//this->SetRefLevel(0); // 0dB
}
2、KFI-3301C场强仪接口代码:
#include "Gpib301C.h"
Gpib301C::Gpib301C(Dev301C *device, QObject *parent) : GpibBase(device, parent)
{ dev = device;}
/** 初始化参数 */
void Gpib301C::SetParam(){
this->SetFreq(dev->freq); //设置频率
QThread::msleep(50);
this->SetBandWidth(1); //设置带宽 10KHz
QThread::msleep(50);
this->SetAutoRange(true); //设置自动范围
QThread::msleep(50);
//this->SetAttenuator(dev->attenuator);//设置衰减器
//QThread::msleep(50);
this->SetCableloss(true); //设置电缆损耗
QThread::msleep(50);
this->SetAntFactor(true); //设置天线系数
QThread::msleep(50);
this->SetAutoShunt(false); //设置自动关机
QThread::msleep(50);
this->SetPollOutput(false); //设置轮询输出
QThread::msleep(50);
this->SetDataFormat(0); //设置数据格式
}
3、RSHS10场强仪接口代码:
#include "GpibHS10.h"
GpibHS10::GpibHS10(DevHS10 *device, QObject *parent) : GpibBase(device, parent)
{ dev = device;}
/** 初始化参数 */
void GpibHS10::SetParam(){
this->SetBandWidth(1); // 10 kHzkHz
QThread::msleep(50);
this->SetDetMode(0); // 平均模式
QThread::msleep(50);
this->SetDemodMode(0); // 设置A3 解调模式
QThread::msleep(50);
this->SetOperRange(1); //设置工作范围 60dB
QThread::msleep(50);
this->SetAutoRange(true); // 打开自动范围
QThread::msleep(50);
this->SetMeasTime(100); // 测量时间100ms
QThread::msleep(50);
this->SetPreAmp(dev->preAmp); //设置前置放大器
QThread::msleep(50);
this->SetAttMode(dev->attMode); //设置衰减器模式
}
四、功能实现
场强遥控测量系统设计开发完成后,可实现场强仪控制、网络通信、语音通信、场强数据采集、场强测量数据分析、频谱扫描、任务下发、信号录音、数据存储、用户管理等多项功能。
1、系统登录
在客户端浏览器上输入服务端地址和端口,进入系统登录界面,输入用户名和密码,即可进行安全登录,登录界面如图3所示:
系统登录后进入系统主界面,系统的主界面显示任务数量、测量次数统计、设备状态和最新的测量记录。设备状态面板上方显示场强仪名称、工作状态、连接状态以及音频连接状态。系统主界面如图4所示:
在系统的左侧菜单栏中有系统主页、RSHS10、KFI-3301C、ML428B、任务管理、数据管理、系统管理等七个菜单,每个菜单对应不同的界面。
2、场强测量
在左侧菜单栏选择对应的三个场强仪设备,打开设备控制界面,控制界面分为四部分,分别为设备控制面板、场强实时曲线、频谱图、历史测量记录,场强测量界面如图5所示。
在该菜单下面可对设备进行相应的控制和校准,并对测量频率进行播放和录音,场强测量结果可显示最大值、最小值、平均值、中值和实时值,测量结果存入到数据库中。
3、任务管理
任务管理菜单下面包括测量任务和频谱任务,用户可根据需要设置相应的任务,任务设置包括添加、修改、删除、导入等功能,用户可自行选择任务执行设备,系统会根据任务的时间进行自动测量,并将数据存入到指定位置。
4、数据管理
数据管理菜单下面包括了测量数据、频谱数据和统计分析功能,用户可以查询历史测量记录数据,可根据需要选择设备、台名、频率、时间等进行查询,并有导出、播放、下载和频谱数据回放等功能。数据统计分析功能是对收测数据进行统计分析,可按次、按时、按年进行统计,统计结果以曲线形式等进行可视化展示。
5、用户管理
用户管理菜单主要对系统用户进行管理,包括添加、修改、删除等操作。
五、结论
本文设计并实现了一种基于B/S架构的场强遥控测量系统。该系统成功实现了场强测量设备的远程控制和数据采集及分析,具有跨平台、易维护和可扩展性强等优点。测试结果表明,系统运行稳定,能够满足场强测量的远程控制需求。未来的研究方向包括:进一步优化系统性能,提高大数据量下的处理能力;增强系统的安全性,防止未经授权的访问和数据泄露;探索人工智能技术在场强数据分析中的应用,提高测量结果的准确性和实用性。
参考文献:
[1] 基于B/S架构的软件项目实训[J].覃国蓉.北京:电子工业出版社.2004
[2]C语言程序设计简明教程:Qt实战[J].彭凌西.唐春明.黄铮.陈统.北京:人民邮电出版社. 2022
[3]广播电视监测技术[J].马有本.北京:国家广播电影电视总局监测中心.2001
[4] GY/T 82-1989 中、短波广播场强测量方法[S].北京:国家广播电影电视部.1989
[5] 广播电视监测技术[J].关亚林.北京:中国传媒大学出版社.2012