MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/driver/chipset/PackagerADS1259Extended.cpp

62 lines
1.4 KiB
C++
Raw Normal View History

/*
* 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 );
}