Я пытаюсь создать библиотеку NodeJS, которая позволяет использовать последовательные порты (uart) BeagleBone. Некоторые из контактов мультиплексированы, поэтому некоторые биты конфигурации должны быть записаны в два файла. Вот моя функция, которая записывает биты конфигурации для включения УАПП:NodeJS on BeagleBoard fs.write Ошибка неизвестна -1
var setMuxForUart = function (uart, next) {
var txFd, rxFd;
var txBuf = new Buffer(uart.muxTx.config, 'ascii');
var rxBuf = new Buffer(uart.muxRx.config, 'ascii');
var txBytesWritten, rxBytesWritten;
console.log ("Configuring UART MUX for " + uart.path);
txFd = fs.openSync (MUX_PATH + uart.muxTx.path, 'w');
rxFd = fs.openSync (MUX_PATH + uart.muxRx.path, 'w');
if (txFd && rxFd) {
try {
txBytesWritten = fs.writeSync (txFd, txBuf, 0, txBuf.length, 0);
}
catch (e) {
fs.closeSync (txFd);
fs.closeSync (rxFd);
console.log ('Error Writing to file: '+ MUX_PATH + uart.muxTx.path + ' | ' + util.inspect (e));
return;
}
try {
rxBytesWritten = fs.writeSync (rxFd, rxBuf, 0, rxBuf.length, 0);
}
catch (e) {
fs.closeSync (txFd);
fs.closeSync (rxFd);
console.log ('Error Writing to file: ' + MUX_PATH + uart.muxRx.path + ' | ' + util.inspect(e));
return;
}
fs.closeSync (txFd);
fs.closeSync (rxFd);
if (txBytesWritten && rxBytesWritten) {
console.log ("Uart MUX finished configuration");
next();
}
else {
console.log ("An error occured writing to the UART MUX.");
}
}
else {
console.log ("An error occured while opening the UART MUX files.");
}
};
Вот file, содержащий эту несильно. Вот выход при выполнении этой функции:
[email protected]:~/workspace/BonescriptSerial# node BonescriptSerial.js
The "sys" module is now called "util". It should have a similar interface.
Opening Serial Port for: /dev/ttyO1
Configuring UART MUX for /dev/ttyO1
Error Writing to file: /sys/kernel/debug/omap_mux/uart1_txd | { [Error: UNKNOWN, unknown error] errno: -1, code: 'UNKNOWN', syscall: 'write' }
Я проверить, что правильный вывод записывается для проверки файлов, я пытался многочисленные параметры режима («0777» не имеет значения), я попытался это с синхронизацией и асинхронными функциями безрезультатно, и я также попытался, успешно, записать эти файлы в python. Если у вас есть идеи, которые помогут решить эту проблему, я был бы очень благодарен.
Проект github repo проекта, его состояние находится в зачаточном состоянии прямо сейчас, поэтому нет документации. Версия python также находится в репо.