2016-11-14 2 views
0

シリアルポートを使用して通信するAllSky-340 CCDカメラがあります。ノードserialportはPL2303に書き込みますが、接続されているデバイスには書き込みません

PL2303 USBコンバータを使用してノートパソコンに接続します。

dmesgの:pyallsky呼ば

[14223.043367] usb 1-2: new full-speed USB device number 12 using xhci_hcd 
[14223.172348] usb 1-2: New USB device found, idVendor=067b, idProduct=2303 
[14223.172352] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 
[14223.172353] usb 1-2: Product: USB-Serial Controller 
[14223.172355] usb 1-2: Manufacturer: Prolific Technology Inc. 
[14223.172763] pl2303 1-2:1.0: pl2303 converter detected 
[14223.173356] usb 1-2: pl2303 converter now attached to ttyUSB0 

Pythonコードは、LinuxでAllSky340カメラを制御することを可能にします。できます。

私はこのコードをjavascriptで翻訳し、ノードと共に使用しています。

var serialport = require("serialport");                           
var sp = new serialport(portName);                            

sp.on('open', showPortOpen);                             
sp.on('close', showPortClose);                             
sp.on('disconnect', showPortDisconnect);                           
sp.on('error', showError);                              
sp.on('data', sendSerialData);                             

function showPortOpen(error) {                             

    if (error) {                                 
     console.log('Error while opening the port ' + error);                     
    } else {                                  
     console.log('port open. Data rate: ' + sp.options.baudRate);                    
     var buffer = "E:"                              
     sp.write(buffer, function (err, result) {                        
      console.log("writing buffer: "+buffer)                        
      if (err) {                               
       console.log('Error while sending message : ' + err);                    
      }                                 
      if (result) {                              
       console.log('Response received after sending message : ' + result);                
      }                                 
     });                                  

    }                                   
}                                    

function sendSerialData(data) {                             
    console.log('sendserial data says: '+data);                         
}                                    

function showPortClose() {                              
    console.log('port closed.');                             
}                                    

function showPortDisconnect() {                             
    console.log('port disconnected.');                           
}                                    

function showError(error) {                              
    console.log('Serial port error: ' + error);                         
}                                    

しかし、それは動作しません:ここで

は("E:"は、テストコマンドである)コードコードの一部であるスクリプトを実行すると、ログは

port open. Data rate: 9600 
writing buffer: E: 

と何もないからですカメラが受信されます。 データリスナーがを動作することを、私は同時にpyallsky Pythonスクリプトを実行した場合、私のリスナーを傍受データ(pyallsky前には、複数のポートへのアクセス文句)ので

私は、知っています。

カメラをシャットダウンしても、closeおよびdisconnectリスナには影響しません。

のみ

port disconnected. 
port closed. 

をログに記録するスクリプトを引き起こし PL2303ケーブルを抜い私の考えはjsコードはカメラのみでPL2303ケーブルとないと通信していることです。それは可能ですか? どうすれば解決できますか?

答えて

0

私はそれを機能させるためにボーレートを115200に強制しなければなりませんでした。

/// Opens the serial connection with the camera                        
    var sp = new serialport("/dev/ttyUSB0",                    
          {baudRate: 115200,              
          autoOpen:false},                         
          err => err!== null ? 
     console.log('serialport instance error: ', err.message) : true         
          );                              
関連する問題