在Lua中将测量信号转换为十六进制字符串以用于Excel模板集成

问题描述 投票:0回答:1

我有一个已诊断的测量信号并返回正数值。我需要使用 Lua 将此值转换为十六进制字符串,集成到 Excel 模板中,然后传递给 Python。这是我尝试过的 Lua 代码,但它不起作用:

_lua(R"§("string.format("%8X", @measdata:Diag_DTC[1].max($tStep1,$tStep1End))")§")

来自阵列的信号,例如,

@measdata:Diag_DTC[1].max($tStep1,$tStep1End)
等于10555136,应转换为
A10F00

有人对如何解决这个问题有任何建议吗?预先感谢您。

python excel lua hex
1个回答
0
投票

当前代码的问题是无法正确执行数字转换和格式化。

_lua(R"§(string.format("%08X", tonumber(@measdata:Diag_DTC[1].max($tStep1,$tStep1End)) or 0))§")
  • 在您的情况下

    tonumber()
    将测量值转换为数字,格式尚未正确

  • string.format("%08X", ...)
    将数字格式化为大写十六进制字符串,用零填充为 8 个字符

or 0
作为 tonumber() 转换失败时的后备,以防止错误。

提示:下次不要在整个

string.format()
调用中添加引号,因为它们是不必要的并会导致问题。

© www.soinside.com 2019 - 2024. All rights reserved.