UniSet
1.4.0
|
#include <TriggerOutput.h>
Открытые типы | |
typedef void(Caller::* | Action )(OutIdType out, ValueType val) |
Открытые члены | |
TriggerOutput (Caller *r, Action a) | |
bool | getState (OutIdType out) |
void | set (OutIdType out, ValueType val) |
void | add (OutIdType out, ValueType val) |
void | remove (OutIdType out) |
void | update () |
void | reset () |
Защищенные типы | |
typedef std::map< OutIdType, ValueType > | OutList |
Защищенные члены | |
void | check (OutIdType newout) |
Защищенные данные | |
OutList | outs |
Caller * | cal |
Action | act |
Полезен для случаев, когда, например, команда "включить" и "отключить" подается на разные выходы. В этом случае тригер не позволяет иметь на выходах противоречивое состояние.
В конструкторе указывается функция, которая будет вызываться при ИЗМЕНЕНИИ состояния того, или иного выхода.
#include "TriggerOutput.h" class MyClass { public: MyClass(){}; ~MyClass(){}; void out(int out_id, int val){ cout << "TriggerOUT out="<< out_id << " val=" << val <<endl;} ... }; ... MyClass rec; // Создание TriggerOutput<MyClass,int,int> tr_out(&rec, &MyClass::out); // формируем OUT триггер с двумя 'выходами' TriggerOutput<MyClass,int,int> tr_out(&rec, &MyClass::out); tr_out.add(1,0); tr_out.add(2,0); ... // Использование // подаём сперва на первый 'выход' значение, второй должен стать в "0", // потом на другой... tr_out.set(1,4); tr_out.set(2,3);
typedef void(Caller::* TriggerOutput< Caller, OutIdType, ValueType >::Action)(OutIdType out, ValueType val) |
прототип функции вызова
out | - идентификатор 'выхода' |
val | - новое значение |
void TriggerOutput< Caller, OutIdType, ValueType >::add | ( | OutIdType | out, |
ValueType | val | ||
) |
добавить новый 'выход' и установить начальное значение.
out | - идентификатор 'выхода' |
val | - новое значение |
bool TriggerOutput< Caller, OutIdType, ValueType >::getState | ( | OutIdType | out | ) |
получить текущее значение указанного 'выхода'
void TriggerOutput< Caller, OutIdType, ValueType >::remove | ( | OutIdType | out | ) |
удалить указанный 'выход'
void TriggerOutput< Caller, OutIdType, ValueType >::set | ( | OutIdType | out, |
ValueType | val | ||
) |
установить значение одного из 'выходов'
out | - идентификатор 'выхода' |
val | - новое значение |