реклама на сайте
подробности

 
 
> Sagem HiLo
Battle-Piggy
сообщение Oct 23 2013, 07:42
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 23-10-13
Из: Земля Франца и Осифа
Пользователь №: 78 858



Доброго времени суток.
Имеется GSM модуль Sagem HiLo, использующийся для отправки данных посредством gprs. Для отправки используется АТ-команда AT+KTCPSND, которая должна завершаться отправкой --EOF--Pattern-- , который переведет модуль обратно в командный режим.
Собственно проблема - после отправки данных я отправляю модулю --EOF--Pattern-- , который распознается успешно, но при этом также отправляется на серверную сторону, прилепленный к данным.
Есть какие-нибудь предложения, как избежать отправки --EOF--Pattern-- на серверную сторону?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
ssokol
сообщение Oct 23 2013, 17:38
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 615
Регистрация: 14-02-08
Из: г. Рыбинск, Ярославская область
Пользователь №: 35 028



Цитата(Battle-Piggy @ Oct 23 2013, 11:42) *
Доброго времени суток.
Имеется GSM модуль Sagem HiLo, использующийся для отправки данных посредством gprs. Для отправки используется АТ-команда AT+KTCPSND, которая должна завершаться отправкой --EOF--Pattern-- , который переведет модуль обратно в командный режим.
Собственно проблема - после отправки данных я отправляю модулю --EOF--Pattern-- , который распознается успешно, но при этом также отправляется на серверную сторону, прилепленный к данным.
Есть какие-нибудь предложения, как избежать отправки --EOF--Pattern-- на серверную сторону?

аналогичная проблема была на визнетах, программисты "забивали костыли", но затем , втихоря, визнетовцы это пофиксили, так , что либо костыли , либо пинать разработчиков.
Go to the top of the page
 
+Quote Post
Battle-Piggy
сообщение Oct 24 2013, 06:31
Сообщение #3





Группа: Новичок
Сообщений: 7
Регистрация: 23-10-13
Из: Земля Франца и Осифа
Пользователь №: 78 858



Цитата(ssokol @ Oct 23 2013, 21:38) *
программисты "забивали костыли"


Даже не представляю, какой "костыль" можно забить в данном случае. Ребята, которые пишут серверную сторону, конечно, отсекают --EOF--Pattern-- после каждого пакета, но сие чересчур уж топорно, на мой взгляд
Go to the top of the page
 
+Quote Post
ssokol
сообщение Oct 24 2013, 07:39
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 615
Регистрация: 14-02-08
Из: г. Рыбинск, Ярославская область
Пользователь №: 35 028



Цитата(Battle-Piggy @ Oct 24 2013, 10:31) *
Даже не представляю, какой "костыль" можно забить в данном случае. Ребята, которые пишут серверную сторону, конечно, отсекают --EOF--Pattern-- после каждого пакета, но сие чересчур уж топорно, на мой взгляд

Ну, вот , костыль уже и забили, теперь попытайтесь пнуть производителя, тем более если и далее планируете пользоваться этими же модулями.
Go to the top of the page
 
+Quote Post
ilya_nn
сообщение Oct 25 2013, 08:34
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-05-09
Пользователь №: 49 051



Цитата(Battle-Piggy @ Oct 23 2013, 11:42) *
Доброго времени суток.
Имеется GSM модуль Sagem HiLo, использующийся для отправки данных посредством gprs. Для отправки используется АТ-команда AT+KTCPSND, которая должна завершаться отправкой --EOF--Pattern-- , который переведет модуль обратно в командный режим.
Собственно проблема - после отправки данных я отправляю модулю --EOF--Pattern-- , который распознается успешно, но при этом также отправляется на серверную сторону, прилепленный к данным.
Есть какие-нибудь предложения, как избежать отправки --EOF--Pattern-- на серверную сторону?


Попробуйте увеличить таймаут между окончанием данных и выдачей маркера окончания посылки.

Кстати, жить модулю Sagem HiLo осталось не больше года, если есть возможность лучше найти альтернативу.
Go to the top of the page
 
+Quote Post
=F8=
сообщение Oct 25 2013, 14:52
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954



Уражите в команде кол-во байт которое хотите отправить - второй параметр. И если можете отказаться от этого "чуда" - откажитесь. Его встроенный стек столь чудесен, что пришлось прикручивать внешний.
PS Чтоб не создавать новую тему. Модуль работает в режиме мультиплексирования. Пытаюсь отправить смс с подтверждением о доставке. Вместо подтверждения, примерно в то время когда должно прийти подверждение получаю CME ERROR 24.
Go to the top of the page
 
+Quote Post
Battle-Piggy
сообщение Oct 28 2013, 09:26
Сообщение #7





Группа: Новичок
Сообщений: 7
Регистрация: 23-10-13
Из: Земля Франца и Осифа
Пользователь №: 78 858



Цитата(ilya_nn @ Oct 25 2013, 12:34) *
Попробуйте увеличить таймаут между окончанием данных и выдачей маркера окончания посылки.

Даже двухсекундный таймаут не дал эффекта.

Цитата(=F8= @ Oct 25 2013, 18:52) *
Уражите в команде кол-во байт которое хотите отправить - второй параметр.

Указываю согласно даташиту:
Код
AT+KTCPSND=1,18
где 1 - номер открытой сессии, 18 - количество байт для отправки ( без учета --EOF--Pattern-- )
Затем получаю от модуля:
Код
CONNECT
Отправляю 18 байт, затем отсылаю:
Код
--EOF--Pattern--
Получаю в ответ:
Код
OK
+KTCP_DATA: 1,1380

Итого на серверную сторону уходит 18 байт полезной нагрузки плюс --EOF--Pattern--


Цитата(=F8= @ Oct 25 2013, 18:52) *
Чтоб не создавать новую тему. Модуль работает в режиме мультиплексирования. Пытаюсь отправить смс с подтверждением о доставке. Вместо подтверждения, примерно в то время когда должно прийти подверждение получаю CME ERROR 24.


Согласно www.macrogroup.ru/content/data/store/images/f_931_4978_1.pdf :

Цитата
CME ERROR code 24 - Text string too long


Возможно, стоит использовать предварительно AT+CMGF=0

Сообщение отредактировал Battle-Piggy - Oct 28 2013, 09:28
Go to the top of the page
 
+Quote Post
ilya-m
сообщение Oct 28 2013, 09:57
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 30-06-08
Из: С.-Петербург
Пользователь №: 38 642



А Вы "--EOF--Pattern--", случайно, не в виде текстовой строки передаете?
Go to the top of the page
 
+Quote Post
Battle-Piggy
сообщение Oct 28 2013, 10:23
Сообщение #9





Группа: Новичок
Сообщений: 7
Регистрация: 23-10-13
Из: Земля Франца и Осифа
Пользователь №: 78 858



Цитата(ilya-m @ Oct 28 2013, 13:57) *
А Вы "--EOF--Pattern--", случайно, не в виде текстовой строки передаете?


Вы имеете ввиду, не передаю ли я после 16-ти байт "--EOF--Pattern--" еще и байт 0х00 ?
нет не передаю. При попытке прилепить после "--EOF--Pattern--" что-нибудь еще, типа '\0' или '\r' модуль просто не переходит в командный режим
Go to the top of the page
 
+Quote Post
ilya-m
сообщение Oct 28 2013, 10:42
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 30-06-08
Из: С.-Петербург
Пользователь №: 38 642



"--EOF--Pattern--" - это не должно быть 16 Байт (16 ASCII символов).
"--EOF--Pattern--" - EOF (аббревиатура англ. end of file — конец файла) в компьютерной терминологии является индикатором что достигнут конец файла (для модема это индикатор конца блока данных и команда, что передачу данных следует завершить и перейти в командный режим).
EOF - это макрос, который определён в stdio.h. Для передачи EOF в терминальных программах используется команда Ctrl+Z.
Go to the top of the page
 
+Quote Post
Battle-Piggy
сообщение Oct 28 2013, 11:28
Сообщение #11





Группа: Новичок
Сообщений: 7
Регистрация: 23-10-13
Из: Земля Франца и Осифа
Пользователь №: 78 858



Цитата(ilya-m @ Oct 28 2013, 14:42) *
"--EOF--Pattern--" - это не должно быть 16 Байт (16 ASCII символов).
"--EOF--Pattern--" - EOF (аббревиатура англ. end of file — конец файла) в компьютерной терминологии является индикатором что достигнут конец файла (для модема это индикатор конца блока данных и команда, что передачу данных следует завершить и перейти в командный режим).
EOF - это макрос, который определён в stdio.h. Для передачи EOF в терминальных программах используется команда Ctrl+Z.


EOF - это именно текстовая строка. CTRL+Z не имеет к нему никакого отношения

Прикрепленное изображение

Go to the top of the page
 
+Quote Post
kabanchik
сообщение Oct 28 2013, 11:29
Сообщение #12





Группа: Участник
Сообщений: 14
Регистрация: 15-10-13
Из: село Залупка Пястецкой губернии
Пользователь №: 78 740



Цитата(ilya-m @ Oct 28 2013, 14:42) *
"--EOF--Pattern--" - это не должно быть 16 Байт (16 ASCII символов).
"--EOF--Pattern--" - EOF (аббревиатура англ. end of file — конец файла) в компьютерной терминологии является индикатором что достигнут конец файла (для модема это индикатор конца блока данных и команда, что передачу данных следует завершить и перейти в командный режим).
EOF - это макрос, который определён в stdio.h. Для передачи EOF в терминальных программах используется команда Ctrl+Z.

ты вообще далек от темы
Go to the top of the page
 
+Quote Post
ilya-m
сообщение Oct 28 2013, 11:34
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 30-06-08
Из: С.-Петербург
Пользователь №: 38 642



Цитата(kabanchik @ Oct 28 2013, 15:29) *
ты вообще далек от темы


Извините. Действительно, с такой фишкой я в модемах раньше никогда не сталкивался.
Go to the top of the page
 
+Quote Post
kabanchik
сообщение Oct 28 2013, 11:37
Сообщение #14





Группа: Участник
Сообщений: 14
Регистрация: 15-10-13
Из: село Залупка Пястецкой губернии
Пользователь №: 78 740



ты с модемами вообще сталкивался?
погодика, дай угадаю, программист авр?!
Go to the top of the page
 
+Quote Post
ilya-m
сообщение Oct 28 2013, 11:42
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 165
Регистрация: 30-06-08
Из: С.-Петербург
Пользователь №: 38 642



Цитата(kabanchik @ Oct 28 2013, 15:37) *
ты с модемами вообще сталкивался?
погодика, дай угадаю, программист авр?!

Да, приходилось, немного. За последние лет 10 около 20000 серийных изделий.
А авр не люблю.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 20:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.0146 секунд с 7
ELECTRONIX ©2004-2016