kopia lustrzana https://github.com/mobilinkd/tnc3-firmware
33 wiersze
424 B
C++
33 wiersze
424 B
C++
|
#ifndef MOBILINKD__NRZI_H_
|
||
|
#define MOBILINKD__NRZI_H_
|
||
|
|
||
|
namespace mobilinkd { namespace libafsk {
|
||
|
|
||
|
struct NRZI {
|
||
|
|
||
|
bool state_;
|
||
|
|
||
|
NRZI()
|
||
|
: state_(false)
|
||
|
{}
|
||
|
|
||
|
bool decode(bool x) {
|
||
|
bool result = (x == state_);
|
||
|
state_ = x;
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
bool encode(bool x) {
|
||
|
if (x == 0) {
|
||
|
state_ ^= 1; // Flip the bit.
|
||
|
}
|
||
|
return state_;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
}} // mobilinkd::libafsk
|
||
|
|
||
|
#endif // MOBILINKD__NRZI_H_
|
||
|
|
||
|
|