威纶通官方论坛

请教版主,这个宏为什么没有输出?

[复制链接]
发表于 2014-10-8 13:56:34 | 显示全部楼层 |阅读模式
short a[10],b[10],on

GetData(a[0], "本机 触摸屏", RW, 0, 3)   //  date
GetData(b[0], "本机 触摸屏", LW, 9020, 3) //  now

if a[2]>b[2] then
SetData(on, "本机 触摸屏", LB, 0, 1)  
  else if  a[2]==b[2] and  a[1]>b[1] then   
   SetData(on, "本机 触摸屏", LB, 0, 1)  
   else  if a[2]==b[2] and  a[1]==b[1] and a[0]>b[0]then   
    SetData(on, "本机 触摸屏", LB, 0, 1)  
end if

LB0没有动作。我另写了一个类似的,这个就可以,好像问题就出现在[]上。
macro_command main()

short c0,b0,on,c1,b1,c2,b2

GetData(c0, "本机 触摸屏", RW, 20, 1)   //  date
GetData(b0, "本机 触摸屏", LW, 9020, 1) //  now
GetData(c1, "本机 触摸屏", RW, 21, 1)   //  date
GetData(b1, "本机 触摸屏", LW, 9021, 1) //  now
GetData(c2, "本机 触摸屏", RW, 22, 1)   //  date
GetData(b2, "本机 触摸屏", LW, 9022, 1) //  now

if c0<b0 then
SetData(on, "本机 触摸屏", LB, 20, 1)  
end if

if c1<b1 then
SetData(on, "本机 触摸屏", LB, 21, 1)  
end if

if c2<b2 then
SetData(on, "本机 触摸屏", LB, 22, 1)  
end if
发表于 2014-12-3 08:54:49 | 显示全部楼层
试试
short a[10],b[10],on
on=0
GetData(a[0], "本机 触摸屏", RW, 0, 3)   //  date
GetData(b[0], "本机 触摸屏", LW, 9020, 3) //  now

if a[2]>b[2] then
on=1
SetData(on, "本机 触摸屏", LB, 0, 1)  
  else if  a[2]==b[2] and  a[1]>b[1] then  
on=0  
   SetData(on, "本机 触摸屏", LB, 0, 1)  
   else  if a[2]==b[2] and  a[1]==b[1] and a[0]>b[0]then  
on=1  
    SetData(on, "本机 触摸屏", LB, 0, 1)  
end if
发表于 2015-4-20 10:58:01 | 显示全部楼层
      在你的宏中,对on没有赋值,on在这段宏中只是一个short型变量,值固定,你一直将它赋值给一个寄存器(所有的条件下),肯定不会有输出变化。而在你的第二段宏中,你是对不同的位置进行控制因此可以看到变化。
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2024-5-29 23:29

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

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