Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Serial port 分析COM1活动的应用程序_Serial Port - Fatal编程技术网

Serial port 分析COM1活动的应用程序

Serial port 分析COM1活动的应用程序,serial-port,Serial Port,我们公司有一个旧的软件,用来管理RFID卡进出门 我们想创建一个应用程序,它可以识别谁刚刚接触到一个特定的地方(我们有这个id),并抓取他们的第一个名字,在屏幕上说“嗨[名字]” 正如我提到的,这个软件很旧,没有API。它通过串行端口(COM1)与RFID硬件通信 我想知道获取所需数据的最佳方法是否是以某种方式拦截COM1通信并提取/查找所需数据 这听起来是最好的解决方法吗?它会起作用吗?还是无法从传输的数据中获取姓名和号码 干杯, 安德烈一般来说,如果你想这样做的话,你可以查看RS232信号。

我们公司有一个旧的软件,用来管理RFID卡进出门

我们想创建一个应用程序,它可以识别谁刚刚接触到一个特定的地方(我们有这个id),并抓取他们的第一个名字,在屏幕上说“嗨[名字]”

正如我提到的,这个软件很旧,没有API。它通过串行端口(COM1)与RFID硬件通信

我想知道获取所需数据的最佳方法是否是以某种方式拦截COM1通信并提取/查找所需数据

这听起来是最好的解决方法吗?它会起作用吗?还是无法从传输的数据中获取姓名和号码

干杯,
安德烈

一般来说,如果你想这样做的话,你可以查看RS232信号。这很棘手,因为你需要“嗅探”信号,这意味着你需要购买或制作一个能够让原始信号通过的钻机,然后给你一种附加信号的方法。并且,您需要将发送和接收信号发送到两个串行端口(在RX线路上)。然后你可能会想要一些“嗅探”软件,让你可以查看你在时间序列中得到了什么(理想情况下,有时间戳)。一些cutesy协议也会使用调制解调器线路,因此您可能还需要监控这些线路

或者,尝试搜索“免费串行端口监视器”或“串行嗅探器”


祝你好运

您可以将软件配置为使用COM1以外的端口,还是将硬件配置为将其物理串行端口分配给其他COM端口

如果是这样,请看一看。这是一个Windows驱动程序,它在你的电脑上创建两个COM端口,在它们之间有一个虚拟的空调制解调器。从一边输入的数据从另一边输出

以下是您将如何进行设置:

  • 连接到物理COM端口(COMx)的RFID读卡器
  • 您的程序将COMx连接到COMy并嗅探流量
  • com0com将COMy(用于您的程序)链接到虚拟COM1(用于传统软件)
  • 遗留软件
您需要编写一个程序,在COMx和COMy之间传递数据,同时监视它以获取所需的信息。使它简单而健壮,因为如果它下降,你的读者将停止工作

更简单的解决方案
如果您只需要监控通信的一侧,请创建一条电缆,将COM1的GND和RX引脚连接到另一个COM端口。现在,您的程序可以监控对话的这一方面,而不会干扰传统软件。

除非您尝试,否则无法找到答案。我们帮不上你的忙。看来你忽略了一些细节。这个门禁系统还在使用吗?这个“旧软件”在哪里或在什么硬件上运行?读卡器的串行端口是否未使用(独立单元)或连接到控制器盒?既然您不知道API,为什么您认为写入串行端口只会导致数据显示在屏幕上?您是否知道您可以嗅探EIA/RS-232线路,但不能将两个Tx信号注入一个接收器?对,更多详细信息:我们仍然使用访问控制系统。软件正在WinXP计算机上运行。有一个单独的硬件控制整个建筑的所有RFID通信,然后通过COM1将其输入软件。我试着运行一个串行端口监视器,但正如预期的那样,我得到的只是加载的十六进制数据。我是否可以对其进行解码,以查看其是否加密或是否可用于我的应用程序?有很多方法可以进行访问控制,但一种常见的拓扑结构是在PC上运行UI和主数据库(你一直称之为“软件”)、控制器(硬件的“独立部分”)维护运行时数据库并授予访问或拒绝权限的,以及远程读卡器。PC和控制器之间的通信链路用于将数据库记录和指令传输到控制器,并将事务日志传输回PC。这将采用二进制协议,通常未加密。如果你无法获得或理解二进制协议,那么你就是索尔。我试着运行一个串行端口监视器,但正如预期的那样,我得到的只是十六进制数据的加载。是否有任何方式我可以解码,看看它是否加密或可用于我的应用程序?理想情况下,我不想去修补硬件。这听起来很有希望。我可以改变它使用的端口,尽管我有点害怕破坏整个系统。实际上,我只需要输入数据,而不是输出数据。如果我将GND连接到另一个端口,我会得到与运行串行端口监视器不同的数据吗?在这种情况下,我得到了相当多的十六进制废话:)您将获得与串行端口监视器相同的数据。您实际上是通过将接收和接地引脚连接到第二个端口来创建一个简单的监视器。如果需要帮助解码十六进制垃圾,请考虑用不同卡片制作的一些样本捕获另一个问题。有人在SO上可能会识别格式,并能够帮助您解码它。