Блок пользователя для работы с GSM

Создаем свой блок. Вопросы, помощь знатоков.
Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#381

Сообщение Слимпер » 17.11.2016{, 14:38}

НовыйUser, Вот добавил паузу после приема смс перед проверкой статуса связи.

Насчет частоты сети, надо думать, если делать через параметр, т.е. менять на ходу нельзя, то все вроде просто, еще одна команда при инициализации.
А вот если делать возможность сменить на ходу, тут ситуация другая, много вопросов к последовательности действий.
Для скачивания вложений Вы должны быть зарегистрированы.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#382

Сообщение Слимпер » 17.11.2016{, 15:10}

НовыйUser писал(а):delay поставил?
Нет его я вообще стараюсь не использовать, у меня и так была переменная где хранилась время последней проверки статуса сети. Просто в случаи получения смс, в эту переменную записывается текущее время, тем самым откладывается начало процедуры опроса статуса сети. 
НовыйUser писал(а):да. вариант.
Попробую сделать, но проверять сам будешь не охота искать макетку с М590.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#383

Сообщение Слимпер » 17.11.2016{, 16:12}

НовыйUser писал(а):я пока не затестирую до безупреченого все возможные баги в работу не отправлю сборку.
Похвальный подход.

Попробовал добавить  выбор частоты, будет ли работать, да и как проверить, не знаю.

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

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#384

Сообщение Слимпер » 18.11.2016{, 14:44}

НовыйUser писал(а):скорость обмена 115200
А меньше скорость не пробовал ставить?
НовыйUser писал(а):убрал с 10 до 7 символов самое длинное смс. Ошибок пока нет.
странно, как длинна влияет.
Вообще если будет возможность проверить напрямую, приеме нескольких сообщений, записать лог с помощью AL Terminal, может  что будет видно будет.
НовыйUser писал(а):Задержка между принятием смс 1-2-3 итд не изменилась с фиксом ошибки в 111 блоке ?
Там задержки приема вообще нет. Задержка только на опрос статуса соединения.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#385

Сообщение Слимпер » 18.11.2016{, 16:31}

НовыйUser писал(а):тут акцент в том что при паузе между принятием смс ошибок вроде нет...и длинная смс приходит... но если накидать их быстро.. то 3ая крешет окончание 10 символа... может какой-нибудь буффер обработки переполняется когда мега не успевает обработать и очистить для входа нового текста?
Такое возможно, я другой случаи с сталкивался с переполнением.
Вообще, а что еще кроме блока работы с М590 еще выполняется контроллером?
Меня интересую такие вещи как датчики, экраны.
Возможно после приема перовой смс, надо отключать исполнение всех других вещей

Еще как вариант можно попробовать

Flprog\ide\hardware\arduino\avr\cores\arduino\HardwareSerial.h

Открыть файл, найти там строку

#define SERIAL_RX_BUFFER_SIZE 64

64 заменить на 128 или 256

Так мы увеличим размер буфера приема данных.

Но при этом будет занята больше оперативной памяти и эти изменения касаются все компилируемых проектов.
Последний раз редактировалось Слимпер 18.11.2016{, 16:32}, всего редактировалось 1 раз.

Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21.09.2016{, 06:50}
Репутация: 1
Откуда: Донецк
Имя: Юрий

Блок пользователя для работы с GSM

#386

Сообщение ElectroMechaniC » 19.11.2016{, 11:27}

Привет. А где скачать самую свежую версию блока? Спасибо.
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#387

Сообщение Слимпер » 19.11.2016{, 11:53}

ElectroMechaniC писал(а):Привет. А где скачать самую свежую версию блока? Спасибо.
Вообще проверенные версии обычно выкладываю здесь
Но для М590 сейчас есть еще в  сообщении №492, но ее еще тестирует НовыйUser, когда скажет, что все хорошо, перенесу ее в блоки пользователей.

zhulen820
Сержант
Сообщения: 162
Зарегистрирован: 29.08.2016{, 22:44}
Репутация: 5
Откуда: Серпухов
Имя: Александр

Блок пользователя для работы с GSM

#388

Сообщение zhulen820 » 19.11.2016{, 12:30}

Блок для А6. V0.4 тестирую все. Проблемы были из-за отсутствия нормального сигнала сети. В виду ограниченности свободного времени тестирование затягивается. Проблема в следующем. При приеме блоком второй смс (первая отображает нормально) на выходе textsms формируется +creg 1.1 , появляется ошибка 3 и пропадает логичская еденица с выхода NET. Дальше блок отказывается принимать команды. Сигнал с выхода start не пропадает. Кажется схожую проблему только обсуждали у m590.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#389

Сообщение Слимпер » 19.11.2016{, 12:36}

zhulen820, Сделайте лог если возможно. Может опять особость модуля, доп сообщения и т.д.
Вечером посмотрю, сейчас занят.

zhulen820
Сержант
Сообщения: 162
Зарегистрирован: 29.08.2016{, 22:44}
Репутация: 5
Откуда: Серпухов
Имя: Александр

Блок пользователя для работы с GSM

#390

Сообщение zhulen820 » 19.11.2016{, 12:50}

Тоже занят. На днях сделаю

Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21.09.2016{, 06:50}
Репутация: 1
Откуда: Донецк
Имя: Юрий

Блок пользователя для работы с GSM

#391

Сообщение ElectroMechaniC » 19.11.2016{, 14:08}

Можно ли использовать данный блок в проэкте с м590, если викачестве основы взят УНО?
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#392

Сообщение Слимпер » 19.11.2016{, 16:35}

ElectroMechaniC писал(а):Можно ли использовать данный блок в проэкте с м590, если викачестве основы взят УНО?
Можно, возможно использовать  SoftwareSerial (т.е. почти любых два пина для подключения), подробнее про настройку в описании блока.
По умолчанию настроено как раз вариант SoftwareSerial, а пины для подключения настраиваются через параметры блока.

Правда бывают проблемы со скоростью работы, на 115200 может не заработать.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#393

Сообщение Слимпер » 19.11.2016{, 19:14}

НовыйUser писал(а):еще мысль появилась...а не может ли переполнение буфера совпадать с приемом смс и взаимодействием блока с модулем через команды опроса , к примеру параметры (time wait и time net) ?
Не должно, я делал так, чтобы одновременно не могло выполняться больше одного действия.
После каждой команды идет ожидание ответа, до отправки новой, а одна команда это 10 -15 байт, не как не может переполниться. К тому же буферы приёма и передачи разные.

Единственное, что реально возможно это то что сообщения сыпятся быстрее, чем блок успевает их обработать и тогда да буфер может заполнится.

И еще бывает спам от провайдера оператора приходит, может он влияет, там любят длинные сообщения.
Последний раз редактировалось Слимпер 19.11.2016{, 19:25}, всего редактировалось 1 раз.

Kacheg1987
Рядовой
Сообщения: 20
Зарегистрирован: 20.09.2016{, 18:40}
Репутация: 0

Блок пользователя для работы с GSM

#394

Сообщение Kacheg1987 » 20.11.2016{, 15:42}

Если поможет, то из опыта пользованием вашего блока. При приеме смс на выходе call реально идет куча информации, которая очень быстро меняется. Пробовал выводить ее на дисплей 4х20, так контроллер аж подвисал в процессе приема смс и отправки ее содержимого на жк дисплей. Секунд 10 дисплей просто светится всеми кристаллами (наверно текст не влазит), затем как то текст делится по строкам, появляется номер абонента, отправившего смс и другие данные, затем сам текст смс. Когда убрал вывод индикацию на дисплей, зависания исчезли.

PS/ Большое Всем спасибо кто принимал участие в создании блока, очень меня выручили.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#395

Сообщение Слимпер » 21.11.2016{, 20:37}

НовыйUser писал(а):если по кол-ву гудков сравнить строки (прим. 1=1 далее сброс звонка) то в таком случае вегда активна будет цепь т.к  кол-во гудков сбрасывает при поступлении нового звонка...
Странно, 
Reject_call - по переднему фронту сбрасывает входящий вызов (отбой), разрывает установлено голосовое соединение.

Что же тогда происходит?
Ладно завтра вечером, посмотрю код блока, где может глюки вылазить.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#396

Сообщение Слимпер » 22.11.2016{, 16:59}

НовыйUser писал(а):я не много не понимаю что значит передний и задний фронт...


Передний фронт -  момент перехода из 0в 1
Задний фронт -    момент перехода из 1в 0 
НовыйUser писал(а):проверяю параметр Time_NET = 0
Time_Net - Период опроса модуля на связь с сетью, мсЦитата 0-опрос отключен.

Проверял, намеренно без проверки соединения?
НовыйUser писал(а):Дим, это time_net перебивает запросами в момент чего-то... возможно во время принятия смс... и не может получить результат - выдает ошибку3 и отсутствие регистрации в сети.   вообщем при нулевом параметре опроса - все ок !
Тут скорее пришедшая смс может перебивает процедуру запроса соединения связи.

Надо подумать, как это исправить.
Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось Слимпер 22.11.2016{, 17:10}, всего редактировалось 1 раз.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#397

Сообщение Слимпер » 22.11.2016{, 18:35}

Немного переделал блок, в попытки исключить возможность этой ошибки.
Надеюсь ни чего  не поломал.
Для скачивания вложений Вы должны быть зарегистрированы.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#398

Сообщение Слимпер » 24.11.2016{, 19:25}

НовыйUser писал(а):проверь пожалуйста один момент.  какие-то глюки (левое фото) сброса по переднему фронту через переменную без указания ее начального состояние false (соединение call и reject_call)и нормально работает (среднее фото без TRUE-переменная)
Первая и последняя картинки без дополнительной записи в эти переменные false, не будет работать.
Получается, что после первого звонка в переменную записывается 1, но после прекращения звонка она там остается, так как ее нечем перевести в ноль.

Добавлено (24.11.2016, 19:25)
---------------------------------------------
НовыйUser писал(а):дополнительнопо общим наблюдение чуть замедлилась обработка блока на 0.3-0.5с
Вот это меня удивило, вроде не чего что могло повлиять на скорость работы блока не менял.
Хотя, а что имеешь виду под обработкой блока?

kartukov
Рядовой
Сообщения: 5
Зарегистрирован: 23.11.2016{, 23:24}
Репутация: 0
Откуда: Ульяновск

Блок пользователя для работы с GSM

#399

Сообщение kartukov » 25.11.2016{, 00:15}

Хоче прикрутить к блоку SD карту с файлом *.csv, которая была бы как телефоннаякнига на 10.000 тел. номеров и по запросу номера строки выдергивать нужный
номер телефона.
Вот что сделал:            по номерубита определяю начало строки и выдергиваю нужное количество бит в ком порт, а вот вывести из блока как переменную в виде строки или числа не могу. Помогите
дописать, пожалуйста.

// открыть файл с именем *.csv
File myfile = SD.open("tel1.csv");

// если файл доступен, прочитать его
if (myfile)
{
  myfile.seek(NomString);           // начать чтение с определенного мес
for (; myfile.available() && n < 12; Serial.write(myfile.read()), n++);   // чтение нужного количества бит
{
Serial.write(myfile.read()); //отправляет в ком порт
n = 0;
}
myfile.close();   //закрыть файл
}
else // если файл не может быть открыт, то выдать сообщение об ошибке
{
Serial.println("error opening the text file"); //ошибка файл не обнаружен
}
Для скачивания вложений Вы должны быть зарегистрированы.

Слимпер
Майор
Сообщения: 1009
Зарегистрирован: 06.09.2015{, 16:56}
Репутация: 25
Откуда: Новосибирск

Блок пользователя для работы с GSM

#400

Сообщение Слимпер » 25.11.2016{, 12:15}

НовыйUser, пока занят, вечером или завтра попробую ответить.

Ответить

Вернуться в «Разработка пользовательских блоков»