//Добавление записи текущего измерения в архив для датчика в канале ch public void WriteToArhiv(SChanalMET ch, SPointMET point) { StreamWriter writer = null; if (!File.Exists(ch.FileNameArchiv)) { writer = CreateFileArhiv(ch); } else { writer = new StreamWriter(ch.FileNameArchiv, true);//открываем файл БД } if (writer != null) { // if (ch.Points.Count > 0) // writer.WriteLine(GetStringFromPoint(ch.Points[ch.Points.Count - 1])); writer.WriteLine(GetStringFromPoint(point)); writer.Close(); writer = null; } else { Program.txtlog.WriteLineLog("MET:Ошибка записи в архив: " + ch.FileNameArchiv, 1); } }
public void AddPoint(int ch, double Temp, double npi, double vpi, double PressZ, double PressF, double CurF, double CurR) { try { SPointMET point = new SPointMET { Datetime = DateTime.Now, Temperature = Temp, NPI = npi, VPI = vpi, PressureZ = PressZ, PressureF = PressF, CurrentF = CurF, CurrentR = CurR, }; Channal[ch].Points.Add(point); FileStream[ch].WriteLine(GetStringFromPoint(point)); FileStream[ch].Flush(); WriteToArhiv(Channal[ch], point); } catch { Program.txtlog.WriteLineLog(string.Format("MET:Ошибка записи в файл результатов (канал {0})", ch), 1); } }
//возвращает строку результатов характеризации в точке private string GetStringFromPoint(SPointMET point) { return(point.Datetime.ToString() + "|" + point.Temperature.ToString(" +000.0; -000.0; 0.0") + " |" + point.NPI.ToString(" +00000.00; -00000.00; 0.0") + " |" + point.VPI.ToString(" +00000.00; -00000.00; 0.0") + " |" + point.PressureZ.ToString(" +00000.00; -00000.00; 0.0") + " |" + point.PressureF.ToString(" +00000.00; -00000.00; 0.0") + " |" + point.CurrentR.ToString(" +00000.0000; -00000.0000; 0.0") + " |" + point.CurrentF.ToString(" +00000.0000; -00000.0000; 0.0") + " |"); }