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.h

58 lines
1.3 KiB
C

/*
* MonitorDigitalInputSignal.h
*
* Author: Aleksey Gerasimenko
* gerasimenko.aleksey.n@gmail.com
*/
#include <math.h>
#include <stdint.h>
#include "SYSCTRL/SystemDefinitions.h"
#ifndef SYSCTRL_MONITORDIGITALINPUTSIGNAL_H_
#define SYSCTRL_MONITORDIGITALINPUTSIGNAL_H_
namespace SYSCTRL
{
struct MonitorDigitalInputSignalBitFiled
{
uint16_t state:1;
uint16_t privious:1;
uint16_t is_on:1;
uint16_t is_off:1;
uint16_t is_switched_on:1;
uint16_t is_switched_off:1;
//
};//
union MonitorDigitalInputSignalRegister
{
uint16_t all;
Register16BitField bit;
MonitorDigitalInputSignalBitFiled signal;
MonitorDigitalInputSignalRegister():
all(uint16_t(0))
{}
MonitorDigitalInputSignalRegister(uint16_t val):
all(val)
{}
};//MonitorDigitalInputSignalRegister
class MonitorDigitalInputSignal
{
public:
MonitorDigitalInputSignal();
public:
static void implement(bool input, MonitorDigitalInputSignalRegister& state);
static void preset(bool input, MonitorDigitalInputSignalRegister& state);
static void reset(MonitorDigitalInputSignalRegister& state);
//
};//MonitorDigitalInputSignal
} /* namespace SYSCTRL */
#endif /* SYSCTRL_MONITORDIGITALINPUTSIGNAL_H_ */