|
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 | - новое значение |
1.7.6.1