Еще раз. Перейдите на передачу строк по ссылке в и из функций. У вас временный обьект строки при передаче параметра и при возврате значения ставит барьер в кучу, который провоцирует сегментацию.
Перезагрузка помогает.
Вы наблюдаете невозможность переварить накопившийся обьем данных в смс. Необходимо при перезагрузке также сбрасывать sim800, что и происходит при перезаливке программы, когда вы снимаете питание с модуля.
Да, в скетче забыл удалить.Переживу.
Как неуловимый Джо.(никому не нужен)
Чувство юмора и хорошее настроение это здорово,хотелось бы по делу чего-нибудь почитать.
Все равно спасибо.
Добрый день.ошибки сейчас нет.
Изменения сохранил,скомпелировалось норм.
Вместо слова “беда” я “попросил” прислать мне СМС.
Не знаю пришлёт или нет.
Месяц смотреть в монитор порта нет возможности.
Как я уже писал,ардуинка продолжает работать и может отправлять смс(адекватно,согласно программе)
Но не может их(смс) обрабатывать тоесть
Достать текст и отреагировать на него,при этом в монитор порта пишет о приходе смс
Дааа, совсем нет навыка отладки.
Делаете свой класс с теми же самыми функциями, что и у sim800. Прием из эфира эмулируете через последовательный порт. Отправку в эфир тоже через него. Подменяете класс сим800 на свой. Запускаете и начинаете “радиообмен” используя данные из файла. Ошибку словите, если она есть, через 5 минут. Уберете delay (для эмуляции ждать радиообмена не надо), цикл отладки будет занимать секунды.
Но, воля ваша, можете ждать сообщения неделю. Толку от вашей диагностики - вы все равно получаете нерабочий прибор, о его ошибке говорит и поломка разбора сообщений и если вдруг отправка вашей диагностики. Вы никакой новой информации не получаете. Но схлопочете следующее: ошибка выделения памяти не однократная. Ваше устройство, если аварийная отправка сработает, выплюнет вам огромное количество сообщений. Не забудьте счет пополнять 8)))))
Обычно для диагностики факт ошибки пишется в епром. Причем пишется только первая ошибка из каждого подмножества ошибок. Подробно: время, сопутствующие параметры. Далее либо периодически, либо по запросу, либо при личном визите протокол ошибок добывается наружу.
Причем процедуры протоколирования и выдачи данных наружу должны быть реализованы без использования динамической памяти и прочих “заканчивающихся” ресурсов, т.е. работать всегда, как бы плохо устройству ни было. И обычно сначала реализуется диагностическая часть программы, а потом в устройство по одной добавляются функции. Так вы всегда имеете представление о том что происходит и ловите ошибку в момент ее появления в коде, а не когда их появилось много и вы из-за глюков перестали понимать что происходит.
Спасибо.Навыка нет ибо я не программист,но сдаться ка и уср…ся никогда не поздно .
Можно сравнительно недорого заказать у профессионалов (коих тут много)готовый код по моим хотелкам и ,учитывая стоимость времени, потраченного мною на сию затею,возможно будет более рационально и гарантировано качественно и значительно быстрее.Тогда это будет “победа железяки”.
Сей исход меня не устраивает.
Спасибо всем за любую помощь и потраченное на меня время