python serial example




يتحدث برمجيا إلى منفذ تسلسلي في أوس X أو لينكس (2)

لدي علامة بروليت ليد أن أود أن إعداد لإظهار التمرير طلبات البحث من سجلات أباتشي والإحصاءات متعة أخرى. المشكلة هي، بلدي G5 ليس لديها منفذ تسلسلي، لذلك لا بد لي من استخدام أوسب لدونجل التسلسلي. ويظهر على النحو /dev/cu.usbserial و / dev/tty.usbserial.

عندما أفعل هذا كل شيء يبدو أن هونكي-دوري:

stty -f /dev/cu.usbserial
speed 9600 baud;
lflags: -icanon -isig -iexten -echo
iflags: -icrnl -ixon -ixany -imaxbel -brkint
oflags: -opost -onlcr -oxtabs
cflags: cs8 -parenb

كل شيء يعمل أيضا عند استخدام أداة المنفذ التسلسلي للتحدث إليها.

إذا قمت بتشغيل هذه القطعة من التعليمات البرمجية في حين أن أداة المنفذ التسلسلي المذكورة أعلاه، يعمل كل شيء أيضا. ولكن بمجرد قطع الاتصال الأداة يضيع الاتصال.

#!/usr/bin/python

import serial

ser = serial.Serial('/dev/cu.usbserial', 9600, timeout=10) 
ser.write("<ID01><PA> \r\n") 
read_chars = ser.read(20)
print read_chars

ser.close()

لذا فإن السؤال هو، ما ماغيكس لا أحتاج إلى أداء لبدء التحدث إلى المنفذ التسلسلي دون أداة المنفذ التسلسلي؟ هل هذه مشكلة في الأذونات؟ أيضا، ما هو الفرق بين /dev/cu.usbserial و / dev/tty.usbserial؟

لا، لا الأرقام التسلسلية. الشيء هو أن المشكلة لا تزال قائمة حتى مع سودو - تشغيل النصي الثعبان، والشيء الوحيد الذي يجعل من الذهاب من خلال إذا فتح الاتصال في أداة واجهة المستخدم الرسومية التي ذكرتها.


/dev/cu.xxxxx هو جهاز "وسيلة الشرح"، إنه ما تستخدمه عند إنشاء اتصال بالجهاز التسلسلي والبدء في التحدث إليه. /dev/tty.xxxxx هو جهاز " /dev/tty.xxxxx "، المستخدم لرصد منفذ للمكالمات الواردة على سبيل المثال مستمع الفاكس.


هل حاولت مشاهدة حركة المرور بين واجهة المستخدم الرسومية والمنفذ التسلسلي لمعرفة ما إذا كان هناك نوع من أمر خاص يتم إرسالها عبر؟ أيضا مجرد غريبة، بيثون يرسل أسي وليس أوتف-8 أو أي شيء آخر أليس كذلك؟ السبب الذي أسأله هو لأنني لاحظت تغيير الاقتباس الخاص بك للسلاسل وفي بعض اللغات التي هي في الواقع الفرق بين أسي و أوتف-8.







serial-port