获取输入模式的IO端口电平

由于扩展板是使用串口通信的,因此获取IO口电平是一个通信过程,也就是先用 chklevels()语句发送一个查询命令,扩展板根据这个查询命令返回IO口电平值;

由于通信是异步的,因此获取结果需要在异步接收事件中进行

查询命令:

void e1.chklevels();

本命令为异步命令,执行后会立即执行下一条语句,而非等待结果返回才执行下一条

获取结果

int e1.getlevel(int port,int pin);
// port: 端口号 0-E端口 1-K端口  2-P端口
// pin: 引脚号 0~7
// 返回值:1-高电平  0-低电平  FF-端口未设置为输入模式

在页面处理中,当接收到扩展板传来的数据时,会自动调用 e1.recvExtend 事件,可以继承该事件完成页面的刷新

void e1.recvExtend(int mode, int bs, int len){
    // 回调函数,mode=2表示接收到24个IO口引脚电平
    //bs: 接收数据bin数组对应的句柄  len:bin数据长度
    int i;
    if(mode == 2){
        // 显示接收到的24个IO口引脚电平
        i=e1.getlevel(0,1);  //获取E1端口的电平
        m2.text=m2.text+"[E1:"+i+"]";
    }
}

本事件传入参数mode==2时表示收到IO电平数据,不同的mode参数对应不同的功能,详细参见recvExtend事件详解

注意: