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); }
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; }
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; }
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; }
/* 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 void GKAddMessage(JournalEventNameType journalEventNameType, string description) { }
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, }; }
/* 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)); }
internal void AddMessage(JournalEventNameType journalEventNameType) { var journalItem = new JournalItem() { JournalEventNameType = journalEventNameType, SystemDateTime = DateTime.Now, }; AddJournalItem(journalItem); }
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())); }
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); }
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); }
public EventDescriptionAttribute(string name, JournalEventNameType journalEventNameType) { Name = name; JournalEventNameType = journalEventNameType; }
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"; }