private void SearchCurrent(Ipt4 temp) { var step1 = Math.Pow(10, -temp.Power1); Tok1New = temp.FCurrent1 / 25000.0 * step1; var step2 = Math.Pow(10, -temp.Power2); Tok2New = temp.FCurrent2 / 25000.0 * step2; }
/// <summary>Чтение данных ИПТ.</summary> public void ReadIpt() { try { _ipt = _iptReader.Read(); } catch (SocketException ex) { DisconnectIpt(); OnIptError(new DataReaderErrorEventArgs(ex.ErrorCode, ex.Message)); return; } catch (Exception ex) { DisconnectIpt(); OnIptError(new DataReaderErrorEventArgs(0, ex.Message)); return; } OnIptDataRead(new DataReadEventArgs(_buffer, _ipt)); }
//TODO: Александр. Старые значения времени и токов нужно хранить в полях класса. Извне брать только текущие значения. //эти методы должны расчитывать реактивности из Ток1 и Ток2 public void SearchReactivity(double[] l, double[] a, Buffer time, Ipt4 temp) { SearchCurrent(temp); if (TimeOld.Equals(DateTime.MinValue) && _tok1Old.Equals(double.NaN) && _tok2Old.Equals(double.NaN)) { for (int i = 0; i < 6; i++) { _psi01[i] = Tok1New; _psi02[i] = Tok2New; } TimeOld = DateTime.Now; _tok1Old = Tok1New; _tok2Old = Tok2New; } var timeNow = DateTime.Now; var dt = timeNow - TimeOld; for (int i = 0; i < _one.Length; i++) { double constTRaspada = l[i] * dt.TotalSeconds; _one[i] = Math.Exp(-constTRaspada); _two[i] = (1 - _one[i]) / constTRaspada; _psi01[i] = _psi01[i] * _one[i] - (Tok1New - _tok1Old) * _two[i] - _tok1Old * _one[i] + Tok1New; _psi02[i] = _psi02[i] * _one[i] - (Tok2New - _tok2Old) * _two[i] - _tok2Old * _one[i] + Tok2New; Reactivity1 += a[i] * _psi01[i]; Reactivity2 += a[i] * _psi02[i]; } //Зачем потребовалось создать _timeNow ?? Да просто иначе если бы в этой строке стояло бы DateTime.Now то это было бы уже другое время, нежели участвующее в формуле выше!!! TimeOld = timeNow; _tok1Old = Tok1New; _tok2Old = Tok2New; Reactivity1 = 1 - Reactivity1 / Tok1New; Reactivity2 = 1 - Reactivity2 / Tok2New; ReactivityAverage = (Reactivity1 + Reactivity2) / 2; }
public DataReadEventArgs(Buffer buffer, Ipt4 ipt4) { Buffer = buffer; Ipt4 = ipt4; }