internal ChannelMonitor(CARecord record, string property, CAServerChannel channel, EpicsType type, int dataCount, MonitorMask monitorMask, int subscriptionId) { Record = record; Property = property; Channel = channel; Type = type; DataCount = dataCount; MonitorMask = monitorMask; SubscriptionId = subscriptionId; try { object val = Record[Property.ToString()]; if (val == null) val = 0; byte[] realData = val.ToByteArray(Type, Record); Channel.sendMonitorChange(SubscriptionId, Type, DataCount, EpicsTransitionStatus.ECA_NORMAL, realData); lastValue = Record[Property]; Record.RecordProcessed += new EventHandler(Record_RecordProcessed); } catch (Exception e) { Channel.sendMonitorChange(SubscriptionId, Type, DataCount, EpicsTransitionStatus.ECA_ADDFAIL, new byte[0]); } }
internal CAChannelMonitor(CARecord record, string property, CAServerChannel channel, EpicsType type, int dataCount, MonitorMask monitorMask, int subscriptionId) { Record = record; Property = property; Channel = channel; Type = type; DataCount = dataCount; MonitorMask = monitorMask; SubscriptionId = subscriptionId; try { object val = Record[Property.ToString()]; if (val == null) val = 0; byte[] realData = val.ToByteArray(Type, Record); Channel.TcpConnection.Send(Channel.Server.Filter.MonitorChangeMessage(SubscriptionId, Channel.ClientId, Type, DataCount, val.ToByteArray(Type, Record))); lastValue = Record[Property]; Record.RecordProcessed += new EventHandler(Record_RecordProcessed); } catch (Exception e) { Channel.TcpConnection.Send(Channel.Server.Filter.MonitorChangeMessage(SubscriptionId, Channel.ClientId, Type, DataCount, new byte[0])); } }
internal CAChannelMonitor(CARecord record, string property, CAServerChannel channel, EpicsType type, int dataCount, MonitorMask monitorMask, int subscriptionId) { Record = record; Property = property; Channel = channel; Type = type; DataCount = dataCount; MonitorMask = monitorMask; SubscriptionId = subscriptionId; try { object val = Record[Property.ToString()]; if (val == null) { val = 0; } byte[] realData = val.ToByteArray(Type, Record); using (Record.CreateAtomicChange(false)) Channel.TcpConnection.Send(Channel.Server.Filter.MonitorChangeMessage(SubscriptionId, Channel.ClientId, Type, DataCount, val.ToByteArray(Type, Record))); Record.RecordProcessed += new EventHandler(Record_RecordProcessed); } catch (Exception e) { Channel.TcpConnection.Send(Channel.Server.Filter.MonitorChangeMessage(SubscriptionId, Channel.ClientId, Type, DataCount, new byte[0])); } }