我正在编写一个类,它正在读取传入的串行数据包。这些数据包由一个头、一些数据组成,后面跟着一个两个字节的CRC。
我还编写了一个类,可以在其中构建要发送的数据包。这个类有GenerateCRC()方法,该方法允许调用方为他们通过调用其他方法构建的数据包计算CRC。GenerateCRC()调用只能在正确设置数据包报头和数据之后调用。因此,该方法在for循环中遍历数据包,并以这种方式计算CRC。
现在我正在编写代码来读取数据包,我需要通过计算一个CRC来验证它们。我试图尽可能地重用以前的"builder“类,因为当我在包中阅读时,我希望将它存储在内存中,最好的方法是使用"builder”类。然而,我在计算CRC方面遇到了困难。
有两个主要的方法,我正在考虑,我有困难权衡利弊和决定一种方法。以下是我的两个选择:
目前,我倾向于选择1,并将"builder“和"reader”之间的任何通用功能移到单独的头文件中。但是,我希望确保第一个选项实际上是性能更好的选项,因为它确实会使我的代码变得更加混乱。
提前谢谢你的帮助。
发布于 2013-10-01 15:57:08
我会选择#2,这允许通过在两端使用相同的代码对代码进行更简单的验证,并且允许使用速度更快的CRC算法一次处理4或8个字节。
https://stackoverflow.com/questions/19107579
复制相似问题