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++
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 */
|