Сообщение от Valera0141
А зачем избавляться от msg = new byte[msgLength] {0x00};, если это в памяти выделяет место под массив с нужным размером, а потом его заполняет циклом из псп. Без этого в переменную какую то белеберду заносит. Или я что то не знаю?
Обновил немнгого код https://drive.google.com/file/d/1rIP...ew?usp=sharing, добавив удаление из памяти заполненные переменные msg и всё, что с ним связано. Ардуино всё равно зависает в момент чтения. Ещё видно, что она перезагружается один раз сама по себе (видно по повторному выводу надписи Start). Вот лог
|
За тем что нет смысла удалять и создовать динамический массив в каждом цикле. Статический намного проще. Тем болле что в новом коде ты удаляешь его не в том месте.
dee098 добавил 27-01-21 в 0:Jan p
Тоже самое могу сказать и про весь остальной код. Огромное клличество new и delete в generateSysconResponses и дочерних функциях.
dee098 добавил 27-01-21 в 0:Jan p
Мой статический код работает часами (я не тестировал его более 3 часов за раз), а ваш вылетает за десяток циклов.
dee098 добавил 27-01-21 в 0:Jan p
И самое главное добавить ответ на запрос в лог.
Последний раз редактировалось dee098; 27.01.2021 в 11:02.
Причина: добавил, подумав
|