Помогите пожалуйста разобраться со скриптом для выхода в интернет через 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'
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'