LoginSignup
0
1

More than 5 years have passed since last update.

pySerial 2.7 + CentOS 6.8 (+Python 2.6.6) > ループバックテストは成功 | readline()が遅い問題はある | ドライバのバージョンアップで動作しなくなるコード

Last updated at Posted at 2018-01-19
動作環境
CentOS 6.8 (64bit)
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) 
pySerial pyserial-2.7-py2.6.egg-info

関連

pySerialの3.*ではCentOSとUbuntuにおいてまともにシリアル通信ができない。
というのが2018年1月19日現在の認識である。

Raspberry Pi(Raspbian Jessie)でpySerial 2.*ではシリアル通信ができていた実績がある。

pySerial 2.7 + CentOS 6.8

CentOS 6.8にpySerial 2.7をインストールしてみた。

https://pypi.python.org/pypi/pyserial/2.7
からtar.gzファイルを取得。

$tar xvzf pyserial-2.7.tar.gz
$cd pyserial-2.7
$sudo python2 setup.py install 

code > ループバックテスト

loop_test_180119.py
import serial
import time

def main():
    print("Hello")
    con1=serial.Serial('/dev/ttyUSB0', 9600, timeout=10)
    con2=serial.Serial('/dev/ttyUSB1', 9600, timeout=10)

    str1='from\r'
    con1.write(str1);
    str2=con2.readline()
    print("str1=", str1)
    print("str2=", str2)
    con1.close()
    con2.close()

if __name__ == '__main__':
    main()

実行

USBシリアル変換ケーブル2本をクロス接続して、USBに挿した状態で以下を実行した。
(ケーブルのドライバはProlific)。

$ sudo python2 loop_test_180119.py 
Hello
('str1=', 'from\r')
('str2=', 'from\r')

この処理を繰り返したが正常に処理されている。
(readline()の問題はあり、こちらに記載の対応は必要となりそう)。

ドライバのバージョンアップで動作しなくなるコード

Unityのシリアル通信はUnity4からUnity5になった時点で動作しなくなった経験がある。

Gitのとあるクライアントソフトはv1.からv2.になった時点でバグだらけになった例も知っている。

pySerialは v3.*で調べた範囲ではいくつかのエラーが未解決のように見られる。

5年、10年のスパンで考えた場合、ドライバのバージョンアップで動作しなくなるコードがあると認識しておく必要があるかもしれない。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1