void SetRegime(GKMPTDeviceType deviceType, GKStateBit stateBit) { var count = 0; foreach (var mptDevice in MPT.MPTDevices.Where(x => x.MPTDeviceType == deviceType && x.Device != null)) { if (mptDevice.Device.Driver.IsCardReaderOrCodeReader) { if (mptDevice.CodeReaderSettings.MPTSettings.CanBeUsed) { FormulaHelper.AddCodeReaderLogic(Formula, mptDevice.CodeReaderSettings.MPTSettings, mptDevice.Device); if (count > 0) Formula.Add(FormulaOperationType.OR); count++; } } else { Formula.AddGetBit(GKStateBit.Fire1, mptDevice.Device); if (count > 0) Formula.Add(FormulaOperationType.OR); count++; } } if (count > 0) { Formula.Add(FormulaOperationType.BR, 1, 3); Formula.Add(FormulaOperationType.CONST, 0, 1); Formula.AddPutBit(stateBit, MPT); Formula.Add(FormulaOperationType.EXIT); } }
public static List<GKDriverType> GetAvailableMPTDriverTypes(GKMPTDeviceType mptDeviceType) { var result = new List<GKDriverType>(); switch (mptDeviceType) { case GKMPTDeviceType.DoNotEnterBoard: case GKMPTDeviceType.ExitBoard: case GKMPTDeviceType.AutomaticOffBoard: result.Add(GKDriverType.RSR2_OPS); result.Add(GKDriverType.RSR2_OPK); result.Add(GKDriverType.RSR2_SCOPA); result.Add(GKDriverType.RSR2_RM_1); result.Add(GKDriverType.RSR2_MVK8); break; case GKMPTDeviceType.Speaker: result.Add(GKDriverType.RSR2_OPZ); result.Add(GKDriverType.RSR2_OPK); result.Add(GKDriverType.RSR2_ZOV); result.Add(GKDriverType.RSR2_RM_1); result.Add(GKDriverType.RSR2_MVK8); break; case GKMPTDeviceType.HandStart: case GKMPTDeviceType.HandStop: case GKMPTDeviceType.HandAutomaticOn: case GKMPTDeviceType.HandAutomaticOff: result.Add(GKDriverType.RSR2_AM_1); result.Add(GKDriverType.RSR2_CardReader); result.Add(GKDriverType.RSR2_CodeReader); result.Add(GKDriverType.RSR2_CodeCardReader); break; case GKMPTDeviceType.Bomb: result.Add(GKDriverType.RSR2_RM_1); result.Add(GKDriverType.RSR2_MVK8); break; } return result; }
public MPTCodeReaderDetailsViewModel(GKCodeReaderSettings codeReaderSettings, GKMPTDeviceType mptDeviceType) { Title = "Настройка кодонаборника"; MPTDeviceType = mptDeviceType; CodeReaderSettings = codeReaderSettings; CodeReaderSettingsPart = codeReaderSettings.MPTSettings; switch (mptDeviceType) { case GKMPTDeviceType.HandAutomaticOn: CodeName = "Действие для постановки на автоматику"; break; case GKMPTDeviceType.HandAutomaticOff: CodeName = "Действие для снятия с автоматики"; break; case GKMPTDeviceType.HandStart: CodeName = "Действие для пуска"; break; case GKMPTDeviceType.HandStop: CodeName = "Действие для останова"; break; } CodeReaderSettingsViewModel = new CodeReaderSettingsViewModel(CodeReaderSettingsPart); }
public void SetMPTDefaultProperty(GKDevice device, GKMPTDeviceType mptDeviceType) { if (device != null) { switch (device.DriverType) { case GKDriverType.RSR2_AM_1: SetDeviceProperty(device, "Конфигурация", 1); break; case GKDriverType.RSR2_OPS: case GKDriverType.RSR2_OPZ: case GKDriverType.RSR2_OPK: case GKDriverType.RSR2_SCOPA: case GKDriverType.RSR2_ZOV: SetDeviceProperty(device, "Задержка на включение, с", 0); SetDeviceProperty(device, "Время удержания, с", 0); SetDeviceProperty(device, "Задержка на выключение, с", 0); SetDeviceProperty(device, "Состояние для модуля Выключено", 0); SetDeviceProperty(device, "Состояние для режима Удержания", 4); if (mptDeviceType == GKMPTDeviceType.DoNotEnterBoard || mptDeviceType == GKMPTDeviceType.ExitBoard) { SetDeviceProperty(device, "Состояние для режима Включено", 32); } if (mptDeviceType == GKMPTDeviceType.Speaker || mptDeviceType == GKMPTDeviceType.AutomaticOffBoard) { SetDeviceProperty(device, "Состояние для режима Включено", 16); } break; case GKDriverType.RSR2_MVK8: SetDeviceProperty(device, "Задержка на включение, с", 0); SetDeviceProperty(device, "Задержка на выключение, с", 0); SetDeviceProperty(device, "Состояние контакта для режима Выключено", 0); SetDeviceProperty(device, "Состояние контакта для режима Удержания", 4); SetDeviceProperty(device, "Контроль", 3); SetDeviceProperty(device, "Норма питания, 0.1В", 80); if (mptDeviceType == GKMPTDeviceType.DoNotEnterBoard || mptDeviceType == GKMPTDeviceType.ExitBoard) { SetDeviceProperty(device, "Время удержания, с", 0); SetDeviceProperty(device, "Состояние контакта для режима Включено", 32); } if (mptDeviceType == GKMPTDeviceType.Bomb) { SetDeviceProperty(device, "Время удержания, с", 2); SetDeviceProperty(device, "Состояние контакта для режима Включено", 0); } if (mptDeviceType == GKMPTDeviceType.Speaker || mptDeviceType == GKMPTDeviceType.AutomaticOffBoard) { SetDeviceProperty(device, "Время удержания, с", 0); SetDeviceProperty(device, "Состояние контакта для режима Включено", 16); } break; case GKDriverType.RSR2_RM_1: SetDeviceProperty(device, "Задержка на включение, с", 0); SetDeviceProperty(device, "Задержка на выключение, с", 0); SetDeviceProperty(device, "Состояние контакта для режима Выключено", 0); SetDeviceProperty(device, "Состояние контакта для режима Удержания", 4); if (mptDeviceType == GKMPTDeviceType.DoNotEnterBoard || mptDeviceType == GKMPTDeviceType.ExitBoard) { SetDeviceProperty(device, "Время удержания, с", 0); SetDeviceProperty(device, "Состояние контакта для режима Включено", 32); } if (mptDeviceType == GKMPTDeviceType.Bomb) { SetDeviceProperty(device, "Время удержания, с", 2); SetDeviceProperty(device, "Состояние контакта для режима Включено", 0); } if (mptDeviceType == GKMPTDeviceType.Speaker || mptDeviceType == GKMPTDeviceType.AutomaticOffBoard) { SetDeviceProperty(device, "Время удержания, с", 0); SetDeviceProperty(device, "Состояние контакта для режима Включено", 16); } break; } } }
GKMPTDevice CreateMptDevice(GKDevice device, GKMPTDeviceType mptDeviceType = GKMPTDeviceType.Speaker) { var mptDevice = new GKMPTDevice(); mptDevice.MPTDeviceType = mptDeviceType; mptDevice.Device = device; mptDevice.DeviceUID = device.UID; return mptDevice; }
public MPTDeviceTypeViewModel(GKMPTDeviceType mptDeviceType) { MPTDeviceType = mptDeviceType; }