Название: Реализация протокола 1-Wire на QSerialPort. Что-то туплю. Отправлено: smartchecker от Май 21, 2014, 13:14 Для академической задачки нужно реализовать протокол 1-Wire через UART.
Смысл в том, что команды посылаются на одной скорости, а данные принимаются на другой. Типа такого. Код: bool QOneWire::resetBus() { Код: serial->setBaudRate(QSerialPort::Baud115200); Если делать так Код: connect(serial, SIGNAL(readyRead()), this, SLOT(onReadyRead())); Название: Re: Реализация протокола 1-Wire на QSerialPort. Что-то туплю. Отправлено: kuzulis от Май 21, 2014, 21:18 Эмм.. делаешь state machine с двумя состояниями: WriteRequest и ReadResponse..
где в WriteRequest делаешь передачу/прием на 9600. после успешного окончания транзакции (когда совпали переданные и принятые данные), переходишь в состояние ReadResponse. в ReadResponse переконфигурируешь на 115200 и обрабатываешь readyRead(). т.е. здесь ты знаешь какое у тебя текущее состояние, и, следовательно в обработчике readyRead() ты всегда знаешь что нужно делать с принимаемыми данными. эти состояния можно не вводить вообще, т.к. зная текущую скорость ты всегда знаешь что делать с принятыми данными.. если скорость 9600 - то это просто эхо от запроса, если 115200 - то это ответ от устройства.. как-то так.. Название: Re: Реализация протокола 1-Wire на QSerialPort. Что-то туплю. Отправлено: smartchecker от Май 22, 2014, 11:21 Судя по qtcentre ты уже по этим граблям ходил.
Есть ли у тебя пример кода? А то я что-то застрял. Название: Re: Реализация протокола 1-Wire на QSerialPort. Что-то туплю. Отправлено: kuzulis от Май 22, 2014, 13:14 Цитировать Судя по qtcentre ты уже по этим граблям ходил. По 1-Wire не ходил. Цитировать Есть ли у тебя пример кода? Неа. Название: Re: Реализация протокола 1-Wire на QSerialPort. Что-то туплю. Отправлено: smartchecker от Май 22, 2014, 13:21 Тогда объясни подробнее что ты имел ввиду под словами state machine?
Это http://qt-project.org/doc/qt-4.8/statemachine-api.html (http://qt-project.org/doc/qt-4.8/statemachine-api.html) или нечто абстрактное? Название: Re: Реализация протокола 1-Wire на QSerialPort. Что-то туплю. Отправлено: kuzulis от Май 22, 2014, 16:38 Абстрактное. (http://ru.wikipedia.org/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
Хотя, возможно, можно и Qt State Machine Framework прикрутить если очень нужно. |