CN106341197A - 一种用于多用户接入控制的接收机程控解析算法 - Google Patents
一种用于多用户接入控制的接收机程控解析算法 Download PDFInfo
- Publication number
- CN106341197A CN106341197A CN201610654416.4A CN201610654416A CN106341197A CN 106341197 A CN106341197 A CN 106341197A CN 201610654416 A CN201610654416 A CN 201610654416A CN 106341197 A CN106341197 A CN 106341197A
- Authority
- CN
- China
- Prior art keywords
- node
- command
- receiver
- order
- program control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B17/00—Monitoring; Testing
- H04B17/20—Monitoring; Testing of receivers
Landscapes
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种用于多用户接入控制的接收机程控解析算法,通过设计一种新的程控构架,添加多条子线程,支持多用户同时接入,支持上位机同时显示、进行查询设置等操作,极大方便了用户的测试体验,扩展了接收机的使用环境和测试条件。设计一种新的程控命令,提高了驻机内存的使用效率,降低了驻机软件的维护难度,提高了程控命令解析的速率,能够快速进行节点命令的匹配和执行,为快速上行、下行命令与数据的传递提供保障。
Description
技术领域
本发明涉及接收机领域,具体涉及一种用于多用户接入控制的接收机程控解析算法。
背景技术
接收机与频谱仪类似,是一种用于接收处理有线或无线电讯号的设备,而且接收机常常需要在存在多个强信号环境下正确测量弱信号,为了适应这种复杂多变的使用场景,提供良好的用户使用体验,保护测试人员不受辐射伤害,接收机系统常采用上位机与驻机分离的软件系统架构。上位机主要功能是对各个部件的参数设置、控制与操作以及测试数据和状态的存取,并对回传的各种测量数据完成显示等,驻机的主要功能是通过以太网口接收上位机的参数设置、操作等命令信息,对接收机采集到的数据进行FFT、解调、ITU应用、电平测量等处理,并通过以太网口将数据回传。上位机与驻机之间通过网口通信,使用SCPI(可编程仪器标准命令)进行指令与数据的传输。因此,需要设计一种SCPI命令的打包、解析与处理的软件架构。
接收机中的命令解析,绝大部分采用的是使用哈希表来进行命令的匹配,这种方法使用一个命令名作为Key值,并将命令处理函数作为一个数组的函数变量来处理,使得每个命令的Key值都与一个函数值(即数组下标,hash值)相对应。这样,可以使用命令名来进行hash,由此得到数组的某个成员(该命令对应的解析函数)。哈希表的基本原理是:首先进行内存分配,形成映射存储区,利用hash函数,将程控命令设为Key值,对Key值进行映射到不同区域(程控处理函数)进行保存,这样就建立了程控命令与程控处理函数之间的对应关系。当通过程控套接字接收到程控命令后,即对程控命令进行hash,得到指向该程控命令的处理函数映射,并进行实际的命令处理。
虽然使用哈希表减少一部分遍历查找命令带来的时间开销,但是由于哈希表使用的Key值与映射函数值均不存在顺序排列,这会增加后期的软件维护难度,当需要进行程控命令的添加、修改、删除等操作时,易导致发生错误,且出错位置不易查找。同时还会大量增加系统内存的消耗,这对内存并不充裕的驻机内存的影响是致命的。有的命令解析会采用树状结构来进行命令的匹配解析,也仅仅局限于单用户接入的工作模式,本身的结构并不支持多用户的扩展。
发明内容
针对现有接收机算法使用哈希表导致内存过大,及仅支持单用户操作的问题,本发明提供了一种用于多用户接入控制的接收机程控解析算法。
本发明采用以下的技术方案:
一种用于多用户接入控制的接收机程控解析算法,包括:
步骤1:开始监听线程,判断接收机的状态,若接收机关闭,则关闭监听线程;若接收机没有关闭,则等待新用户接入接收机,新用户接入接收机后,接收机根据接入的用户数量创建多个接收子线程;
步骤2:判断监听线程是否开启,若开启则执行步骤3,否则关闭接收线程;
步骤3:等待接收用户发送的SCPI命令,接收到命令后,执行步骤4,否则关闭接收线程;
步骤4:调用GetNextWord()函数,获取多节点命令的第n级子节点,其中n大于等于1,以“:”为分界,根据函数返回值的不同来判断该节点是否为命令的最后一级节点,若不是则执行步骤5,若是则执行步骤7;
步骤5:将获取到的该节点与树结构中所有同级节点进行匹配,若匹配成功,则执行步骤4;若匹配未成功,则执行步骤6;
步骤6:查找并匹配可省略的同级节点的下一级子节点,判断是否匹配成功,若匹配成功,则执行步骤4;若匹配未成功,则该节点为非法节点,跳出函数,不进行处理;
步骤7:将获取的最后一级节点与树结构中的同级节点进行匹配,若匹配成功,则判断节点后是否为“?”,若为“?”,则该命令为查询命令,否则为设置命令,之后执行步骤9;若匹配未成功,则执行步骤8;
步骤8::查找并匹配可省略的同级节点下一级子节点,判断是否匹配成功,若匹配成功,则判断节点后是否为“?”,若为“?”,则该命令为查询命令,否则为设置命令,之后执行步骤9;若匹配未成功,则该节点为非法节点,跳出函数,不进行处理;
步骤9:获取全部的节点后,调用GetPara()函数获取命令参数,将其置于全局变量中,根据上述步骤中判断出的为查询命令或者设置命令,调用对应的命令处理函数,完成单次的程控命令处理过程;
步骤10:单次命令处理完成后,判断后续是否同时收取到多条命令,若仍有命令未处理,则将执行步骤4,重新从第一级节点开始匹配;若为单命令,则命令处理结束,返回步骤2。
本发明具有的有益效果是:
本发明提供的用于多用户接入控制的接收机程控解析算法,通过设计一种新的程控构架,添加多条子线程,支持多用户同时接入,极大方便了用户的测试体验。提供了一种新的程控命令,支持SCPI命令的长命令与短命令两种形式,支持多节点命令的节点命令省略,支持多命令同时接收后依次解析,支持后续程控命令添加、修改与删除等操作。提高了驻机内存的使用效率,降低了驻机软件的维护难度,提高了程控命令解析的速率,能够快速进行节点命令的匹配和执行,为快速上行、下行命令与数据的传递提供保障。
附图说明
图1为本发明接收机的程控架构的原理框图。
图2为本发明接收机的程控命令的原理框图。
具体实施方式
下面结合附图对本发明进行具体的说明:
结合图1和图2,一种用于多用户接入控制的接收机程控解析算法,包括:
步骤1:开始监听线程,判断接收机是否关闭,若接收机关闭,则关闭监听线程;若接收机没有关闭,则等待新用户接入接收机,新用户接入接收机后,接收机根据接入的用户数量创建多个接收子线程;
步骤2:判断监听线程是否开启,若开启则执行步骤3,否则关闭接收线程;
步骤3:等待接收用户发送的SCPI命令,SCPI命令为可编程仪器标准命令,接收到命令后,执行步骤4,否则关闭接收线程;
步骤4:调用GetNextWord()函数,GetNextWord()函数是预先设置的函数,GetNextWord()函数是用来获取下一个SCPI命令的节点,调用GetNextWord()函数,获取多节点命令的第n级子节点,其中n大于等于1,以“:”为分界,根据函数返回值的不同来判断该节点是否为命令的最后一级节点,若不是则执行步骤5,若是则执行步骤7;
步骤5:将获取到的该节点与树结构中所有同级节点进行匹配,若匹配成功,则执行步骤4;若匹配未成功,则执行步骤6;
步骤6:查找并匹配可省略的同级节点的下一级子节点,判断是否匹配成功,若匹配成功,则执行步骤4;若匹配未成功,则该节点为非法节点,跳出函数,不进行处理;
步骤7:将获取的最后一级节点与树结构中的同级节点进行匹配,若匹配成功,则判断节点后是否为“?”,若为“?”,则该命令为查询命令,否则为设置命令,之后执行步骤9;若匹配未成功,则执行步骤8;
步骤8::查找并匹配可省略的同级节点下一级子节点,判断是否匹配成功,若匹配成功,则判断节点后是否为“?”,若为“?”,则该命令为查询命令,否则为设置命令,之后执行步骤9;若匹配未成功,则该节点为非法节点,跳出函数,不进行处理;
步骤9:获取全部的节点后,调用GetPara()函数,GetPara()函数是预先设置的函数,GetPara()函数是用来获取命令参数,GetPara()函数获取命令参数,将命令参数置于全局变量中,根据上述步骤中判断出的为查询命令或者设置命令,调用对应的命令处理函数,完成单次的程控命令处理过程;
步骤10:单次命令处理完成后,判断后续是否同时收取到多条命令,若仍有命令未处理,则将执行步骤4,重新从第一级节点开始匹配;若为单命令,则命令处理结束,返回步骤2。
本发明提供的用于多用户接入控制的接收机程控解析算法,通过设计一种新的程控构架,添加多条子线程,支持多用户同时接入,支持上位机同时显示、进行查询设置等操作,极大方便了用户的测试体验,扩展了接收机的使用环境和测试条件。
本发明提供了一种新的程控命令,程控命令为树状结构,支持SCPI命令的长命令与短命令两种形式,支持多节点命令的节点命令省略,支持多命令同时接收后依次解析,将所有需要的程控命令存入驻机软件中,使用树形结构进行节点的存储,支持后续程控命令添加、修改与删除等操作。提高了驻机内存的使用效率,降低了驻机软件的维护难度,提高了程控命令解析的速率,能够快速进行节点命令的匹配和执行,为快速上行、下行命令与数据的传递提供保障。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。
Claims (1)
1.一种用于多用户接入控制的接收机程控解析算法,其特征在于,包括:
步骤1:开始监听线程,判断接收机的状态,若接收机关闭,则关闭监听线程;若接收机没有关闭,则等待新用户接入接收机,新用户接入接收机后,接收机根据接入的用户数量创建多个接收子线程;
步骤2:判断监听线程是否开启,若开启则执行步骤3,否则关闭接收线程;
步骤3:等待接收用户发送的SCPI命令,接收到命令后,执行步骤4,否则关闭接收线程;
步骤4:调用GetNextWord()函数,获取多节点命令的第n级子节点,其中n大于等于1,以“:”为分界,根据函数返回值的不同来判断该节点是否为命令的最后一级节点,若不是则执行步骤5,若是则执行步骤7;
步骤5:将获取到的该节点与树结构中所有同级节点进行匹配,若匹配成功,则执行步骤4;若匹配未成功,则执行步骤6;
步骤6:查找并匹配可省略的同级节点的下一级子节点,判断是否匹配成功,若匹配成功,则执行步骤4;若匹配未成功,则该节点为非法节点,跳出函数,不进行处理;
步骤7:将获取的最后一级节点与树结构中的同级节点进行匹配,若匹配成功,则判断节点后是否为“?”,若为“?”,则该命令为查询命令,否则为设置命令,之后执行步骤9;若匹配未成功,则执行步骤8;
步骤8::查找并匹配可省略的同级节点下一级子节点,判断是否匹配成功,若匹配成功,则判断节点后是否为“?”,若为“?”,则该命令为查询命令,否则为设置命令,之后执行步骤9;若匹配未成功,则该节点为非法节点,跳出函数,不进行处理;
步骤9:获取全部的节点后,调用GetPara()函数获取命令参数,将其置于全局变量中,根据上述步骤中判断出的为查询命令或者设置命令,调用对应的命令处理函数,完成单次的程控命令处理过程;
步骤10:单次命令处理完成后,判断后续是否同时收取到多条命令,若仍有命令未处理,则将执行步骤4,重新从第一级节点开始匹配;若为单命令,则命令处理结束,返回步骤2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610654416.4A CN106341197B (zh) | 2016-08-11 | 2016-08-11 | 一种用于多用户接入控制的接收机程控解析算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610654416.4A CN106341197B (zh) | 2016-08-11 | 2016-08-11 | 一种用于多用户接入控制的接收机程控解析算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106341197A true CN106341197A (zh) | 2017-01-18 |
CN106341197B CN106341197B (zh) | 2018-11-20 |
Family
ID=57825028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610654416.4A Expired - Fee Related CN106341197B (zh) | 2016-08-11 | 2016-08-11 | 一种用于多用户接入控制的接收机程控解析算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106341197B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1719786A (zh) * | 2004-07-08 | 2006-01-11 | 中兴通讯股份有限公司 | 数据通讯设备命令行接口命令的自动测试系统及测试方法 |
US8103912B2 (en) * | 2008-09-07 | 2012-01-24 | EADS North America, Inc. | Sequencer and test system including the sequencer |
CN102521250A (zh) * | 2011-11-16 | 2012-06-27 | 中国电子科技集团公司第四十一研究所 | 一种智能测量仪器通用语法分析的实现方法 |
CN103605496A (zh) * | 2013-12-02 | 2014-02-26 | 天津光电通信技术有限公司 | 一种实现快速解析基于scpi协议的通信指令的方法 |
-
2016
- 2016-08-11 CN CN201610654416.4A patent/CN106341197B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1719786A (zh) * | 2004-07-08 | 2006-01-11 | 中兴通讯股份有限公司 | 数据通讯设备命令行接口命令的自动测试系统及测试方法 |
US8103912B2 (en) * | 2008-09-07 | 2012-01-24 | EADS North America, Inc. | Sequencer and test system including the sequencer |
CN102521250A (zh) * | 2011-11-16 | 2012-06-27 | 中国电子科技集团公司第四十一研究所 | 一种智能测量仪器通用语法分析的实现方法 |
CN103605496A (zh) * | 2013-12-02 | 2014-02-26 | 天津光电通信技术有限公司 | 一种实现快速解析基于scpi协议的通信指令的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106341197B (zh) | 2018-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104063425B (zh) | 通过数据库中间件查询数据的方法和数据库中间件 | |
CN104123227A (zh) | 一种自动生成测试用例的方法 | |
CN110134659B (zh) | 运行程序的日志监控系统、方法、介质及设备 | |
CN107193917B (zh) | 基于iid的全站系统配置文件无损数据更新方法 | |
CN104572644A (zh) | 数据库更新装置和数据库更新方法 | |
CN110837515A (zh) | 一种基于数据库的数据处理方法及电子设备 | |
CN103051496A (zh) | 一种监测点服务器的监控方法及装置 | |
CN109669741A (zh) | 终端应用动态文案的语言切换方法、服务器及存储介质 | |
CN109388557A (zh) | 一种控件遍历方法、计算机可读存储介质及终端设备 | |
CN109063077A (zh) | 一种基于弹性搜索的数据访问方法及装置 | |
US20170161392A1 (en) | Information communication methods, systems and terminals | |
CN102377610B (zh) | 简单网络管理协议自动化测试系统及其方法 | |
US11985029B2 (en) | Pico-base station configuration method and apparatus, storage medium and electronic apparatus | |
CN107944288B (zh) | 一种数据访问控制方法和装置 | |
CN103365661A (zh) | 自动化测试脚本的开发方法和系统 | |
CN106341197A (zh) | 一种用于多用户接入控制的接收机程控解析算法 | |
CN104254003B (zh) | 一种智能终端设备的频道切换方法及装置 | |
CN102855278B (zh) | 一种仿真方法和系统 | |
CN112735406A (zh) | 设备的控制方法及装置、存储介质及电子装置 | |
CN102857939B (zh) | 小区参数的配置方法及装置 | |
CN107404731A (zh) | 无线通讯模块的测试系统及测试方法 | |
MX2012009526A (es) | Metodo de adquisicion de datos en estimacion de recursos de red y sistema del mismo. | |
CN114064601B (zh) | 存储过程转换方法、装置、设备和存储介质 | |
CN115599881A (zh) | 工作流创建方法、系统、电子设备和计算机可读存储介质 | |
KR102638146B1 (ko) | 5g 네트워크 작업 자동화 방법 및 그 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181120 Termination date: 20200811 |