コード例 #1
0
		public static void AddJournalMessage(JournalEventNameType journalEventNameType, string objectName, Guid? objectUID, Guid? clientUID, JournalEventDescriptionType journalEventDescriptionType = JournalEventDescriptionType.NULL, JournalObjectType journalObjectType = JournalObjectType.None)
		{
			var journalItem = new JournalItem()
			{
				SystemDateTime = DateTime.Now,
				JournalEventNameType = journalEventNameType,
				JournalEventDescriptionType = journalEventDescriptionType,
				JournalSubsystemType = EventDescriptionAttributeHelper.ToSubsystem(journalEventNameType),
				JournalObjectType = journalObjectType,
				ObjectUID = objectUID != null ? objectUID.Value : Guid.Empty,
				ObjectName = objectName,
				UserName = GetUserName(clientUID)
			};
			AddCommonJournalItems(new List<JournalItem>() { journalItem }, clientUID);
		}
コード例 #2
0
		public static XStateClass ToStateClass(JournalEventNameType journalEventNameType)
		{
			XStateClass stateClass = XStateClass.No;
			FieldInfo fieldInfo = journalEventNameType.GetType().GetField(journalEventNameType.ToString());
			if (fieldInfo != null)
			{
				EventNameAttribute[] descriptionAttributes = (EventNameAttribute[])fieldInfo.GetCustomAttributes(typeof(EventNameAttribute), false);
				if (descriptionAttributes.Length > 0)
				{
					EventNameAttribute eventDescriptionAttribute = descriptionAttributes[0];
					stateClass = eventDescriptionAttribute.StateClass;
				}
			}
			return stateClass;
		}
コード例 #3
0
		public static string ToName(JournalEventNameType journalEventNameType)
		{
			string name = null;
			FieldInfo fieldInfo = journalEventNameType.GetType().GetField(journalEventNameType.ToString());
			if (fieldInfo != null)
			{
				EventNameAttribute[] descriptionAttributes = (EventNameAttribute[])fieldInfo.GetCustomAttributes(typeof(EventNameAttribute), false);
				if (descriptionAttributes.Length > 0)
				{
					EventNameAttribute eventDescriptionAttribute = descriptionAttributes[0];
					name = eventDescriptionAttribute.Name;
				}
			}
			return name;
		}
コード例 #4
0
		public static JournalSubsystemType ToSubsystem(JournalEventNameType journalEventNameType)
		{
			JournalSubsystemType subsystemType = JournalSubsystemType.GK;
			FieldInfo fieldInfo = journalEventNameType.GetType().GetField(journalEventNameType.ToString());
			if (fieldInfo != null)
			{
				EventNameAttribute[] descriptionAttributes = (EventNameAttribute[])fieldInfo.GetCustomAttributes(typeof(EventNameAttribute), false);
				if (descriptionAttributes.Length > 0)
				{
					EventNameAttribute eventDescriptionAttribute = descriptionAttributes[0];
					subsystemType = eventDescriptionAttribute.JournalSubsystemType;
				}
			}
			return subsystemType;
		}
コード例 #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));
		}
コード例 #6
0
		public void GKAddMessage(JournalEventNameType journalEventNameType, string description)
		{
		}
コード例 #7
0
ファイル: RviProcessor.cs プロジェクト: xbadcode/Rubezh
		static JournalItem CreateJournalItem(Guid objectUid, string objectName, JournalObjectType journalObjectType, JournalEventNameType journalEventNameType, string desriptionText = null)
		{
			return new JournalItem
			{
				SystemDateTime = DateTime.Now,
				DeviceDateTime = null,
				JournalObjectType = journalObjectType,
				JournalEventNameType = journalEventNameType,
				JournalSubsystemType = JournalSubsystemType.Video,
				DescriptionText = desriptionText,
				JournalEventDescriptionType = JournalEventDescriptionType.NULL,
				ObjectUID = objectUid,
				ObjectName = objectName,
				UserName = string.Empty,
			};
		}
コード例 #8
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));
		}
コード例 #9
0
ファイル: Watcher.Main.cs プロジェクト: xbadcode/Rubezh
		internal void AddMessage(JournalEventNameType journalEventNameType)
		{
			var journalItem = new JournalItem()
			{
				JournalEventNameType = journalEventNameType,
				SystemDateTime = DateTime.Now,
			};
			AddJournalItem(journalItem);
		}
コード例 #10
0
ファイル: Watcher.Main.cs プロジェクト: xbadcode/Rubezh
		void AddFailureJournalItem(JournalEventNameType journalEventNameType, JournalEventDescriptionType description)
		{
			var journalItem = new JournalItem()
			{
				JournalEventNameType = journalEventNameType,
				JournalEventDescriptionType = description,
			};
			var gkIpAddress = GkDatabase.RootDevice.GetGKIpAddress();
			if (!string.IsNullOrEmpty(gkIpAddress))
				journalItem.JournalDetalisationItems.Add(new JournalDetalisationItem("IP-адрес ГК", gkIpAddress.ToString()));
		}
コード例 #11
0
ファイル: Watcher.Main.cs プロジェクト: xbadcode/Rubezh
		void AddFailureJournalItem(JournalEventNameType journalEventNameType, string description = "")
		{
			var journalItem = new JournalItem()
			{
				JournalEventNameType = journalEventNameType,
				DescriptionText = description,
			};
			//var gkIpAddress = GkDatabase.RootDevice.GetGKIpAddress();
			//if (!string.IsNullOrEmpty(gkIpAddress))
			//	journalItem.JournalDetalisationItems.Add(new JournalDetalisationItem("IP-адрес ГК", gkIpAddress.ToString()));
			GKCallbackResult.JournalItems.Add(journalItem);
		}
コード例 #12
0
ファイル: GKProcessorManager.cs プロジェクト: xbadcode/Rubezh
		public static void AddGKMessage(JournalEventNameType journalEventNameType, JournalEventDescriptionType journalEventDescriptionType, string description, GKBase gkBase, string userName)
		{
			Guid uid = Guid.Empty;
			var journalObjectType = JournalObjectType.None;
			if (gkBase != null)
			{
				uid = gkBase.UID;
				if (gkBase is GKDevice)
				{
					journalObjectType = JournalObjectType.GKDevice;
				}
				if (gkBase is GKZone)
				{
					journalObjectType = JournalObjectType.GKZone;
				}
				if (gkBase is GKDirection)
				{
					journalObjectType = JournalObjectType.GKDirection;
				}
				if (gkBase is GKDelay)
				{
					journalObjectType = JournalObjectType.GKDelay;
				}
				if (gkBase is GKPim)
				{
					journalObjectType = JournalObjectType.GKPim;
				}
				if (gkBase is GKGuardZone)
				{
					journalObjectType = JournalObjectType.GKGuardZone;
				}
				if (gkBase is GKSKDZone)
				{
					journalObjectType = JournalObjectType.GKSKDZone;
				}
				if (gkBase is GKDoor)
				{
					journalObjectType = JournalObjectType.GKDoor;
				}
				if (gkBase is GKMPT)
				{
					journalObjectType = JournalObjectType.GKMPT;
				}
				if (gkBase is GKPumpStation)
				{
					journalObjectType = JournalObjectType.GKPumpStation;
				}
			}

			var journalItem = new JournalItem
			{
				SystemDateTime = DateTime.Now,
				DeviceDateTime = null,
				JournalObjectType = journalObjectType,
				JournalEventNameType = journalEventNameType,
				JournalEventDescriptionType = journalEventDescriptionType,
				DescriptionText = description,
				ObjectUID = uid,
				UserName = userName,
				JournalSubsystemType = JournalSubsystemType.GK
			};
			if (gkBase != null)
			{
				journalItem.ObjectName = gkBase.PresentationName;
				var gkObjectNo = gkBase.GKDescriptorNo;
				if (gkObjectNo > 0)
					journalItem.JournalDetalisationItems.Add(new JournalDetalisationItem("Компонент ГК", gkObjectNo.ToString()));
			}

			var gkCallbackResult = new GKCallbackResult();
			gkCallbackResult.JournalItems.Add(journalItem);
			OnGKCallbackResult(gkCallbackResult);
		}
コード例 #13
0
		public EventDescriptionAttribute(string name, JournalEventNameType journalEventNameType)
		{
			Name = name;
			JournalEventNameType = journalEventNameType;
		}
コード例 #14
0
ファイル: JournalModel.cs プロジェクト: xbadcode/Rubezh
	   string GetEventImage(JournalEventNameType journalEventNameType)
		{
			FieldInfo fieldInfo = journalEventNameType.GetType().GetField(journalEventNameType.ToString());
			if (fieldInfo != null)
			{
				EventNameAttribute[] descriptionAttributes = (EventNameAttribute[])fieldInfo.GetCustomAttributes(typeof(EventNameAttribute), false);
				if (descriptionAttributes.Length > 0)
				{
					EventNameAttribute eventNameAttribute = descriptionAttributes[0];
					Name = eventNameAttribute.Name;
					var stateClass = eventNameAttribute.StateClass;
					if (stateClass != XStateClass.Norm)
						return "/Content/Image/StateClasses/" + stateClass.ToString() + ".png";
				}
			}
			return "/Content/Image/Images/blank.png";
		}