gpt4 book ai didi

pthreads - 一个好的 C 库可以在嵌入式 Linux 中使用 GSM 模块加速 AT 命令?

转载 作者:行者123 更新时间:2023-12-02 21:41:21 25 4
gpt4 key购买 nike

我曾经使用 Telit 的 GM862-QUAD-PY 模块(此处链接: http://www.telit.com/en/products.php?p_ac=show&p=4 )。该模块有一个内置的Python解释器。长期以来,我将其用作单模块 GSM/GPRS 解决方案。我基本上编写了 Python 脚本,用于向模块本身的 GSM 部分发送和接收 AT 命令。使用 Python,我还可以访问其 GPIO 引脚、UART、bitbanging SPI 和 I2C 总线。

但是,这个Python解释器有很大的局限性。它只适用于小型项目。不支持线程或任何类型的中断或信号。所以编写的Python程序必须有一个大的 super 循环。在我的应用程序中,GM862 模块从 UART 读取传入数据并对其进行处理并将其上传到 GPRS 服务器。同时,它还读取从SMS或GPRS服务器发送的命令。随着越来越多的用户使用我的系统(这意味着 UART 上的数据越来越多,系统的 SMS 命令也越来越多), super 循环变得越来越慢。优化 python 程序没有多大帮助,甚至会混淆我的代码。

最后,我决定改用嵌入式linux平台。 Telit有GE863-PRO,它是嵌入式linux版本的GSM/GPRS模块,但其开发套件很难获得。现在我正在看 Beaglebone。我将按照正常的 AT 命令方式使用 GM862-QUAD-PY。然而,AT命令处理起来很慢。某些命令可能需要长达 15 秒才能完成。在原始 Python 代码中,我只是等待 AT 响应。之后,我做了一些不涉及 AT 命令的其他事情。

由于我现在在linux中并且有Pthreads可以使用,所以我想充分利用GSM模块并提高其吞吐量。这是我最初的想法。我创建了一个 AT 命令待处理队列。队列中的每个元素都由 AT 命令本身和回调函数组成。我创建一个线程,从该队列获取 AT 命令并通过 UART 发送出去,线程轮询响应。当有响应时,线程将调用回调函数。

因为我是嵌入式 Linux 和 Pthreads 的新手,所以我想知道这是否是实现 GSM/GPRS 模块高利用率的最佳方法,以及是否有任何好的现有库可供我利用。

提前致谢。

最佳答案

您的解决方案一定会有效。如果您从未使用过 Linux 和 pthreads,那么这是一个学习如何使用它们的好项目。

我不能说它有多快,因为某些 AT 命令可能需要几秒钟才能运行。我将首先使用串行终端测试您的 AT 命令,看看是否值得更改实现您的挂起队列。

如果您通过 GPRS 连接到服务器,则应该查看 ppp。

关于pthreads - 一个好的 C 库可以在嵌入式 Linux 中使用 GSM 模块加速 AT 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15149929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com