Перейти к содержанию
    

Комбинации команд в одной строке для Sim800

Я правильно понимаю, что цепочки команд одной строкой типа описанных в разделе "Combining AT commands on the same Command line" в Sim800(C) работают как Бог на душу положет и лучше не выпендриваться и отправлять по одной команде? Или таки где-то есть документ описывающий чего вместе можно комбинировать, а чего нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

странно читать такое от Вас!
У разных команд разное время выполнения. Приёмный буфер модема тут не очень поможет.
Я каждую команду даю отдельно и жду подтверждения "OK" или аналогичного ответа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну и причем тут время? Что, к примеру, мешает в цепочке выполнить команду

+CREG=1; 

причем с честным лицом сообщив на всю цепочку Ok .

 

Причем самая большая проблема как раз в том, что модуль молча игнорирует команды без каких-то о том сообщений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хм. У меня иная. Надо проверить как в имеющихся модулях работает...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, artemkad сказал:

Я правильно понимаю, что цепочки команд одной строкой типа описанных в разделе "Combining AT commands on the same Command line" в Sim800(C) работают как Бог на душу положет и лучше не выпендриваться и отправлять по одной команде? Или таки где-то есть документ описывающий чего вместе можно комбинировать, а чего нет?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Baser said:

 Да и какой в этом смысл? Времени нет? Как вы проверять выполнение каждой команды будете?

Речь, естественно, о командах настроек. Смысл - в иннициализацию не влазят URC от модема и, соответственно, их обработка. По сути, для обеспечения атомарности операции настройки. Проверка -  по "ОК|ERROR" на всю строку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, artemkad сказал:

Речь, естественно, о командах настроек. Смысл - в иннициализацию не влазят URC от модема и, соответственно, их обработка. По сути, для обеспечения атомарности операции настройки. Проверка -  по "ОК|ERROR" на всю строку.

Почему думаете что "не влазят"? Имхо - URC может прийти в любой момент. И между отправкой команды к SIM800 и ответом SIM800 - тоже вполне может. Может и несколько прийти. А если на какую-то команду SIM800 даёт несколько последовательных ответов, то URC может прийти между этими ответами. И ПО должно быть рассчитано на все такие случаи. А тогда нет никакой выгоды от склейки нескольких команд в одну строку. Наоборот - по одной команде проще обрабатывать (ожидать ответ на команду параллельно обрабатывая входящие URC).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, jcxz said:

Почему думаете что "не влазят"? Имхо - URC может прийти в любой момент. И между отправкой команды к SIM800 и ответом SIM800 - тоже вполне может. 

Вполне может - между отправкой настроек и формальным ОК(если там не ОК, то проблема в консерватории и силами программы вряд-ли решаема), а не между разными командами настройки. Т.е. настройки гарантировано модему передадутся все и не возникает ситуация когда приходится обрабатывать URC c наполовину настроенным модемом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 минуту назад, artemkad сказал:

 Т.е. настройки гарантировано модему передадутся все и не возникает ситуация когда приходится обрабатывать URC c наполовину настроенным модемом.

Передаётся строка во внутренний приёмный буфер. А затем команды из этого буфера начинают выполняться. По очереди. По одной. И URC может прийти в любой момент хоть между этими командами. "С наполовину настроенным".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, jcxz said:

Передаётся строка во внутренний приёмный буфер. А затем команды из этого буфера начинают выполняться. По очереди. По одной. И URC может прийти в любой момент хоть между этими командами. "С наполовину настроенным".

Да, да, сохранение десятка переменных  в оперативке это столь длительный процесс, что процессор  модуля успеет тысячи раз переключиться на другие задачи и отправить из них сотни URC.:moil:

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По факту - цепочки команд в SIM800 работают безобразно (в том числе и в последней версии). То, что не вызывало никаких проблем в SIM900, здесь дает совершенно непредсказуемый результат, причем он может зависеть от положения звезд на небе. И это касается не только команд на этапе инициализации. Использовать можно, но с осторожностью, проверять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, artemkad сказал:

Да, да, сохранение десятка переменных  в оперативке это столь длительный процесс, что процессор  модуля успеет тысячи раз переключиться на другие задачи и отправить из них сотни URC.:moil:

 

 

Не говорите ерунды - выполнение AT-команд это не "сохранение десятка переменных  в оперативке". Странные у вас представления о работе GSM-модуля...  :unknw:

И насчёт некой "атомарности" выполнения цепочек команд - это ничем не обоснованные фантазии. Или приведите документ где об этом сказано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, jcxz said:

 

Не говорите ерунды - выполнение AT-команд это не "сохранение десятка переменных  в оперативке". Странные у вас представления о работе GSM-модуля...  :unknw:

Ну, расскажите нам, что тогда еще 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

Думаю всем будет интересно послушать.:beach:

Причем замечу, ни одна из них даже не автосохраняемая...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...