Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 28, 2015 08:19:04

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

python serial

Здравствуйте у меня имеется бесперебойник ippon он присоединен к com порту ttyS0. Я с ним работаю через программу nut так что вопросов по поводу что он работает нет. Хочу с ним поработать через python библботеку serial

#! /usr/bin/env python
# coding: utf-8
 
import serial
 
ser = serial.Serial("/dev/ttyS0")
ser.baudrate = 9600
 
while True :
  line = ser.readline()
  print line
вот есть скрипт, который забирает поток данных из последовательного порта и выводит его на экран. Но в итоге
serrrggggeee@serrrggggeee-Arbyte-Quint-B-M4D3A-H61 ~ $ sudo python port_n.py
короче он молчит, что то я не допанимаю. Но как я понимаю здесь идет работа как с обычным файлом, но тут же если судить логически где то на нижнем уровне должен быть драйвер.

Офлайн

#2 Дек. 28, 2015 08:58:58

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

python serial

А что он должен отвечать, если вы его ни о чем не спрашиваете? Вот тут внизу ссылки на архив с описанием протокола общения с UPS.



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

Офлайн

#3 Дек. 28, 2015 09:23:56

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

python serial

чтото не разобрался раньше на работал с устройствами, Вот допустим

UPS status :
Bit 	            Description                 	
 7  	1 : Utility Fail (Immediate)            	
 6  	1 : Battery Low                         	
 5  	1 : Bypass/Boost or Buck Active                 	
 4  	1 : UPS Failed                          	
 3  	1 : UPS Type is Standby (0 is On_line)  	
 2  	1 : Test in Progress                    	
 1  	1 : Shutdown Active                     	
 0  	1 : Beeper On                             	
это биты для получения статуса, и как теперь я могу использовать их в своем скрипте что бы отправить устройству для получения от него ответа?

Офлайн

#4 Дек. 28, 2015 09:43:16

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

python serial

Там же даже пример есть. Вы посылаете на упс строку ‘Q1\n’, в ответ он отдает строку типа ‘(208.4 140.0 208.4 034 59.9 2.05 35.0 00110000\n’. Что означают отдельные части этой строки подробно расписано в документе.

ЗЫ: Возьмите любой терминал, тот же minicom под линухой или Moxa PC Comm terminal Emulator под виндой, и пообщайтесь сами с упсом сначала. Прямо вводите запрос в строчке, типа Q1 , потом Enter и смотрите ответ. Сразу поймете принцип.



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

Отредактировано PooH (Дек. 28, 2015 09:47:19)

Офлайн

#5 Дек. 28, 2015 10:07:22

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

python serial

получается я вот что должен сделать

#! /usr/bin/env python
# coding: utf-8
 
import serial
 
ser = serial.Serial("/dev/ttyS0")
ser.baudrate = 9600
y = ser.write("Q1\n")
 
while True :
  line = ser.readline()
  print line

Офлайн

#6 Дек. 28, 2015 12:39:26

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

python serial

если хотите в цикле опрашивать, то типа

import time
import serial
ser = serial.Serial("/dev/ttyS0")
ser.baudrate = 9600
 
while True :
  ser.write("Q1\n")
  line = ser.readline()
 # и тут разбраете на запчасти строку
  print line
 time.sleep(1000)



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

Офлайн

#7 Дек. 28, 2015 12:46:11

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

python serial

молчит все равно.

Офлайн

#8 Дек. 28, 2015 13:02:31

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

python serial

serrrgggeee
молчит все равно.
попробуйте сначала через терминал. проверьте параметры порта

PS: кстати, <cr> это возможно не \n а \r (который с кодом 0x0D), попробуйте его в конце
ser.write("Q1\r")



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

Отредактировано PooH (Дек. 28, 2015 13:05:24)

Офлайн

#9 Дек. 28, 2015 13:33:04

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

python serial

нет с r то же самое.
вот все параметры

serrrggggeee-Arbyte-Quint-B-M4D3A-H61 serrrggggeee # stty  -a < /dev/ttyS0
speed 38400 baud; rows 0; columns 0; line = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof = <undef>;
eol = ^M; eol2 = <undef>; swtch = <undef>; start = <undef>; stop = <undef>;
susp = <undef>; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O;
min = 0; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt
-echoctl -echoke

Офлайн

#10 Дек. 28, 2015 13:44:37

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

python serial

В доке по протоколу следующие настройки порта baudrate 2400, 8бит, один стоповый, без контроля четности. Попробуйте выставить для порта.

ЗЫ: даже интересно стало, завтра найду адаптер 232 и сам попробую соединиться.



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

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version