62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
|
|
/*
|
|||
|
|
* PackagerADS1259Extended.cpp
|
|||
|
|
*
|
|||
|
|
* Created on: 8 <EFBFBD><EFBFBD><EFBFBD>. 2020 <EFBFBD>.
|
|||
|
|
* Author: krugliy
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#include "PackagerADS1259Extended.hh"
|
|||
|
|
|
|||
|
|
//todo: <20><>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
static uint16_t swapWord(uint16_t word) { return (word << 8) | ((word >> 8) & 0xFF); }
|
|||
|
|
|
|||
|
|
const std::size_t driver::chipset::PackagerADS1259Extended::FrameSize = 48;
|
|||
|
|
|
|||
|
|
driver::chipset::PackagerADS1259Extended::Frame driver::chipset::PackagerADS1259Extended::encode() {
|
|||
|
|
|
|||
|
|
union {
|
|||
|
|
Frame frame;
|
|||
|
|
char words[sizeof(Frame)] = { Packager::RDATA };
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
frame = 0;
|
|||
|
|
words[0] = Packager::RDATA;
|
|||
|
|
|
|||
|
|
for(unsigned short n = 0; n < sizeof(Frame); n++) {
|
|||
|
|
words[n] = swapWord(words[n]);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return frame;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
driver::chipset::PackagerADS1259Extended::Data driver::chipset::PackagerADS1259Extended::decode( Frame frame ) {
|
|||
|
|
|
|||
|
|
union {
|
|||
|
|
Frame uframe;
|
|||
|
|
char words[sizeof(Frame)];
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
uframe = frame;
|
|||
|
|
|
|||
|
|
for(unsigned short n = 0; n < sizeof(Frame); n++) {
|
|||
|
|
words[n] = swapWord(words[n]);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return uframe >> 8;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
driver::chipset::PackagerADS1259Extended::Frame driver::chipset::PackagerADS1259Extended::Packager::pack() const {
|
|||
|
|
|
|||
|
|
return encode();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
driver::chipset::PackagerADS1259Extended::Data driver::chipset::PackagerADS1259Extended::Packager::unpack(
|
|||
|
|
Frame frame ) const {
|
|||
|
|
|
|||
|
|
return decode( frame );
|
|||
|
|
|
|||
|
|
}
|