|
-22 / 1 / 0
Регистрация: 29.08.2013
Сообщений: 49
|
|||||||||||
Чтение данных из COM порта в массив20.08.2014, 19:32. Показов 4396. Ответов 4
Метки нет (Все метки)
задача следующая. прочитать байты приходящие из ком порта и положить их в массив.
вот код в котором для теста по нажатию кнопки происходит чтение байта из ком порта и отображается в текстовом поле на экране - это работает. надо сделать чтобы чтение данных происходило постоянно от нажатия кнопки старт до нажатия кнопки стоп и чтоб это не грузило процессор компа на 100 процентов. то есть пришли данные на ком порт, программа прочитала положила в массив и ждёт следующего прихода данных не грузя проц и не зависая. если попользоваться командой sleep или сделать постоянное чтение вернувшись в началоgoto read_port; то прога висит и грузит проц. для удобства сначала код в обработчике кнопки, и весь код если нужно.
0
|
|||||||||||
| 20.08.2014, 19:32 | |
|
Ответы с готовыми решениями:
4
Чтение данных с COM-порта Чтение данных с COM-порта Чтение данных с COM порта |
|
90 / 109 / 15
Регистрация: 26.01.2014
Сообщений: 710
|
|
| 20.08.2014, 20:11 | |
|
Не помню точно, но по моему COMу дано прерывание. Попробуй поиграть им.
Твой Etien.
0
|
|
|
20 / 20 / 3
Регистрация: 25.05.2011
Сообщений: 62
|
|
| 22.08.2014, 14:07 | |
|
Не использовал wxWidgets, но вам очевидно нужно потоковое чтение. Погуглил, вот есть: http://docs.wxwidgets.org/trun... tream.html
Т.е. вам надо привязать объект типа wxFFile к вашему файловому дескриптору порта, а затем использовать методы canRead и Read или ReadAll. Подробнее пока не могу, поскольку некогда мучаться со сборкой/настройкой этого
0
|
|
|
-22 / 1 / 0
Регистрация: 29.08.2013
Сообщений: 49
|
||||||||||||||||
| 22.08.2014, 18:35 [ТС] | ||||||||||||||||
|
на входе ком порта сыпятся данные в хексе типа AA E3 C7 91 FE
мне надо прочитать их, преобразовать в числа к примеру - 56 67 89 45 33 и записать в массив. пока не знаю как преобразовать. наверно можно без потокового чтения? нужно просто выделить из всего потока одну такую последовательность из 5 чисел в хексе. весь поток писать не нужно. когда проверяю iIn, то он равен 255, значит данные в буфер считались? когда пытаюсь посмотреть что записалось в буфер - преобразовать в текст и высветить в текстовом поле - пару кракозябров всего высвечивает. по идее должно быть много, ведь буфер256. попытки записать результат в файл чтобы посмотреть что получилось при чтении программой пока не увенчались успехом - в файле пусто. при записи в файл терминалкой - всё нормально, пишет AA E3 C7 91 FE и т д
хочется вывести в консоль типа такого
Добавлено через 33 минуты попытался вывести результат в файл чтобы посмотреть что пришло. iIn равно 255 (иногда другое число скажем 156 или 48) значит типа данные записались в буфер? в файл пишутся только буквы t без пробелов - tttttttttttttttttttttttttttttttt в TextCtrl1 видно 2-3 кракозябра как увидеть то что пришло и работать с ним?
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 28.07.2017
Сообщений: 5
|
|
| 28.08.2017, 09:14 | |
|
очень знакомый код, точнее та часть что с СОМ дружит я его лет восемь назад выкладовал, кстате он был как демонстрация работы COM, после iIn=read(fd,buf,8);
было еще printf..... а далее зациклеволось, не понимаю зачем описовать ввашем случае метку <read_port:> //sleep(20); //goto read_port; это было создано исключительно для демонстрации. в ващем случае создана ошибка при каждом обращени void j9Frame::OnButton2Click(wxCommandEvent& event) происходит установка порта, установка порта должна быть оди раз. либо когда смена параметров происходит.
0
|
|
| 28.08.2017, 09:14 | |
|
Помогаю со студенческими работами здесь
5
Чтение данных с COM порта Чтение данных из COM порта Чтение данных из com-порта Чтение данных с COM-порта Чтение данных с COM/RS232 порта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|