【问题标题】:Python: How to get the output from gsmsmsd Daemon?Python:如何从 gsmsmsd 守护进程获取输出?
【发布时间】:2014-03-13 15:17:10
【问题描述】:

我在 Python 中有一个小问题,我想用 python 启动“gsmsmsd”守护进程(读取传入的短信)并读取该守护进程的输出。 如果我用我的控制台启动这个守护进程,那么在收到 SMS 之前,就像没有任何运行输出一样,那么这个 SMS 将显示在控制台中。 但是必须有一个解决方案来将这个传入的 SMS 读入 Python....

首先我尝试过:

while True:
    a = os.popen("gsmsmsd -d /dev/ttyACM1 -b 9600 -t SM")
    print a
    time.sleep(1)

但我认为 os.popen 函数只在命令后直接读取输出,对吗?如果是,并且短信在 5 分钟后出现,则不再有任何红色。 我怎么解决这个问题?是否有其他函数可以在较长时间内从控制台读取输出,而无需多次启动守护程序?

我很高兴收到某人的来信。

问候 雅各布

【问题讨论】:

    标签: python sms daemon os.system


    【解决方案1】:

    我认为您需要的是使用select 模块并轮询设备上写入某些内容的事件。就像是: (免责声明:未经测试,可能无法正常工作。因此您应该阅读链接):

    import select
    import os 
    
    epoll = select.epoll()
    dev = os.open("/dev/ttyACM1",os.O_RDONLY)
    epoll.register(dev, select.EPOLLIN)
    event = dev, selecet.EPOLLIN
    
    while True:
         events = epoll.poll(1)
         if event in events:
            print dev.read()
    

    【讨论】:

      猜你喜欢
      • 2014-12-11
      • 2016-10-08
      • 2012-10-08
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      相关资源
      最近更新 更多