我将此设备连接到计算机,我正在开发的系统在很大程度上取决于该设备。但是,由于它将安装在不同的地方,然后他们可能会使用一个USB端口或另一个,在我的情况下,每次我插入设备我必须做一个chmod 777才能工作。
所以,我用这个设备可以连接的端口制作了这个文件,它就像
/dev/ttyUSB0,/dev/ttyUSB1,/dev/ttyUSB2
我用这个函数读了它
var puertoLect = function(callback){
//Busca en el archivo ports la lista de puertos probables donde se encuentra el modem receptor
fs.readFile('ports.txt', 'UTF-8', function (err, data) {
if (err){
console.log(err);
}else{
callback({data:data});
}
});
}
然后我使用此函数将其拆分为数组并为数组的每个值执行chmod。
var puertoEnable = function(){
puertoLect(function(puertos){
var singlePort = String(puertos.data).split(',');
for(var i=0;i<singlePort.length;i++){
fs.chmod(singlePort[i], '0777', function (err){
if(err){
console.log(singlePort[i]+': Not Enabled');
console.log(err);
}else{
console.log(singlePort[i]+': Enabled');
}
});
}
});
}
我正在尝试使用这个最新功能测试它是否有效。因此,如果它找到确切的端口,那么它将启用它并让我知道它做了,如果没有,只是告诉我它没有。然而它最终归还了这个:
undefined: No se pudo Habilitar
{ [Error: EPERM, chmod '/dev/ttyS24'] errno: 50, code: 'EPERM', path: '/dev/ttyS24' }
undefined: No se pudo Habilitar
{ [Error: ENOENT, chmod '/dev/ttyUSB0'] errno: 34, code: 'ENOENT', path: '/dev/ttyUSB0' }
undefined: No se pudo Habilitar
{ [Error: ENOENT, chmod '/dev/ttyS25
'] errno: 34, code: 'ENOENT', path: '/dev/ttyS25\n' }
我不知道EPERM或ENOENT是什么意思,但是,当我尝试这样做时,设备没有连接(故意),因为文件ttyS25和ttyS24已经存在于“/ dev”中。并且ttyUSB0仅在我连接设备时出现。
所以,我必须尝试找到一种方法来检查路径,看看我正在尝试chmod存在的文件。如果是,则执行chmod并返回带路径的变量,以便我可以在serialPort配置中使用它。
如果有人可以提供帮助,我会很感激。