Форум сайта python.su
Здравствуйте у меня имеется бесперебойник 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
Офлайн
А что он должен отвечать, если вы его ни о чем не спрашиваете? Вот тут внизу ссылки на архив с описанием протокола общения с UPS.
Офлайн
чтото не разобрался раньше на работал с устройствами, Вот допустим
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
Офлайн
Там же даже пример есть. Вы посылаете на упс строку ‘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)
Офлайн
получается я вот что должен сделать
#! /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
Офлайн
если хотите в цикле опрашивать, то типа
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)
Офлайн
молчит все равно.
Офлайн
serrrgggeeeпопробуйте сначала через терминал. проверьте параметры порта
молчит все равно.
ser.write("Q1\r")
Отредактировано PooH (Дек. 28, 2015 13:05:24)
Офлайн
нет с 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
Офлайн
В доке по протоколу следующие настройки порта baudrate 2400, 8бит, один стоповый, без контроля четности. Попробуйте выставить для порта.
ЗЫ: даже интересно стало, завтра найду адаптер 232 и сам попробую соединиться.
Офлайн