Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: GE863-GPS
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
mempfis_
Добрый день.
Помогите пожалуйста разобраться со скриптом для выхода в интернет через 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'
Andrewak
Цитата(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 не всегда работает корректно, я в итоге отказался от его использования.
mempfis_
Цитата(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) работают без проблем
Andrewak
Цитата(mempfis_ @ Oct 24 2008, 09:40) *
Спасибо, и правда помогло - сначала подал команды вкрючения GPRS через терминал увидел что они проходят. Начал разбираться в своём коде оказалось неверно склеивалась ат-команда и не нужно <cr> в контексте. Вобщем достаточно такого:
........
P.S. По-поводу easyscript - у меня он вроде не глючит, но правда модуль GPIO не работает sad.gif хотя другие (MOD, MDM, GPS, GPRS) работают без проблем

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

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

Тормознутость. Хотя, в принципе, наверное можно было решить эти проблемы. Просто главную причину я обозначил двумя постами выше - я почти не завишу от аппаратной платформы smile.gif Тем более, что ресурсов модуля мне не достаточно и без внешнего камня обойтись в любом случае не получается
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.