2013-12-21 1 views
0

Я хочу использовать node.js serialport, поэтому мой unix, запущенный в браузере, может получить доступ к последовательному порту (uart). Я уверен, что serialport - замечательный модуль, но я не могу его получить. node.js изумительный, но npm позор. Я ограничен Windows8 (извините), npm терпит неудачу в cygwin из-за \ r chars, npm терпит неудачу после того, как я сконфигурировал Python, переменные env с «странной ошибкой 1». Это не полезно.node.js последовательный порт get sourcer и избегать npm

Но я не хочу, чтобы в любом случае. Я загрузил mime.js и просто потребовал его напрямую. Мой список ниже. Я хотел бы сделать то же самое с последовательным портом. Это означает, что я могу доставить весь свой исходный tar, и пользователям нужно только установить vanilla node.js и не вмешиваться в npm/python.

Итак, как я могу получить исходный код serialport, это нужно как мой собственный модуль, например mime, sprintv ниже.

http = require('http'), 
url = require('url'), 
path = require('path'), 
fs = require('fs'), 
proc = require('child_process'), 
mime = require('./mime.js'), // mime is not intrinsic 
stdio = require('./sprintv.js'), // sprintf type function via dummy stdio 

ответ

2

Вы не можете сделать это для serialportserialport, потому что имеет C/C++ исходный код.

npm install не только загружает исходники, но и загружает зависимости и компилирует их для каждой платформы.

Во всяком случае, если вы можете скомпилировать C/C++ с помощью node-gyp вы можете скачать serialport здесь:

Гото https://github.com/voodootikigod/node-serialport

затем нажмите Загрузить ZIP

+0

Спасибо за ваш ответ. Я просто попытался установить serialport2 на моей машине Ubuntu. Ходили намного лучше, но не потому что node.h не смог найти uv.h.Я понимаю, что узел node.gyp исправляет узлы, которые по очевидным причинам не имеют собственного доступа hw. Я думаю, что мое решение - написать perl-скрипт для доступа к последовательному порту и выполнить его. Достаточно сказать пользователям Windows установить node.js, но затем исправить его: даже если последовательный сервер perl неуклюж, он должен быть пуленепробиваемым. –

0

Я сделал еще один проход по установке последовательного порта. Согласно инструкциям на voodootikigod Я загрузил python 2.7.6 и Visual Studio Express 2013 для Windows Desktop.

я выполнил следующий сценарий:

set path=%path%;C:\Python27 
npm install node-gyp -g 
git clone https://github.com/voodootikigod/node-serialport.git 
cd node-serialport 
node-gyp configure 
node-gyp build 

Он закончил успешно анонсирующим он построен на \ узел-серийного \ сборка \ Release \ serialport.node

Узел исполняемого в с.: \ Program Files \ nodejs неизменен и не может требовать от "SerialPort"

Если я пытаюсь выполнить для сценария в. \ узел-серийный \ Bin \ serialportList.js

#!/usr/bin/env node 

var serialport = require('../'); 
var sf = require('sf'); 

serialport.list(function (err, results) { 
    if (err) { 
    throw err; 
    } 

    for (var i = 0; i < results.length; i++) { 
    var item = results[i]; 
    console.log(sf('{comName,-15} {pnpId,-20} {manufacturer}', item)); 
    } 
}); 

Сбой: Не удается найти привязки модулей. Я установил это, а затем «async», «sf»

Я также не понимаю, что требуется ('../'); следует сделать. Требовать все из предыдущего каталога?

Это выполняется, но, к сожалению, я не получил последовательный порт, подключенный прямо сейчас :( Так что ничего не отображает