在键盘页面按下OK键时将参数通过串口发送出去
1、以文本类型发送
提示
编辑ok按钮的弹起事件,在page指令前添加以下代码

注意
page指令之后的指令是不会被执行的,因为已经跳转到别的页面了。
提示
这里作为帧头的 55 并不固定,是可以修改为你自己定义的其他帧头,你可以定义多个字节作为帧头
00 01 02 是作为标记来区分n0.val、n1.val、n2.val,可以根据自己的需求进行更改
完整的代码如下
//调用此页之前,先对此页的loadpageid.val和loadcmpid.val赋值就可以了,其他的逻辑本页会自动实现
//loadpageid.val表示调用页的页面ID,loadcmpid.val表示调用页的控件ID
if(p[loadpageid.val].b[loadcmpid.val].type==54)
{
covx input.txt,p[loadpageid.val].b[loadcmpid.val].val,0,0
}else if(p[loadpageid.val].b[loadcmpid.val].type==59)
{
covx input.txt,temp.val,0,0
if(temp.val<0)
{
temp.val*=-1
}
for(temp2.val=0;temp2.val<p[loadpageid.val].b[loadcmpid.val].vvs1;temp2.val++)
{
temp.val*=10
}
p[loadpageid.val].b[loadcmpid.val].val=temp.val
strlen input.txt,temp.val
temp.val--
while(temp.val>=0)
{
substr input.txt,tempstr.txt,temp.val,1
if(tempstr.txt==".")
{
substr input.txt,tempstr.txt,temp.val+1,p[loadpageid.val].b[loadcmpid.val].vvs1
covx tempstr.txt,temp2.val,0,0
strlen tempstr.txt,temp.val
while(temp.val<p[loadpageid.val].b[loadcmpid.val].vvs1)
{
temp2.val*=10
temp.val++
}
p[loadpageid.val].b[loadcmpid.val].val+=temp2.val
temp.val=-1
}
temp.val--
}
substr input.txt,tempstr.txt,0,1
if(tempstr.txt=="-")
{
p[loadpageid.val].b[loadcmpid.val].val*=-1
}
}else
{
p[loadpageid.val].b[loadcmpid.val].txt=input.txt
}
//区分不同页面的不同变量
if(loadpageid.val==0&&loadcmpid.val==page0.n0.id)
{
printh 55 00 //先发送一个帧头,用来告诉下位机这个是n0
prints input.txt,0 //发送输入框内的数据
printh 0d 0a //发送帧尾
}else if(loadpageid.val==0&&loadcmpid.val==page0.n1.id)
{
printh 55 01 //先发送一个帧头,用来告诉下位机这个是n1
prints input.txt,0 //发送输入框内的数据
printh 0d 0a //发送帧尾
}else if(loadpageid.val==0&&loadcmpid.val==page0.n2.id)
{
printh 55 02 //先发送一个帧头,用来告诉下位机这个是n2
prints input.txt,0 //发送输入框内的数据
printh 0d 0a //发送帧尾
}
page loadpageid.val
2、以数值类型发送
提示
编辑ok按钮的弹起事件,在page指令前添加以下代码

注意
page指令之后的指令是不会被执行的,因为已经跳转到别的页面了。
提示
这里作为帧头的 55 并不固定,是可以修改为你自己定义的其他帧头,你可以定义多个字节作为帧头
00 01 02 是作为标记来区分n0.val、n1.val、n2.val,可以根据自己的需求进行更改
完整的代码如下
//调用此页之前,先对此页的loadpageid.val和loadcmpid.val赋值就可以了,其他的逻辑本页会自动实现
//loadpageid.val表示调用页的页面ID,loadcmpid.val表示调用页的控件ID
if(p[loadpageid.val].b[loadcmpid.val].type==54)
{
covx input.txt,p[loadpageid.val].b[loadcmpid.val].val,0,0
}else if(p[loadpageid.val].b[loadcmpid.val].type==59)
{
covx input.txt,temp.val,0,0
if(temp.val<0)
{
temp.val*=-1
}
for(temp2.val=0;temp2.val<p[loadpageid.val].b[loadcmpid.val].vvs1;temp2.val++)
{
temp.val*=10
}
p[loadpageid.val].b[loadcmpid.val].val=temp.val
strlen input.txt,temp.val
temp.val--
while(temp.val>=0)
{
substr input.txt,tempstr.txt,temp.val,1
if(tempstr.txt==".")
{
substr input.txt,tempstr.txt,temp.val+1,p[loadpageid.val].b[loadcmpid.val].vvs1
covx tempstr.txt,temp2.val,0,0
strlen tempstr.txt,temp.val
while(temp.val<p[loadpageid.val].b[loadcmpid.val].vvs1)
{
temp2.val*=10
temp.val++
}
p[loadpageid.val].b[loadcmpid.val].val+=temp2.val
temp.val=-1
}
temp.val--
}
substr input.txt,tempstr.txt,0,1
if(tempstr.txt=="-")
{
p[loadpageid.val].b[loadcmpid.val].val*=-1
}
}else
{
p[loadpageid.val].b[loadcmpid.val].txt=input.txt
}
//区分不同页面的不同变量
if(loadpageid.val==0&&loadcmpid.val==page0.n0.id)
{
//先发送一个帧头,用来告诉下位机这个是n0
printh 55 00
//将文本转换为数值
covx input.txt,sys0,0,0
//发送输入框内的数据
prints sys0,0
//发送帧尾
printh 0d 0a
}else if(loadpageid.val==0&&loadcmpid.val==page0.n1.id)
{
//先发送一个帧头,用来告诉下位机这个是n1
printh 55 01
//将文本转换为数值
covx input.txt,sys0,0,0
//发送输入框内的数据
prints sys0,0
//发送帧尾
printh 0d 0a
}else if(loadpageid.val==0&&loadcmpid.val==page0.n2.id)
{
//先发送一个帧头,用来告诉下位机这个是n2
printh 55 02
//将文本转换为数值
covx input.txt,sys0,0,0
//发送输入框内的数据
prints sys0,0
//发送帧尾
printh 0d 0a
}
page loadpageid.val
在键盘页面按下OK键时将参数通过串口发送出去-样例工程下载
演示工程下载链接: