广州大彩串口屏论坛_大彩开发者交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 316|回复: 4

使用wgt_set_param时,输入double型变量报错

[复制链接]

1

主题

3

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2024-4-15 12:24:42 | 显示全部楼层 |阅读模式
我想根据实时数据(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_data  then
                        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...
但是显示不全
请问要怎么修改呢


回复

使用道具 举报

0

主题

76

帖子

220

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
220
发表于 2024-4-15 13:42:44 | 显示全部楼层
可以点击那个通讯记录下面的保存,对应将那个文件保存下来,用记事本打开看下具体报错的信息,根据报错信息修改看看
回复

使用道具 举报

1

主题

3

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2024-4-15 15:30:53 | 显示全部楼层
dctechnology 发表于 2024-4-15 13:42
可以点击那个通讯记录下面的保存,对应将那个文件保存下来,用记事本打开看下具体报错的信息,根据报错信息 ...

谢谢老哥,看到报错信息了
bad argument #4 to 'wgt_set_param' (number has no integer representation)
说输入的变量不是整数形式
回复

使用道具 举报

1

主题

3

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2024-4-15 15:36:04 | 显示全部楼层
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 轴最大值
感谢二楼老哥,提示我怎么看报错信息
回复

使用道具 举报

1

主题

5

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2024-4-23 09:09:40 | 显示全部楼层
你这个用什么开发的   TFT   还是  HMI
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|广州大彩串口屏论坛_大彩开发者交流论坛

GMT+8, 2024-5-1 10:05 , Processed in 0.052878 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表