JCAMessagePayload(DBR metadata, MonitorEvent event) { if (event != null) { // If we have a monitor event, it may be an "incomplete" // String event because of the RTYP support if (event.getDBR() instanceof DBR_String && !(event.getDBR() instanceof DBR_TIME_String)) { DBR_String originalValue = (DBR_String) event.getDBR(); // Received only partial data. Filling in time and alarm DBR_TIME_String value = new DBR_TIME_String(originalValue.getStringValue()); value.setSeverity(Severity.NO_ALARM); value.setStatus(Status.NO_ALARM); value.setTimeStamp(new TimeStamp()); event = new MonitorEvent((Channel) event.getSource(), value, event.getStatus()); } } this.metadata = metadata; this.event = event; }
@Override public String toString() { DBR value = null; if (event != null) { value = event.getDBR(); } return "Metadata " + metadata + " value " + value; }
public void monitorChanged(MonitorEvent monitorEvent) { CAStatus caStatus = monitorEvent.getStatus(); if(!caStatus.isSuccessful()) { monitorRequester.message(caStatus.getMessage(),MessageType.error); return; } DBR fromDBR = monitorEvent.getDBR(); if(fromDBR==null) { monitorRequester.message("fromDBR is null", MessageType.error); } else { v3ChannelStructure.toStructure(fromDBR); monitorRequester.monitorEvent(this); } } /* (non-Javadoc)
/** * @see com.cosylab.epics.caj.impl.ResponseRequest#timeout() */ public void timeout() { cancel(); // ... and notify context.getEventDispatcher().dispatch( new MonitorEvent(channel, null, CAStatus.TIMEOUT), monitor ); }
@Override public String toString() { DBR value = null; if (event != null) { value = event.getDBR(); } return "Metadata " + metadata + " value " + value; }
/** * @see com.cosylab.epics.caj.impl.ResponseRequest#timeout() */ public void timeout() { cancel(); // ... and notify context.getEventDispatcher().dispatch( new MonitorEvent(channel, null, CAStatus.TIMEOUT), monitor ); }
JCAMessagePayload(DBR metadata, MonitorEvent event) { if (event != null) { // If we have a monitor event, it may be an "incomplete" // String event because of the RTYP support if (event.getDBR() instanceof DBR_String && !(event.getDBR() instanceof DBR_TIME_String)) { DBR_String originalValue = (DBR_String) event.getDBR(); // Received only partial data. Filling in time and alarm DBR_TIME_String value = new DBR_TIME_String(originalValue.getStringValue()); value.setSeverity(Severity.NO_ALARM); value.setStatus(Status.NO_ALARM); value.setTimeStamp(new TimeStamp()); event = new MonitorEvent((Channel) event.getSource(), value, event.getStatus()); } } this.metadata = metadata; this.event = event; }
@Override public void monitorChanged(MonitorEvent event) { synchronized(JCAChannelHandler.this) { if (log.isLoggable(Level.FINEST)) { log.log(Level.FINEST, "JCA value monitorChanged for channel {0} value {1}, event {2}", new Object[] {getChannelName(), toStringDBR(event.getDBR()), event}); } DBR metadata = null; if (getLastMessagePayload() != null) { metadata = getLastMessagePayload().getMetadata(); } processMessage(new JCAMessagePayload(metadata, event)); } } };
new MonitorEvent(channel, readVal, caStatus), monitor );
@Override public void monitorChanged(MonitorEvent event) { synchronized(JCAChannelHandler.this) { if (log.isLoggable(Level.FINEST)) { log.log(Level.FINEST, "JCA value monitorChanged for channel {0} value {1}, event {2}", new Object[] {getChannelName(), toStringDBR(event.getDBR()), event}); } DBR metadata = null; if (getLastMessagePayload() != null) { metadata = getLastMessagePayload().getMetadata(); } processMessage(new JCAMessagePayload(metadata, event)); } } };
new MonitorEvent(channel, readVal, caStatus), monitor );
@Override public void monitorChanged(MonitorEvent ev) { synchronized(JCAChannelHandler.this) { if (log.isLoggable(Level.FINEST)) { log.log(Level.FINEST, "JCA metadata monitorChanged for channel {0} event {1}", new Object[] {getChannelName(), ev}); } // In case the metadata arrives after the monitor MonitorEvent event = null; if (getLastMessagePayload() != null) { event = getLastMessagePayload().getEvent(); } processMessage(new JCAMessagePayload(ev.getDBR(), event)); } } };
@Override public void monitorChanged(MonitorEvent ev) { synchronized(JCAChannelHandler.this) { if (log.isLoggable(Level.FINEST)) { log.log(Level.FINEST, "JCA metadata monitorChanged for channel {0} event {1}", new Object[] {getChannelName(), ev}); } // In case the metadata arrives after the monitor MonitorEvent event = null; if (getLastMessagePayload() != null) { event = getLastMessagePayload().getEvent(); } processMessage(new JCAMessagePayload(ev.getDBR(), event)); } } };
@Override @SuppressWarnings("unchecked") public boolean updateCache(ValueCache cache, JCAConnectionPayload connPayload, JCAMessagePayload message) { Channel channel = connPayload.getChannel(); // If metadata is required and not present, no update if (epicsMetaType != null && message.getMetadata() == null) return false; // If value is not present, no update if (message.getEvent() == null) return false; Object value = createValue(message.getEvent().getDBR(), message.getMetadata(), connPayload); cache.writeValue(value); return true; }
@Override @SuppressWarnings("unchecked") public boolean updateCache(ValueCache cache, JCAConnectionPayload connPayload, JCAMessagePayload message) { Channel channel = connPayload.getChannel(); // If metadata is required and not present, no update if (epicsMetaType != null && message.getMetadata() == null) return false; // If value is not present, no update if (message.getEvent() == null) return false; Object value = createValue(message.getEvent().getDBR(), message.getMetadata(), connPayload); cache.writeValue(value); return true; }