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

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

如果先检测到了已经占用的话 那么先关闭这个串口  如果没有占用的话 那么再执行打开操作
我想问一下是否可以通过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

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...