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.
DVRLastVersionsCompare/SYSCTRL/MonitorDigitalInputSignal.cpp

50 lines
1.3 KiB
C++

/*
* MonitorDigitalInputSignal.cpp
*
* Author: Aleksey Gerasimenko
* gerasimenko.aleksey.n@gmail.com
*/
#include "SYSCTRL/MonitorDigitalInputSignal.h"
namespace SYSCTRL
{
//CONSTRUCTOR
MonitorDigitalInputSignal::MonitorDigitalInputSignal()
{}//CONSTRUCTOR
//
#pragma CODE_SECTION("ramfuncs");
void MonitorDigitalInputSignal::implement(bool input, MonitorDigitalInputSignalRegister& state)
{
state.signal.privious = state.signal.state;
state.signal.state = input;
state.signal.is_on = state.signal.state;
state.signal.is_off = !state.signal.state;
state.signal.is_switched_on = state.signal.state & !state.signal.privious;
state.signal.is_switched_off = !state.signal.state & state.signal.privious;
//
}//
#pragma CODE_SECTION("ramfuncs");
void MonitorDigitalInputSignal::preset(bool input, MonitorDigitalInputSignalRegister& state)
{
state.signal.privious = input;
state.signal.state = input;
state.signal.is_on = input;
state.signal.is_off = !input;
state.signal.is_switched_on = !state.signal.state & state.signal.privious;
state.signal.is_switched_off = state.signal.state & !state.signal.privious;
//
}//
//
#pragma CODE_SECTION("ramfuncs");
void MonitorDigitalInputSignal::reset(MonitorDigitalInputSignalRegister& state)
{
state.all = 0x0008;
//
}//
//
} /* namespace SYSCTRL */