0 / 0 / 0
Регистрация: 07.06.2023
Сообщений: 8
|
|||||||||||
1 | |||||||||||
Данные через порт_сортировка_вывод на монитор28.09.2023, 19:55. Показов 574. Ответов 14
Метки нет Все метки)
(
Здравствуйте. Нужна помощь в проекте.
Комп принимает данные через serial port, примерный вид - 1 0 1 0 0 140 +34 -23 1 0... и т. д. Программа читает данные строки, разделяет данные по пробелу и записывает в переменные. По данным переменных выводится инфа на экран и меняется label. Данные постоянно обновляются. При запуске кода вылетает окно Widget и аварийно завершается (ASSERT failure in QList<T>::operator[]: "index out of range", file /usr/include/x86_64-linux-gnu/qt5/Qt..ore/qlist.h, line 579 ) mainwindow.cpp
0
|
|
28.09.2023, 19:55 | |
Ответы с готовыми решениями:
14
PC не видит второй монитор через VGA Mainboard, первый монитор работает через DVI графиккарты Монитор через пк показывает лучше, чем монитор через ноутбук. В чём проблема? Через некоторое время после работы за компьютером отключается Монитор/Монитор, Клавиатура, мышь Монитор на двух компьютерах пишет no signal detected, а при подключении через нетбук монитор показывает картинку Игры дико лагают через основной монитор, а через hdmi все летает |
944 / 566 / 165
Регистрация: 30.03.2021
Сообщений: 1,899
|
|
28.09.2023, 20:45 | 2 |
строки 67-83: если элементов в списке меньше 16 или он пустой = UB
0
|
фрилансер
5221 / 4757 / 1000
Регистрация: 11.10.2019
Сообщений: 12,475
|
|
28.09.2023, 21:15 | 3 |
странный цикл. В чём смысл этих строк
int varN = dataList[N-1].toInt(); ? Просто убери ихДобавлено через 1 минуту это всё тоже не нужные действия, можно удалить эти строки
0
|
0 / 0 / 0
Регистрация: 07.06.2023
Сообщений: 8
|
||||||
29.09.2023, 10:40 [ТС] | 4 | |||||
Всего 17 переменных, не больше и не меньше.
Сделал так:
0
|
фрилансер
5221 / 4757 / 1000
Регистрация: 11.10.2019
Сообщений: 12,475
|
||||||
29.09.2023, 10:54 | 5 | |||||
SergioSV,
0
|
0 / 0 / 0
Регистрация: 07.06.2023
Сообщений: 8
|
||||||
29.09.2023, 17:27 [ТС] | 6 | |||||
Без этого не работает, ошибку выдает
Сейчас сделал так, в порт выдает данные, но когда только запускаю, появляется главный widget и label и начинают идти данные, то появляется сообщение что программа не отвечает, но данные в порт идут!
0
|
фрилансер
5221 / 4757 / 1000
Регистрация: 11.10.2019
Сообщений: 12,475
|
|
29.09.2023, 17:50 | 7 |
пока из порта идут данные, программа будет превращаться в тыкву
---------- опять лишнее действие (хотя, тут оно ничего не делает всё равно) ---------- код жуткий, на быстродействие положен огромный болт )))
0
|
0 / 0 / 0
Регистрация: 07.06.2023
Сообщений: 8
|
|
30.09.2023, 01:21 [ТС] | 8 |
Я понимаю что до идеала далеко и здесь бы не было бы вопросов если бы все хорошо работало!
Можете помочь? Добавлено через 6 минут Уже переписал код , данные есть, но как сказано выше и тут конечно ступор немного....
0
|
фрилансер
5221 / 4757 / 1000
Регистрация: 11.10.2019
Сообщений: 12,475
|
||||||
30.09.2023, 08:25 | 9 | |||||
SergioSV, я бы сделал работу с портом в отдельном потоке. Ну а тут я бы перевёл чтение в слот от сигнала
[signal] void QIODevice::readyRead() - так хотя бы не заткнётся очередь обработки сообщенийнасчёт этого я привёл обработку выше (пост №5). Кстати, можно даже упростить чуток
0
|
0 / 0 / 0
Регистрация: 07.06.2023
Сообщений: 8
|
||||||
30.09.2023, 09:52 [ТС] | 10 | |||||
0
|
фрилансер
5221 / 4757 / 1000
Регистрация: 11.10.2019
Сообщений: 12,475
|
|
30.09.2023, 10:36 | 11 |
SergioSV, если
MainWindow::readData() - это слот, который ты сейчас подключил к сигналу, то зачем тут наличие строк № 7, 8 и 13 ?что за ошибка? Как именно, когда и какие выводишь данные? Добавлено через 59 секунд опять же, зачем readline, если можно readAll
0
|
0 / 0 / 0
Регистрация: 07.06.2023
Сообщений: 8
|
|
30.09.2023, 10:50 [ТС] | 12 |
В зависимости от данных нужно поменять картинку, а где-то просто выводить температуру Если readALL то данные вразброс
0
|
0 / 0 / 0
Регистрация: 07.06.2023
Сообщений: 8
|
|
30.09.2023, 10:57 [ТС] | 13 |
0
|
0 / 0 / 0
Регистрация: 07.06.2023
Сообщений: 8
|
|
30.09.2023, 11:14 [ТС] | 14 |
0
|
![]() |
|
30.09.2023, 21:18 | 15 |
Выносите работу с портом в отдельный поток, пусть читает и через сигнал-слот отправляет данные в интерфейс.
0
|
30.09.2023, 21:18 | |
30.09.2023, 21:18 | |
Помогаю со студенческими работами здесь
15
Через что предпочтительнее подключить монитор, через HDMI или Display Port? Где лучше настраивать цвета монитора, через сам монитор или же через драйвер видеокарты? Погас монитор при работе с компьютером. Купил новый монитор - проблема та же: компьютер включается, монитор не реагирует Не получается отсортировать данные, полученные через api (не обновляются данные)
Монитор через HDMI( Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |