Форум сайта python.su
Все сделал но без изменений. Если я пошлю на порт через терминал таким образом
serrrggggeee-Arbyte-Quint-B-M4D3A-H61 serrrggggeee # echo b'Q1\r' > /dev/ttyS0 serrrggggeee-Arbyte-Quint-B-M4D3A-H61 serrrggggeee # cat < /dev/ttyS0 ^C
Офлайн
Попробуйте так:
ser = serial.Serial("/dev/ttyS0", baudrate=2400) ser.open() ser.write(b"Q1\r") print(ser.readline(eol=serial.CR))
Офлайн
Если я запускаю скрипт так
#! /usr/bin/env python # coding: utf-8 import serial ser = serial.Serial("/dev/ttyS0", baudrate=2400) ser.open() ser.write(b"Q1\r") print(ser.readline(eol=serial.CR))
serial.serialutil.SerialException: Port is already open
ser = serial.Serial("/dev/ttyS0", baudrate=2400) #ser.open() ser.write(b"Q1\r") print(ser.readline(eol=serial.CR))
serrrggggeee-Arbyte-Quint-B-M4D3A-H61 serrrggggeee # python port_n.py Traceback (most recent call last): File "port_n.py", line 8, in <module> print(ser.readline(eol=serial.CR)) TypeError: readline() takes no keyword arguments
ser.write(b"Q1\r") print(ser.readline())
serrrggggeee-Arbyte-Quint-B-M4D3A-H61 serrrggggeee # python port_n.py ^CTraceback (most recent call last): File "port_n.py", line 8, in <module> print(ser.readline()) File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 446, in read ready,_,_ = select.select([self.fd],[],[], self._timeout) KeyboardInterrupt serrrggggeee-Arbyte-Quint-B-M4D3A-H61 serrrggggeee #
Офлайн
serrrgggeee
читай побайтово
Офлайн
побайтово это как?
Офлайн
serrrgggeee
ser.read(1)
Офлайн
Вот этот код работает
ser = serial.Serial("/dev/ttyS0", baudrate=2400) #ser.open() ser.write(b"F\r") ups= ser.read(10) ser.write(b"Q1\r") ups1= ser.read(47) ser.write(b"D\r") ups2= ser.read(14)
Офлайн
serrrgggeeeЭто просто пункты пронумерованы в документе a, b, c и далее :) На Q1 железка должна ответить (MMM.M NNN.N PPP.P QQQ RR.R S.SS TT.T b7b6b5b4b3b2b1b0, так вот пять символов после скобки это ваше напряжение.
что если я воспользуюсь аргументом или байтом b не знаю как это правильно назвать то получу I/P voltage
уже все перепробовал но не пойму куда ставить это b через пробел дефис или другой символ.
Отредактировано PooH (Янв. 11, 2016 13:59:49)
Офлайн
а парсить как я понимаю средствами питона? или как то по другому можно
Офлайн
serrrgggeeeКонечно, это же просто строка.
а парсить как я понимаю средствами питона?
float(ups1[1:6])
Отредактировано PooH (Янв. 11, 2016 15:38:48)
Офлайн