2011-02-04 76 views
1

我有一个自定义的python脚本来监控来自北电电话系统的通话记录。这款手机系统全天都处于极高的音量,并且开始出现某些记录可能会丢失的情况。可靠地监控一个串口(北电CS1000)

你们有些人可能不喜欢这一点,但我没有兴趣在共享源代码或电流的方法以任何方式。我宁愿从“新项目”的角度来考虑这一点。

我找洞察通过在Linux上的串行端口可靠地监控大量的数据输出的最简单,最安全的方式。我并不是将其限制为任何特定的工具或语言,我想找出最适合做这一关键工作的最佳方法。我很满意解析数据并将其插入到mysql中,我们可以假设数据可以被丢弃到文本文件中。

谢谢

+0

在串口线路外出之前,你能确定数据没有在电话系统中被丢弃吗? – 2011-02-04 20:55:39

回答

1

嗯,我会处理这这有2个线程(或程序)工作的方式。

线程1:读螺纹

此线程不执行任何操作而读取来自原始串行端口数据,并把数据到本地缓冲器/队列(在存储器是优选的速度)。它不应该做别的。根据串行连接的时钟速度,这应该很容易做到。

线程2:处理线程

此线程只是休眠,直到有数据在本地缓冲要处理,则读取并处理它。而已。

其原因两个分开分裂它,是使得如果一个忙(一个在MySQL用于处理线程块),它不会影响其他。毕竟,当串行端口被OS缓冲时,缓冲区大小是有限的。

不过话又说回来,任何本地程序可能会比串口可以发送数据的方式更快。相对于处理器的时钟速度,串行传输实际上非常慢(115.2kbps大约是标准硬件的限制)。所以除非你的CPU速度受限(比如在Arduino上),否则我看不到影响它的正常情况。所以你选择的语言真的不应该太担心(假设现代硬件)。坚持你所知道的。