Форум сайта python.su
Настройки ком порта на обоих сторонах должны быть идентичны.
1) скорость
2) четность нечетность (pariry)
3) стоповые биты
Еще есть вероятность, неправильно считаешь CRC16 (не тот полином используешь)
В мадбасе есть команда для проверки связи с устройством. Код не помню, но смысл такой устройство отправляет то, что приняло, если CRC верен.
Если не секрет, что за прибор???
Я всегда высчитывал CRC по данной проге, если не оговаривалось исключений. Програ писалась для контроллера на с, но интерпретировать на python думаю не составит труда.
WORD CRC (BYTE *data, INT lenght)
{
INT i, j;
WORD CRC = 0xFFFF, bit;
for(i=0; i<lenght; i++)
{
CRC ^= (WORD)data[i];
for(j=0; j<8; j++)
{
bit = CRC & 0x0001;
CRC >>= 1;
if(bit) CRC ^= 0xA001;
}
}
return CRC;
}
Отредактировано (Дек. 9, 2010 15:12:29)
Офлайн
pyuser спасибо завтра буду пробовать.
krasoffskiВсе делал как написано в документации к прибору.
Настройки ком порта на обоих сторонах должны быть идентичны.
1) скорость
2) четность нечетность (pariry)
3) стоповые биты
krasoffskiНе секрет. UA-112
Если не секрет, что за прибор???
krasoffskiДа черт его знает. Как понять то.
(не тот полином используешь)
Офлайн
У меня вопрос. Будет ли работать тот код который я нацарапал?
pyuser, если можно то ссылки на документацию к МАК2000 (хочу сравнить описание к протаколам) либо пример использования класса mak2k()
Отредактировано (Дек. 10, 2010 08:31:41)
Офлайн
документация у меня была в печатном виде и я вернул ее вместе с девайсом :(
использовать класс очень просто:
в конструктор передаются объект типа serial.Serial иID девайса (на одной шине может быть не один девайс)
метод append добавляет регистры, которые будут читаться (по сути важен только параметр item_register)
метод read читает в цикле каждый регистр
метод group_read читает все регистры сразу
соответственно для чтения используется или один или другой (group_read, понятно, более предпочтителен)
атрибут registers - результат чтения
Офлайн