public Color GetStateColor(XStateClass stateClass)
		{
			switch (stateClass)
			{
				case XStateClass.Attention:
					return Colors.Yellow;
				case XStateClass.Fire1:
				case XStateClass.Fire2:
					return Colors.Red;
				case XStateClass.Failure:
					return Colors.Pink;
				case XStateClass.Service:
				case XStateClass.Ignore:
					return Colors.Yellow;
				case XStateClass.Unknown:
				case XStateClass.DBMissmatch:
				case XStateClass.ConnectionLost:
				case XStateClass.TechnologicalRegime:
					return Colors.Gray;
				case XStateClass.Test:
					return Colors.LightBlue;
				case XStateClass.Norm:
				default:
					return Colors.Transparent;
			}
		}
Exemplo n.º 2
0
		public JournalItemViewModel(JournalItem journalItem)
		{
			ShowObjectCommand = new RelayCommand(OnShowObject, CanShowObject);
			JournalItem = journalItem;

			if (journalItem.JournalEventNameType != JournalEventNameType.NULL)
			{
				Name = EventDescriptionAttributeHelper.ToName(journalItem.JournalEventNameType);
			}

			if (journalItem.JournalEventDescriptionType != JournalEventDescriptionType.NULL)
			{
				Description = EventDescriptionAttributeHelper.ToName(journalItem.JournalEventDescriptionType);
				if (!string.IsNullOrEmpty(journalItem.DescriptionText))
					Description += " " + journalItem.DescriptionText;
			}
			else
			{
				Description = journalItem.DescriptionText;
			}

			InitializeTypeAddressImageSource(journalItem);
			PresentationName = TypeName + " " + Address;
			InitializePresentationName();

			var noItem = journalItem.JournalDetalisationItems.FirstOrDefault(x => x.Name == "Запись ГК");
			if (noItem != null)
			{
				GKJournalRecordNo = noItem.Value;
			}

			StateClass = EventDescriptionAttributeHelper.ToStateClass(journalItem.JournalEventNameType);
		}
Exemplo n.º 3
0
		public static string GetStateName(XStateClass stateClass, XDevice device)
		{
			if (device != null)
			{
				if (device.DriverType == XDriverType.Valve)
				{
					switch (stateClass)
					{
						case XStateClass.On:
							return "Открыто";

						case XStateClass.Off:
							return "Закрыто";

						case XStateClass.TurningOn:
							return "Открывается";

						case XStateClass.TurningOff:
							return "Закрывается";
					}
				}
				if (device.DriverType == XDriverType.AM1_T)
				{
					if (stateClass == XStateClass.Fire2)
					{
						var property = device.Properties.FirstOrDefault(x => x.Name == "OnMessage");
						if (property != null)
						{
							if (!string.IsNullOrEmpty(property.StringValue))
								return property.StringValue;
						}
					}
					if (stateClass == XStateClass.Norm)
					{
						var property = device.Properties.FirstOrDefault(x => x.Name == "NormMessage");
						if (property != null)
						{
							if (!string.IsNullOrEmpty(property.StringValue))
								return property.StringValue;
						}
					}
				}
			}
			if (stateClass == XStateClass.Fire1)
			{
				return "Сработка 1";
			}
			if (stateClass == XStateClass.Fire2)
			{
				return "Сработка 2";
			}
			return stateClass.ToDescription();
		}
		public static string Converter(XStateClass satate)
		{
			switch (satate)
			{
				case XStateClass.On:
					return "Открыто";

				case XStateClass.Off:
					return "Закрыто";

				case XStateClass.TurningOff:
					return "Закрывается";

				case XStateClass.Fire1:
					return "Тревога";
			}
			return satate.ToDescription();
		}
Exemplo n.º 5
0
		/* RG-1015 (Если у НС задан Режим после удержания "Включено", то после окончания отсчета удержания он не должен переходить в режим "Включается")*/
		public void TestPumpStationDelayRegime(DelayRegime regime, XStateClass state, JournalEventNameType eventname)
		{
			var pumpStaition = new GKPumpStation { Name = "Насосная станция", No = 1 };
			var zone = new GKZone { Name = "Пожарная зона", No = 1 };
			var clause = new GKClause
			{
				ClauseOperationType = ClauseOperationType.AllZones,
				StateType = GKStateBit.Fire1,
				ZoneUIDs = { zone.UID }
			};
			var device1 = AddDevice(kauDevice11, GKDriverType.RSR2_HeatDetector);
			var device2 = AddDevice(kauDevice11, GKDriverType.RSR2_HeatDetector);
			var device3 = AddDevice(kauDevice11, GKDriverType.RSR2_HeatDetector);
			var pump = AddDevice(kauDevice11, GKDriverType.RSR2_Bush_Fire);
			var gkpim = AddPim(gkDevice1);
			var kaupim = AddPim(kauDevice11);
			pumpStaition.StartLogic.OnClausesGroup.Clauses.Add(clause);
			pumpStaition.NSDeviceUIDs.Add(pump.UID);
			pumpStaition.NSDevices.Add(pump);
			pumpStaition.Delay = 3;
			pumpStaition.Hold = 3;
			pumpStaition.DelayRegime = regime;
			GKManager.AddZone(zone);
			GKManager.AddPumpStation(pumpStaition);
			GKManager.AddDeviceToZone(device1, zone);
			GKManager.AddDeviceToZone(device2, zone);
			GKManager.AddDeviceToZone(device3, zone);
			SetConfigAndRestartImitator();

			WaitWhileState(zone, XStateClass.Norm, 10000, "Ждем Норму в зоне");
			Assert.IsTrue(zone.State.StateClass == XStateClass.Norm, "Проверка того, что зона в Норме");
			TurnOnPim(gkpim);
			TurnOnPim(kaupim);
			ConrtolGKBase(device1, GKStateBit.Fire1, "Сработка1 у датчика1");
			ConrtolGKBase(device2, GKStateBit.Fire1, "Сработка1 у датчика2");
			WaitWhileState(pumpStaition, XStateClass.On, 5000, "Ждем пока НС не Включится");
			Assert.IsTrue(pumpStaition.State.StateClass == XStateClass.On, "Проверка того, что НС Включен");
			WaitWhileState(pumpStaition, XStateClass.TurningOn, 6000, "Ждем 6 секунд, НС не должен перейти в режим Включается");
			Assert.IsFalse(pumpStaition.State.StateClass == XStateClass.TurningOn, "Проверка того, что НС не перешёл в режим Включается");
			Assert.IsTrue(pumpStaition.State.StateClass == state, "Проверка того, что НС Включен/Выключен");
			Assert.IsTrue(pump.State.StateClass == state, "Проверка того, что насос Включен/Выключен");
			WaitWhileState(Led("Устройство Включение ПУСК "), state, 2000,"Ждём пока индикатор не будет Включен/Выключен");
			// RG-1340 CheckJournal(3, JournalItem(pumpStaition, eventname), JournalItem(pump, eventname), JournalItem(Led("Устройство Включение ПУСК "), eventname));
		}
		public static string Converter(XStateClass satate)
		{
			switch (satate)
			{
				case XStateClass.On:
					return "На Охране";

				case XStateClass.Off:
					return "Снята с охраны";

				case XStateClass.TurningOn:
					return "Ставится на охрану";

				case XStateClass.TurningOff:
					return "Снимается с охраны";

				case XStateClass.Fire1:
					return "Тревога";
			}
			return satate.ToDescription();
		}
Exemplo n.º 7
0
		/* RG-1034(Фиксация АМ в сработке в режиме "Изменение" не должно приводить к
		 постоянной выдаче сообщений о постановке и снятия зоны  с охраны) */
		public void TestGuardZoneFire1NotChange(XStateClass mode1, XStateClass mode2, JournalEventNameType event1,
			JournalEventNameType event2)
		{
			var device1 = AddDevice(kauDevice11, GKDriverType.RSR2_AM_1);
			var aM = AddGuardZoneDevice(device1);
			aM.ActionType = GKGuardZoneDeviceActionType.ChangeGuard;
			var zone = new GKGuardZone {Name = "Охранная зона", No = 1};
			GKManager.AddGuardZone(zone);
			GKManager.AddDeviceToGuardZone(zone, aM);
			SetConfigAndRestartImitator();

			WaitWhileState(zone, XStateClass.Off, 10000, "Ждем норму в охранной зоне");
			Assert.IsTrue(zone.State.StateClass == XStateClass.Off, "Проверка того, что зона снята с охраны");
			if (mode1 == XStateClass.Off)
			{
				ConrtolGKBase(zone, GKStateBit.TurnOn_InAutomatic, "включаем зону, case#1");
				WaitWhileState(zone, XStateClass.On, 4000, "Ждём пока зона не встанет на охрану");
				CheckJournal(1, JournalItem(zone, JournalEventNameType.На_охране));
			}
			ConrtolGKBase(device1, GKStateBit.Fire1, "Сработка1 у АМ");
			WaitWhileState(device1, XStateClass.Fire1, 10000, "Ждем пока АМ не перейдёт в режим сработка1");
			Assert.IsTrue(device1.State.StateClass == XStateClass.Fire1, "Проверка того, что АМ перешёл в сработку");
			WaitWhileState(zone, mode1, 3000, "Ждем пока зона не установится в mode1");
			Assert.IsTrue(zone.State.StateClasses.Contains(mode1), "Проверка того, что зона установилась в mode1");
			WaitWhileState(zone, mode2, 2000, "Ждём 6 секунды, зона не должна перейти в mode2 ");
			Assert.IsFalse(zone.State.StateClasses.Contains(mode2), "Проверка того, что зона не перешла в mode2");
			ConrtolGKBase(device1, GKStateBit.Reset, "Сбрасываем АМ");
			WaitWhileState(device1, XStateClass.Norm, 4000, "Ждем пока АМ не выключится");
			Assert.IsTrue(device1.State.StateClass == XStateClass.Norm, "Проверка того, что АМ выключен");
			ConrtolGKBase(device1, GKStateBit.Fire1, "Сработка1 у АМ");
			WaitWhileState(device1, XStateClass.Fire1, 10000, "Ждем пока АМ не перейдёт в режим сработка1");
			Assert.IsTrue(device1.State.StateClass == XStateClass.Fire1, "Проверка того, что АМ перешёл в сработку");
			WaitWhileOneOfStates(zone, mode2, 4000, "Ждем пока зона не установится в mode2");
			Assert.IsTrue(zone.State.StateClasses.Contains(mode2), "Проверка того, что зона установилась в mode2");
			WaitWhileState(zone, mode1, 2000, "Ждём 2 секунды, зона не должна перейти в mode1 ");
			Assert.IsFalse(zone.State.StateClasses.Contains(mode1), "Проверка того, что зона не перешла в mode1");
			CheckJournal(5, JournalItem(device1, JournalEventNameType.Сработка_1),
				JournalItem(zone, event1), JournalItem(device1, JournalEventNameType.Норма),
				JournalItem(device1, JournalEventNameType.Сработка_1), JournalItem(zone, event2));
		}
Exemplo n.º 8
0
		public XStateClassViewModel(XDevice device, XStateClass stateClass)
		{
			Device = device;
			StateClass = stateClass;
		}
Exemplo n.º 9
0
		public StateClass(XStateClass stateClass)
		{
			Name = stateClass.ToDescription();
			IconData = stateClass.ToString();

		}
Exemplo n.º 10
0
		internal static string GetStateClassName(XStateClass stateClass) {
			var type = typeof (XStateClass);
			var memInfo = type.GetMember(stateClass.ToString());
			var attributes = memInfo[0].GetCustomAttributes(typeof (DescriptionAttribute), false);
			return ((DescriptionAttribute)attributes[0]).Description;
		}
Exemplo n.º 11
0
 public FilterStateClassViewModel(XStateClass stateClass)
 {
     StateClass = stateClass;
 }
Exemplo n.º 12
0
		public GKStateClassViewModel(GKDevice device, XStateClass stateClass)
		{
			Device = device;
			StateClass = stateClass;
		}
		static void Add(string name, XStateClass stateClass, string description)
		{
			var journalDescriptionState = new JournalDescriptionState(name, stateClass, description);
			JournalDescriptionStates.Add(journalDescriptionState);
		}
Exemplo n.º 14
0
		protected void ChangedState(XStateClass stateClass)
		{
			GKOPCManager.OPCDAServer.BeginUpdate();
			GKOPCManager.OPCDAServer.UpdateTags(new int[1] { TagId }, new object[1] { stateClass }, Quality.Good, FileTime.UtcNow, ErrorCodes.Ok, false);
			GKOPCManager.OPCDAServer.EndUpdate(false);
		}
Exemplo n.º 15
0
		/* RG-1015 (Если у задержки задан Режим после удержания "Включено", то после окончания отсчета удержания она не должена переходить в режим "Включается")*/
		public void TestDelayRegimeDelay(DelayRegime regime, XStateClass state)
		{
			var delay = new GKDelay { Name = "Задержка", No = 1 };
			var zone = new GKZone { Name = "Пожарная зона", No = 1 };
			var clause = new GKClause
			{
				ClauseOperationType = ClauseOperationType.AllZones,
				StateType = GKStateBit.Fire1,
				ZoneUIDs = { zone.UID }
			};
			var device1 = AddDevice(kauDevice11, GKDriverType.RSR2_HeatDetector);
			var device2 = AddDevice(kauDevice11, GKDriverType.RSR2_HeatDetector);
			var device3 = AddDevice(kauDevice11, GKDriverType.RSR2_HeatDetector);
			delay.Logic.OnClausesGroup.Clauses.Add(clause);
			delay.DelayTime = 3;
			delay.Hold = 3;
			delay.DelayRegime = regime;
			GKManager.AddZone(zone);
			GKManager.AddDelay(delay);
			GKManager.AddDeviceToZone(device1, zone);
			GKManager.AddDeviceToZone(device2, zone);
			GKManager.AddDeviceToZone(device3, zone);
			SetConfigAndRestartImitator();

			WaitWhileState(zone, XStateClass.Norm, 10000, "Ждем Норму в зоне");
			Assert.IsTrue(zone.State.StateClass == XStateClass.Norm, "Проверка того, что зона в Норме");
			ConrtolGKBase(device1, GKStateBit.Fire1, "Сработка1 у датчика1");
			ConrtolGKBase(device2, GKStateBit.Fire1, "Сработка1 у датчика2");
			WaitWhileState(delay, XStateClass.On, 5000, "Ждем пока задрежка не Включится");
			Assert.IsTrue(delay.State.StateClass == XStateClass.On, "Проверка того, что задержка Включена");
			WaitWhileState(delay, XStateClass.TurningOn, 6000, "Ждем 6 секунд, задрежка не должена перейти в режим Включается");
			Assert.IsFalse(delay.State.StateClass == XStateClass.TurningOn, "Проверка того, что задрежка не перешла в режим Включается");
			Assert.IsTrue(delay.State.StateClass == state, "Проверка того, что задрежка Включена/Выключена");
			if (delay.DelayRegime == DelayRegime.On)
				CheckJournal(3, JournalItem(delay, JournalEventNameType.Включается), JournalItem(Led("Устройство Пожар 1 "), JournalEventNameType.Включено), JournalItem(delay, JournalEventNameType.Включено));
			else
				CheckJournal(4, JournalItem(delay, JournalEventNameType.Включается), JournalItem(Led("Устройство Пожар 1 "), JournalEventNameType.Включено), JournalItem(delay, JournalEventNameType.Включено), JournalItem(delay, JournalEventNameType.Выключено));
		}
Exemplo n.º 16
0
		static StateType OLD_XStateClassToStateType(XStateClass stateClass)
		{
			switch (stateClass)
			{
				case XStateClass.Fire1:
				case XStateClass.Fire2:
					return StateType.Fire;

				case XStateClass.Attention:
					return StateType.Attention;

				case XStateClass.Failure:
					return StateType.Failure;

				case XStateClass.Ignore:
					return StateType.Off;

				case XStateClass.DBMissmatch:
					return StateType.Service;

				case XStateClass.Test:
				case XStateClass.Info:
				case XStateClass.On:
				case XStateClass.TurningOn:
					return StateType.Info;

				default:
					return StateType.Norm;
			}
		}
Exemplo n.º 17
0
		public static void AddAvailableStateClasses(GKDriver driver, XStateClass stateClass)
		{
			if (driver.AvailableStateClasses.Count == 0)
			{
				driver.AvailableStateClasses.Add(XStateClass.No);
				driver.AvailableStateClasses.Add(XStateClass.Norm);
				driver.AvailableStateClasses.Add(XStateClass.Failure);
				driver.AvailableStateClasses.Add(XStateClass.Ignore);
				driver.AvailableStateClasses.Add(XStateClass.Unknown);
			}
			driver.AvailableStateClasses.Add(stateClass);
		}
Exemplo n.º 18
0
		bool CheckStatusMptNsNpt(XStateClass stateClass)
		{
			if ((GKManager.MPTs.Any(x => x.State != null && x.State.StateClass == stateClass)) ||
			(GKManager.PumpStations.Any(x => x.State != null && x.State.StateClass == stateClass)) ||
			(GKManager.Directions.Any(x => x.State != null && x.State.StateClass == stateClass)))
				return true;
			return false;
		}
Exemplo n.º 19
0
		public CameraState(Camera camera)
		{
			Camera = camera;
			StateClasses = new List<XStateClass>();
			StateClass = XStateClass.Norm;
		}
		void AddAdditionalState(GKBaseInternalState baseState, string description, XStateClass stateClass)
		{
			if (!baseState.AdditionalStates.Any(x => x.Name == description))
			{
				var additionalState = new GKAdditionalState()
				{
					StateClass = stateClass,
					Name = description
				};
				baseState.AdditionalStates.Add(additionalState);
			}
		}
Exemplo n.º 21
0
		public StateClassViewModel(XStateClass stateClass)
		{
			StateClass = stateClass;
			Name = stateClass.ToDescription();
		}
Exemplo n.º 22
0
		public EventNameAttribute(JournalSubsystemType journalSubsystemType, string name, XStateClass stateClass)
		{
			JournalSubsystemType = journalSubsystemType;
			Name = name;
			StateClass = stateClass;
		}
Exemplo n.º 23
0
		public static string GetStateName(XStateClass stateClass, GKDevice device)
		{
			if (device != null)
			{
				if (device.DriverType == GKDriverType.RSR2_Valve_KVMV || device.DriverType == GKDriverType.RSR2_Valve_DU)
				{
					switch (stateClass)
					{
						case XStateClass.On:
							return "Открыто";

						case XStateClass.Off:
							return "Закрыто";

						case XStateClass.TurningOn:
							return "Открывается";

						case XStateClass.TurningOff:
							return "Закрывается";
					}
				}
				if (device.DriverType == GKDriverType.RSR2_AM_1)
				{
					if (stateClass == XStateClass.Norm)
					{
						var property = device.Properties.FirstOrDefault(x => x.Name == "Сообщение для нормы");
						if (property != null)
						{
							if (!string.IsNullOrEmpty(property.StringValue))
								return property.StringValue;
						}
					}
					if (stateClass == XStateClass.Fire1)
					{
						var property = device.Properties.FirstOrDefault(x => x.Name == "Сообщение для сработки 1");
						if (property != null)
						{
							if (!string.IsNullOrEmpty(property.StringValue))
								return property.StringValue;
						}
					}
					if (stateClass == XStateClass.Fire2)
					{
						var property = device.Properties.FirstOrDefault(x => x.Name == "Сообщение для сработки 2");
						if (property != null)
						{
							if (!string.IsNullOrEmpty(property.StringValue))
								return property.StringValue;
						}
					}
				}
			}
			if (stateClass == XStateClass.Fire1)
			{
				return "Сработка 1";
			}
			if (stateClass == XStateClass.Fire2)
			{
				return "Сработка 2";
			}
			return stateClass.ToDescription();
		}
Exemplo n.º 24
0
		public JournalDescriptionState(string name, XStateClass stateClass, string description)
		{
			Name = name;
			StateClass = stateClass;
			Description = description;
		}
Exemplo n.º 25
0
		void AddAdditionalState(XStateClass stateClass, string name)
		{
			if (name != null)
			{
				var additionalState = new GKAdditionalState()
				{
					StateClass = stateClass,
					Name = name
				};
				AdditionalStates.Add(additionalState);
			}
		}
Exemplo n.º 26
0
		static System.Windows.Media.Color GetGKSKDZoneStateColor(XStateClass stateClass)
		{
			switch (stateClass)
			{
				case XStateClass.Unknown:
				case XStateClass.DBMissmatch:
				case XStateClass.TechnologicalRegime:
				case XStateClass.ConnectionLost:
				case XStateClass.HasNoLicense:
					return Colors.DarkGray;

				case XStateClass.Off:
					return Colors.Green;
				case XStateClass.TurningOff:
					return Colors.LightGreen;
				case XStateClass.Norm:
				case XStateClass.On:
					return Colors.Blue;

				case XStateClass.AutoOff:
					return Colors.Gray;
				case XStateClass.Ignore:
					return Colors.Yellow;
				case XStateClass.Fire1:
				case XStateClass.Fire2:
				case XStateClass.Attention:
					return Colors.Red;
				default:
					return Colors.White;
			}
		}