Как отправить запрос с помощью скрипта Python с сервера на базу данных с помощью SIM808? - PullRequest
0 голосов
/ 31 декабря 2018

Я получаю сообщение об ошибке, когда мой код Python кода выполняет команду AT + HTTPREAD.Кроме того, не удается заставить команду завершиться, поэтому при попытке запуска снова возникает ошибка, поэтому мне нужно перезапустить модуль.Отладка позволяет мне отправлять данные в какой-то момент, но программа не запускается сама по себе.

Я попытался запустить с закомментированной командой AT + HTTPREAD.Я также пытался закрыть модуль с помощью команды AT + SAPBR, но безуспешно.Я получаю разные результаты при выполнении каждой команды после неудачного запуска теста.

import serial
port = serial.Serial("/dev/ttyS0", baudrate=19200, timeout=3)

def execute(cmd):
    global port
    msg = (cmd + '\r').encode()
    port.write(msg)
    result = port.read(100).decode()
    return result

def close_all():
    cmd = "AT+SAPBR=0,1"
    result = execute(cmd)
    print(result)
    port.close()
    exit(1)

cmd = "AT"
result = execute(cmd)
print(result)
if "ERROR" in result:
    exit(1)

cmd = "AT+SAPBR=3,1,\"\",\"\""
result = execute(cmd)
print(result)
if "ERROR" in result:
    close_all()

cmd = "AT+SAPBR=3,1,\"\",\"""
result = execute(cmd)
print(result)
if "ERROR" in result:
    close_all()

cmd = "AT+SAPBR=1,1"
result = execute(cmd)
print(result)
if "ERROR" in result:
    close_all()

cmd = "AT+SAPBR=2,1"
result = execute(cmd)
print(result)
if "ERROR" in result:
    close_all()


cmd = "AT+HTTPINIT"
result = execute(cmd)
print(result)
if "ERROR" in result:
    close_all()


cmd = "AT+HTTPPARA=\"CID\",1"
result = execute(cmd)
print(result)
if "ERROR" in result:
    close_all()

cmd = "AT+HTTPPARA=\"URL\",\"http:""
result = execute(cmd)
print(result)
if "ERROR" in result:
    close_all()

cmd = "AT+HTTPACTION=1"
result = execute(cmd)
print(result)
if "ERROR" in result:
    close_all()


cmd = "AT+HTTPREAD=0,100"
result = execute(cmd)
print(result)
if "ERROR" in result:
    close_all()

cmd = "AT+HTTPTERM"
result = execute(cmd)
print(result)


close_all()

Я ожидаю, что это проверит способность моего сервера читать и записывать данные в базу данных.

1 Ответ

0 голосов
/ 06 января 2019

Моя ошибка была в командной строке.Я пропустил "P" из "HTTREAD".Правильная команда: «AT + HTTPREAD = 0,100».

cmd = "AT+HTTPREAD=0,100"
result = execute(cmd)
print(result)
if "ERROR" in result:
    close_all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...