Transponder::Transponder(SGPropertyNode *node)
:
+ _identMode(false),
_name(node->getStringValue("name", "transponder")),
_num(node->getIntValue("number", 0)),
_mode((Mode) node->getIntValue("mode", 1)),
}
}
- if (_knob > KNOB_ON) {
+ if (_knob >= KNOB_ON) {
_transmittedId_node->setIntValue(_idCode_node->getIntValue());
} else {
_transmittedId_node->setIntValue(INVALID_ID);
void Transponder::valueChanged(SGPropertyNode *prop)
{
// Ident button pressed
- if ((prop == _identBtn_node) && prop->getBoolValue()) {
- _identTime = 0.0;
- _ident_node->setBoolValue(true);
- _identMode = true;
+ if (prop == _identBtn_node) {
+ if (prop->getBoolValue()) {
+ _identTime = 0.0;
+ _ident_node->setBoolValue(true);
+ _identMode = true;
+ } else {
+ // don't cancel state on release
+ }
return;
}