我有一个返回数字正值的测量信号(诊断信号)。 我需要将 lua 中的十六进制字符串集成到传递给 python 的 Excel 模板中。 我已经尝试过这种类似于其他功能的方式,但它不起作用。
_lua(R"§("string.format("%8X", @measdata:Diag_DTC[1].max($tStep1,$tStep1End))")§")
有人知道我该如何解决它吗? 非常感谢您提前
例如,我尝试了来自数组的多个信号: @measdata:Diag_DTC[1].max($tStep1,$tStep1End) = 10555136 应该得到A10F00
当前代码的问题是无法正确执行数字转换和格式化。
_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()
调用中添加引号,因为它们是不必要的并会导致问题。