Exemple #1
0
        public MemoryMeasurementEvaluation(
            FromProcessMeasurement <MemoryStruct.IMemoryMeasurement> memoryMeasurement,
            Accumulator.MemoryMeasurementAccumulator memoryMeasurementAccu = null)
        {
            this.MemoryMeasurement = memoryMeasurement?.Value;

            try
            {
                MemoryMeasurementParsed = memoryMeasurement?.Value?.Parse();
            }
            catch (Exception Exception)
            {
                MemoryMeasurementParseException = Exception;
            }

            if (null == memoryMeasurement)
            {
                return;
            }

            try
            {
                memoryMeasurementAccu = memoryMeasurementAccu ?? new Accumulator.MemoryMeasurementAccumulator();

                memoryMeasurementAccu.Accumulate(memoryMeasurement?.MapValue(t => MemoryMeasurementParsed));

                this.MemoryMeasurementAccumulation = memoryMeasurementAccu;
            }
            catch (Exception Exception)
            {
                MemoryMeasurementAccuException = Exception;
            }
        }
		void Step(
			FromProcessMeasurement<MemoryMeasurement> MemoryMeasurement,
			BotPreference UserPreference,
			IEnumerable<int> TaskCompletedId)
		{
			var StepPreviousIndex = StepCurrentState?.StepIndex;

			if (null == StepCurrentState)
			{
				StepCurrentState = new BotInstant();
			}
			else
			{
				History.Enqueue(StepCurrentState.CopyForBotHistory());

				History.TrimHeadToKeep(10);
			}

			StepCurrentState.StepIndex = (StepPreviousIndex + 1) ?? 0;
			StepCurrentState.MemoryMeasurement = MemoryMeasurement;
			StepCurrentState.UserPreference = UserPreference;

			StepCurrentState.SensorDataAccumulator = StepCurrentState.SensorDataAccumulator ?? new SensorDataAccumulator();

			StepCurrentState.SensorDataAccumulator?.Accumulate(MemoryMeasurement);

			TaskPropagateComplete(TaskCompletedId);

			TaskResolve();

			ListTask?.RemoveAll(Task => Task.Ended() || !((StepIndex - Task.BeginStepIndexInBot) < 30));
		}
        public void Accumulate(FromProcessMeasurement <Parse.IMemoryMeasurement> memoryMeasurementAtTime)
        {
            if (null == memoryMeasurementAtTime)
            {
                return;
            }

            var MemoryMeasurement = memoryMeasurementAtTime?.Value;

            var ShipUi = MemoryMeasurement?.ShipUi;

            var SetModuleInstantNotAssigned =
                ShipUi?.Module?.Select(module => module.AsAccuInstant(ShipUi).WithTimespanInt64(memoryMeasurementAtTime))
                ?.Distribute(
                    MemoryMeasurement,
                    InternShipUiModule);

            foreach (var ModuleInstantNotAssigned in SetModuleInstantNotAssigned.EmptyIfNull())
            {
                InternShipUiModule.Add(new ShipUiModule(++EntityIdLast, ModuleInstantNotAssigned));
            }

            InternShipUiModule?.Where(module => !(memoryMeasurementAtTime?.End - module?.LastInstant?.End < ModuleInvisibleDurationMax))?.ToArray()
            ?.ForEach(module => InternShipUiModule.Remove(module));

            if (MemoryMeasurement?.IsDocked ?? false)
            {
                InternShipUiModule?.Clear();
            }
        }
		public void Accumulate(FromProcessMeasurement<Parse.IMemoryMeasurement> MemoryMeasurementAtTime)
		{
			if (null == MemoryMeasurementAtTime)
				return;

			var MemoryMeasurement = MemoryMeasurementAtTime?.Value;

			var ShipUi = MemoryMeasurement?.ShipUi;

			var SetModuleInstantNotAssigned =
				ShipUi?.Module?.Select(Module => Module.AsAccuInstant(ShipUi).WithTimespanInt64(MemoryMeasurementAtTime))
				?.Distribute(
				MemoryMeasurement,
				InternShipUiModule);

			foreach (var ModuleInstantNotAssigned in SetModuleInstantNotAssigned.EmptyIfNull())
			{
				InternShipUiModule.Add(new ShipUiModule(++EntityIdLast, ModuleInstantNotAssigned));
			}

			InternShipUiModule?.Where(Module => !(MemoryMeasurementAtTime?.End - Module?.LastInstant?.End < ModuleInvisibleDurationMax))?.ToArray()
				?.ForEach(Module => InternShipUiModule.Remove(Module));

			if (MemoryMeasurement?.IsDocked ?? false)
			{
				InternShipUiModule?.Clear();
			}
		}
		public FromSensorToConsumerMessage SensorExchange(
			FromConsumerToSensorMessage ToSensorMessage)
		{
			var SensorMessageLast = this.SensorMessageLast;

			try
			{
				var FromSensorAppMessage = SensorAppManager?.ConsumerExchange(
					new FromConsumerToSensorProxyMessage(
						ToSensorMessage.SerializeSingleBib3RefNezDifProtobuf()));

				if (null == FromSensorAppMessage)
				{
					return null;
				}

				var AppSpecific = FromSensorAppMessage.AppSpecific;

				SensorMessageLast =
					AppSpecific.DeSerializeProtobufBib3RefNezDif().FirstOrDefaultNullable() as FromSensorToConsumerMessage;

				return SensorMessageLast;
			}
			finally
			{
				MemoryMeasurementLast = SensorMessageLast?.MemoryMeasurement ?? MemoryMeasurementLast;
				WindowMeasurementLast = SensorMessageLast?.WindowMeasurement ?? WindowMeasurementLast;

				this.SensorMessageLast = SensorMessageLast;
			}
		}
		public MemoryMeasurementEvaluation(
			FromProcessMeasurement<MemoryStruct.IMemoryMeasurement> MemoryMeasurement,
			Accumulator.MemoryMeasurementAccumulator MemoryMeasurementAccu = null)
		{
			this.MemoryMeasurement = MemoryMeasurement?.Value;

			try
			{
				MemoryMeasurementParsed = MemoryMeasurement?.Value?.Parse();
			}
			catch (Exception Exception)
			{
				MemoryMeasurementParseException = Exception;
			}

			if (null == MemoryMeasurement)
			{
				return;
			}

			try
			{
				MemoryMeasurementAccu = MemoryMeasurementAccu ?? new Accumulator.MemoryMeasurementAccumulator();

				MemoryMeasurementAccu.Accumulate(MemoryMeasurement?.MapValue(t => MemoryMeasurementParsed));

				this.MemoryMeasurementAccumulation = MemoryMeasurementAccu;
			}
			catch (Exception Exception)
			{
				MemoryMeasurementAccuException = Exception;
			}
		}
Exemple #7
0
        void BotMotion(
            FromProcessMeasurement <IMemoryMeasurement> memoryMeasurement,
            IEnumerable <Bot.MotionRecommendation> sequenceMotion)
        {
            var processId = memoryMeasurement?.ProcessId;

            if (!processId.HasValue || null == sequenceMotion || sequenceMotion.IsNullOrEmpty())
            {
                return;
            }
            var process = System.Diagnostics.Process.GetProcessById(processId.Value);

            var listMotionResult = new List <Bot.MotionResult>();
            var startTime        = GetTimeStopwatch();

            botLock.WhenLockIsAvailableEnter(300, () =>
            {
                var motor = new WindowMotor(process.MainWindowHandle);

                foreach (var motion in sequenceMotion)
                {
                    var motionResult =
                        motor.ActSequenceMotion(motion.MotionParam.AsSequenceMotion(memoryMeasurement?.Value));

                    listMotionResult.Add(new Bot.MotionResult
                    {
                        Id      = motion.Id,
                        Success = motionResult?.Success ?? false,
                    });
                }
            }, "MotionExecution");
            BotStepLastMotionResult = new PropertyGenTimespanInt64 <Bot.MotionResult[]>(listMotionResult.ToArray(), startTime, GetTimeStopwatch());

            Thread.Sleep(sequenceMotion.Max(sm => sm.DelayAfterMs ?? FromMotionToMeasurementDelayMilli));
        }
Exemple #8
0
        FromProcessMeasurement <MemoryMeasurementReport> MemoryMeasurementTake()
        {
            lock (MeasurementLock)
            {
                var StartTimeMilli = Bib3.Glob.StopwatchZaitMiliSictInt();

                var MeasurementInit = MemoryMeasurementInitLastReport;

                var DerivedFrom = MeasurementInit?.Value;

                var Measurement = new MemoryMeasurementReport
                {
                    DerivedFrom = DerivedFrom,
                };

                var ProcessId = MeasurementInit?.ProcessId ?? 0;

                var MeasurementInitPortionForDerived = DerivedFrom?.ForDerived;

                Sanderling.Parse.Culture.InvokeInParseCulture(() =>
                {
                    var ScnapscusAuswert =
                        new SictProzesAuswertZuusctandScpezGbsBaum(
                            new ProcessMemoryReader(ProcessId),
                            MeasurementInitPortionForDerived,
                            EveOnlineSensoGbsAstListeChildAnzaalScrankeMax,
                            EveOnlineSensoGbsMengeAstAnzaalScrankeMax,
                            EveOnlineSensoGbsSuuceTiifeScrankeMax);

                    ScnapscusAuswert.BerecneScrit();

                    var GbsBaumDirekt = ScnapscusAuswert.GbsWurzelHauptInfo;

                    Measurement.Raw =
                        new FromProcessMeasurement <GbsAstInfo>(GbsBaumDirekt, StartTimeMilli, Bib3.Glob.StopwatchZaitMiliSictInt(), ProcessId);

                    var GbsBaumAuswert =
                        Optimat.EveOnline.AuswertGbs.Extension.SensorikScnapscusKonstrukt(
                            ScnapscusAuswert.GbsWurzelHauptInfo, (int?)(1e+9));

                    Measurement.ViewInterface =
                        new FromProcessMeasurement <IMemoryMeasurement>(GbsBaumAuswert, StartTimeMilli, Bib3.Glob.StopwatchZaitMiliSictInt(), ProcessId);
                });

                var EndTimeMilli = Bib3.Glob.StopwatchZaitMiliSictInt();

                var ProcessMeasurementReport = new FromProcessMeasurement <MemoryMeasurementReport>(
                    Measurement,
                    StartTimeMilli,
                    EndTimeMilli,
                    ProcessId);

                Thread.MemoryBarrier();

                return(MemoryMeasurementLastReport = ProcessMeasurementReport);
            }
        }
Exemple #9
0
        /*
         * public void FromConsumer(Optimat.EveOnline.CustomBot.FromCustomBotSnapshot Snapshot)
         * {
         *      SensorAppManager.FromConsumer(new BotEngine.Sensor.FromConsumerToSensorProxyMessage(
         *              Snapshot.SerializeSingleBib3RefNezDifProtobuf()));
         * }
         */

        /*
         * 16.04.15
         *
         * public void FromServer(BotEngine.Interface.FromServerToInterfaceAppManagerMessage Message)
         * {
         *      SensorAppManager.FromServer(Message);
         * }
         *
         * public BotEngine.Interface.FromInterfaceAppManagerToServerMessage ToServer()
         * {
         *      return SensorAppManager.ToServer();
         * }
         */

        public FromSensorToConsumerMessage SensorExchange(
            FromConsumerToSensorMessage ToSensorMessage)
        {
            return(null);               //	16.04.16

            FromSensorToConsumerMessage SensorMessageLast = this.SensorMessageLast;

            try
            {
                BotEngine.Interface.InterfaceAppDomainSetup.Setup();

                var FromSensorAppMessage = SensorAppManager?.ConsumerExchange(
                    new BotEngine.Interface.FromConsumerToInterfaceProxyMessage(
                        ToSensorMessage.SerializeSingleBib3RefNezDifProtobuf()));

                if (null == FromSensorAppMessage)
                {
                    return(null);
                }

                var AppSpecific = FromSensorAppMessage.AppSpecific;

                //  if (null != AppSpecific)
                {
                    /*
                     * SensorMessageLast =
                     * Optimat.EveOnline.CustomBot.ToCustomBotSnapshot.DeserializeFromString<Optimat.EveOnline.CustomBot.ToCustomBotSnapshot>(AppSpecific);
                     */

                    /*
                     * SensorMessageLast =
                     * Convert.FromBase64String(AppSpecific).ProtobufDeserialize<Optimat.EveOnline.CustomBot.ToCustomBotSnapshot>();
                     */

                    /*
                     * SensorMessageLast =
                     * Convert.FromBase64String(AppSpecific).UniversalSerializerDeSerialize<Optimat.EveOnline.CustomBot.ToCustomBotSnapshot>();
                     */

                    SensorMessageLast =
                        AppSpecific.DeSerializeProtobufBib3RefNezDif().FirstOrDefaultNullable() as FromSensorToConsumerMessage;

                    TempDebugListeMessage.Add(SensorMessageLast);
                    TempDebugListeMessage.ListeKürzeBegin(44);

                    return(SensorMessageLast);
                }
            }
            finally
            {
                MemoryMeasurementLast = SensorMessageLast?.MemoryMeasurement ?? MemoryMeasurementLast;
                WindowMeasurementLast = SensorMessageLast?.WindowMeasurement ?? WindowMeasurementLast;

                this.SensorMessageLast = SensorMessageLast;
            }
        }
Exemple #10
0
        void MeasurementMemoryTake(int processId, Int64 measurementBeginTimeMinMilli)
        {
            var measurement = SensorServerDispatcher.InterfaceAppManager.MeasurementTake(processId, measurementBeginTimeMinMilli);

            if (null == measurement)
            {
                return;
            }

            MemoryMeasurementLast = measurement;
        }
Exemple #11
0
        void MeasurementMemoryTake(int processId, Int64 measurementBeginTimeMinMilli)
        {
            var measurement = sensor.MeasurementTake(processId, measurementBeginTimeMinMilli);

            if (null == measurement)
            {
                return;
            }

            MemoryMeasurementLast = measurement;
        }
Exemple #12
0
        public void Present(
            SimpleInterfaceServerDispatcher interfaceServerDispatcher,
            FromProcessMeasurement <IMemoryMeasurement> measurement,
            Bot.Bot bot)
        {
            Interface?.Present(interfaceServerDispatcher, measurement);

            InterfaceHeader?.SetStatus(Interface.InterfaceStatusEnum());

            BotStepResultTextBox.Text = bot?.StepLastResult?.RenderBotStepToUIText();
        }
Exemple #13
0
        void BotMotion(
            FromProcessMeasurement <IMemoryMeasurement> memoryMeasurement,
            IEnumerable <Bot.MotionRecommendation> sequenceMotion)
        {
            var processId = memoryMeasurement?.ProcessId;

            if (!processId.HasValue || null == sequenceMotion)
            {
                return;
            }

            var process = System.Diagnostics.Process.GetProcessById(processId.Value);

            if (null == process)
            {
                return;
            }

            var startTime = GetTimeStopwatch();

            BotEngine.WinApi.User32.SetForegroundWindow(process.MainWindowHandle);

            var PreviousForegroundWindowHandle = BotEngine.WinApi.User32.GetForegroundWindow();

            if (PreviousForegroundWindowHandle != process.MainWindowHandle)
            {
                Thread.Sleep(100);
                PreviousForegroundWindowHandle = BotEngine.WinApi.User32.GetForegroundWindow();
                if (PreviousForegroundWindowHandle != process.MainWindowHandle)
                {
                    return;
                }
            }

            var motor = new WindowMotor(process.MainWindowHandle);

            var listMotionResult = new List <Bot.MotionResult>();

            foreach (var motion in sequenceMotion.EmptyIfNull())
            {
                var motionResult = motor.ActSequenceMotion(motion.MotionParam.AsSequenceMotion(memoryMeasurement?.Value));

                listMotionResult.Add(new Bot.MotionResult
                {
                    Id      = motion.Id,
                    Success = motionResult?.Success ?? false,
                });
            }

            BotStepLastMotionResult = new PropertyGenTimespanInt64 <Bot.MotionResult[]>(listMotionResult.ToArray(), startTime, GetTimeStopwatch());
        }
Exemple #14
0
        public void Present(
            SimpleInterfaceServerDispatcher interfaceServerDispatcher,
            FromProcessMeasurement <Interface.MemoryStruct.IMemoryMeasurement> measurement)
        {
            MeasurementLastHeader?.SetStatus(measurement.MemoryMeasurementLastStatusEnum());

            ProcessHeader?.SetStatus(ProcessChoice.ProcessStatusEnum());

            LicenseDataContext.Dispatcher = interfaceServerDispatcher;

            var sessionDurationRemainingTooShort = !(measurement?.Value).SessionDurationRemainingSufficientToStayExposed();

            SessionDurationRemainingTextBox.Text             = (measurement?.Value?.SessionDurationRemaining?.ToString() ?? "????");
            SessionDurationRemainingTooShortGroup.Visibility = (sessionDurationRemainingTooShort && null != measurement) ? System.Windows.Visibility.Visible : System.Windows.Visibility.Hidden;

            Measurement?.Present(measurement);
        }
		public void Present(
			SimpleInterfaceServerDispatcher interfaceServerDispatcher,
			FromProcessMeasurement<Interface.MemoryStruct.IMemoryMeasurement> measurement)
		{
			MeasurementLastHeader?.SetStatus(measurement.MemoryMeasurementLastStatusEnum());

			LicenseHeader?.SetStatus(interfaceServerDispatcher.LicenseStatusEnum());
			ProcessHeader?.SetStatus(ProcessChoice.ProcessStatusEnum());

			LicenseDataContext.Dispatcher = interfaceServerDispatcher;

			var sessionDurationRemainingTooShort = !(measurement?.Value).SessionDurationRemainingSufficientToStayExposed();

			SessionDurationRemainingTextBox.Text = (measurement?.Value?.SessionDurationRemaining?.ToString() ?? "????");
			SessionDurationRemainingTooShortGroup.Visibility = (sessionDurationRemainingTooShort && null != measurement) ? System.Windows.Visibility.Visible : System.Windows.Visibility.Hidden;

			Measurement?.Present(measurement);
		}
		public void Exchange(
			FromProcessMeasurement<MemoryMeasurement> MemoryMeasurement,
			BotPreference UserPreference,
			IEnumerable<int> TaskCompletedId)
		{
			if (null == MemoryMeasurement)
			{
				return;
			}

			var MemoryMeasurementIsNew =
				!(MemoryMeasurement?.EndeZait == StepCurrentState?.MemoryMeasurement?.EndeZait);

			if (MemoryMeasurementIsNew)
			{
				Step(MemoryMeasurement, UserPreference, TaskCompletedId);
			}
		}
Exemple #17
0
        FromProcessMeasurement <MemoryMeasurementInitReport> MemoryMeasurementInitTake(MemoryMeasurementInitParam param)
        {
            if (null == param)
            {
                return(null);
            }

            lock (MeasurementLock)
            {
                var StartTimeMilli = Bib3.Glob.StopwatchZaitMiliSictInt();

                var Measurement = new MemoryMeasurementInitReport
                {
                    Param = param,
                };

                var ProcessId = param.ProcessId;

                var SuuceWurzel = new SictProcessMitIdAuswertWurzelSuuce(ProcessId);

                SuuceWurzel.Berecne();

                Measurement.ForDerived = SuuceWurzel;

                Measurement.SetRootAdr =
                    SuuceWurzel?.GbsMengeWurzelObj
                    ?.Select(wurzelObj => wurzelObj?.HerkunftAdrese)
                    ?.WhereNotNullSelectValue()
                    ?.ToArray();

                var EndTimeMilli = Bib3.Glob.StopwatchZaitMiliSictInt();

                var ProcessMeasurementReport = new FromProcessMeasurement <MemoryMeasurementInitReport>(
                    Measurement,
                    StartTimeMilli,
                    EndTimeMilli,
                    ProcessId);

                Thread.MemoryBarrier();

                return(MemoryMeasurementInitLastReport = ProcessMeasurementReport);
            }
        }
        private void BotMotion(
            FromProcessMeasurement <IMemoryMeasurement> memoryMeasurement,
            IEnumerable <MotionRecommendation> sequenceMotion)
        {
            var processId = memoryMeasurement?.ProcessId;

            if (!processId.HasValue || null == sequenceMotion)
            {
                return;
            }

            var process = Process.GetProcessById(processId.Value);

            if (null == process)
            {
                return;
            }

            var startTime = GetTimeStopwatch();

            var motor = new WindowMotor(process.MainWindowHandle);

            var listMotionResult = new List <MotionResult>();

            foreach (var motion in sequenceMotion.EmptyIfNull())
            {
                var motionResult =
                    motor.ActSequenceMotion(motion.MotionParam.AsSequenceMotion(memoryMeasurement?.Value));

                listMotionResult.Add(new MotionResult
                {
                    Id      = motion.Id,
                    Success = motionResult?.Success ?? false
                });
            }

            BotStepLastMotionResult =
                new PropertyGenTimespanInt64 <MotionResult[]>(listMotionResult.ToArray(), startTime, GetTimeStopwatch());

            Thread.Sleep(FromMotionToMeasurementDelayMilli);
        }
Exemple #19
0
        static public StatusIcon.StatusEnum MemoryMeasurementLastStatusEnum(
            this FromProcessMeasurement <IMemoryMeasurement> measurement,
            Int64 measurementTimeMin)
        {
            if (!(measurementTimeMin < measurement?.Begin))
            {
                return(StatusIcon.StatusEnum.Reject);
            }

            if (!Bib3.RefNezDiferenz.Extension.EnumMengeRefAusNezAusWurzel(measurement?.Value, Interface.FromInterfaceResponse.UITreeComponentTypeHandlePolicyCache).CountAtLeast(1))
            {
                return(StatusIcon.StatusEnum.Reject);
            }

            if (!(measurement?.Value?.SessionDurationRemainingSufficientToStayExposed() ?? false))
            {
                return(StatusIcon.StatusEnum.Warn);
            }

            return(StatusIcon.StatusEnum.Accept);
        }
		public void Accumulate(FromProcessMeasurement<SensorRaw.MemoryMeasurement> FromProcessMemoryMeasurement)
		{
			var MemoryMeasurement = FromProcessMemoryMeasurement?.Wert;

			var ShipUi = MemoryMeasurement?.ShipUi;

			var ShipUiModuleInstant =
				ShipUi?.Module?.Select(Module => Module.AsAccuInstant(ShipUi).AsIntervalInt64(FromProcessMemoryMeasurement));

			ShipUiModuleInstant?.Distribute(
				MemoryMeasurement,
				this.ShipUiModule)
				?.ForEachNullable(ModuleInstantNotAssigned =>
				this.ShipUiModule.Add(new ShipUiModuleAccu(++EntityIdLast, ModuleInstantNotAssigned)));

			if (MemoryMeasurement?.ShipState()?.Docked() ?? false)
			{
				this.ShipUiModule?.Clear();
			}

			MemoryMeasurement?.WindowInventory?.ForEachNullable(WindowInventory =>
			{
				var ActiveShipTreeEntry = WindowInventory?.TreeEntryActiveShip();

				var TreeEntrySelectedRight = WindowInventory?.SetLeftTreeEntrySelected()?.FirstOrDefault();

				var TreeEntrySelectedRightCargoSpaceType = ActiveShipTreeEntry.CargoSpaceTypeOfTreeEntry(TreeEntrySelectedRight);

				var TreeEntrySelectedCapacity = WindowInventory?.SelectedRightInventoryCapacity?.Label.ParseAsInventoryCapacityGaugeMilli();

				if (TreeEntrySelectedRightCargoSpaceType.HasValue && null != TreeEntrySelectedCapacity)
				{
					ActiveShipCargoSpacePerTypeCapacityMeasurementLast[TreeEntrySelectedRightCargoSpaceType.Value] =
					new WertZuZaitpunktStruct<InventoryCapacityGaugeNumeric>(TreeEntrySelectedCapacity, FromProcessMemoryMeasurement.Ende);
				}
			});

			TargetingRangeAccu.Accumulate(FromProcessMemoryMeasurement);

		}
Exemple #21
0
        void GetMeasurementIfDue()
        {
            sensorServerDispatcher?.Exchange();

            Int64?assumptionLastMeasurementTime;

            var requestedMeasurementTime =
                this.RequestedMeasurementTimeKapseltInLog(
                    out assumptionLastMeasurementTime);

            var time = Bib3.Glob.StopwatchZaitMiliSictInt();

            var lastMeasurementAttemptAge = time - LastMeasurementAttemptTime;

            if (lastMeasurementAttemptAge < 4000 && (lastMeasurementAttemptAge < measurementTimeDistanceMin || !(requestedMeasurementTime < time)))
            {
                return;
            }

            LastMeasurementAttemptTime = time;

            var eveOnlineClientProcessId = GbsAingaabeZiilProcessId ?? 0;

            var response =
                sensorServerDispatcher?.InterfaceAppManager?.MeasurementTakeRequest(
                    eveOnlineClientProcessId,
                    Bib3.Glob.StopwatchZaitMiliSictInt());

            var measurementNewStructure = FromProcessMeasurementLast = response?.MemoryMeasurement;

            var simulateMemoryMeasurement = this.SimulateMemoryMeasurement;

            if (null != simulateMemoryMeasurement)
            {
                measurementNewStructure = new FromProcessMeasurement <Sanderling.Interface.MemoryStruct.IMemoryMeasurement>(simulateMemoryMeasurement, time, time, eveOnlineClientProcessId);
            }

            SensorClient.MemoryMeasurementLast = measurementNewStructure;
        }
		public void Present(FromProcessMeasurement<MemoryMeasurement> Presented)
		{
			int? SensorProcessId = null;
			Int64? SensorMeasurementBeginTime = null;
			Int64? SensorMeasurementDurationMili = null;

			try
			{
				SensorProcessId = Presented?.ProcessId;
				SensorMeasurementBeginTime = Presented?.BeginZait;
				SensorMeasurementDurationMili = Presented?.Dauer;
			}
			finally
			{
				this.Presented = Presented;

				TextBoxSensorProcessId.Text = SensorProcessId.ToString();
				SensorMeasurementBeginTimeInspect.PresentedTime = new Bib3.FCL.GBS.ZaitpunktStopwatchUndDateTime(SensorMeasurementBeginTime);
				SensorMeasurementDurationMiliInspect.Text = SensorMeasurementDurationMili.ToString();
				MemoryMeasurementInspect.Present(Presented?.Wert);
			}
		}
        public void Aggregate(FromProcessMeasurement <IMemoryMeasurement> memoryMeasurementAtTime)
        {
            var memoryMeasurement = memoryMeasurementAtTime?.Value;

            var overviewWindow = memoryMeasurement?.WindowOverview?.FirstOrDefault();

            foreach (var overviewEntry in (overviewWindow?.ListView?.Entry?.WhereNotDefault()).EmptyIfNull())
            {
                var setEWarType = setEWarTypeFromOverviewEntryId.TryGetValueOrDefault(overviewEntry.Id);

                foreach (var ewarType in overviewEntry.EWarType.EmptyIfNull())
                {
                    if (null == setEWarType)
                    {
                        setEWarType = new HashSet <EWarTypeEnum>();
                    }

                    setEWarType.Add(ewarType);
                }

                if (null != setEWarType)
                {
                    setEWarTypeFromOverviewEntryId[overviewEntry.Id] = setEWarType;
                }
            }

            if (setManeuverReset.Contains(memoryMeasurement?.ShipUi?.Indication?.ManeuverType ??
                                          ShipManeuverTypeEnum.None))
            {
                var setOverviewEntryVisibleId = overviewWindow?.ListView?.Entry?.Select(entry => entry.Id)?.ToArray();

                foreach (var entryToRemoveId in setEWarTypeFromOverviewEntryId.Keys
                         .Where(entryId => !(setOverviewEntryVisibleId?.Contains(entryId) ?? false)).ToArray())
                {
                    setEWarTypeFromOverviewEntryId.Remove(entryToRemoveId);
                }
            }
        }
		public void Present(FromProcessMeasurement<MemoryStruct.IMemoryMeasurement> Measurement)
		{
			Summary?.Present(Measurement);

			Detail?.TreeView?.Präsentiire(new[] { Measurement?.Value });
		}
Exemple #25
0
 void CallbackMeasurementMemoryNew(FromProcessMeasurement <MemoryStruct.IMemoryMeasurement> Measurement)
 {
     MemoryMeasurementLast = Measurement.MapValue(Value => new Interface.MemoryMeasurementEvaluation(
                                                      Measurement,
                                                      MemoryMeasurementLast?.Value?.MemoryMeasurementAccumulation as Accumulator.MemoryMeasurementAccumulator));
 }
		public void Accumulate(FromProcessMeasurement<SensorRaw.MemoryMeasurement> FromProcessMemoryMeasurement)
		{
			if (null == FromProcessMemoryMeasurement)
			{
				return;
			}

			var Time = FromProcessMemoryMeasurement.Ende;

			var TargetDistanceMax =
				FromProcessMemoryMeasurement?.Wert?.Target?.Select(Target => Target.DistanceMin())
				?.WhereNotNullSelectValue()
				?.MaxNullable();

			var OverviewEntryAndMenu = FromProcessMemoryMeasurement?.Wert?.OverviewEntryMenu();

			var OverviewEntryMenuFirst = OverviewEntryAndMenu?.Value?.FirstOrDefault();

			var OverviewEntryMenuContainsEntryLock = null != (OverviewEntryMenuFirst?.EntryLock() ?? OverviewEntryMenuFirst?.EntryUnlock());

			Int64? UpperBoundFromOverviewEntry = null;
			Int64? LowerBoundFromOverviewEntry = null;

			if (OverviewEntryMenuContainsEntryLock)
			{
				LowerBoundFromOverviewEntry = OverviewEntryAndMenu?.Key?.DistanceMin();
			}
			else
			{
				UpperBoundFromOverviewEntry = OverviewEntryAndMenu?.Key?.DistanceMin();
			}

			if (UpperBoundFromOverviewEntry < TargetDistanceMax)
			{
				UpperBoundFromOverviewEntry = null;
			}

			var MeasurementLowerBound =
				new[] { TargetDistanceMax, LowerBoundFromOverviewEntry }
				?.WhereNotNullSelectValue()
				.MaxNullable();

			var MeasurementUpperBound = UpperBoundFromOverviewEntry;

			if (MeasurementLowerBound.HasValue)
			{
				ListMeasurementRangeBound.Enqueue(new MeasurementBound1DIntAtTime(MeasurementLowerBound.Value, false, Time));
			}

			if (MeasurementUpperBound.HasValue)
			{
				ListMeasurementRangeBound.Enqueue(new MeasurementBound1DIntAtTime(MeasurementUpperBound.Value, true, Time));
			}

			//	remove measurements older then 10 minutes.
			Bib3.Extension.DequeueEnumerator(ListMeasurementRangeBound, element => element.Time < Time - 1000 * 60 * 10);

			{
				var DriftNano = ((DriftBeginPercent * (int)1e+7) / DriftTimeToCross);

				var ListMeasurementRangeBoundDrifted =
					MappedDrift(ListMeasurementRangeBound, Time - DriftTimeToCross, DriftNano)
					?.ToArray();

				WertZuZaitpunktStruct<Int64>? LowerBound;
				WertZuZaitpunktStruct<Int64>? UpperBound;

				BoundComputeFromSetMeasuredBound(
					ListMeasurementRangeBoundDrifted,
					out LowerBound,
					out UpperBound,
					2);

				this.RangeMin = LowerBound?.Wert;
				this.RangeMax = UpperBound?.Wert;
			}
		}
Exemple #27
0
		void CallbackMeasurementMemoryNew(FromProcessMeasurement<MemoryStruct.IMemoryMeasurement> Measurement)
		{
			MemoryMeasurementLast = Measurement.MapValue(Value => new Interface.MemoryMeasurementEvaluation(
				Measurement,
				MemoryMeasurementLast?.Value?.MemoryMeasurementAccumulation as Accumulator.MemoryMeasurementAccumulator));
		}
Exemple #28
0
        private void MainWindow_SimulateMeasurement(IMemoryMeasurement measurement)
        {
            var time = GetTimeStopwatch();

            MemoryMeasurementLast = new FromProcessMeasurement <IMemoryMeasurement>(measurement, time, time);
        }
Exemple #29
0
        public void Present(FromProcessMeasurement <MemoryStruct.IMemoryMeasurement> measurement)
        {
            Summary?.Present(measurement);

            Detail?.TreeView?.Präsentiire(new[] { measurement?.Value });
        }
		void MeasurementMemoryTake(int processId, Int64 measurementBeginTimeMinMilli)
		{
			var MeasurementRaw = SensorServerDispatcher.InterfaceAppManager.MeasurementTake(processId, measurementBeginTimeMinMilli);

			if (null == MeasurementRaw)
				return;

			MemoryMeasurementLast = MeasurementRaw?.MapValue(value => new Interface.MemoryMeasurementEvaluation(
				MeasurementRaw,
				MemoryMeasurementLast?.Value?.MemoryMeasurementAccumulation as Accumulator.MemoryMeasurementAccumulator));
		}
Exemple #31
0
 static public StatusIcon.StatusEnum MemoryMeasurementLastStatusEnum(
     this FromProcessMeasurement <IMemoryMeasurement> measurement) =>
 MemoryMeasurementLastStatusEnum(measurement, Bib3.Glob.StopwatchZaitMiliSictInt() - 8000);