最开始接触aardio就是用来写了个串口通讯的,这里我以前也说过。现在作者也封装了一个库,正好学习。放上来。
有时候只有自己写过了再看高水平写的,才能更快的学习认识自己的不足。
本来想放库上来,字数超过了,自己到扩展库去下载吧。名字为sio.aardio
新增的sio串口通信扩展库(基于Pcomm),用法非常简单,示例如下:
import win;
import console;
import sio;
var sport = sio.port("COM1");
//设置串口(波特率,数据位,停止位,校验位)
sport.ioctl(9600,8,1,"even");
//接收到字符时响应事件,注意这个回调函数是线程回调函数
sport.termCntIrqThread(1,function(port){
import sio;
var sport = sio.port(port);
io.print("收到ASCII",sport.read() ); //或sport.readHex()
} )
//ASCII写入
sport.write("test");
//HEX写入
sport.writeHex("74 65 73 74");
//上面相当于 sport.write( string.unhex("74 65 73 74"," ") );
console.open();
sport.transmitAscii("/test.txt",
function(length,bufferSize,buffer,totalLength){
io.print( length,totalLength )
})
//如果传输文件使用进度回调函数,则必须启动消息循环
win.loopMessage();
//关闭串口
sport.close();
更正:上面的消息循环函数并非必须,控制台里如果要等待读数据事件(多线程),用console.pause()暂停不退出就行