使用wgt_set_param时,输入double型变量报错
我想根据实时数据(double型,存放在地址0x2002),使用wgt_set_param来动态调整Y轴的范围,代码大致如下:*****************************************************************************************
local max_data = 0 --最大数据
local min_data = 180 --最小数据
function on_run(screen)
local tmp
--判断实时数据是否更新,若更新,则修改图形 Y 轴显示范围
if 1 == get_uint16(VT_LW, 0x2001) then
set_uint16(VT_LW,0x2001, 0)
tmp = get_double(VT_LW, 0x2002)
if tmp > max_data then
max_data = tmp
end
if tmp < min_datathen
min_data = tmp
end
wgt_set_param(user_screen.RealtimeChart_LNG, user_ctrl_id.chart, 0x31, min_data) --曲线控件的 Y 轴最小值
wgt_set_param(user_screen.RealtimeChart_LNG, user_ctrl_id.chart, 0x32, max_data) --曲线控件的 Y 轴最大值
end
end
*****************************************************************************************
报错信息是:bad argument #4 to 'wgt_se...
但是显示不全
请问要怎么修改呢
可以点击那个通讯记录下面的保存,对应将那个文件保存下来,用记事本打开看下具体报错的信息,根据报错信息修改看看 dctechnology 发表于 2024-4-15 13:42
可以点击那个通讯记录下面的保存,对应将那个文件保存下来,用记事本打开看下具体报错的信息,根据报错信息 ...
谢谢老哥,看到报错信息了
bad argument #4 to 'wgt_set_param' (number has no integer representation)
说输入的变量不是整数形式 dctechnology 发表于 2024-4-15 13:42
可以点击那个通讯记录下面的保存,对应将那个文件保存下来,用记事本打开看下具体报错的信息,根据报错信息 ...
已经解决,只要使用math.floor和math.ceil对double型变量进行向上和向下取整就行了
代码修改如下:
wgt_set_param(user_screen.RealtimeChart_LNG, user_ctrl_id.chart, 0x31, math.floor(min_data)) --曲线控件的 Y 轴最小值
wgt_set_param(user_screen.RealtimeChart_LNG, user_ctrl_id.chart, 0x32, math.ceil(max_data)) --曲线控件的 Y 轴最大值
感谢二楼老哥,提示我怎么看报错信息 你这个用什么开发的 TFT 还是HMI
页:
[1]