CN110287043B - 一种任意波形发生器awg控制方法和任意波形发生器awg控制系统 - Google Patents
一种任意波形发生器awg控制方法和任意波形发生器awg控制系统 Download PDFInfo
- Publication number
- CN110287043B CN110287043B CN201910583241.6A CN201910583241A CN110287043B CN 110287043 B CN110287043 B CN 110287043B CN 201910583241 A CN201910583241 A CN 201910583241A CN 110287043 B CN110287043 B CN 110287043B
- Authority
- CN
- China
- Prior art keywords
- awg
- arbitrary waveform
- waveform generator
- fastcgi
- request
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 173
- 238000012544 monitoring process Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 241000109539 Conchita Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种AWG控制方法和AWG控制系统,属于波形发生器技术领域,该方法以Nginx作为Web服务器和反向代理服务器,spawn‑fcgi作为FastCGI进程管理器使Nginx支持外部CGI程序执行以调用FastCGI程序;自定义FastCGI应用程序,使Nginx可用于底层硬件的控制,支持多AWG板卡协同工作场景下的网络访问。一种AWG控制系统,包括服务器和AWG机箱,Nginx作为web服务器和反向代理服务器,AWG机箱内放置嵌入式计算机和多个AWG板卡。本发明满足某些前沿科技研究及其实际应用中需要多个AWG协同工作的场景,便于科研使用及实际应用中支持远程访问的多AWG板卡控制。
Description
技术领域
本发明涉及波形发生器技术领域,具体地说是一种任意波形发生器AWG控制方法和任意波形发生器AWG控制系统。
背景技术
任意波形发生器AWG(Arbitary Waveform Generator,任意波形发生器)作为一种信号发生设备,在科研领域得到了广泛的应用,尤其是在某些前沿科技研究及其实际应用中,需要多个任意波形发生器AWG协同工作,提供一种便于科研使用以及实际应用中支持远程访问的多任意波形发生器AWG板卡控制方法是一个需要解决的技术问题。
发明内容
本发明的技术任务是针对以上不足之处,提供一种任意波形发生器AWG控制方法和任意波形发生器AWG控制系统,满足了某些前沿科技研究及其实际应用中需要多个任意波形发生器AWG协同工作的场景,便于科研使用以及实际应用中支持远程访问的多任意波形发生器AWG板卡控制。
本发明解决其技术问题所采用的技术方案是:
一种任意波形发生器AWG控制方法,该方法以Nginx作为Web服务器和反向代理服务器;
spawn-fcgi作为FastCGI进程管理器使Nginx支持外部CGI程序执行以调用FastCGI程序;
自定义FastCGI应用程序,使Nginx可用于底层硬件的控制,支持多任意波形发生器AWG板卡协同工作场景下的网络访问,实现多个任意波形发生器AWG协同工作,支持远程访问的多任意波形发生器AWG板卡控制。
优选的,自定义FastCGI应用程序,对描述系统参数的JSON字符串进行解析并转换为底层操作的自定义任意波形发生器AWG控制程序对Nginx进行功能扩展,从而使Nginx可用于底层硬件的控制,支持多任意波形发生器AWG板卡协同工作场景下的网络访问。
具体的,该方法实现步骤如下:
1)、在nginx.conf中增加反向代理功能所需资源位置信息,指明Nginx转发用户请求的目的IP地址IP1、端口Port1和FastCGI应用程序;
2)、Nginx启动,初始化FastCGI运行环境,FastCGI运行环境用于支持向FastCGI进程管理器转发用户以URI的形式向Nginx发送的用户请求;
3)、FastCGI进程管理器spawn-fcgi启动,设置在IP1:Port1监听,启动FastCGI应用程序创建FastCGI进程后退出,监听端口由FastCGI进程继承;
4)、FastCGI进程调用fcgi库中的FCGI_Accept()监听HTTP请求,当有HTTP请求到达时通过getenv()和FCGI_fgets()获取HTTP请求信息,组成与任意波形发生器AWG控制进程通信的命令请求,发送命令请求到IP2:Port2指定的任意波形发生器AWG控制进程;
5)、任意波形发生器AWG控制程序启动,包括主线程、命令收发线程和任意波形发生器AWG读写线程;
6)、命令收发线程在IP2:Port2监听,接收FastCGI进程发送的命令请求,并根据命令预解析的情况产生和发送请求消息到请求FIFO;
7)、任意波形发生器AWG读写线程获取并解析请求FIFO中的请求消息;
8)、任意波形发生器AWG读写线程调用PCIe驱动读写FPGA中的寄存器值;
9)、任意波形发生器AWG读写线程将读写寄存器的命令执行结果用JSON字符串描述;
10)、任意波形发生器AWG读写线程将数据域为JSON字符串的响应消息发送到响应FIFO;
11)、命令收发线程获取响应FIFO中的响应消息,根据响应消息产生和发送命令回复到FastCGI进程;
12)、FastCGI进程接收任意波形发生器AWG控制进程发送的命令回复,调用fcgi库的FCGI_printf()函数通过重定向的标准输出将JSON字符串返回给Nginx,最终被发起HTTP请求的客户端接收和显示。
具体的,FastCGI进程调用fcgi库中的FCGI_Accept()监听HTTP请求,对于HTTPGET方法,通过getenv()获取环境变量REQUEST_METHOD和QUERY_STRING,环境变量作为HTTP请求信息。
具体的,FastCGI进程调用fcgi库中的FCGI_Accept()监听HTTP请求,对于HTTPPOST方法,通过getenv()获取环境变量REQUEST_METHOD和CONTENT_LENGTH,通过FCGI_fgets()读取重定向的标准输入中的JSON字符串,环境变量和JSON字符串作为HTTP请求信息。
具体的,所述的任意波形发生器AWG读写线程获取并解析请求FIFO中的请求消息,请求消息中的REQUEST_METHOD决定HTTP方法:
如果是HTTP GET方法,根据QUERY_STRING决定具体读取的寄存器;
如果是HTTP POST方法,解析JSON字符串获取写寄存器的值。
具体的,所述的任意波形发生器AWG读写线程调用PCIe驱动读写FPGA中的寄存器值:
如果是HTTP GET方法,对应底层操作为获取任意波形发生器AWG的参数;
如果是HTTP POST方法,对应底层操作为设置任意波形发生器AWG的参数。
本发明还要求保护一种任意波形发生器AWG控制系统,包括服务器和任意波形发生器AWG机箱,
Nginx作为web服务器和反向代理服务器,在nginx.conf中添加反向代理功能所需资源位置信息,指明Nginx转发用户请求的目的IP地址IP1、端口Port1和FastCGI应用程序;
任意波形发生器AWG机箱内放置嵌入式计算机和多个任意波形发生器AWG板卡,嵌入式计算机和多个任意波形发生器AWG板卡相连,嵌入式计算机上放置FastCGI进程管理器spawn-fcgi、FastCGI应用程序和任意波形发生器AWG控制程序。
优选的,任意波形发生器AWG板卡与嵌入式计算机通过机箱背板上的PCIe交换机通信。
具体的,任意波形发生器AWG控制系统的运行如下:
启动Nginx,初始化FastCGI运行环境,FastCGI运行环境用于支持向FastCGI进程管理器转发用户以URI的形式向Nginx发送的用户请求;
启动FastCGI进程管理器spawn-fcgi,设置在IP1:Port1监听,启动FastCGI应用程序创建FastCGI进程后退出,监听端口由FastCGI进程继承;
FastCGI进程调用fcgi库中的FCGI_Accept()监听HTTP请求,当有HTTP请求到达时通过getenv()和FCGI_fgets()获取HTTP请求信息,组成与任意波形发生器AWG控制进程通信的命令请求,发送命令请求到IP2:Port2指定的任意波形发生器AWG控制进程:
如果是HTTP GET方法,通过getenv()获取环境变量REQUEST_METHOD和QUERY_STRING,环境变量作为HTTP请求信息;如果是HTTP POST方法,通过getenv()获取环境变量REQUEST_METHOD和CONTENT_LENGTH,通过FCGI_fgets()读取重定向的标准输入中的JSON字符串,环境变量和JSON字符串作为HTTP请求信息;
启动任意波形发生器AWG控制程序,包括主线程、命令收发线程和任意波形发生器AWG读写线程;
命令收发线程在IP2:Port2监听,接收FastCGI进程发送的命令请求,并根据命令预解析的情况产生和发送请求消息到请求FIFO;
任意波形发生器AWG读写线程获取并解析请求FIFO中的请求消息;
请求消息中的REQUEST_METHOD决定HTTP方法,如果是HTTP GET方法,根据QUERY_STRING决定具体读取的寄存器;如果是HTTP POST方法,解析JSON字符串获取写寄存器的值;
任意波形发生器AWG读写线程调用PCIe驱动读写FPGA中的寄存器值;
如果是HTTP GET方法,对应底层操作为获取任意波形发生器AWG的参数;如果是HTTP POST方法,对应底层操作为设置任意波形发生器AWG的参数;
任意波形发生器AWG读写线程将读写寄存器的命令执行结果用JSON字符串描述;
任意波形发生器AWG读写线程将数据域为JSON字符串的响应消息发送到响应FIFO;
命令收发线程获取响应FIFO中的响应消息,根据响应消息产生和发送命令回复到FastCGI进程;
FastCGI进程接收任意波形发生器AWG控制进程发送的命令回复,调用fcgi库的FCGI_printf()函数通过重定向的标准输出将JSON字符串返回给Nginx,最终被发起HTTP请求的客户端接收和显示。
本发明的一种任意波形发生器AWG控制方法和任意波形发生器AWG控制系统与现有技术相比,具有以下有益效果:
使用Nginx作为Web服务器和反向代理服务器,spawn-fcgi作为FastCGI进程管理器,使Nginx支持外部CGI程序执行以调用FastCGI程序;
增加了自定义FastCGI应用程序以及对描述系统参数的JSON字符串进行解析并转换为底层操作的自定义任意波形发生器AWG控制程序对Nginx进行功能扩展,使Nginx可用于底层硬件的控制,从而支持多任意波形发生器AWG板卡协同工作场景下的网络访问,满足了某些前沿科技研究及其实际应用中需要多个任意波形发生器AWG协同工作的场景,便于科研使用以及实际应用中支持远程访问的多任意波形发生器AWG板卡控制。
附图说明
图1是本发明的任意波形发生器AWG控制方法的过程示意图。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
一种任意波形发生器AWG控制方法,该方法以Nginx作为Web服务器和反向代理服务器;
spawn-fcgi作为FastCGI进程管理器使Nginx支持外部CGI程序执行以调用FastCGI程序;
自定义FastCGI应用程序,对描述系统参数的JSON字符串进行解析并转换为底层操作的自定义任意波形发生器AWG控制程序对Nginx进行功能扩展,使Nginx可用于底层硬件的控制,支持多任意波形发生器AWG板卡协同工作场景下的网络访问,实现多个任意波形发生器AWG协同工作,支持远程访问的多任意波形发生器AWG板卡控制。
具体的,该方法实现步骤如下:
1)、在nginx.conf中增加反向代理功能所需资源位置信息,指明Nginx转发用户请求的目的IP地址IP1、端口Port1和FastCGI应用程序;
2)、Nginx启动,初始化FastCGI运行环境,FastCGI运行环境用于支持向FastCGI进程管理器转发用户以URI的形式向Nginx发送的用户请求;
3)、FastCGI进程管理器spawn-fcgi启动,设置在IP1:Port1监听,启动FastCGI应用程序创建FastCGI进程后退出,监听端口由FastCGI进程继承;
4)、FastCGI进程调用fcgi库中的FCGI_Accept()监听HTTP请求,当有HTTP请求到达时通过getenv()和FCGI_fgets()获取HTTP请求信息,组成与任意波形发生器AWG控制进程通信的命令请求,发送命令请求到IP2:Port2指定的任意波形发生器AWG控制进程;
如果是HTTP GET方法通过getenv()获取环境变量REQUEST_METHOD和QUERY_STRING,环境变量作为HTTP请求信息;如果是HTTP POST方法,通过getenv()获取环境变量REQUEST_METHOD和CONTENT_LENGTH,通过FCGI_fgets()读取重定向的标准输入中的JSON字符串,环境变量和JSON字符串作为HTTP请求信息。
5)、任意波形发生器AWG控制程序启动,包括主线程、命令收发线程和任意波形发生器AWG读写线程;
6)、命令收发线程在IP2:Port2监听,接收FastCGI进程发送的命令请求,并根据命令预解析的情况产生和发送请求消息到请求FIFO;
7)、任意波形发生器AWG读写线程获取并解析请求FIFO中的请求消息;
请求消息中的REQUEST_METHOD决定HTTP方法,如果是HTTP GET方法,根据QUERY_STRING决定具体读取的寄存器;如果是HTTP POST方法,解析JSON字符串获取写寄存器的值;
8)、任意波形发生器AWG读写线程调用PCIe驱动读写FPGA中的寄存器值;
如果是HTTP GET方法,对应底层操作为获取任意波形发生器AWG的参数;如果是HTTP POST方法,对应底层操作为设置任意波形发生器AWG的参数;
9)、任意波形发生器AWG读写线程将读写寄存器的命令执行结果用JSON字符串描述;
10)、任意波形发生器AWG读写线程将数据域为JSON字符串的响应消息发送到响应FIFO;
11)、命令收发线程获取响应FIFO中的响应消息,根据响应消息产生和发送命令回复到FastCGI进程;
12)、FastCGI进程接收任意波形发生器AWG控制进程发送的命令回复,调用fcgi库的FCGI_printf()函数通过重定向的标准输出将JSON字符串返回给Nginx,最终被发起HTTP请求的客户端接收和显示。
一种任意波形发生器AWG控制系统,包括服务器和任意波形发生器AWG机箱,
Nginx作为web服务器和反向代理服务器,在nginx.conf中添加反向代理功能所需资源位置信息,指明Nginx转发用户请求的目的IP地址IP1、端口Port1和FastCGI应用程序。
任意波形发生器AWG机箱内放置一个嵌入式计算机和多个任意波形发生器AWG板卡,任意波形发生器AWG板卡与嵌入式计算机通过机箱背板上的PCIe交换机通信,嵌入式计算机上放置FastCGI进程管理器spawn-fcgi、FastCGI应用程序和任意波形发生器AWG控制程序。
具体的,所述任意波形发生器AWG控制系统的运行如下:
启动Nginx,初始化FastCGI运行环境,FastCGI运行环境用于支持向FastCGI进程管理器转发用户以URI的形式向Nginx发送的用户请求;
启动FastCGI进程管理器spawn-fcgi,设置在IP1:Port1监听,启动FastCGI应用程序创建FastCGI进程后退出,监听端口由FastCGI进程继承;
FastCGI进程调用fcgi库中的FCGI_Accept()监听HTTP请求,当有HTTP请求到达时通过getenv()和FCGI_fgets()获取HTTP请求信息,组成与任意波形发生器AWG控制进程通信的命令请求,发送命令请求到IP2:Port2指定的任意波形发生器AWG控制进程:
如果是HTTP GET方法,通过getenv()获取环境变量REQUEST_METHOD和QUERY_STRING,环境变量作为HTTP请求信息;如果是HTTP POST方法,通过getenv()获取环境变量REQUEST_METHOD和CONTENT_LENGTH,通过FCGI_fgets()读取重定向的标准输入中的JSON字符串,环境变量和JSON字符串作为HTTP请求信息;
启动任意波形发生器AWG控制程序,包括主线程、命令收发线程和任意波形发生器AWG读写线程;
命令收发线程在IP2:Port2监听,接收FastCGI进程发送的命令请求,并根据命令预解析的情况产生和发送请求消息到请求FIFO;
任意波形发生器AWG读写线程获取并解析请求FIFO中的请求消息;
请求消息中的REQUEST_METHOD决定HTTP方法,如果是HTTP GET方法,根据QUERY_STRING决定具体读取的寄存器;如果是HTTP POST方法,解析JSON字符串获取写寄存器的值;
任意波形发生器AWG读写线程调用PCIe驱动读写FPGA中的寄存器值;
如果是HTTP GET方法,对应底层操作为获取任意波形发生器AWG的参数;如果是HTTP POST方法,对应底层操作为设置任意波形发生器AWG的参数;
任意波形发生器AWG读写线程将读写寄存器的命令执行结果用JSON字符串描述;
任意波形发生器AWG读写线程将数据域为JSON字符串的响应消息发送到响应FIFO;
命令收发线程获取响应FIFO中的响应消息,根据响应消息产生和发送命令回复到FastCGI进程;
FastCGI进程接收任意波形发生器AWG控制进程发送的命令回复,调用fcgi库的FCGI_printf()函数通过重定向的标准输出将JSON字符串返回给Nginx,最终被发起HTTP请求的客户端接收和显示。
下面以一个具体的实施例对本发明的任意波形发生器AWG控制方法及系统进行验证说明。
一台服务器,安装CentOS,Nginx作为Web服务器和反向代理服务器,服务器的IP为192.168.0.10,nginx.conf中添加如下内容:
一个任意波形发生器AWG机箱,内部放置多个任意波形发生器AWG板卡和一个嵌入式计算机,任意波形发生器AWG板卡与嵌入式计算机通过机箱背板上的PCIe交换机通信,嵌入式计算机上放置FastCGI进程管理器spawn-fcgi、FastCGI应用程序tcp_client和任意波形发生器AWG控制程序qosd,嵌入式计算机的IP为192.168.0.100,spawn-fcgi的监听端口为9000,spawn-fcgi启动tcp_client,qosd的监听端口为9002。启动spawn-fcgi:
./spawn-fcgi-a 192.168.0.100-p 9000-f tcp_client
启动qosd:
./qosd
用户在IP为192.168.0.11的机器上向同一个局域网中的Nginx发起HTTP请求。
当获取任意波形发生器AWG板卡状态时,REQUEST_METHOD为"GET",QUERY_STRING为"任意波形发生器AWG_board_info",返回如下形式的JSON字符串:
当设置任意波形发生器AWG板卡参数时,REQUEST_METHOD为"POST",提交如下形式的JSON字符串(这里只示例dac_wav):
{
"任意波形发生器AWG":[
{"index":"0","valid":"1","property":{..."dac_wav":[{"valid":"1","dac_wav_len":"xx"},{"valid":"1","dac_wav_len":"xx"},{"valid":"1","dac_wav_len":"xx"},{"valid":"1","dac_wav_len":"xx"}]...}},
{"index":"1","valid":"1","property":{..."dac_wav":[{"valid":"1","dac_wav_len":"xx"},{"valid":"1","dac_wav_len":"xx"},{"valid":"1","dac_wav_len":"xx"},{"valid":"1","dac_wav_len":"xx"}]...}},
……
{"index":"n","valid":"1","property":{..."dac_wav":[{"valid":"1","dac_wav_len":"xx"},{"valid":"1","dac_wav_len":"xx"},{"valid":"1","dac_wav_len":"xx"},{"valid":"1","dac_wav_len":"xx"}]...}}
]
}
返回的JSON字符串具有与获取任意波形发生器AWG板卡状态时相同的结构,只是"property"的值为""。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (8)
1.一种任意波形发生器AWG控制方法,其特征在于该方法以Nginx作为Web服务器和反向代理服务器;
spawn-fcgi作为FastCGI进程管理器使Nginx支持外部CGI程序执行以调用FastCGI程序;
自定义FastCGI应用程序,使Nginx可用于底层硬件的控制,支持多任意波形发生器AWG板卡协同工作场景下的网络访问;
该方法实现步骤如下:
1)、在nginx.conf中增加反向代理功能所需资源位置信息,指明Nginx转发用户请求的目的IP地址IP1、端口Port1和FastCGI应用程序;
2)、Nginx启动,初始化FastCGI运行环境;
3)、FastCGI进程管理器spawn-fcgi启动,设置在IP1:Port1监听,启动FastCGI应用程序创建FastCGI进程后退出,监听端口由FastCGI进程继承;
4)、FastCGI进程调用fcgi库中的FCGI_Accept()监听HTTP请求,当有HTTP请求到达时通过getenv()和FCGI_fgets()获取HTTP请求信息,组成与任意波形发生器AWG控制进程通信的命令请求,发送命令请求到IP2:Port2指定的任意波形发生器AWG控制进程;
5)、任意波形发生器AWG控制程序启动,包括主线程、命令收发线程和任意波形发生器AWG读写线程;
6)、命令收发线程在IP2:Port2监听,接收FastCGI进程发送的命令请求,并根据命令预解析的情况产生和发送请求消息到请求FIFO;
7)、任意波形发生器AWG读写线程获取并解析请求FIFO中的请求消息;
8)、任意波形发生器AWG读写线程调用PCIe驱动读写FPGA中的寄存器值;
9)、任意波形发生器AWG读写线程将读写寄存器的命令执行结果用JSON字符串描述;
10)、任意波形发生器AWG读写线程将数据域为JSON字符串的响应消息发送到响应FIFO;
11)、命令收发线程获取响应FIFO中的响应消息,根据响应消息产生和发送命令回复到FastCGI进程;
12)、FastCGI进程接收任意波形发生器AWG控制进程发送的命令回复,调用fcgi库的FCGI_printf()函数通过重定向的标准输出将JSON字符串返回给Nginx,最终被发起HTTP请求的客户端接收和显示。
2.根据权利要求1所述的一种任意波形发生器AWG控制方法,其特征在于自定义FastCGI应用程序,对描述系统参数的JSON字符串进行解析并转换为底层操作的自定义任意波形发生器AWG控制程序对Nginx进行功能扩展。
3.根据权利要求2所述的一种任意波形发生器AWG控制方法,其特征在于FastCGI进程调用fcgi库中的FCGI_Accept()监听HTTP请求,对于HTTP GET方法,通过getenv()获取环境变量REQUEST_METHOD和QUERY_STRING,环境变量作为HTTP请求信息。
4.根据权利要求2所述的一种任意波形发生器AWG控制方法,其特征在于FastCGI进程调用fcgi库中的FCGI_Accept()监听HTTP请求,对于HTTP POST方法,通过getenv()获取环境变量REQUEST_METHOD和CONTENT_LENGTH,通过FCGI_fgets()读取重定向的标准输入中的JSON字符串,环境变量和JSON字符串作为HTTP请求信息。
5.根据权利要求3或4所述的一种任意波形发生器AWG控制方法,其特征在于所述的任意波形发生器AWG读写线程获取并解析请求FIFO中的请求消息,请求消息中的REQUEST_METHOD决定HTTP方法:
如果是HTTP GET方法,根据QUERY_STRING决定具体读取的寄存器;
如果是HTTP POST方法,解析 JSON字符串获取写寄存器的值。
6.根据权利要求5所述的一种任意波形发生器AWG控制方法,其特征在于所述的任意波形发生器AWG读写线程调用PCIe驱动读写FPGA中的寄存器值,
如果是HTTP GET方法,对应底层操作为获取任意波形发生器AWG的参数;
如果是HTTP POST方法,对应底层操作为设置任意波形发生器AWG的参数。
7.一种任意波形发生器AWG控制系统,包括服务器和任意波形发生器AWG机箱,其特征在于,
Nginx作为web服务器和反向代理服务器,在nginx.conf中添加反向代理功能所需资源位置信息,指明Nginx转发用户请求的目的IP地址IP1、端口Port1和FastCGI应用程序;
任意波形发生器AWG机箱内放置嵌入式计算机和多个任意波形发生器AWG板卡,嵌入式计算机和多个任意波形发生器AWG板卡相连,嵌入式计算机上放置FastCGI进程管理器spawn-fcgi、FastCGI应用程序和任意波形发生器AWG控制程序;
启动Nginx,初始化FastCGI运行环境;
启动FastCGI进程管理器spawn-fcgi,设置在IP1:Port1监听,启动FastCGI应用程序创建FastCGI进程后退出,监听端口由FastCGI进程继承;
启动任意波形发生器AWG控制程序,包括主线程、命令收发线程和任意波形发生器AWG读写线程:
命令收发线程在IP2:Port2监听,接收FastCGI进程发送的命令请求,并根据命令预解析的情况产生和发送请求消息到请求FIFO;任意波形发生器AWG读写线程获取并解析请求FIFO中的请求消息;任意波形发生器AWG读写线程调用PCIe驱动读写FPGA中的寄存器值;任意波形发生器AWG读写线程将读写寄存器的命令执行结果用JSON字符串描述;任意波形发生器AWG读写线程将数据域为JSON字符串的响应消息发送到响应FIFO;命令收发线程获取响应FIFO中的响应消息,根据响应消息产生和发送命令回复到FastCGI进程;
FastCGI进程接收任意波形发生器AWG控制进程发送的命令回复,调用fcgi库的FCGI_printf()函数通过重定向的标准输出将JSON字符串返回给Nginx,最终被发起HTTP请求的客户端接收和显示。
8.根据权利要求7所述的一种任意波形发生器AWG控制系统,其特征在于任意波形发生器AWG板卡与嵌入式计算机通过机箱背板上的PCIe交换机通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910583241.6A CN110287043B (zh) | 2019-07-01 | 2019-07-01 | 一种任意波形发生器awg控制方法和任意波形发生器awg控制系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910583241.6A CN110287043B (zh) | 2019-07-01 | 2019-07-01 | 一种任意波形发生器awg控制方法和任意波形发生器awg控制系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110287043A CN110287043A (zh) | 2019-09-27 |
CN110287043B true CN110287043B (zh) | 2021-04-02 |
Family
ID=68020283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910583241.6A Active CN110287043B (zh) | 2019-07-01 | 2019-07-01 | 一种任意波形发生器awg控制方法和任意波形发生器awg控制系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110287043B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100111B (zh) * | 2020-09-15 | 2022-04-26 | 浪潮集团有限公司 | 一种多awg板卡的控制方法 |
CN112416444B (zh) * | 2020-11-17 | 2023-07-07 | 山东浪潮科学研究院有限公司 | 一种板卡切换控制方法、装置、设备及介质 |
CN114090197B (zh) * | 2021-10-19 | 2024-05-28 | 山东浪潮科学研究院有限公司 | 一种多进程awg访问控制的优化方法 |
CN117354442A (zh) * | 2023-11-07 | 2024-01-05 | 广东保伦电子股份有限公司 | 一种led显示屏便捷添加台标的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN205120878U (zh) * | 2015-11-25 | 2016-03-30 | 常州信息职业技术学院 | 一种嵌入式测试系统 |
CN107404438A (zh) * | 2016-05-20 | 2017-11-28 | 北京大学 | 网络路由方法和网络路由系统 |
CN108289165A (zh) * | 2017-12-12 | 2018-07-17 | 深圳进化动力数码科技有限公司 | 一种基于手机控制相机的实现方法、装置及终端设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102904550A (zh) * | 2012-09-26 | 2013-01-30 | 北京工业大学 | 基于ad9959的多通道同步波形发生器 |
CN105897457A (zh) * | 2015-12-09 | 2016-08-24 | 乐视云计算有限公司 | 服务器群组的服务升级方法及系统 |
CN207657627U (zh) * | 2017-12-14 | 2018-07-27 | 重庆光电信息研究院有限公司 | 一种基于智慧路灯的充电桩控制管理系统 |
CN109347894A (zh) * | 2018-08-10 | 2019-02-15 | 锐捷网络股份有限公司 | 管理FastCGI进程的方法、管理器、设备及介质 |
-
2019
- 2019-07-01 CN CN201910583241.6A patent/CN110287043B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN205120878U (zh) * | 2015-11-25 | 2016-03-30 | 常州信息职业技术学院 | 一种嵌入式测试系统 |
CN107404438A (zh) * | 2016-05-20 | 2017-11-28 | 北京大学 | 网络路由方法和网络路由系统 |
CN108289165A (zh) * | 2017-12-12 | 2018-07-17 | 深圳进化动力数码科技有限公司 | 一种基于手机控制相机的实现方法、装置及终端设备 |
Non-Patent Citations (1)
Title |
---|
如何配置Nginx+Fastcgi实现控制硬件;小球why;《https://blog.csdn.net/hyq4412/article/details/50722356》;20160223;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110287043A (zh) | 2019-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110287043B (zh) | 一种任意波形发生器awg控制方法和任意波形发生器awg控制系统 | |
US20190335020A1 (en) | Method, apparatus and server for providing voice service | |
US20110202854A1 (en) | Metadata Capture for Screen Sharing | |
JP4151978B2 (ja) | サーバ装置、管理方法およびプログラム | |
US11721273B2 (en) | Information display method, terminal device, and storage medium | |
JP2007136665A (ja) | ロボット制御のためのロボットサーバ、これを含むコンテンツ提供システム及びその方法 | |
CN107731241B (zh) | 处理音频信号的方法、装置和存储介质 | |
KR101871876B1 (ko) | 채팅 정보 전송 방법 및 장치, 및 채팅 정보 푸시 방법 및 서버 | |
JP6814871B2 (ja) | 電子デバイスの音声制御方法、電子デバイスの音声制御装置、コンピュータ機器及び記憶媒体 | |
US8726182B1 (en) | Multi-stage throbber | |
WO2023134412A1 (zh) | 车辆控制方法及装置、软件配置方法及装置、电子设备、存储介质 | |
CN103049244B (zh) | 一种传输操作指令的方法及装置 | |
CN113535541A (zh) | 一种测试方法、装置、存储介质和计算机设备 | |
CN112688915A (zh) | 跨协议通信方法、装置及服务器 | |
JP5039946B2 (ja) | クライアント装置およびサーバ装置の間の通信を中継する技術 | |
US6404430B1 (en) | Virtual space information processor | |
CN110795156B (zh) | 移动存储器加载方法、瘦客户端、存储介质及装置 | |
US20030055874A1 (en) | System for automatically recognizing devices connected in a distributed processing environment | |
JPH10171731A (ja) | 情報閲覧システム及び情報閲覧方法 | |
JP2010250615A (ja) | サーバ装置、クライアント装置、サーバベースコンピューティングシステム及びプログラム | |
CN1421795A (zh) | 经由网络远端控制多个电脑装置的远端操作装置 | |
CN113094165A (zh) | 一种提升云端加载应用程序速度的方法 | |
CN113626099A (zh) | 应用程序的启动方法、装置及电子设备 | |
JP2011053769A (ja) | サーバ装置及び画面データの送信方法 | |
CN111258902A (zh) | 基于SockJS服务器的性能测试方法和性能测试系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210311 Address after: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong Applicant after: INSPUR GROUP Co.,Ltd. Address before: North 6th floor, S05 building, Langchao Science Park, 1036 Langchao Road, hi tech Zone, Jinan City, Shandong Province, 250100 Applicant before: SHANDONG INSPUR ARTIFICIAL INTELLIGENCE RESEARCH INSTITUTE Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |