You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
2.5 KiB
C++

/*
* FRAMBuffer.cpp
*
* Author: Aleksey Gerasimenko
* gerasimenko.aleksey.n@gmail.com
*/
#include "FRAM/FRAMBuffer.h"
namespace FRAM
{
//CONSTRUCTOR
FRAMBuffer::FRAMBuffer():
m_header(),
m_config(),
m_footer()
//
{}//CONSTRUCTOR
void FRAMBuffer::update(const FRAM::FRAMHeader& header, const SYSCTRL::SystemControlConfiguration& config, const FRAM::FRAMFooter& footer)
{
m_header = header;
m_config = config;
m_footer = footer;
//
}//
//
bool FRAMBuffer::verify_header_and_footer(const FRAM::FRAMHeader& header, const FRAM::FRAMFooter& footer)
{
if((m_header.class_id == 0xFFFF)
&& (m_header.part_id == 0xFFFF)
&& (m_header.software_version == 0xFFFF)
&& (m_header.size_of_fram_data == 0xFFFF)
&& (m_footer.foot == 0xFFFF))
{
return false;
//
}else{
if(m_header.class_id != header.class_id)
{
return false;
//
}else{
if(m_header.part_id != header.part_id)
{
return false;
//
}else{
if(m_header.software_version != header.software_version)
{
return false;
//
}else{
if(m_header.size_of_fram_data != header.size_of_fram_data)
{
return false;
//
}else{
if(m_footer.foot != footer.foot)
{
return false;
//
}else{
return true;
//
}
}
}
}
}
}
}//
//
void FRAMBuffer::extract(FRAM::FRAMHeader& header, SYSCTRL::SystemControlConfiguration& config, FRAM::FRAMFooter& footer)
{
header = m_header;
footer = m_footer;
config = m_config;
//
}//
//
void FRAMBuffer::extract_header(FRAMHeader& header)
{
header = m_header;
//
}//
//
FRAM::FRAMHeader FRAMBuffer::get_header()
{
return m_header;
//
}//
//
void FRAMBuffer::extract_footer(FRAMFooter& footer)
{
footer = m_footer;
//
}//
//
FRAM::FRAMFooter FRAMBuffer::get_footer()
{
return m_footer;
//
}//
//
void FRAMBuffer::extract_system_configuration(SYSCTRL::SystemControlConfiguration& config)
{
config = m_config;
//
}//
//
} /* namespace FRAM */