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; } }
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); }
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(); }
/* 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(); }
/* 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)); }
public XStateClassViewModel(XDevice device, XStateClass stateClass) { Device = device; StateClass = stateClass; }
public StateClass(XStateClass stateClass) { Name = stateClass.ToDescription(); IconData = stateClass.ToString(); }
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; }
public FilterStateClassViewModel(XStateClass stateClass) { StateClass = stateClass; }
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); }
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); }
/* 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.Выключено)); }
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; } }
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); }
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; }
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); } }
public StateClassViewModel(XStateClass stateClass) { StateClass = stateClass; Name = stateClass.ToDescription(); }
public EventNameAttribute(JournalSubsystemType journalSubsystemType, string name, XStateClass stateClass) { JournalSubsystemType = journalSubsystemType; Name = name; StateClass = stateClass; }
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(); }
public JournalDescriptionState(string name, XStateClass stateClass, string description) { Name = name; StateClass = stateClass; Description = description; }
void AddAdditionalState(XStateClass stateClass, string name) { if (name != null) { var additionalState = new GKAdditionalState() { StateClass = stateClass, Name = name }; AdditionalStates.Add(additionalState); } }
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; } }