【问题标题】:Need a good serial port logging tool [closed]需要一个好的串口日志工具[关闭]
【发布时间】:2010-06-18 18:37:40
【问题描述】:

我正在开发一个嵌入式系统,它使用一个串行端口进行所有的日志记录。

是否有一种工具可以让您将行过滤到不同的窗口(或完全删除它们),以便我可以分离各种日志记录子系统的输出并删除每秒显示多次的垃圾邮件?

我更喜欢开源解决方案,但高度推荐的封闭产品可能会这样做。

【问题讨论】:

标签: debugging embedded serial-port


【解决方案1】:

我从未想过要做这样的事情,但这里有一个产品可能会成功:Eltima Serial Port Splitter。它声称能够将一个 COM 端口变成多个虚拟端口以连接到许多应用程序。您也许可以获取每个应用程序并只查看一种输出。

就我个人而言,我只会用PySerialPyQTwxPython(GUI 库)之类的东西编写一个python 脚本来将数据过滤到不同的窗口。它是一种易于学习的语言,并且是用于嵌入式系统开发的便捷工具。

【讨论】:

  • +1 用于 Python + PySerial + (PyQt|wxPython|Tkinter|PyGtk|ncurses|..) 方式
【解决方案2】:

我会做以下事情:

使用Python

编写一个 Python 程序,从设备中读取串口数据,并将其转换为 Python 日志模块的日志项。

  • 如果您的设备的日志消息有某种来源标识符,请根据您的需要使用getLogger() 函数将其转换为Python "logger" 名称。您可以根据需要以任何方式定义记录器名称,例如定义日志源或类别。
  • 如果您的设备的日志消息具有严重性指示,请将其转换为记录器的log() 方法的lvl 参数。否则,只需使用其中一种记录器方法,例如 info()

利用Python logging module's config file feature 在特定情况下根据需要过滤数据。

  • 您可以按严重性和记录器名称过滤特定的日志项。
  • You can log to multiple destinations: 您可以过滤和打印某些日志项到屏幕,同时过滤和打印某些日志项到一个或多个文件。您可以将它们混合成任何您想要的组合。它非常灵活。
  • 您可以有多个日志记录配置文件,用于多种不同的日志记录目的,并且只需在每次运行程序时通过命令行指定要使用的配置文件。

我使用 Python 的日志记录模块和配置文件来设置我的过滤,这真的很棒。

【讨论】:

    【解决方案3】:

    Advanced Serial Data Logger可以使用Eltima的拆分器,这个软件有几个过滤插件可以过滤掉不必要的消息。

    【讨论】:

      【解决方案4】:

      试试 Powershell。您显然需要添加过滤,但这应该可以帮助您开始

      $port= new-Object System.IO.Ports.SerialPort COM3,9600,None,8,one
      $port.Open()
      While ($TRUE) {
      $port.ReadLine()
      }
      

      【讨论】:

        【解决方案5】:

        我想这取决于您的日志格式。如果它们看起来像(或者您可以使它们看起来像)syslog 格式,您可以尝试以下操作:

        http://sourceforge.net/projects/logwatch/ http://xjack.org/logtool/

        【讨论】:

          【解决方案6】:

          我个人会使用上述 Python 方法,但另一种(相对简单的)方法是使用 sed

          构建几个不同的过滤器以准确显示您想要从流中得到什么,然后通过管道输入串行设备文件的tail -f

          【讨论】:

            【解决方案7】:

            SmarTerm 允许您在选项卡式界面中连接到许多不同的串行端口。它还具有类似 Visual Basic 的脚本语言,可让您针对不同的需求编写脚本。我编写了很多脚本来更新嵌入式软件并自动将日志保存在多个选项卡中。

            【讨论】:

              【解决方案8】:

              screengreptail 一起使用。

              【讨论】:

                【解决方案9】:

                我的第一选择是始终运行PortMon(最初来自 SysInternals)。它有一个过滤选项,您可以在其中键入要包含、排除或突出显示的字符串:

                多年来,我一直在 Windows NT/2000/XP 上使用它并取得了巨大的成功。

                希望您运行的是 32 位 Windows 操作系统,因为如果您运行的是 64 位,则必须使用 Eltima 的产品。

                【讨论】:

                  【解决方案10】:

                  总是有古老的协议分析器。

                  http://shop.ebay.com/?_from=R40&_trksid=p3907.m570.l1313&_nkw=RS-232+protocol+analyzer&_sacat=See-All-Categories

                  您可能只会在屏幕上看到一种颜色,但它是一个独立于平台的串行端口日志记录解决方案。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多