使用(DR)STRACE比较Windows程序执行

vic*_*tcu 7 serial-port pyserial strace node.js

我在github上针对node-serialport 直接提出了一个关于这个问题的问题.简而言之,过去在库的v4.x中工作正常的东西不再适用于库的v6.x. 我认为它必须与库如何打开COM端口(选项或其他东西)有关,我怀疑它在当前版本的库中人为地限制了通过USB提供的功率.

我编写了最简单的脚本,我可以使用以下方法重现问题(在问题中发布的脚本):

  • NodeJS和v4.x的库[作品]
  • 库的NodeJS和v6.x [失败]
  • Python和PySerial等价[作品]

根据存储库维护者的建议,我研究并发现了一个名为drstrace的Windows实用程序,它允许我捕获执行一段时间内执行的每个脚本的日志(这些日志作为附件发布在引用中问题).

现在我卡住了,因为我不知道如何制作drstrace日志的正面或反面,尽管我确信在比较三个文件时差异可能很明显.我只是不知道如何阅读drstrace日志和Windows驱动程序和系统调用来突破.

我意识到在这里发布这个问题是一种绝望的行为,但我认为它值得一试.希望很明显,我并不缺乏自己的努力,我现在只是在我的头上,并可以使用更多的帮助.任何指导将不胜感激.最令人敬畏的是那些精通这种诊断水平的人,让他们看一看并阅读茶叶.回馈这样一个重要的开源库会很棒.

2017年11月10日更新

我联系FTDI支持询问:

我在很多产品中使用FT231X.我需要一些帮助来理解Windows FTDI驱动程序如何管理电源.更重要的是,我希望你能帮我理解如何指导驱动程序允许USB允许的全部500mA电流通过Windows电脑传送到我的产品.

答复是:

只需使用我们的FT_Prog实用程序将最大VBUS电流设置为500 mA: 在此输入图像描述

FT231X枚举后,该驱动电流可用.

我还没有尝试过这个建议,但我想和读这篇文章的人分享.事实上,node-serialport 6.0.4行为与node-serialport 4.0.7行为和pyserial行为都不同.

azy*_*yth 2

您可以研究以下另一种理论:

与 V6.x 交互的 Windows 可能会以不同的方式与流控制设置交互,这可能会导致您的设备响应意外状态,从而导致测试失败。