void AutomatScritBerecne() { var Zait = Bib3.Glob.StopwatchZaitMiliSictInt(); AutomatScritBerecneLezteNuzerZaitMili = Zait; var memoryMeasurement = Automat?.VonSensorikMesungLezte?.MemoryMeasurement; var timeMilli = memoryMeasurement?.End ?? 0; AutomatScritBerecneLezteSensorikMesungZaitMili = timeMilli; Automat.NuzerZaitMili = timeMilli; var preferences = EveOnlnOptimatParamBerecne(); Automat.BotStepInput = new EveOnline.Base.BotStepInput { TimeMilli = timeMilli, PreferencesSerial = preferences?.SerializeToString(), StepLastMotionResult = ListeNaacProcessWirkung?.Select(motion => motion.MapToNew())?.ToArray(), FromProcessMemoryMeasurement = memoryMeasurement, }; Automat.StepProcess(); var AutomaatZuusctandDiferenzScrit = Automat.ZuusctandScritDiferenzBerecne(10); NaacBerictListeAutomaatZuusctandDiferenz.Add(new WertZuZaitpunktStruct <Bib3.RefNezDiferenz.SictZuNezSictDiferenzScritAbbild>( AutomaatZuusctandDiferenzScrit, -1)); NaacBerictListeAutomaatZuusctandDiferenz.ListeKürzeBegin(30); }
Int64?RequestedMeasurementTime( out Int64?AssumptionLastMeasurementTime) { AssumptionLastMeasurementTime = null; AssumptionLastMeasurementTime = SensorClient?.MemoryMeasurementLast?.End; var VonAutomatMeldungZuusctandLezte = this.VonOptimatMeldungZuusctandLezte; if (null == VonAutomatMeldungZuusctandLezte) { return((AssumptionLastMeasurementTime + 5000) ?? Bib3.Glob.StopwatchZaitMiliSictInt()); } var ScritLeeseBeginZaitScrankeMinMili = VonAutomatMeldungZuusctandLezte.MesungNääxteZaitScrankeMin; if (AssumptionLastMeasurementTime.HasValue) { ScritLeeseBeginZaitScrankeMinMili = Math.Max( ScritLeeseBeginZaitScrankeMinMili, AssumptionLastMeasurementTime.Value + ZwisceMesungZaitScrankeMinMili); } else { } var VonOptimatVorsclaagBerecnetZuLezteScnapscus = !AssumptionLastMeasurementTime.HasValue || AssumptionLastMeasurementTime <= VonAutomatMeldungZuusctandLezte.BerecnungVorsclaagLezteZait; if (!VonOptimatVorsclaagBerecnetZuLezteScnapscus) { return(null); } var VorsclaagListeWirkung = VonAutomatMeldungZuusctandLezte.VorsclaagListeWirkung.ToArrayFalsNitLeer(); if (null != ListeNaacProcessWirkung) { // lock (ListeNaacProcessWirkungLock) { foreach (var NaacProcessWirkung in ListeNaacProcessWirkung) { var VorsclaagWirkung = VonAutomatMeldungZuusctandLezte.VorsclaagListeWirkung .FirstOrDefaultNullable((KandidaatVorsclaagWirkung) => KandidaatVorsclaagWirkung.Ident == NaacProcessWirkung.VorsclaagWirkungIdent); var VonWirkungBisScnapscusWartezaitMili = this.VonWirkungBisScnapscusWartezaitMili; if (null != VorsclaagWirkung) { VonWirkungBisScnapscusWartezaitMili = Math.Max(VonWirkungBisScnapscusWartezaitMili, (VorsclaagWirkung.VonWirkungBisVonZiilProcessLeeseWartezaitMili ?? 0)); } var FürWirkungKarenzzaitEnde = NaacProcessWirkung.EndeZaitMili + VonWirkungBisScnapscusWartezaitMili; if (FürWirkungKarenzzaitEnde.HasValue) { ScritLeeseBeginZaitScrankeMinMili = Math.Max(ScritLeeseBeginZaitScrankeMinMili, FürWirkungKarenzzaitEnde.Value); } } if (null != VorsclaagListeWirkung) { foreach (var VorsclaagWirkung in VorsclaagListeWirkung) { if (ListeNaacProcessWirkung.Any((KandidaatWirkung) => KandidaatWirkung.VorsclaagWirkungIdent == VorsclaagWirkung.Ident)) { continue; } return(null); } } } } return(ScritLeeseBeginZaitScrankeMinMili); }
void ListeOptimatScritInspektAktualisiireTailWirkung() { var ListeOptimatScrit = this.ListeOptimatScrit; var VonOptimatMeldungZuusctandLezte = this.VonOptimatMeldungZuusctandLezte; IEnumerable <Optimat.EveOnline.SictVorsclaagNaacProcessWirkung> VorsclaagListeWirkung = null; { if (null == VonOptimatMeldungZuusctandLezte) { return; } var ListeOptimatScritLezte = ListeOptimatScrit.LastOrDefaultNullable(); if (null == ListeOptimatScrit) { return; } if (null == ListeOptimatScritLezte) { return; } VorsclaagListeWirkung = VonOptimatMeldungZuusctandLezte.VorsclaagListeWirkung; } if (null != VorsclaagListeWirkung) { foreach (var VorsclaagWirkung in VorsclaagListeWirkung) { if (ListeOptimatScrit.Any((KandidaatOptimatScrit) => KandidaatOptimatScrit.VorsclaagListeWirkung .AnyNullable((KandidaatVorsclaagWirkung) => KandidaatVorsclaagWirkung.Ident == VorsclaagWirkung.Ident) ?? false)) { // Vorsclaag Wirkung wurde beraits in ain Scrit aingefüügt. continue; } var OptimatScrit = AusListeOptimatScritSuucePasendeZuVorsclaagWirkung(ListeOptimatScrit, VorsclaagWirkung); if (null != OptimatScrit) { OptimatScrit.VorsclaagListeWirkung = (OptimatScrit.VorsclaagListeWirkung ?? new Optimat.EveOnline.SictVorsclaagNaacProcessWirkung[0]) .Concat(new Optimat.EveOnline.SictVorsclaagNaacProcessWirkung[] { VorsclaagWirkung }) .ToArrayNullable(); } } } ListeNaacProcessWirkung.ForEachNullable((Wirkung) => { var OptimatScrit = ListeOptimatScrit.FirstOrDefaultNullable((KandidaatOptimatScrit) => KandidaatOptimatScrit.VorsclaagListeWirkung.AnyNullable((KandidaatWirkung) => KandidaatWirkung.Ident == Wirkung.VorsclaagWirkungIdent) ?? false); if (null != OptimatScrit) { OptimatScrit.NaacProcessListeWirkung = (OptimatScrit.NaacProcessListeWirkung ?? new Optimat.EveOnline.SictNaacProcessWirkung[0]) .Concat(new Optimat.EveOnline.SictNaacProcessWirkung[] { Wirkung }) .ToArrayNullable(); } }); }