public void Dispose() { if (reporters != null) { for (int x = 0; x < reporters.Length; x++) { if (reporters[x] != null) { reporters[x].Dispose(); reporters[x] = null; } } } currentDataRow = null; reporters = null; if (dataLogger != null) { dataLogger.Dispose(); dataLogger = null; } } /* Dispose */
/// <summary> /// Initializes a new instance of the <see cref="InstrumentDataManager"/> class. /// </summary> /// <param name="_dataLogger">The _data logger.</param> /// <param name="_sipperFile">The _sipper file.</param> /// <param name="_configRec">The _config rec.</param> /// <param name="_currentDataRow">The _current data row.</param> public InstrumentDataManager(InstrumentDataLogger _dataLogger, // Will take ownership of '_dataLogger' PicesSipperFile _sipperFile, SipperConfigRec _configRec, InstrumentData _currentDataRow ) { dataLogger = _dataLogger; configRec = _configRec; sipperFile = _sipperFile; portAssignments = null; if (sipperFile != null) { portAssignments = new PortAssignment[4]; if (String.IsNullOrEmpty(sipperFile.Sp0)) { portAssignments[0] = null; } else { portAssignments[0] = new PortAssignment(sipperFile.Sp0, ""); } if (String.IsNullOrEmpty(sipperFile.Sp1)) { portAssignments[1] = null; } else { portAssignments[1] = new PortAssignment(sipperFile.Sp1, ""); } if (String.IsNullOrEmpty(sipperFile.Sp2)) { portAssignments[2] = null; } else { portAssignments[2] = new PortAssignment(sipperFile.Sp2, ""); } if (String.IsNullOrEmpty(sipperFile.Sp3)) { portAssignments[3] = null; } else { portAssignments[3] = new PortAssignment(sipperFile.Sp3, ""); } } else { portAssignments = configRec.HeaderRec().PortAssignments(); } reporters = new InstrumentDataReport[MaxNumOfDevices]; currentDataRow = _currentDataRow; byte deviceId = 0; for (deviceId = 0; deviceId < MaxNumOfDevices; deviceId++) { reporters[deviceId] = null; if (deviceId >= SerialPort0DeviceID) { byte serialPort = (byte)(deviceId - SerialPort0DeviceID); if (serialPort < portAssignments.Length) { if (portAssignments[serialPort] != null) { reporters[deviceId] = portAssignments[serialPort].Instrument().CreateInstrumentDataReport(this, deviceId); } } } } InitializeLatitude(); }