Gammu 的极端滞后

问题描述

几年以来,我在带有 Rasperian 和华为 umts Stick 的 RaspBerry 2 上使用 Python-Gammu(Python 版本 2.7),它运行良好,除了所有 2 或 3 个飞蛾都导致程序中止的故障。我一直不知道为什么,我认为这是我的python代码。但无论如何。

从发送短信到出现在我的软件中的时间大约为 4 秒,虽然很长,但可以接受。包括发送和接收载体的延迟。所以没问题。

现在我将设计一个用Java编写的新系统。所以我买了第二个 umts Stick 和一个带有 Rasperian 10 的新 RaspBerry 3,我开始用 Gammu-smsd (1.40)、Java 和 Gammu-smsd 中的 RunOnReceive Option 进行测试,因为我想通知其他软件,有一个传入消息。我将 Mqtt 与 mosquitto 一起使用。我触发了一个 jar 文件,它使用 eclipse paho 通过 Mqtt 发送消息。我使用 service-text 设置了 Gammu-Smsd 并进行了一些测试。系统延迟从 8 秒到 20 秒不等!!直到收到短信并发送 mqtt 消息。

这是我的 /etc/gammu-smsdrc

#Configuration file for Gammu SMS Daemon

# Gammu library configuration,see gammurc(5)
[gammu]
# Please configure this!
port = /dev/ttyUSB0
connection = at115200
#atgen_setCNMI=2,2,1
# Debugging
#logformat = textall

# SMSD configuration,see gammu-smsdrc(5)
[smsd]
pin = xxxx
service = files
#service = sql
#Driver = native_MysqL
logfile = /home/ro/MyHome/Gammu/Gammu_Smsd.log
#User = gammu
#Password = Mglhmo1920ga
#PC = 192.168.0.1
#Database = gammu
#PhoneID = gsm-01

# Increase for debugging information
debuglevel = 0
commtimeout = 1
sendtimeout = 15
statusfrequence = 0

# Paths where messages are stored
inBoxpath = /var/spool/gammu/inBox/
outBoxpath = /var/spool/gammu/outBox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/
RunOnReceive = java -jar /home/ro/Gammu/Mqtt_SMS.jar

这对我的应用程序来说太过分了。

我改为使用带有 sql 而不是文本的 Gammu 服务。

没有区别

所以我现在进行了很多测试,以找出问题出在哪里,在此过程中,我发现当我使用 Gammu 服务作为文本时,文件出现在 /var/spool 中花了很长时间/gammu/收件箱。所以看来gammu-smsd 本身很慢。

我认为它可能来自 RaspBerry 本身,所以我将整个系统安装在我的 Ubuntu 18.04 服务器上。 Gammu-smsd 版本是标准存储库中的 1.39。

没有区别

所以我停止使用 Gammmu-Smsd 进行测试并使用 python3-gammu 进行测试。所以我安装了一个 python3-gammu 来用一个小的 python 脚本来使用它:

#!/usr/bin/python
import gammu

# Gammu initialization
sm = gammu.StateMachine()
sm.ReadConfig()
sm.Init()

# SMS 
while 1:
    status = sm.GetSMsstatus()
    count = status['SIMUsed'] + status['PhoneUsed'] + status['TemplatesUsed']
    if count == 0:
       exit

    print(count)

只是为了测试性能,接收消息仍然需要6秒。更快,但太长了。我还在我的旧 RaspBerry 2 上使用另一个华为 umts Stick 对其进行了测试,但使用 Python 2.7 并且相同的脚本像以往一样在 4 秒内运行。

那么为什么 Gammu 在完全不同的机器上以“文本”和“sql”模式运行这么慢,除了 python 2.7,它几乎可以接受?但我不想再使用 python 2.7,但我喜欢 Gammu 软件,因为它的可能性很大,而且从未找到替代方案。

那么,任何人都知道如何将速度提高到 4 秒以下,或者 Gammu 设计得很慢? 非常感谢转发。

最好的问候 拉尔夫

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)