internal EpicsServerMonitor( EpicsRecord record, RecordProperty property, EpicsServerChannel channel, EpicsType type, int dataCount, MonitorMask monitorMask, int subscriptionId) { this.record = record; this.property = property; this.channel = channel; this.type = type; this.dataCount = dataCount; this.monitorMask = monitorMask; this.subscriptionId = subscriptionId; try { var val = this.record[this.property.ToString()]; if (val == null) { val = 0; } var realData = NetworkByteConverter.objectToByte(val, this.type, this.record); this.channel.sendMonitorChange( this.subscriptionId, this.type, this.dataCount, EpicsTransitionStatus.ECA_NORMAL, realData); this.StartMonitor(); } catch (Exception e) { this.channel.sendMonitorChange( this.subscriptionId, this.type, this.dataCount, EpicsTransitionStatus.ECA_ADDFAIL, new byte[0]); } }