Форум сайта python.su
MAGRAК int приводить не надо, оно и так int.H00 = int(aa[2])
>>> b = bytearray('abc') >>> b[0] 97 >>> type(b[0]) <type 'int'> >>>
MAGRAСначала надо взять контрольную сумму. Она как раз проставлена там, чтобы принимающая сторона проверила корректность данных.
Маленько по другому написал
def get_rpm_speed(ser, cmd): query = bytearray(cmd) query.append((0x100 - sum(query)) & 0xFF) ser.write(query) resp = bytearray(ser.readline()) crc = resp.pop() if sum(resp) & 0xFF != crc: raise ValueError('incorrect crc') resp.pop(0) resp.pop(0) h0, h1, h2 = resp[:3] rpm = (h0 * 256 + h1) / 4 spd = h2 return rpm, spd ser = serial.Serial('COM3', 9600, timeout=1) rpm, speed = get_rpm_speed(ser, [0x20, 0x05, 0x00, 0x10]) print 'Rpm', rpm print 'Speed', speed
>>> from mock import patch >>> >>> p = patch('serial.Serial') >>> m = p.start() >>> m.return_value.readline.return_value = ( ... b'\x10\xa8\x00\x00' ... b'\x00\x00\x00\x00' ... b'\x10\x00\x00\x01' ... b'\x00\x00\x00\x01' ... b'\xca' ... ) >>> >>> import serial >>> >>> def get_rpm_speed(ser, cmd): ... query = bytearray(cmd) ... query.append((0x100 - sum(query)) & 0xFF) ... ser.write(query) ... resp = bytearray(ser.readline()) ... crc = resp.pop() ... if sum(resp) & 0xFF != crc: ... raise ValueError('incorrect crc') ... resp.pop(0) ... resp.pop(0) ... h0, h1, h2 = resp[:3] ... rpm = (h0 * 256 + h1) / 4 ... spd = h2 ... return rpm, spd ... >>> ser = serial.Serial('COM3', 9600, timeout=1) >>> >>> rpm, speed = get_rpm_speed(ser, [0x20, 0x05, 0x00, 0x10]) >>> print 'Rpm', rpm Rpm 0 >>> print 'Speed', speed Speed 0 >>>
Отредактировано py.user.next (Фев. 25, 2015 02:10:01)
Офлайн
py.user.next Спасибо всё получилось!
Вы не имели дело с kivy? Хочу всему этому запилить оболочку типо так:
____________________
Параметры
|датчики | значения |
|speed | 60 км.ч |
|prm | 2500 об.м. |
___________________
Втыкаю 2 недели в киви, получилось только разбить поля, а как сделать так, что бы значения переменных, менялись в окошке, не могу понять, кто ни будь сталкивался с этим?
Отредактировано MAGRA (Март 10, 2015 10:28:03)
Офлайн
MAGRAНе, я только PyQt4 изучаю.
Вы не имели дело с kivy?
Офлайн