CRC¶
-
class
baseband.vlbi_base.utils.
CRC
(polynomial)[source] [edit on github]¶ Bases:
object
Cyclic Redundancy Check for a bitstream.
See https://en.wikipedia.org/wiki/Cyclic_redundancy_check
Once initialised, the instance can be used as a function that calculates the CRC, or one can use the
check
method to verify that the CRC at the end of a stream is correct.- Parameters
- polynomialint
Binary encoded CRC divisor. For instance, that used by Mark 4 headers is 0x180f, or x^12 + x^11 + x^3 + x^2 + x + 1.
Methods Summary
__call__
(self, stream)Calculate CRC for the given stream.
check
(self, stream)Check that the CRC at the end of the stream is correct.
Methods Documentation
-
__call__
(self, stream)[source] [edit on github]¶ Calculate CRC for the given stream.
- Parameters
- streamarray of bool or unsigned int
The dimension is treated as the index into the bits. For a single stream, the array should thus be of type
bool
. Integers represent multiple streams. E.g., for a 64-track Mark 4 header, the stream would be an array ofnp.uint64
words.
- Returns
- crcarray
The crc will have the same dtype as the input stream.
-
check
(self, stream)[source] [edit on github]¶ Check that the CRC at the end of the stream is correct.
- Parameters
- streamarray of bool or unsigned int
The dimension is treated as the index into the bits. For a single stream, the array should thus be of type
bool
. Integers represent multiple streams. E.g., for a 64-track Mark 4 header, the stream would be an array ofnp.uint64
words.
- Returns
- okbool
True
if the calculated CRC is all zero (which should be the case if the CRC at the end of the stream is correct).