pidtfork 发表于 2020-10-28 18:44:48

AIO系列矩阵数据处理

本帖最后由 pidtfork 于 2020-10-28 18:46 编辑

AIO系列矩阵构造方法


这是一个构造方法,主要是用来处理AIO设备的返回数据并转换成易处理的数据格式,并且将常用的控制功能封装成方法

实例化过程

根据实际设备类型传入参数,如果是AIO-1608则传入16,如果是AIO-3208则传入32。参数2是否定时自动查询设备状态,默认是定时发送查询设备状态指令。

参数2是一个非空值时取消定时自动发送。如果是什么都不传,则 默认设备是1608,自动查询设备状态。

var devAIO1608 = new AIO_Matrix();
vardevAIO1608 = new AIO_Matrix(16);
vardevAIO1608 = new AIO_Matrix(16,"disable");
vardevAIO3208 = new AIO_Matrix(32);


默认信息

设备的默认控制端口为: COM8 可使用 setPort(xxx) 方法更改,虽然一般都不要改

查询设备端口在线时间间隔是为 3S 可以使用 setCheckOnlineTime(xxx) 重新设置时间

查询输入输出对应状态的时间间隔为 15S 可以使用 setCheckStatusTime(xxx) 重新设置时间

每个通到都会有个通道信息对象,具体格式如下表,status值为输出对应的输入,所以通常输入卡的status为-1,当输出卡关闭时值为 0


//假如通道6未插卡时,对象包含信息为
{
    number    : 6,                //通道号
    tag       : "channel6",       //通道标签名称
    type      : -1,               //通道类型 0 输入卡 1 输出卡
    typeName: 'invalid card',   //卡名称 input card 、output card
    cardType: -1,               //卡类型 1~6 参考 this.CARD_TYPE 定义
    cardName: 'NULL',         //卡类型名称
    online    : -1,               //通道线缆信号连接状态
    onlineName: 'NULL',         //连接名称 online offline
    status    : -1                //输出通道对应的输入通道状态输入卡无效卡为 -1
}
//通道10是HDMI输出卡时
{
    number    : 10,            //通道号
    tag       : "channel10",   //通道标签名称
    type      : 1,               //通道类型 0 输入卡 1 输出卡
    typeName: 'output card',   //卡名称 input card 、output card
    cardType: 6,               //卡类型 1~6 参考 this.CARD_TYPE 定义
    cardName: 'HDMI',          //卡类型名称
    online    : 1,               //通道线缆信号连接状态
    onlineName: 'online',      //连接名称 online offline
    status    : 2                //输出通道对应的输入通道状态输入卡无效卡为 -1
}


重要说明

方法接口说明,方法中的 set 方法 传入为1个是参数时,通常是数组或者对象, 2个参数时。通常是用来设置具体的属性值。方法中的 get 方法类似,无参数时返回所有属性,一个参数时返回具体属性的值。


常用方法

通道的标签名是可用 setTag 方法设置的,例如通道1接的是前摄像机,2接的后摄像机。多个地方用到通道名称时直接使用 getTag 方法获取

各个方法使用例子说明


<b>
</b>var dev = new AIO_Matrix(16);

dev.callScenes(8); //调用场景 取值 0-9
dev.clearScenes(8);//删除存储的场景 取值 0-9
dev.saveScenes(8); //保存当前输入输出为场景 取值 0-9

dev.setPort("NET1"); //设置控制AIO矩阵的端口号,默认为COM8

//设置通道名称标识
dev.setTag(["通道1", "通道2", "通道3", "通道4", "通道5", "通道6", "通道7", "通道8", "通道9", "通道10", "通道11", "通道12", "通道13", "通道14", "通道15", "通道16",]);
dev.setTag(0, "这是通道1的名称"); //设置指定通道的名称标识
dev.getTag();   //获取所有通道的标识返回数组
dev.getTag(0);//获取第一个通道的标识

dev.getChannel("typeName");   //获取所有通道的卡类型名称
dev.getChannel("typeName", 1);//获取通道2的卡类型名称

dev.setCheckOnlineTime(2);//设置间隔查询通道在线的时间为2s
dev.setCheckStatusTime(10); //设置间隔查询输入输出切换状态的时间为10s
dev.getCheckOnlineTime();   //获取查询通达在线的时间间隔
dev.getCheckStatusTime();   //获取查询输入输出状态的时间间隔

dev.send("xxx");            //往设备发送字符串数据,
dev.toggleSwitch(1, 10);    //和switch方法意义相同
dev.switch(1, 10);          //通道10不显示通道1时将通道1切换给通道10,否则关闭通道10
dev.setSwitch(1, 10);       //将通道1切换给通道10,跟其他状态无关

dev.openAllOut();   //无参 打开全部输出通道
dev.closeAllOut();//无参 关闭全部输出通道
dev.openOut(10);    //打开通道10
dev.closeOut(10);   //关闭通道10

dev.powerOff(); //关闭矩阵电源
dev.powerOn();//开启矩阵电源

dev.isOnline(10);   //判断通道10是否在线
dev.isStatus(10, 5);//判断通道10是否显示通道5
dev.getOnline();    //获取全部通道在线状态 返回数组
dev.getOnline(5);   //获取通道5在线状态
dev.getStatus();    //获取全部通道输入输出状态 返回数组
dev.getStatus(10);//获取通道10的输入输出状态




页: [1]
查看完整版本: AIO系列矩阵数据处理