我在 Google 上找到的最好的东西是 Reed-Solomon 编码;但这似乎很激烈。
基本上,我正在与一个具有串行端口的资源受限的小型设备进行通信。通过红外线进行通信;串行端口直接连接到红外编码器/解码器硬件,然后连接到红外收发器。
通信是半双工的。这是一个硬件限制,否则 IR 收发器会看到自己的传输。我与主机轮询并在客户端上使用中断来了解何时传回。
我遇到的问题是硬件对静电放电极其敏感。我已经采取了所有实用的硬件措施来减少这个问题,但它们还不够好;我现在正在查看软件问题。
谁能建议错误恢复的任何实现,理想情况下不需要重传?
越简单越好。如果那里有免费图书馆,那就更好了!
最佳答案
如果你不想使用 Reed-Solomon,Golay 怎么样?编码?它是一种非常小的算法,这段代码在一个 C 文件中完全实现了它,并且看起来很适合用于商业项目(尽管它不是标准的开源许可证之一)。
您可能还可以找到其他实现。格雷码是低比特率数字 radio 系统中用于错误恢复的几种机制之一。
关于c++ - 通过软件提高 IR 串行可靠性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7838782/