我电脑里有一个通讯端口COM3 现在我用工具已经打开了这个串口,我想在aardio里在操作串口之前先检查一下这个COM端口的状态 想知道是否可用

By admin at 2017-12-10 • 0人收藏 • 731人看过

如果先检测到了已经占用的话 那么先关闭这个串口  如果没有占用的话 那么再执行打开操作
我想问一下是否可以通过fsys来判断呢?如果不可以的话 是否就需要用
mscomm这样的控件 或者pcomm控件来判断?

import fsys.file;

var file = fsys.file("\\.\COM3")
if( file ){
    //打开了COM3
    file.close(); 
}

楼上的回答是正确答案  但是可能大家不知道为什么其中要按照给出代码中的格式去写COM3 
具体我找了一下相关资料
大家可以看
以下的几个连接
http://www.baidu.com/s?bs=UNC%E8 ... 8%E5%AF%B9%E8%B1%A1
http://www.cnblogs.com/coderle ... .html
http://hi.baidu.com/haibin_gl/ ... 0b294
http://ar.newsmth.net/thread-b45bcc45bd6f25.html 

又找了点文章
在百度搜索  CreateFile 串口
http://www.cnblogs.com/ezhong/ ... .html
然后实际测试

import fsys.file;
import win
var file = fsys.file("COM3")
io.open()
io.print(file)
if( file ){
    //打开了COM3
    file.close();
}

是可以的.

import fsys.file;
import win
var file = fsys.file("COM3:")
io.open()
io.print(file)
if( file ){
    //打开了COM3
    file.close();
}

这个也是可以的

import fsys.file;
import win
var file = fsys.file("////.//COM3")
io.open()
io.print(file)
if( file ){
    //打开了COM3
    file.close();
}

也可以

也就是说,查询问题应该先从WINAPI入手。。

1 个回复 | 最后更新于 2018-01-02
2018-01-02   #1
import console; 
import fsys.file;
import win

var file = fsys.file("COM1")
io.open()
io.print(file)
if( file ){
    console.log("COM1未打开")
    
}

if(file === null){
	console.log("COM1是打开的")
}

console.pause(true);

com如果是已经打开了的,那么就会返回null

如果没打开过,那么返回的就是一个table表....

如果com端口号不存在就返回null

blob.png

blob.png


blob.png

登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前在学aardio+halcon机器视觉.
Htmlayout界面在线学习文档
Sciter中文在线文档Sciter在线学习文档
本 站 主 站:Stm32cube中文网
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
aardio在线手册Aardio在线手册
C大Aardio论坛:Aar爱好者论坛
简码教程网:简码编程
AARDIO语言QQ群:70517368
赞助商:才仁机械
下载站:非凡软件站
Loading...