Beispiel #1
0
 void SignalBase::trigger(const GenericFunctionParameters& params, MetaCallType callType)
 {
   if (!_p)
     return;
   if (_p->triggerOverride)
     _p->triggerOverride(params, callType);
   else
     callSubscribers(params, callType);
 }
Beispiel #2
0
bool Channel::processMonitorElement() 
{
    //epics::pvData::Lock lock(monitorElementProcessingMutex);
    if (monitorThreadDone) {
        return true;
    }

    // Handle possible exceptions while retrieving data from empty queue.
    try {
        PvObject pvObject = getMonitorRequester()->getQueuedPvObject(getTimeout());
        callSubscribers(pvObject);
    }
    catch (const ChannelTimeout& ex) {
        // Ignore, no changes received.
    }
    catch (const std::exception& ex) {
        // Not good.
        logger.error("Exception caught in monitor thread: %s", ex.what());
    }
    return false;
}