This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] USB2ANY:HPA665

Guru**** 2484615 points
Other Parts Discussed in Thread: USB2ANY

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1492312/usb2any-hpa665

器件型号:USB2ANY

工具与软件:

2025年03月25日

尊敬的论坛:

我们这里有临时 USB2ANY 器件。 我们的开发笔记本电脑是 Windows 11、他们使用的技术 PC 是 Win10。

我们还有 Software TICS Pro Software。在安装并首次插入后、TICS Pro 建议在器件上执行固件更新。 这是几天/几个月前。 固件更新不是由我执行的、而是由任何同事执行的。 我不知道应用的实际固件版本。

插入后、便可启动汽车专业版软件、启动服务器、例如打开 :11000、在测试机器上它是127.0.0.1:11000。 然后、我们使用 python 软件代码段、使我们能够作为客户端连接到此服务器。 然后我们可以调用一些函数,例如使用 GetAllUSB2ANY()函数读取序列号。 它通过重复命令和 true 返回、没有错误、但带有附加器件序列号的列表为空字符串。 未报告序列号! 如果我们将两个这样的器件插入到运行 python 代码段的 PC 上、我们将获得所连接的两个器件之一的序列号、即 TICS Pro 软件未获取的序列号。 我在 TICS Pro 软件中选择了另外两个设备、游戏切换了... 我们得到第一个现在未连接到软件的串行端口。 此外、我们在器件管理器中没有看到这些器件(它们应该如何进行查看?)。

如何使用 GetAllUSB2ANY()函数读取序列号?

此致,谢谢!

Roland

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    "GetAllUSB2ANY ()"API 是 USB2ANY 自己的 API 周围的细包装器、可披露可用的未连接器件。 目前、不考虑当前连接的接口。 我认为未来应该考虑到这一点、可能有一个 GetAllUSB2ANY API 参数、该参数会将空字符串或当前连接的 USB2ANY 作为第一个或最后一个条目返回。 目前,我认为唯一的解决方法是使用 SelectInterface API,首先使用"DemoMode"接口,关闭所有活动的 USB2ANY 连接,然后调用 GetAllUSB2ANY()。 但是、如果这样做不起作用、例如您需要在发生这种情况时在 TICS Pro 中连接 USB2ANY、出于某种原因、我可以专门为您对自定义二进制文件进行修改、然后再将其推送到 main 二进制文件中。

    USB2ANY 枚举为符合 HID 标准的供应商定义器件、硬件 ID = HID\VID_2047&PID0301、由硬件 ID 为 USB\VID_2047&PID_0301的父 USB 输入器件所有。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的佩恩先生:

    感谢您的答复。 是的、我们已经将 USB2ANY 器件连接到 TICSPro、但我们对序列号的查询将在整个流程开始时只执行一次、当我们启动软件时、这样就可以在短时间内从 TICSPro 上切断器件、在收到序列号回复的情况下调用所有器件、然后再次将其安全地"附加"到 TICSPro。 或者甚至在呼叫状态后启动 TICSPro、或者任何类似的过程都是可能的。 我如何首先使用"DemoMode"接口调用 API、以获取所有连接的器件? 您是否有与此相关的代码片段?

    除此之外,有一个版本是非常好的必要,允许对所有连接的设备进行串行扫描。 这将是干净的解决方案。

    BTW 在 Windows 11上、我们根本看不到任何接口、无论是连接的接口还是断开的接口。 对 GetAllUSB2ANY 的调用以 true 返回且序列列表为空... 这只能在 Windows 10上实现,在那里我们可以看到未连接的一个的序列..

    谢谢。此致、

    Roland Schaufler

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我去编写示例程序、但它无法正常工作、因为 API 未释放 USB2ANY 实例。 哎呀。

    给我几个小时的时间来做一个补丁给你尝试。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../TICS-Pro.zip

    我已经附加了几个调试二进制文件、这些二进制文件进行了一些更改:

    • GetAllUSB2ANY (includeConnected: bool = False)-> list[str]现在返回已连接接口(如果 includeConnected 参数为 True)。 已连接的接口是列表中的最后一个接口、如果当前未连接 USB2ANY、则为 USB2ANY 序列号或空字符串。
    • ConnectToUSB2ANY (SerialNumber:STR)已弃用。 这个函数的行为很奇怪、我对它没有信心。 请改用 SelectInterface API。
    • GetInterface()-> tuple[str, str, str] API 已添加、返回当前连接的接口类型、协议类型和序列号的3元组。 在 DemoMode 中、序列号将为空字符串。
    • 在选项菜单和 settings.ini 文件中添加了一个选项标志、用于在启动时、或插入 USB 设备且 TICS Pro 处于演示模式时覆盖与 USB 设备的自动连接。 这有助于通过多个 TICS Pro 实例或利用 USB2ANY 的多个软件工具管理 USB2ANY。
      • 选项是试验性的-可能存在边缘情况。 我在远离 USB2ANY 的远程终端、但我可以在本周晚些时候进行详细测试。
      • 要在启动时启用、请修改 C:\Program Files (x86)\Texas Instruments\TICS Pro 中的 settings.ini 以包括以下行:
        [OPTIONS]
        AUTOCONNECT = FALSE
      • 可以设置 AutoConnect = true、或省略 AutoConnect 键、或省略整个[选项]部分以使用默认行为(所有等效)
      • 我没有修改 TICSPro_TCP.py 函数来方便自动插入或修改此[选项]部分;这是稍后要做的事。

    由于二进制文件是调试二进制文件、因此它们的执行速度可能略慢于非调试二进制文件。 但是、调试二进制文件将在出现问题时为我们提供详细的错误消息。 如果没有出现任何问题、我将在本周晚些时候将非调试二进制文件集成到新的安装程序中。

    解压缩 zip 文件;复制 DLL、exe 和 PDB 文件;将它们粘贴到 C:\Program Files (x86)\Texas Instruments\TICS Pro 中(覆盖所有现有文件)。 如果调试二进制文件出现问题、用户可能需要复制一份旧文件、否则在没有早期版本的情况下会被阻止;或者、用户可以使用 TI.com 中的安装程序重新安装 TICS Pro。

    我还在 zip 文件中包含了 TICSPro_TCP.py 的更新副本、其中具有 GetAllUSB2ANY、ConnectToUSB2ANY 和 GetInterface API 的新实现。

    请对这些进行测试、如果您遇到任何其他问题、请告诉我。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢、我会尽快测试并返回结果...  

    谢谢、谢谢。。。。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    ... BTW,是否有可能,在 TICSPro_TCP.py 中的 GetInterface()函数是空的,只包含注释,而不包含代码?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    ...好的,现在我已经成功地测试了所有,GetAllUSB2ANY 和 GetInterface 都工作。 非常感谢您在极短的时间内作出的杰出努力和解决方案! BTW、不计划将其超越为进一步发布的 TICS Pro??

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将以下部分添加到 GetInterface (...)中 功能,然后我也工作!

    谢谢、此致!


            r = self._SEND("getinterface")
            return r[2], r[3], r[4]
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我想我给你的 python 文件是一个保存后的版本在我的编辑,为此道歉。 不过、你发现了缺失的代码、做得好。

    在确认这种方法可行的情况下,我将在内部进行更多测试,并在本周晚些时候在 TI.com 上发布新版本的软件和新版本的 TICSPro_TCP.py (其中将包括 GetInterface API 的主体)。 感谢您的测试帮助!