Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 28, 2015 14:02:18

serrrgggeee
Зарегистрирован: 2014-03-31
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

python serial

Все сделал но без изменений. Если я пошлю на порт через терминал таким образом

serrrggggeee-Arbyte-Quint-B-M4D3A-H61 serrrggggeee # echo b'Q1\r' > /dev/ttyS0
serrrggggeee-Arbyte-Quint-B-M4D3A-H61 serrrggggeee # cat < /dev/ttyS0
^C
я должен получить же чтото в ответ?

Офлайн

#2 Дек. 29, 2015 04:35:49

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

python serial

Попробуйте так:

ser = serial.Serial("/dev/ttyS0", baudrate=2400)
ser.open()
ser.write(b"Q1\r")
print(ser.readline(eol=serial.CR))



Офлайн

#3 Дек. 29, 2015 07:24:20

serrrgggeee
Зарегистрирован: 2014-03-31
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

python serial

Если я запускаю скрипт так

#! /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())
то просто молчит
и если я сбрасываю скрипт Ctr+c то вот что выдает
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 # 

Офлайн

#4 Дек. 29, 2015 12:32:31

sander
Зарегистрирован: 2015-02-19
Сообщения: 317
Репутация: +  53  -
Профиль   Отправить e-mail  

python serial

serrrgggeee
читай побайтово

Офлайн

#5 Дек. 29, 2015 13:17:15

serrrgggeee
Зарегистрирован: 2014-03-31
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

python serial

побайтово это как?

Офлайн

#6 Дек. 29, 2015 13:49:57

sander
Зарегистрирован: 2015-02-19
Сообщения: 317
Репутация: +  53  -
Профиль   Отправить e-mail  

python serial

serrrgggeee

ser.read(1)

Офлайн

#7 Янв. 11, 2016 13:17:43

serrrgggeee
Зарегистрирован: 2014-03-31
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

python serial

Вот этот код работает

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)
если в read пишешь больше байт чем можно получить то результат не выдается, но меня интересует сейчас
это Q из документации понятно API
что если я воспользуюсь аргументом или байтом b не знаю как это правильно назвать то получу I/P voltage
уже все перепробовал но не пойму куда ставить это b через пробел дефис или другой символ.

Офлайн

#8 Янв. 11, 2016 13:58:47

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

python serial

serrrgggeee
что если я воспользуюсь аргументом или байтом b не знаю как это правильно назвать то получу I/P voltage
уже все перепробовал но не пойму куда ставить это b через пробел дефис или другой символ.
Это просто пункты пронумерованы в документе a, b, c и далее :) На Q1 железка должна ответить (MMM.M NNN.N PPP.P QQQ RR.R S.SS TT.T b7b6b5b4b3b2b1b0, так вот пять символов после скобки это ваше напряжение.

ЗЫ: я обещал вам самому попробывать, но пока руки никак не доходят, завал, постораюсь на этой неделе



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано PooH (Янв. 11, 2016 13:59:49)

Офлайн

#9 Янв. 11, 2016 14:01:55

serrrgggeee
Зарегистрирован: 2014-03-31
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

python serial

а парсить как я понимаю средствами питона? или как то по другому можно

Офлайн

#10 Янв. 11, 2016 15:37:31

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

python serial

serrrgggeee
а парсить как я понимаю средствами питона?
Конечно, это же просто строка.
 float(ups1[1:6])
и всего делов.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано PooH (Янв. 11, 2016 15:38:48)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version