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

 
 
 
Reply to this topicStart new topic
> GE863-GPS, Выход в интернет через GPRS
mempfis_
сообщение Oct 20 2008, 13:59
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Добрый день.
Помогите пожалуйста разобраться со скриптом для выхода в интернет через GPRS с помощью модема GE863-GPS. Стоит задача: принимать координаты со спутника и передавать их на ftp-сервер.
С приёмом координат со спутника я разобрался. Теперь пытаюсь выйти в интернет.
Насколько я понял чтобы подключится к ftp-серверу для начала нужно выйти в интернет (например через GPRS).
В примерах Python нашёл скрипт для подключения к GPRS. Изменил APN, и дописал необязательные логин и пароль Все команды проходят нормально кроме res = iterateCmd('AT#GPRS', '1', TIMEOUT_CMD, numCheck). Выводится ошибка +CME ERROR: activation failed. Подскажите в чём причина нежелания модема конектится к GPRS? Или наоборот - нежелание сети воспринимать мой модем?

P.S. С GSM/GPRS раньше дела не имел, так что не удивляйтесь что вопросы совсем простые и возможно глупые

Код
import GPS
import MDM
import MOD


#######################################
# sends a generic AT command and waits for a response
# if value is NULL then the AT command isn't compound (it's like ATA)
# if value isn't NULL then the AT command is like AT+CMGR=1
def sendCmd(cmd,value,waitfor):
    if (value != ""):
        cmd = cmd + '='
    else:
        cmd = cmd + '\r'
    res = MDM.send(cmd, 0)
    if (value != ""):
        res = MDM.send(value, 0)
        res = MDM.send('\r', 0)
    if (waitfor > 0):
        res = MDM.receive (waitfor)
    return res


#######################################
def iterateCmd(comando, parametro, TIMEOUT_CMD, numCheck):
    while( numCheck >= 0):
        numCheck = numCheck -1
        res = sendCmd(comando, parametro, TIMEOUT_CMD)
        if(res.find('OK') != -1):
            return 1
        MOD.sleep(TIMEOUT_CMD)
        if(numCheck == 0):
            return -1


#established a GPRS connection
def connectGPRS():
    print 'connect GPRS'
    
    numCheck = 5
    TIMEOUT_CMD = 50
    CGDCONT = '1,"IP","www.kyivstar.net","0.0.0.0",0,0<cr>'
    USERID = 'kyivstar'
    PASSW = 'gprs'
    
    res = iterateCmd('AT#GPRS', '0', TIMEOUT_CMD, numCheck)
    if(res == -1):
        return -1
    res = iterateCmd('AT+CGDCONT', CGDCONT, TIMEOUT_CMD, numCheck)
    if(res == -1):
        return -1
    res = iterateCmd('AT#USERID', USERID, TIMEOUT_CMD, numCheck)
    if(res == -1):
        return -1
    res = iterateCmd('AT#PASSW', PASSW, TIMEOUT_CMD, numCheck)
    if(res == -1):
        return -1
    res = iterateCmd('AT#GPRS', '1', TIMEOUT_CMD, numCheck)
    if(res == -1):
        return -1
    return 1 # -1 => ERROR , 1 => OK


connect = connectGPRS()
if connect == 1:
    print 'GPRS OK'
else:
    print 'GPRS ERROR'
Go to the top of the page
 
+Quote Post
Andrewak
сообщение Oct 23 2008, 04:57
Сообщение #2


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

Группа: Новичок
Сообщений: 148
Регистрация: 13-12-05
Пользователь №: 12 162



Цитата(mempfis_ @ Oct 20 2008, 17:59) *
Добрый день.
Помогите пожалуйста разобраться со скриптом для выхода в интернет через GPRS с помощью модема GE863-GPS. Стоит задача: принимать координаты со спутника и передавать их на ftp-сервер.
С приёмом координат со спутника я разобрался. Теперь пытаюсь выйти в интернет.
Насколько я понял чтобы подключится к ftp-серверу для начала нужно выйти в интернет (например через GPRS).
В примерах Python нашёл скрипт для подключения к GPRS. Изменил APN, и дописал необязательные логин и пароль Все команды проходят нормально кроме res = iterateCmd('AT#GPRS', '1', TIMEOUT_CMD, numCheck). Выводится ошибка +CME ERROR: activation failed. Подскажите в чём причина нежелания модема конектится к GPRS? Или наоборот - нежелание сети воспринимать мой модем?


м-м-м-м-м...... а попробуйте сначала всё это сделать просто подавая команды с компа, и сразу же станет понятно в чём причина - толи модем сконфигурён неправильно, толи вас сетка не пускает. К тому же в этом случае модем выплюнет вам стандартные коды ошибок, которые знакомы не только пользователям телита..... easyscript не всегда работает корректно, я в итоге отказался от его использования.
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Oct 24 2008, 05:40
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(Andrewak @ Oct 23 2008, 08:57) *
м-м-м-м-м...... а попробуйте сначала всё это сделать просто подавая команды с компа, и сразу же станет понятно в чём причина - толи модем сконфигурён неправильно, толи вас сетка не пускает. К тому же в этом случае модем выплюнет вам стандартные коды ошибок, которые знакомы не только пользователям телита..... easyscript не всегда работает корректно, я в итоге отказался от его использования.


Спасибо, и правда помогло - сначала подал команды вкрючения GPRS через терминал увидел что они проходят. Начал разбираться в своём коде оказалось неверно склеивалась ат-команда и не нужно <cr> в контексте. Вобщем достаточно такого:



Код
import GPS
import MDM
import MOD


#######################################
# sends a generic AT command and waits for a response
# if value is NULL then the AT command isn't compound (it's like ATA)
# if value isn't NULL then the AT command is like AT+CMGR=1
def sendCmd(cmd,value,waitfor):
    if (value != ""):
        cmd = cmd + '='
    else:
        cmd = cmd + '\r'
    res = MDM.send(cmd, 0)
    if (value != ""):
        res = MDM.send(value, 0)
        res = MDM.send('\r', 0)
    if (waitfor > 0):
        res = MDM.receive (waitfor)
    return res
#######################################

#######################################
def connectGPRS():
    print 'connect GPRS'
    
    numCheck = 5
    TIMEOUT_CMD = 50
    CGDCONT = '1,"IP","www.kyivstar.net","0.0.0.0",0,0'
    
    res = sendCmd('AT#GPRS', '0', TIMEOUT_CMD)
    if(res == -1):
        return -1
    res = sendCmd('AT+CGDCONT', CGDCONT, TIMEOUT_CMD)
    if(res == -1):
        return -1
    res = sendCmd('AT#GPRS', '1', TIMEOUT_CMD, numCheck)
    if(res == -1):
        return -1
#######################################


P.S. По-поводу easyscript - у меня он вроде не глючит, но правда модуль GPIO не работает sad.gif хотя другие (MOD, MDM, GPS, GPRS) работают без проблем

Сообщение отредактировал mempfis_ - Oct 24 2008, 05:43
Go to the top of the page
 
+Quote Post
Andrewak
сообщение Oct 25 2008, 08:17
Сообщение #4


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

Группа: Новичок
Сообщений: 148
Регистрация: 13-12-05
Пользователь №: 12 162



Цитата(mempfis_ @ Oct 24 2008, 09:40) *
Спасибо, и правда помогло - сначала подал команды вкрючения GPRS через терминал увидел что они проходят. Начал разбираться в своём коде оказалось неверно склеивалась ат-команда и не нужно <cr> в контексте. Вобщем достаточно такого:
........
P.S. По-поводу easyscript - у меня он вроде не глючит, но правда модуль GPIO не работает sad.gif хотя другие (MOD, MDM, GPS, GPRS) работают без проблем

Дело не в том, что он работает или не работает. Просто он вертится в том же проце, что и baseband и пользовательское приложение имеет далеко не самый высокий приоритет. Как итог - пользовательское приложение далеко не всегда получает нужную скорострельность. Это, кстати, знакомо и пользователям wavecom. Другой подход - GE864-PRO3. Там отдельный проц для пользователя, но соединять его с baseband нужно через мамку... Что за бред? Почему нельзя было эти соединения развести на модуле?
Лично я стараюсь вообще не применять возможность встраивания своего приложения в модуль - я по крайней мере могу в любое время поменять один модуль на другой малой кровью....

Сообщение отредактировал Andrewak - Oct 25 2008, 08:17
Go to the top of the page
 
+Quote Post
InsolentS
сообщение Oct 26 2008, 23:26
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Цитата(Andrewak @ Oct 25 2008, 14:17) *
Дело не в том, что он работает или не работает. Просто он вертится в том же проце, что и baseband и пользовательское приложение имеет далеко не самый высокий приоритет. Как итог - пользовательское приложение далеко не всегда получает нужную скорострельность. Это, кстати, знакомо и пользователям wavecom. Другой подход - GE864-PRO3. Там отдельный проц для пользователя, но соединять его с baseband нужно через мамку... Что за бред? Почему нельзя было эти соединения развести на модуле?
Лично я стараюсь вообще не применять возможность встраивания своего приложения в модуль - я по крайней мере могу в любое время поменять один модуль на другой малой кровью....

Только что закончил прибор, построенный полностью на easyscript. Пока вроде бы полёт нормальный. А какие у Вас были с ним проблемы?


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
Andrewak
сообщение Oct 27 2008, 14:37
Сообщение #6


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

Группа: Новичок
Сообщений: 148
Регистрация: 13-12-05
Пользователь №: 12 162



Цитата(InsolentS @ Oct 27 2008, 03:26) *
Только что закончил прибор, построенный полностью на easyscript. Пока вроде бы полёт нормальный. А какие у Вас были с ним проблемы?

Тормознутость. Хотя, в принципе, наверное можно было решить эти проблемы. Просто главную причину я обозначил двумя постами выше - я почти не завишу от аппаратной платформы smile.gif Тем более, что ресурсов модуля мне не достаточно и без внешнего камня обойтись в любом случае не получается
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 01:19
Рейтинг@Mail.ru


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