void BACIMonitor::setMinTriggerValue(const BACIValue& _minTriggerValue) { ACS_TRACE("baci::BACIMonitor::setMinTriggerValue"); minTriggerValue_m=_minTriggerValue; if (triggerValue_m<minTriggerValue_m && triggerValue_m.noDelta()==false) { setTriggerValue(minTriggerValue_m); } }
void Controller::processTriggers( const ::vr::VRControllerState_t& state ) { const uint64_t buttonMask = ::vr::ButtonMaskFromId( ::vr::k_EButton_SteamVR_Trigger ); const bool isTouched = ( buttonMask == ( state.ulButtonTouched & buttonMask ) ); float value = 0.0f; if( isTouched ) { value = state.rAxis[ci::vr::openvr::Controller::AXIS_INDEX_TRIGGER].x; } if( isTouched != mTriggerTouched ) { mTriggerTouched = isTouched; setTriggerValue( mTriggers[0].get(), value ); } }
BACIMonitor::BACIMonitor(const ACE_CString& _name, int _callbackID, MonitorImplementator* _monitorImplementator_p, const ACS::TimeInterval& _triggerTime, const BACIValue& _triggerValue, const ACS::TimeInterval& _minTriggerTime, const BACIValue& _minTriggerValue, BACIProperty* _property, const ACS::TimeInterval& _transmitTime, const UpdateMode& _updateMode, const bool _archivingMonitor, const bool _suspended, const bool _deltaValueAndTimerInteraction, const unsigned int _priority) : name_m(_name), callbackID_m(_callbackID), monitorImplementator_mp(_monitorImplementator_p), updateMode_m(mumLast), triggerTime_m(0), minTriggerTime_m(_minTriggerTime), transmitTime_m(0), userControlledTransmitTime_m(false), lastTime_m(0), minTriggerValue_m(_minTriggerValue), triggerOnValue_m(false), triggerOnValuePercent_m(false), property_mp(_property), archivingMonitor_m(_archivingMonitor), suspended_m(_suspended), deltaValueAndTimerInteraction_m(_deltaValueAndTimerInteraction), priority_m(_priority), inDestructionState_m(false), destroyed_m(false) { ACS_TRACE("baci::BACIMonitor::BACIMonitor"); ACS_LOG(0, "baci::BACIMonitor::BACIMonitor", (static_cast<ACE_Log_Priority>(LM_DELOUSE), "Creating monitor '%s' (archiving: %d, triggerTime: %d)", name_m.c_str(), archivingMonitor_m, (unsigned)_triggerTime)); if (archivingMonitor_m==true) { ACS_LOG(0, "baci::BACIMonitor::BACIMonitor", (LM_DEBUG, "Archiver monitor with priority %d", priority_m)); } // VxWorks (should not be as initializer) monitorImplementator_mp = 0; // set update mode setUpdateMode(_updateMode); // set monitors setTriggerTime(_triggerTime); setTriggerValue(_triggerValue); if (getTriggerValue().isNull()==0 && getTriggerValue().noDelta()==false) { setTriggerOnValue(true); } if (getTriggerValuePercent().isNull()==0 && getTriggerValuePercent().noDelta()==false) { setTriggerOnValuePercent(true); } // set transmit_time if (_transmitTime!=0) { userControlledTransmitTime_m = true; setTransmitTime(_transmitTime); // user now handles monitor sync. } if (archivingMonitor_m==false) { property_mp->getComponent()->getCallback(callbackID_m)->setRemoveOnFailure(false); } monitorImplementator_mp = _monitorImplementator_p; // add monitor property_mp->addMonitor(this); }