MotorControlModuleSDFM_TMS3.../Projects/EFC_Communication/UMLibrary/driver/chipset/PackagerADT7310.cpp
2024-06-07 11:12:56 +03:00

53 lines
1.7 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* PackagerADT7310.cpp
*
* Created on: 27 сент. 2019 г.
* Author: user
*/
#include "PackagerADT7310.hh"
#include <climits>
const std::size_t driver::chipset::PackagerADT7310::ConfigPackager::FrameSize =
sizeof(driver::chipset::PackagerADT7310::ConfigPackager::Frame)
* CHAR_BIT;
const std::size_t driver::chipset::PackagerADT7310::TemperaturePackager::FrameSize =
sizeof(driver::chipset::PackagerADT7310::TemperaturePackager::Frame)
* CHAR_BIT;
driver::chipset::PackagerADT7310::ConfigPackager::Frame driver::chipset::PackagerADT7310::ConfigPackager::pack( Data data ) const {
return CommandByteForm( reg_address, not write_nread, write_nread ? data : read_mock ).frame;
}
driver::chipset::PackagerADT7310::ConfigPackager::Data driver::chipset::PackagerADT7310::ConfigPackager::unpack(
Frame frame ) const {
return CommandByteForm( frame ).command_byte.data;
}
driver::chipset::PackagerADT7310::TemperaturePackager::Frame driver::chipset::PackagerADT7310::TemperaturePackager::pack(
Data temperature ) const {
return driver::chipset::PackagerADT7310::expand( CommandByteForm( reg_address, not write_nread, read_mock ), read_mock );
}
driver::chipset::PackagerADT7310::TemperaturePackager::Data driver::chipset::PackagerADT7310::TemperaturePackager::unpack(
Frame frame ) const {
return static_cast<long int>((frame << 16 | frame >> 16) << 8) >> (16 + 3);
}
uint32_t driver::chipset::PackagerADT7310::expand( CommandByteForm command_byte,
char lsb_data_byte ) {
return static_cast<uint32_t>( command_byte.frame ) | ( static_cast<uint32_t>( lsb_data_byte ) << 16u );
}