aardio 文档

sio 库模块帮助文档

sio 成员列表 #

基于 PComm Lite 的串口通信扩展库

sio.baudRates() #

返回所有可用波特率数组

sio.eachBaudRate() #

for baud in sio.eachBaudRate(){

}

sio.port("COM1") #

打开串口,成功返回对象(可传入其他线程使用)。
失败返回 null,错误信息,错误代码。

参数 @1 可用数值或包含数值的字符串指定要打开的 COM 串口号。

不指定参数直接返回对象,可以在后面使用 open 函数打开端口

sio.port("COM1",true) #

直接绑定当前进程内已打开的串口,
返回对象可传入其他线程使用。

串口是进程独占资源,进程退出会自动释放已打开的串口。

参数 @1 可用数值或包含数值的字符串指定要打开的 COM 串口号。

sio.port() #

返回对象:SioPortObject

SioPortObject 成员列表 #

SioPortObject.abortRead() #

强制中止read,getch等读数据函数

SioPortObject.abortWrite() #

强制中止Write,putch等写数据函数

SioPortObject.breakIrq(回调函数) #

SioPortObject.breakIrq(function(sioPort){  
    /*接收到中断信号时触发时件  
在当前界面线程同步触发此事件*/  
} )

SioPortObject.breakIrqThread(回调函数,ownerObject,...) #

SioPortObject.breakIrqThread(回调函数,ownerObject,...breakIrqThread(function(sioPort){  
    /*接收到中断信号时触发时件  
- 参数 @1 指定的回调函数并非在调用线程中执行,需遵守线程函数规则。  
此调用会覆盖之前设置的回调,回调函数为 null 时注销事件。  
回调保证排队执行,不会有重入问题。  
参数 @ownerObject 用于自定义回调函数的 owner 参数  
如果未指定 @ownerObject 则默认设为 当前 sio.port 对象.  
- 其他参数将作为回调线程函数的参数。  
如果未自定义首人回调参数,则默认为当前 sio.port 对象。*/  
} )

SioPortObject.close() #

关闭串口。
这个函数不会被析构函数自动调用,
应在确认不再使用时调用此函数关闭串口。
串口是进程级别的独占资源。
如果关闭指定串口则所有线程内引用相同串口的对象都会关闭。
进程退出也会自动释放已打开的串口。

SioPortObject.dataStatus() #

检查接收数据时是否遇到错误
0表示无错误,小于0表示函数执行错误,大于0时各二进制位作用:
bit 0 on - parity error
bit 1 on - framing error
bit 2 on - overrun error
bit 3 on - overflow error

SioPortObject.flush(接收缓冲区,发送缓冲区) #

清除接收、发送缓冲区
对应参数为true清除该缓冲区
无参数时清除接收缓冲区

SioPortObject.getBaudRate() #

返回串口波特率
失败返回 null,错误信息

SioPortObject.getFlow() #

返回4个值:
分别表示CTS、RTS硬流控,TX、RX软流控是否开启

SioPortObject.getLineStatus() #

获取串口的CTS, DST, DCD, RI线的状态

SioPortObject.getMode() #

返回串口的工作模式
返回值为三个,分别为:数据位,停止位,校验位
失败返回 null,错误信息

SioPortObject.getReadTimeouts() #

返回读数据总超时,间隔超时两个值,单位毫秒

SioPortObject.getWriteTimeouts() #

返回写数据总超时,单位毫秒

SioPortObject.getch() #

读取一个字节码
失败返回 null,错误信息

SioPortObject.ioctl(波特率,数据位,停止位,校验位) #

设置串口的工作模式
波特率为数值,省略时使用默认值9600
数据位为数值,可选值为5,6,7,8,省略时默认值为8
停止位可选值为1,2,不指定时默认为1
校验位使用字符串值指定,可选值为"even","odd","spc","mrk",可省略以设置空校验位

SioPortObject.iqueue() #

返回输入缓冲区字符长度
失败返回 null,错误信息

SioPortObject.lctrl(dtr,rts) #

设置串口RTS/DTS,参数使用布尔值

SioPortObject.modemIrq(回调函数) #

SioPortObject.modemIrq(function(sioPort){  
    /*当硬件线路(CTS, DSR, CD, RI)的电压发生变化时触发时件  
在当前界面线程同步触发此事件*/  
} )

SioPortObject.modemIrqThread(回调函数,ownerObject,...) #

SioPortObject.modemIrqThread(回调函数,ownerObject,...modemIrqThread(function(sioPort){  
    /*当硬件线路(CTS, DSR, CD, RI)的电压发生变化时触发此事件。  
- 参数 @1 指定的回调函数并非在调用线程中执行,需遵守线程函数规则。  
此调用会覆盖之前设置的回调,回调函数为 null 时注销事件。  
回调保证排队执行,不会有重入问题。  
参数 @ownerObject 用于自定义回调函数的 owner 参数  
如果未指定 @ownerObject 则默认设为 当前 sio.port 对象.  
- 其他参数将作为回调线程函数的参数。  
如果未自定义首人回调参数,则默认为当前 sio.port 对象。*/  
} )

SioPortObject.open() #

修改端口号并打开端口,成功返回 true,
失败返回 null,错误信息,错误代码

SioPortObject.oqueue() #

返回发送缓冲区中剩余的数据长度

SioPortObject.putch() #

发送一个节节码
成功返回长度,失败返回 null,错误信息

SioPortObject.read() #

读取数据,可选指定读取缓冲区长度
成功返回数据,失败返回 null,错误信息
如果没有指定长度且没有接收到数据返回null

SioPortObject.readBuffer(缓冲区,读取长度) #

读取数据到buffer缓冲区,读取长度可省略
成功返回读取长度,失败返回 null,错误信息

SioPortObject.readHex() #

读取数据并返回为十六进制编码格式。
每 2 个 16 进制编码表示一个字节,以空格作为分隔符。
例如读取字符串为"AT"则返回 16 进制编码后的字符串 "41 54" 。
失败返回 null,错误信息

SioPortObject.receiveAscii(超时秒数,进度回调函数) #

SioPortObject.receiveAscii(5/*秒*/,  
    function(length,bufSize,buf,total){  
        /*接收文件协议:ASCII,  
这函数会一直等待接收,不需要写到其他事件回调里,  
owner 参数为存储接收文件名的 buffer 类型字节数组,  
注意文件存储在当前目录下,可使用 io.curDir 函数修改当前目录,  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.receiveKermit(进度回调函数,最大文件数) #

SioPortObject.receiveKermit(  
    function(length,bufSize,buf,total){  
        /*接收文件协议:Kermit,  
这函数会一直等待接收,不需要写到其他事件回调里,  
owner 参数为存储接收多个文件名的 buffer 类型字节数组的数组,  
注意文件存储在当前目录下,可使用 io.curDir 函数修改当前目录,  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.receiveXmodem1kCrc(进度回调函数) #

SioPortObject.receiveXmodem1kCrc(  
    function(length,bufSize,buf,total){  
        /*接收文件协议:XMODEM, 1K block size, 16 bit CRC,  
这函数会一直等待接收,不需要写到其他事件回调里,  
owner 参数为存储接收文件名的 buffer 类型字节数组,  
注意文件存储在当前目录下,可使用 io.curDir 函数修改当前目录,  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.receiveXmodemCheckSum(进度回调函数) #

SioPortObject.receiveXmodemCheckSum(  
    function(length,bufSize,buf,total){  
        /*接收文件协议:XMODEM,CHECKSUM,  
这函数会一直等待接收,不需要写到其他事件回调里,  
owner 参数为存储接收文件名的 buffer 类型字节数组,  
注意文件存储在当前目录下,可使用 io.curDir 函数修改当前目录,  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.receiveXmodemCrc(进度回调函数) #

SioPortObject.receiveXmodemCrc(  
    function(length,bufSize,buf,total){  
        /*接收文件协议:XMODEM, 16 bit CRC,  
这函数会一直等待接收,不需要写到其他事件回调里,  
owner 参数为存储接收文件名的 buffer 类型字节数组,  
注意文件存储在当前目录下,可使用 io.curDir 函数修改当前目录,  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.receiveYmodem(进度回调函数,最大文件数) #

SioPortObject.receiveYmodem(  
    function(length,bufSize,buf,total){  
        /*接收文件协议:Ymodem,  
这函数会一直等待接收,不需要写到其他事件回调里,  
owner 参数为存储接收多个文件名的 buffer 类型字节数组的数组,  
注意文件存储在当前目录下,可使用 io.curDir 函数修改当前目录,  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.receiveZmodem(进度回调函数,最大文件数) #

SioPortObject.receiveZmodem(  
    function(length,bufSize,buf,total){  
        /*接收文件协议:Zmodem,  
这函数会一直等待接收,不需要写到其他事件回调里,  
owner 参数为存储接收多个文件名的 buffer 类型字节数组的数组,  
注意文件存储在当前目录下,可使用 io.curDir 函数修改当前目录,  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.request(发送数据,匹配模式,最小读取时间,最少字节数) #

发送数据并等待读取响应数据,返回响应数据,
等待过程中不会阻塞界面消息,
发送数据可以在单引号里直接使用16进制编码,例如"AT"可以写为'\x41\x54',
其他参数为可选参数,
如果参数@2指定匹配模式,则对响应数据应用模式匹配并返回结果,
最小读取时间默认为10毫秒,
最少字节数默认为1

此函数等待最少字节数到达,并等待最小读取时间后读取并返回数据

SioPortObject.setBaudRate(波特率) #

设置串口波特率
失败返回 null,错误信息

SioPortObject.setFlow(CTS硬流控,RTS硬流控,TX软流控,RX软流控) #

设置串口流控

SioPortObject.setReadTimeouts(总超时,间隔超时) #

设置读数据超时,单位毫秒

SioPortObject.setWriteTimeouts(总超时) #

设置写数据超时,单位毫秒

SioPortObject.termCntIrq(指定长度,回调函数) #

SioPortObject.termCntIrq(/*当接收到参数 @1 指定字节长度的数据,  
在当前界面线程回调参数 @2 指定的函数。  
注意在此回调函数内读取串口数据可能返回 null 值。  
接收文件的代码不用写在这里。*/,function(sioPort){  
    var data = SioPortObject.read();  
    if(!data) return;  

} )

SioPortObject.termCntIrqThread(指定长度,回调函数,ownerObject,...) #

SioPortObject.termCntIrqThread(指定长度,回调函数,ownerObject,...termCntIrqThread(/*接收到指定个字节时响应事件  
- 参数 @1 指定的回调函数并非在调用线程中执行,需遵守线程函数规则。  
此调用会覆盖之前设置的回调,回调函数为 null 时注销事件。  
回调保证排队执行,不会有重入问题。  
参数 @ownerObject 用于自定义回调函数的 owner 参数  
如果未指定 @ownerObject 则默认设为 当前 sio.port 对象.  
- 其他参数将作为回调线程函数的参数。  
如果未自定义首人回调参数,则默认为当前 sio.port 对象。*/,function(sioPort){  

} )

SioPortObject.termIrq(指定字节码,回调函数) #

SioPortObject.termIrq(/*接收到指定字节码时在当前界面线程同步触发此事件,  
接收文件不用写在这个事件里*/,function(sioPort){  

} )

SioPortObject.termIrqThread(指定字节码,回调函数,ownerObject,...) #

SioPortObject.termIrqThread(指定字节码,回调函数,ownerObject,...termIrqThread(/*线程接收到指定字节码时响应事件  
- 参数 @1 指定的回调函数并非在调用线程中执行,需遵守线程函数规则。  
此调用会覆盖之前设置的回调,回调函数为 null 时注销事件。  
回调保证排队执行,不会有重入问题。  
参数 @ownerObject 用于自定义回调函数的 owner 参数  
如果未指定 @ownerObject 则默认设为 当前 sio.port 对象.  
- 其他参数将作为回调线程函数的参数。  
如果未自定义首人回调参数,则默认为当前 sio.port 对象。*/,function(sioPort){  

} )

SioPortObject.transmitAscii(文件路径,进度回调函数) #

SioPortObject.transmitAscii("发送文件路径",  
    function(length,bufSize,buf,total){  
        /*传输文件协议:ASCII  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.transmitKermit(文件路径,进度回调函数) #

SioPortObject.transmitKermit("文件路径",  
    function(length,bufSize,buf,total){  
        /*传输文件协议:Kermit  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.transmitXmodem1kCrc(文件路径,进度回调函数) #

SioPortObject.transmitXmodem1kCrc("发送文件路径",  
    function(length,bufSize,buf,total){  
        /*传输文件协议:XMODEM, 1K block size, 16 bit CRC  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.transmitXmodemCheckSum(文件路径,进度回调函数) #

SioPortObject.transmitXmodemCheckSum("发送文件路径",  
    function(length,bufSize,buf,total){  
        /*传输文件协议:XMODEM,CHECKSUM  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.transmitXmodemCrc(文件路径,进度回调函数) #

SioPortObject.transmitXmodemCrc("发送文件路径",  
    function(length,bufSize,buf,total){  
        /*传输文件协议:XMODEM, 16 bit CRC  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.transmitYmodem(文件路径,进度回调函数) #

SioPortObject.transmitYmodem("发送文件路径",  
    function(length,bufSize,buf,total){  
        /*传输文件协议:Ymodem  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.transmitZmodem(文件路径,进度回调函数) #

SioPortObject.transmitZmodem("发送文件路径",  
    function(length,bufSize,buf,total){  
        /*传输文件协议:Zmodem  
@length 为当前传输大小,@total 为总大小小,其他参数仅用于调试*/  
    }  
)

SioPortObject.txEmptyIrq(回调函数) #

SioPortObject.txEmptyIrq(function(sioPort){  
    /*输出缓冲区最后一个字符发送后触发此事件  
在当前界面线程同步触发此事件*/  
} )

SioPortObject.txEmptyIrqThread(回调函数,ownerObject,...) #

SioPortObject.txEmptyIrqThread(回调函数,ownerObject,...txEmptyIrqThread(function(sioPort){  
    /*输出缓冲区最后一个字符发送后触发此事件  
- 参数 @1 指定的回调函数并非在调用线程中执行,需遵守线程函数规则。  
此调用会覆盖之前设置的回调,回调函数为 null 时注销事件。  
回调保证排队执行,不会有重入问题。  
参数 @ownerObject 用于自定义回调函数的 owner 参数  
如果未指定 @ownerObject 则默认设为 当前 sio.port 对象.  
- 其他参数将作为回调线程函数的参数。  
如果未自定义首人回调参数,则默认为当前 sio.port 对象。*/  
} )

SioPortObject.write(数据,长度) #

参数 @1 指定要写入的数据,
可用单引号包围的转义字符表示 16 进制编码,例如"AT"可以写为'\x41\x54'。
可选用参数 @2 指定要写放的字节长度。
不指定写入长度时自动获取参数 @1 指定数据的长度。

成功返回写入长度,失败返回 null,错误信息

SioPortObject.writeHex(数据) #

写入十六进制编码的数据。
每 2 个 16 进制编码表示一个字节,可选使用空格作为分隔符。
例如参数 "41 54" 表示写入字符串 "AT" ,空格可省略。

全局常量

::Pcomm #

返回对象:dllmoduleObject

Markdown 格式