Гамму - СМС отправляется несколько раз - База данных не обновляется - PullRequest
0 голосов
/ 29 сентября 2018

Я использую Gammu для отправки SMS - через USB-флешку Huawei - с RPi.Это работало хорошо.Просто некоторое время назад началось странное поведение.

Я вставляю текст SMS через Python с помощью команды:

"""
send an sms
"""
def sim_send_sms(number, text):
    command = ['sudo', 'gammu-smsd-inject', 'TEXT', number]
    p = subprocess.Popen(command, stdout=subprocess.PIPE, stdin=subprocess.PIPE)
    output = p.communicate(input=text.encode("iso-8859-1"))[0]

    return output.decode("iso-8859-1")

Это прекрасно работает с самого начала.Сервис Gammu отправляет SMS.Нет проблем.Но ... это не удаление записи в таблице исходящих в базе данных.Итак, он отправляет, отправляет и отправляет ...

Я только что проверил файл журнала, и он говорит:

Sat 2018/09/29 13:42:32 gammu-smsd[762]: New message to send: 140
Sat 2018/09/29 13:42:32 gammu-smsd[762]: Message without SMSC, assuming you want to use the one from phone
Sat 2018/09/29 13:42:36 gammu-smsd[762]: SMS sent on device: "/dev/ttyUSB_utps_modem" status=0, reference=169
Sat 2018/09/29 13:42:36 gammu-smsd[762]: Transmitted 140 (total: 1) to ***
Sat 2018/09/29 13:42:36 gammu-smsd[762]: Error code: 1062, Error: Duplicate entry '140-1' for key 'PRIMARY'
Sat 2018/09/29 13:42:36 gammu-smsd[762]: SQL failure: 79
Sat 2018/09/29 13:42:36 gammu-smsd[762]: Error writing to database (SMSDSQL_AddSentSMSInfo)
Sat 2018/09/29 13:42:36 gammu-smsd[762]: Error setting sent status: Fehler beim Ausf▒hren der SQL Anfrage. (SQL[79])
Sat 2018/09/29 13:52:37 gammu-smsd[762]: New message to send: 140
Sat 2018/09/29 13:52:37 gammu-smsd[762]: Message without SMSC, assuming you want to use the one from phone
Sat 2018/09/29 13:52:39 gammu-smsd[762]: SMS sent on device: "/dev/ttyUSB_utps_modem" status=0, reference=170
Sat 2018/09/29 13:52:39 gammu-smsd[762]: Transmitted 140 (total: 1) to ***
Sat 2018/09/29 13:52:39 gammu-smsd[762]: Error code: 1062, Error: Duplicate entry '140-1' for key 'PRIMARY'
Sat 2018/09/29 13:52:39 gammu-smsd[762]: SQL failure: 79
Sat 2018/09/29 13:52:39 gammu-smsd[762]: Error writing to database (SMSDSQL_AddSentSMSInfo)
Sat 2018/09/29 13:52:39 gammu-smsd[762]: Error setting sent status: Fehler beim Ausf▒hren der SQL Anfrage. (SQL[79])

Я вижу ошибку повторяющейся записи.Последний идентификатор в «исходящих» был 140. Это правильно.Но почему gammu хочет написать новую запись базы данных в «исходящие»?Это не имеет смысла.Он должен отправить смс, сделать запись в «sentitems» и удалить запись в «Исходящие».(Пока что моя логика ... я ошибаюсь?).Мне всегда приходится удалять исходящие записи вручную ... иначе будет отправлено SMS, пока сумма пополнения не станет пустой: - (

И почему в файле журнала просто есть несколько записей? Это должно бытьогромный ... но нет. Есть ли какие-то ограничения (которые я могу изменить)? У меня сейчас только самые последние ошибки за сегодня. Но я хочу / нужно все.

У кого-нибудь есть идеи, почемуУ меня есть эта проблема и как я могу ее решить?

--------- РЕШЕНИЕ ----------

Хорошо, я нашелСамо решение тем временем. Дублирующая запись не указывает на «исходящие». Ошибка возникает, когда Gammu пытается сделать новую запись в «элементах». Он использует тот же идентификатор, что и в «исходящих».по каким-то причинам в моей таблице senditems уже есть записи с более высокими идентификаторами. Также одна с 140 (как в данном случае). Итак, новая запись не выполняется из-за этой проблемы. Весь сценарий завершается. Но следующим шагом было быудалите сообщение в папке «Исходящие». И вот мы идем ... он идетвокруг и вокруг и вокруг.

Мне пришлось урезать свои «элементы», и теперь он снова работает.Остается только один вопрос: как в 'sentitems' уже может быть более высокий ID?

...