本发明涉及虚拟化领域,更具体地,特别是指一种串口虚拟化的方法、系统、设备和存储介质。
背景技术:
1、虚拟串口(虚拟com端口),是用操作系统的虚拟驱动技术产生的串口(com口),是一种模拟物理串行接口的软件,虚拟串口具有真实硬件串口的功能,并且被操作系统和串行应用程序识别为真实串口。
2、虚拟串口的应用比较广泛。以前的电脑,基本标配都包含一个串口。但现在的电脑,基本都没有配置串口了。如果要使用串口的功能,基本上增加一个usb转串口的硬件模块即可。但如果在不改变硬件的情况下,还需要增加一个或多个串口设备,就需要虚拟出一个或多个串口,实际使用时和真实的硬件串口是相同的。另外,当调试程序的时候,可以使用虚拟串口检测串行输入数据,多个应用程序之间也可以使用虚拟串口进行通信。但是目前的虚拟串口会导致数据回显,并可能影响正常串口通信。
技术实现思路
1、有鉴于此,本发明实施例的目的在于提出一种串口虚拟化的方法、系统、计算机设备及计算机可读存储介质,本发明在虚拟串口的客户端程序中增加inotify机制监控目录或者文件状态变更情况,及时接收或者丢弃串口数据,实现串口设备信息的网络传输,解决了串口终端设备的远程访问问题。
2、基于上述目的,本发明实施例的一方面提供了一种串口虚拟化的方法,包括如下步骤:通过虚拟串口客户端程序创建inotify句柄,并通过调用inotify监听函数添加要进行监听的文件或目录;通过虚拟串口客户端程序的读取函数从inotify的文件描述符中读取事件;响应于接收到远程访问,根据文件打开标志确定是否接收数据;将所述虚拟串口客户端程序部署到客户端,将tcp/ip网口虚拟成串口设备,通过串口线与远程串口连接以实现数据通信。
3、在一些实施方式中,所述方法还包括:通过为选择函数调用设置文件/套接字以监视文件描述符的变化情况,并等待来自套接字、设备或远程连接的数据。
4、在一些实施方式中,所述通过虚拟串口客户端程序的读取函数从inotify的文件描述符中读取事件包括:响应于读取函数未读取到事件,则读取函数被阻塞直至有事件产生;以及响应于读取函数读取到事件,则每次调用读取函数时返回一个包含一个或多个事件结构体的缓存区。
5、在一些实施方式中,方法还包括:将所述事件结构体的位掩码设置成唯一指代监控项的描述符,并根据描述符的状态确定文件打开标志。
6、本发明实施例的另一方面,提供了一种串口虚拟化的系统,包括:创建模块,配置用于通过虚拟串口客户端程序创建inotify句柄,并通过调用inotify监听函数添加要进行监听的文件或目录;读取模块,配置用于通过虚拟串口客户端程序的读取函数从inotify的文件描述符中读取事件;判断模块,配置用于响应于接收到远程访问,根据文件打开标志确定是否接收数据;执行模块,配置用于将所述虚拟串口客户端程序部署到客户端,将tcp/ip网口虚拟成串口设备,通过串口线与远程串口连接以实现数据通信。
7、在一些实施方式中,所述系统还包括监听模块,配置用于:通过为选择函数调用设置文件/套接字以监视文件描述符的变化情况,并等待来自套接字、设备或远程连接的数据。
8、在一些实施方式中,所述读取模块配置用于:响应于读取函数未读取到事件,则读取函数被阻塞直至有事件产生;以及响应于读取函数读取到事件,则每次调用读取函数时返回一个包含一个或多个事件结构体的缓存区。
9、在一些实施方式中,系统还包括设置模块,配置用于:将所述事件结构体的位掩码设置成唯一指代监控项的描述符,并根据描述符的状态确定文件打开标志。
10、本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。
11、本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
12、本发明具有以下有益技术效果:在虚拟串口的客户端程序中增加inotify机制监控目录或者文件状态变更情况,及时接收或者丢弃串口数据,实现串口设备信息的网络传输,解决了串口终端设备的远程访问问题。
1.一种串口虚拟化的方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述通过虚拟串口客户端程序的读取函数从inotify的文件描述符中读取事件包括:
4.根据权利要求3所述的方法,其特征在于,方法还包括:
5.一种串口虚拟化的系统,其特征在于,包括:
6.根据权利要求5所述的系统,其特征在于,所述系统还包括监听模块,配置用于:
7.根据权利要求5所述的系统,其特征在于,所述读取模块配置用于:
8.根据权利要求5所述的系统,其特征在于,系统还包括设置模块,配置用于:
9.一种计算机设备,其特征在于,包括:
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4任意一项所述方法的步骤。