Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
necheyhin_a_v
3 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 60
1

QExtSerialPort чтение и запись flash

02.03.2013, 18:44. Просмотров 1784. Ответов 8
Метки нет (Все метки)

Здравствуйте уважаемые форумчане!
Появилась такая проблемка: есть какая-то железячка(производимая фирмой), так вот электронщик кинул мне документацию по протоколу работы с СОМ Binary Mode Protocol. Суть его следующая:
1 байт - нулевой
2 байт - в зависимости от битов утанавливает команду для чтения, команду для записи, автоинкремент и флаг
3 байт - address high byte
4 байт - address low byte
5 байт - длина данных
с 6 байта - сами данные

Так вот! Возникает вопрос Как работать с классом QExtSerialPort на столь низком уровне?
Формировать свой ArrayByte и перед данными формировать 5 байт заголовка? Или вообще как? И там я почитал настройки, которые использует этот класс Если можно поподробнее об этих настройках!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2013, 18:44
Ответы с готовыми решениями:

Qextserialport
Здравствуйте! Подключила библиотеку qextserialport,скомпилировалась без ошибок. Но при создании...

Qextserialport + Qwt
Всем привет! Написал программу используя Qextserialport. Все работает нормально, но когда я...

Отправка данных на микроконтроллер [QextSerialPort]
Доброе утро форумчане! имеется код #include <QtGui/QApplication> #include "mainwindow.h"...

Не устанавливаются библиотеки QExtSerialPort и QtSerialPort
Выручайте, не могу установить библиотеки. QExtSerialPort без проблем собрал, но когда пытаюсь...

QextSerialPort C++ как передать ASCII code
Всем привет. Пишу программку для получения данных из АЦП. Проект собирается, QextSerialPort...

8
raxp
10192 / 6575 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
02.03.2013, 21:20 2
так вот электронщик кинул мне документацию по протоколу работы с СОМ Binary Mode Protocol. Суть его следующая
предпочитаю избегать испорченного телефона. Доку в тему.

Как работать с классом QExtSerialPort на столь низком уровне
а так и работать в асинхронном режиме, настроить обертку (см. методы класса) на скорость, паритет, битность, таймауты, размер буфера и Read(), Write().

Описание http://code.google.com/p/qextserialport/wiki/QextSerialPort_1_2_Beta2
1
necheyhin_a_v
3 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 60
03.03.2013, 05:10  [ТС] 3
Цитата Сообщение от raxp Посмотреть сообщение
предпочитаю избегать испорченного телефона. Доку в тему.

а так и работать в асинхронном режиме, настроить обертку (см. методы класса) на скорость, паритет, битность, таймауты, размер буфера и Read(), Write().

Описание http://code.google.com/p/qextserialport/wiki/QextSerialPort_1_2_Beta2
Вот вся документация, которая имеется
0
Миниатюры
QExtSerialPort чтение и запись flash   QExtSerialPort чтение и запись flash   QExtSerialPort чтение и запись flash  

QExtSerialPort чтение и запись flash  
raxp
10192 / 6575 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
03.03.2013, 09:59 4
...приложите оригиналы этих кусков трех разных документов, вырванных из общего контекста, в полном объеме, которые к тому же сфотографированы под углом в ужасном качестве.
0
03.03.2013, 09:59
necheyhin_a_v
3 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 60
03.03.2013, 10:30  [ТС] 5
Цитата Сообщение от raxp Посмотреть сообщение
...приложите оригиналы этих кусков трех разных документов, вырванных из общего контекста, в полном объеме, которые к тому же сфотографированы под углом в ужасном качестве.
Это вся информация, что у меня есть! Все то, что не в таблице, это своего образа мануал для меня написанный им же
0
necheyhin_a_v
3 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 60
20.03.2013, 15:59  [ТС] 6
Всем спасибо за помощь! По истечении 2 недель и плотной работой с человеком, поставившим задание все-таки разобрался
0
raxp
10192 / 6575 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
20.03.2013, 17:46 7
...но мы то плотно не можем пообщаться с этим человеком ...какую информацию удалось выудить методом терморектального криптоанализа?
1
necheyhin_a_v
3 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 60
20.03.2013, 20:21  [ТС] 8
В общем если кратко, то алгоритм выглядит следующим образом:
1. Отправляем команду тип данных для флеш. Для этого я сформировал массив байтов
C++ (Qt)
1
2
3
4
5
6
7
8
9
typeData[0] = 0x00; //Not used
typeData[1] = 0x21; //Command Write 0010 0001
typeData[2] = 0x00; //High address byte
typeData[3] = 0x00; //Low address byte
typeData[4] = 0x4; //length 4 bytes
typeData[5] = 0x00; //Type data...
typeData[6] = 0x00; //...
typeData[7] = 0x00; //...
typeData[8] = 0x00; //...
Сначала вот эта дребедень отправляется в COM порт. Затем есть очень похожий
C++ (Qt)
1
2
3
4
5
headerPackage[0] = 0x00; //Not used
headerPackage[1] = 0x21; //Command write
headerPackage[2] = 0x00; //High address byte
headerPackage[3] = 0x00; //Low address byte
headerPackage[4] = 0x00; //length 256 bytes
После отправки заголовка можно пихать 256 байт данных. Каждые 256 байт необходимо оборачивать в заголовок(пакет). Можно и меньше, но мне пришлось дополнять остаток до пакета фиктивными данными(не знаю зачем им это нужно было). После отправки пакета, отправляем в порт команду изменю только те байты, которые менялись:
C++ (Qt)
1
2
3
headerTypeData[1] = 0x11; //Read command
headerTypeData[3] = 0x03; //Low address byte
headerTypeData[4] = 0x04; //Length data
После отправки команды на чтение, ждем, когда запишется эти несчастные 256 байт. Для этого читаем из порта 4 байта, и если 1, то запись еще выполняется, если 0, то запись завершена, можно дальше писать данные! Это специфичный пример, но все-же может кому пригодиться)))
2
raxp
10192 / 6575 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
20.03.2013, 20:36 9
...что за флеш? SD-CARD, EEPROM (SPI, I2C)? На работу с EEPROM непохоже.

Это самопал - девайс или работа стандартизирована?
0
20.03.2013, 20:36
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2013, 20:36

Чтение и запись в файл
Добрый день.С qt работаю недавно и столкнулся с такой проблемой,а именно критической ошибкой в...

Чтение/Запись QTableWidget
Реализовал Запись в файл и чтение из файла данных из QTableWidgeta. Проблема в том, что чтение...

Запись и чтение из бинарного файла
Есть программа написанная на языке C++, нужно ее изменить так, чтобы сериализация и десериализация...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru