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

33 lines
889 B
C++

/*
* PackagerMCP23S17.cpp
*
* Created on: 18 èþë. 2019 ã.
* Author: titov
*/
#include "PackagerMCP23S17.hpp"
#include <cstring>
const std::size_t driver::chipset::PackagerMCP23S17::FrameSize = 32;
driver::chipset::PackagerMCP23S17::Frame driver::chipset::PackagerMCP23S17::encode(RegAddress rg_address, Data data,
bool write_nread, HardwareAddress hw_address ) {
RegisterAddressAndData frame; {
frame.data = data,
frame.address.ADDRESS_CODE = hw_address, frame.address.FIXED_CODE = 4, frame.address.REGISTER_ADDRESS = rg_address, frame.address.RW_FLAG = write_nread;
};
Frame pack;
std::memcpy( &pack, &frame, sizeof(Frame) );
return pack;
}
driver::chipset::PackagerMCP23S17::Data driver::chipset::PackagerMCP23S17::decode( Frame frame ) {
return (frame >> 16ul) & 0xFFFFul;
}