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.

[参考译文] TICSPRO-SW:脚本改进

Guru**** 2535750 points
Other Parts Discussed in Thread: LMK5B12204, LMK05318B

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1556990/ticspro-sw-scripting-improvements

部件号:TICSPRO-SW
主题中讨论的其他器件:LMK5B12204LMK05318B

工具/软件:

我使用 ti_ticspro 下的 python 库来生成 LMK5B12204 的配置文件。 能够仅存储配置的相关设置和注释很酷。 我发现了一些问题和可能的改进、并希望与您分享这些问题。

*我找不到导出 tp . SaveSetup() 等寄存器设置的方法。

*在“设置 输出“下无法选择不同的频率计划。 我没有办法在“D"下“下选择它们

* tcp.py 的硬编码超时为 10s。 这将无法通过“Set DPLL“"B"(“(设置“设置 DPLL"B(设置 DPLL"B)“)“下的 DPLL 设置计算。 这需要更长的时间、具体取决于您的机器。  

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

    尊敬的 Christian:

    感谢您的反馈。 目前、python 库可供用户公开访问、但由于其处于“RAW “状态、因此实际上不建议使用。 我们还没有足够的文档或 API 可用。 我们将在未来几个月内发布这些设备的驱动程序或 API。

    对于要点 1、您是否在参考使用 python 库或 GUI 本身导出寄存器设置的方法?

    对于项目符号 2、您可以共享屏幕截图吗? 如果有多个频率计划、则会显示以下几个选项。 从每个 VCO 中选择一个选项、然后点击按钮。

    对于要点 3、请注明。

    此致、

    Jennifer

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

    感谢您指出这些内容。 在 ti_ticspro 中公开的 API 是我们在内部自动化中使用最多的 API。 存在未实现的行为、通常是因为我们在内部没有遇到对这些行为的需求、或者我们有可用的替代解决方法。 值得注意的是,TCP 自动化接口在 TICS Pro 的存在中添加了几年,许多行为都不是在考虑自动化的情况下设计的,并且将它们正确地适应 API 有时是一个挑战 — 它可能需要一些时间来满足更改请求。  我采用了 API 优先的方法来开发正在进行的 TICS Pro 2 下一代软件、因此希望这种方法在不久的将来能减少命中或丢失。

    我将努力实现所需反馈、并在未来几周内推送更新。 如果您还没有、我建议您使用网站的通知功能观看下一个版本。

    我找不到导出 tp.SaveSetup() 之类的寄存器设置的方法。

    实际上、我没有公开这方面的 API。 TICS Pro 中的一些复杂因素使公开 API 变得具有挑战性、因此跳过了导入/导出函数。 出口登记册的一种极端交叉的方式存在:

    • 将接口设置为模拟模式以避免执行 I/O
    • ReadRegister器件中的每个寄存器、一次一个(不返回结果)ReadAllRegisters-这将读回与当前缓存的值相同的值
    • 将这些寄存器回读值手动写入文件

    最好ImportRegistersExportRegisters像 GUI 公开的那样添加和 API、并且ReadAllRegisters应该返回值、因此我将这些值放在待办事项列表中。

    在“设置 输出“下无法选择其他频率计划。 我找不到在“D"下“下选择它们的方法

    有很多表的工作方式与所有其他可视控件(如组合框或复选框)不同。 与表的 API 级交互从未定义过、因为它在我们的用例中并不经常出现。 因此、没有解决该问题的方法。

    我认为应该做的是:

    • 添加GetTable API、它以 TSV 字符串的形式通过线路发送表的内容、并将其解包为一些简单的 python 数据结构(可能是带有列头键的列表的词条)
    • 支持GetIndexSetIndex以获取和设置表行
    • 添加鼠标悬停事件以在上下文窗口中显示表的名称

    我将看到可以对此做些什么。 我相信鼠标悬停事件和 GetTable 很简单;表行的 get/set 索引可能需要不同的 API。

     tcp.py 的硬编码超时时间为 10s。

    这实际上并不是硬编码的,这只是默认的初始化值 — 对象上有一个属性,用于获取和设置底层套接字超时。 timeoutTICSProTCPClient实际上、由于 DPLL 计算时间较长、添加了此超时属性。

    class TICSProTCPClient:
        ...
        
        @property
        def timeout(self) -> int:
            """Get or set the client timeout for the socket server connection.
            The units of the timeout are seconds. Default is 10."""
            return self._sock.gettimeout()
    
        @timeout.setter
        def timeout(self, value: int):
            self._sock.settimeout(value)

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

    谢谢 Derek。 能够获得如此快速和详细的反馈。 我很开心。

    我过去曾尝试过通知。 它坏了。 另外、将其添加到 https://www.ti.com/myti/docs/myAlerts 上也 不起作用。

    拥有 TICS Pro API 是太棒了。 过去、使用 GUI 创建新配置非常困难。 我们有一个单独的文档、其中列出了所有设置及其原因。 以及必须手动更改哪个寄存器。 以及必须按下哪个按钮。 这是为实时产品生成设置的不好方法。 此外、版本控制也非常糟糕、因为比较两个 TCS 文件很困难、因为您必须了解每个寄存器。 比较两个仅包含必要设置或调整设置的 python 文件更加舒适和安全。  

    感谢您的工作和帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我过去曾尝试过此通知。 它坏了。 也  不能将其添加到 www.ti.com/.../myAlerts 上。

    我记得过去它是坏的,但我最近被告知 它已经更新。 传闻说、团队成员认为它仍然不起作用。 我也会自行测试通知行为、然后向网络团队查询相关信息并比较我们的答案。

    无论如何、我已经提醒用户在 TICS Pro API 更新完成后更新该主题。

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

    我更新了应用程序二进制文件、对服务器端 API 和 ti_ticspro 库进行了几项改进:

    • GetTableData API 以 TSV 字符串的形式返回表数据;可选的布尔参数指定是否将标头行包括为第一行。
    • 添加了导出寄存器和导入寄存器 API。 它们都采用单个参数、即要导入/导出的文件的完整路径。
    • GetIndex/SetIndex 现在获取并设置表行。
    • 添加了 GetAllRegisters API、它以三个列表获取 TICS Pro 寄存器映射高速缓存的当前状态:寄存器名称列表(字符串)、寄存器地址列表 (int) 和寄存器数据列表(也是 int)。 寄存器数据只是寄存器的数据部分、而不是由导出函数返回并被导入函数吸收的奇怪串联值。
    • 更新了 ReadAllRegisters API、在执行回读 I/O 后返回与 GetAllRegisters API 相同的三个列表
    • 添加了 CloseTICSPro API、可在调用 API 后大约 250ms 关闭应用。
    • 将表鼠标悬停在 TICS Pro 上下文面板中显示表 API 名称。
    • 在仿真/还原模式中读取所有寄存器不再会用零覆盖寄存器数据、而是只是之前缓存的值的环回。
    • 在 ti_ticspro 库中、TICSProOptions.FromFile 方法已修复(以前不起作用)。

    您可以在 https://www.ti.com/tool/download/TICSPRO-SW 上找到最新版本

    我还听到了软件发布管理团队关于通知的消息 — 在两年前迁移到我们的新发布平台后,这些通知已有一段时间处于维修状态,而且我们显然距离发布管理软件,工具和产品通知的新系统还有几天的时间。 因此、或许在不久的将来、您将能够自动获得这些通知。

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

    尊敬的 Derek

    感谢您的改进。 我已经测试了  ExportRegisters 、一切都按预期运行。 谢谢你。

    我刚刚注意到 DPLL 脚本现在就可以立即执行了。 我可以更改所有设置、但寄存器始终保持不变。 我想现在有一些问题。

    我还实施了 TICS Pro 版本检查、以确保我们将来使用的版本正确。 很遗憾、我没有 从您的 API 获得这些信息、不得不通过 win32api.GetFileVersionInfo 获取这些信息。 这对我来说还可以、但将来可能值得实施。

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

    7 月 版本 (1.7.9.1) 和最近版本 (1.7.10.0) 之间没有配置文件代码更改。 我已经在计算机上进行了测试、全新安装后、于 1.7.10.0 — 我仍然可以在 LMK05318B 和 LMK5B12204 配置文件上进行 DPLL 计算、并支持寄存器写入。 我不知道为什么您在不执行 DPLL 脚本时会遇到问题、按钮下方的文本框中是否会显示任何错误消息? 我知道、除非按下“Calculate frequency plan“按钮,脚本在首次加载时不会运行,并且在更改某些设置时,该状态可能会出现锁存 — 这应该会在  Calculate 按钮下方的文本框中报告。

    如果没有明显的原因、我们可以检查以下几点:

    • 路径上是否有 MATLAB 运行时? 路径上是否有正确的版本(9.0 r2015b 64 位)早于任何其他 MATLAB 运行时?
    • 您是否看到可执行文件生成 shell? 如果删除 DPLL 脚本生成的文本文件、然后重新运行脚本、这些文件是否已重新生成? 在 C:\ProgramData\TICS Texas Instruments Pro\Configurations\Devices\Network Synchronizer 时钟(数字 PLL)\LMK5B12204 中:
      • closelp_pts_dpll1_romdump.txt
      • error_pts_dpll1_romdump.txt
      • romdump.txt
      • matlab_inputs_lmk05x18.m

    API 中的 TICS Pro 版本已注意、我计划包含在未来的版本中。

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

    是的、壳体产生了。 但立即消失。 只 会生成 matlab_inputs_lmk05x18.m。 别无其他内容。 但文本框中没有错误。 只是错误的数字。

    我将完全删除 TICS Pro 并重新安装。 我只做了一个升级。

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

    我 在命令行中启动了 LMK05x18_ROM_Gen.exe。 并收到错误“Could not access the MATLAB Runtime component cache“(无法访问 MATLAB 运行时组件缓存)。 关注 https://www.mathworks.com/matlabcentral/answers/2142116-how-to-resolve-the-error-could-not-access-matlab-runtime-component-cache-fl-filesystem-invalidargum 我能够删除缓存。 它现在按预期运行。 现在我能够再次工作、所以对我来说、情况是固定的。 但应该进行一些检查、以查看脚本是否正确执行。

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

    我们对基于 MATLAB 的 DPLL 系数计算感到不满意、原因有很多(系统路径和运行时版本依赖,运行时预热时间缓慢,二进制源代码中的单行更改导致的安装程序大小膨胀,像您这样的神秘错误需要 arcane 权变措施、占用 1.6GB 的额外软件依赖、需要安装/特权,而这不能与原始安装程序捆绑)。 具体细节仍在制定中、但在 TP2 中、我们旨在使用基于 python 的解决方案来计算 DPLL 系数。 希望每个人都能少得多的麻烦。