我需要为一个家庭自动化项目编写一个程序,该项目将在运行 Ubuntu 12.04 的 Beagle Board 上运行。以下是该程序的功能:
从串行端口获取数据,在我的例子中,它是一个使用 Linux 版本中预先存在的 FTDI 驱动程序的虚拟 COM 端口。XBEE 模块连接到 USB 端口,该端口通过 Zigbee 协议接收数据并将其串行发送到 Beagle 板。
将上述数据转储到 MySQL 数据库中。
听从通过 TCP/IP 协议发送命令并通过 TCP/IP 发送请求信息的平板电脑的指令。在某些情况下,它可能只是一个小数据,而在某些情况下,它可能是连续的数据流。
我已经实现了上述功能,具体如下:
我用于串口读写的代码使用了以下网站http://www.teuniz.net/RS-232/提供的头文件。它使用 while(1) 循环连续读取串行端口以获取值。我为此创建了一个单独的线程。
我创建了一个单独的线程,用于将数据转储到 MySQL 数据库中。
TCP/IP 服务器的另一个线程。当将来添加接受多个客户端连接的功能时,该线程可能会产生更多线程。
我的问题是:
考虑到它在具有 1GhZ ARM 7 内核的嵌入式平台上运行时,这种产生多个线程的编程方法是否是一种好的编程方法?
有没有更好的方法来做到这一点?
你能建议我一种方法,以便我可以同时通过串口进行读写。我是否需要再次将读写功能放在单独的线程中才能做到这一点?