Example #1
0
		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);
			}
		}
Example #2
0
		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;
		}