建立全局数据处理程序

本页面的主要目的是演示一个多数据显示和刷新的样例,

界面:

页面代码:

str sec2str(int sec){
    //将秒数转换成hh:mm:ss格式显示字符串
    str s;
    int h;
    int m;
    h=sec/3600;sec=sec%3600;m=100+sec/60;//sec=100+sec%60;
    s=h+":"+substr(""+m,1,2);//+":"+substr(""+sec,1,2);
    return s;
}

//app.da("220|0.8|1|3600|2|3|300|1.0|1|1200|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|2.00|4.00");
void app.datashow(str s){
    //继承app中的数据显示函数,用于刷新界面
    int sec;
    str ss;
    l2.text="电压:"+app.vol+"V";
    t1.setcell(1,3,explode_str(s,"|",1)); //电流
    t1.setcell(1,2,explode_str(s,"|",2));//状态
    ss=sec2str(explode_num(s,"|",3));t1.setcell(1,1,ss);//时间

    t1.setcell(2,3,explode_str(s,"|",4)); //电流
    t1.setcell(2,2,explode_str(s,"|",5));//状态
    ss=sec2str(explode_num(s,"|",6));t1.setcell(2,1,ss);//时间

    t1.setcell(3,3,explode_str(s,"|",7)); //电流
    t1.setcell(3,2,explode_str(s,"|",8));//状态
    ss=sec2str(explode_num(s,"|",9));t1.setcell(3,1,ss);//时间

    t1.setcell(4,3,explode_str(s,"|",10)); //电流
    t1.setcell(4,2,explode_str(s,"|",11));//状态
    ss=sec2str(explode_num(s,"|",12));t1.setcell(4,1,ss);//时间

    t1.setcell(5,3,explode_str(s,"|",13)); //电流
    t1.setcell(5,2,explode_str(s,"|",14));//状态
    ss=sec2str(explode_num(s,"|",15));t1.setcell(5,1,ss);//时间

    t1.setcell(6,3,explode_str(s,"|",16)); //电流
    t1.setcell(6,2,explode_str(s,"|",17));//状态
    ss=sec2str(explode_num(s,"|",18));t1.setcell(6,1,ss);//时间

    t1.setcell(7,3,explode_str(s,"|",19)); //电流
    t1.setcell(7,2,explode_str(s,"|",20));//状态
    ss=sec2str(explode_num(s,"|",21));t1.setcell(7,1,ss);//时间

    t1.setcell(8,3,explode_str(s,"|",22)); //电流
    t1.setcell(8,2,explode_str(s,"|",23));//状态
    ss=sec2str(explode_num(s,"|",24));t1.setcell(8,1,ss);//时间
    //这段代码也可以使用循环,不过考虑到这是样例工程,大多数项目不是这种标准的8路,因此采用直接处理的代码
};

t1就是页面中的表格控件,在此例子中用表格来显示数据;在串口CMD传入app.da("字符串数据")后,经过全局控件appbase中的da函数的处理,最后调用了datashow()方法,当页面中没有继承这个方法的时候,datashow方法为空,直接忽略处理;当某个页面需要根据传入的参数刷新数据的时候,在页面中继承这个app.datashow()这个方法,在此方法中经过解析数据,并且赋值给相应的控件参数,完成页面数据的刷新。