2016-12-13 8 views
1

現在、私はPython 2.7/Pyserialを使用して外部デバイスとのシリアル通信を苦労しています。代わりに、私はデータロギング用の端末ソフトウェアを使用しました:Screenshot of fomerly used Software。 一つは今CP、パイソンにデータが何らかの形で動作しない取得しようとしている装置は、第1の環状の更新されたデータ列(CR LFと分離ライン毎)、続いてヘッダー行を与えるPyserial、in_waitingは空の値 '0L'を返します

を見ることができます:

import serial 
ser = serial.Serial('COM8', 38400) 

その後

ser.inWaiting() 

0L 

を与えますターミナルソフトウェアがうまく動作している間にPythonからアクセスすると、バッファは空のようです。

私は成功せず、両方の

ser.setDTR(1) 
ser.dsrdtr=1 

を設定してみました。

詳細情報:デバイスは仮想ポートスプリッタで動作します。 USBケーブルはCOM3に接続されています。ここで説明するように、COM6(HMI経由のデバイス構成用)とCOM8(データロギング用)を使用してデバイスにアクセスする2つのツールがあります。

本当に助けていただきありがとうございます。

よろしく、 mulm

答えて

0

だから、私は私の問題の回避策を見つけました。私のデバイスで動作する端末ソフトウェアはうまく動作するので、httpサーバに組み込まれたものを使用し、Pythonを使用してリクエストを行います。今私は余分なソフトウェアを起動する必要がありますが、私の場合、これは利用可能な最良のオプションです。

使用されているソフトウェア: http://www.umonfw.com/ucon/

コードスニペット:

import socket 

# Closing the connection after a single request prevents the buffer from filling up with outdated data. 

try: 
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    client.connect(('xxx.xx.xx.xxx', 50080)) 

    val = client.recv(96) 

    client.close() 

except socket.error: 
    print "Unable to connect to server." 
    val = None 

きれいではありませんが、それは仕事をしていません。

関連する問題