artemkad 69 29 марта, 2020 Опубликовано 29 марта, 2020 · Жалоба Я правильно понимаю, что цепочки команд одной строкой типа описанных в разделе "Combining AT commands on the same Command line" в Sim800(C) работают как Бог на душу положет и лучше не выпендриваться и отправлять по одной команде? Или таки где-то есть документ описывающий чего вместе можно комбинировать, а чего нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aleksandr-zh 4 29 марта, 2020 Опубликовано 29 марта, 2020 · Жалоба странно читать такое от Вас! У разных команд разное время выполнения. Приёмный буфер модема тут не очень поможет. Я каждую команду даю отдельно и жду подтверждения "OK" или аналогичного ответа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 69 29 марта, 2020 Опубликовано 29 марта, 2020 · Жалоба Ну и причем тут время? Что, к примеру, мешает в цепочке выполнить команду +CREG=1; причем с честным лицом сообщив на всю цепочку Ok . Причем самая большая проблема как раз в том, что модуль молча игнорирует команды без каких-то о том сообщений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aleksandr-zh 4 29 марта, 2020 Опубликовано 29 марта, 2020 · Жалоба версия прошивки какая? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 69 29 марта, 2020 Опубликовано 29 марта, 2020 · Жалоба 21 minutes ago, aleksandr-zh said: версия прошивки какая? Revision:1418B05SIM800C32_BT_EAT Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aleksandr-zh 4 29 марта, 2020 Опубликовано 29 марта, 2020 · Жалоба Хм. У меня иная. Надо проверить как в имеющихся модулях работает... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 5 29 марта, 2020 Опубликовано 29 марта, 2020 · Жалоба 3 часа назад, artemkad сказал: Я правильно понимаю, что цепочки команд одной строкой типа описанных в разделе "Combining AT commands on the same Command line" в Sim800(C) работают как Бог на душу положет и лучше не выпендриваться и отправлять по одной команде? Или таки где-то есть документ описывающий чего вместе можно комбинировать, а чего нет? Ну, документа такого я не видел, и вряд ли он есть. А вот рекомендацию не посылать команды одной строкой где-то видел. Да и какой в этом смысл? Времени нет? Как вы проверять выполнение каждой команды будете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 69 29 марта, 2020 Опубликовано 29 марта, 2020 · Жалоба 1 hour ago, Baser said: Да и какой в этом смысл? Времени нет? Как вы проверять выполнение каждой команды будете? Речь, естественно, о командах настроек. Смысл - в иннициализацию не влазят URC от модема и, соответственно, их обработка. По сути, для обеспечения атомарности операции настройки. Проверка - по "ОК|ERROR" на всю строку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 228 30 марта, 2020 Опубликовано 30 марта, 2020 · Жалоба 5 часов назад, artemkad сказал: Речь, естественно, о командах настроек. Смысл - в иннициализацию не влазят URC от модема и, соответственно, их обработка. По сути, для обеспечения атомарности операции настройки. Проверка - по "ОК|ERROR" на всю строку. Почему думаете что "не влазят"? Имхо - URC может прийти в любой момент. И между отправкой команды к SIM800 и ответом SIM800 - тоже вполне может. Может и несколько прийти. А если на какую-то команду SIM800 даёт несколько последовательных ответов, то URC может прийти между этими ответами. И ПО должно быть рассчитано на все такие случаи. А тогда нет никакой выгоды от склейки нескольких команд в одну строку. Наоборот - по одной команде проще обрабатывать (ожидать ответ на команду параллельно обрабатывая входящие URC). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 69 30 марта, 2020 Опубликовано 30 марта, 2020 · Жалоба 4 hours ago, jcxz said: Почему думаете что "не влазят"? Имхо - URC может прийти в любой момент. И между отправкой команды к SIM800 и ответом SIM800 - тоже вполне может. Вполне может - между отправкой настроек и формальным ОК(если там не ОК, то проблема в консерватории и силами программы вряд-ли решаема), а не между разными командами настройки. Т.е. настройки гарантировано модему передадутся все и не возникает ситуация когда приходится обрабатывать URC c наполовину настроенным модемом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 228 30 марта, 2020 Опубликовано 30 марта, 2020 · Жалоба 21 минуту назад, artemkad сказал: Т.е. настройки гарантировано модему передадутся все и не возникает ситуация когда приходится обрабатывать URC c наполовину настроенным модемом. Передаётся строка во внутренний приёмный буфер. А затем команды из этого буфера начинают выполняться. По очереди. По одной. И URC может прийти в любой момент хоть между этими командами. "С наполовину настроенным". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 69 30 марта, 2020 Опубликовано 30 марта, 2020 · Жалоба 9 hours ago, jcxz said: Передаётся строка во внутренний приёмный буфер. А затем команды из этого буфера начинают выполняться. По очереди. По одной. И URC может прийти в любой момент хоть между этими командами. "С наполовину настроенным". Да, да, сохранение десятка переменных в оперативке это столь длительный процесс, что процессор модуля успеет тысячи раз переключиться на другие задачи и отправить из них сотни URC. Впрочем, для внешнего процессора это не будет иметь особого значения - он все настройки передал и свободен принимать и обрабатывать любые сообщения от модуля... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 30 марта, 2020 Опубликовано 30 марта, 2020 · Жалоба По факту - цепочки команд в SIM800 работают безобразно (в том числе и в последней версии). То, что не вызывало никаких проблем в SIM900, здесь дает совершенно непредсказуемый результат, причем он может зависеть от положения звезд на небе. И это касается не только команд на этапе инициализации. Использовать можно, но с осторожностью, проверять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 228 30 марта, 2020 Опубликовано 30 марта, 2020 · Жалоба 4 часа назад, artemkad сказал: Да, да, сохранение десятка переменных в оперативке это столь длительный процесс, что процессор модуля успеет тысячи раз переключиться на другие задачи и отправить из них сотни URC. Не говорите ерунды - выполнение AT-команд это не "сохранение десятка переменных в оперативке". Странные у вас представления о работе GSM-модуля... И насчёт некой "атомарности" выполнения цепочек команд - это ничем не обоснованные фантазии. Или приведите документ где об этом сказано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 69 31 марта, 2020 Опубликовано 31 марта, 2020 · Жалоба 5 hours ago, jcxz said: Не говорите ерунды - выполнение AT-команд это не "сохранение десятка переменных в оперативке". Странные у вас представления о работе GSM-модуля... Ну, расскажите нам, что тогда еще GSM-модуль делает по командам? ATE0 AT+CREG=1 AT+CLIP=1 AT+COLP=1 AT+CRC=1 AT+CSCS="GSM" AT+CMGF=1 AT+CNMI=2,2 AT+CSCLK=1 AT+CMEE=1 Думаю всем будет интересно послушать. Причем замечу, ни одна из них даже не автосохраняемая... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться