コード例 #1
0
ファイル: Dispatcher.cs プロジェクト: vaclavek/PocketHome.Net
		internal void ReceiveMessage(Message message)
		{
			if (_needData != NeedDataEnum.NoNeed)
			{
				State.SetNeedData(_needData);
				_needData = NeedDataEnum.NoNeed;
			}

			var processingMessage = State.ProcessMessage(message, _confirmMessage, _newState, _needsConfirm);
			if (processingMessage == null)
				return;

			if (processingMessage.ResponseMessage != null)
			{
				SendMessage(processingMessage);
			}
			else
			{
				_needsConfirm = false;
				_confirmMessage = null;
				_newState = null;

				if (processingMessage.NewState != null)
				{
					State = processingMessage.NewState;

					processingMessage = State.StateChanged();
					if (processingMessage != null)
						SendMessage(processingMessage);
				}
			}
		}
コード例 #2
0
		internal override ProcessingMesssage ProcessMessage(Message message, byte[] confirmMessage, AbstractState newState, bool needsConfirm)
		{
			var response = GetEchoResponse(message);
			if (response != null)
				return new ProcessingMesssage()
				{
					NewState = new InicializaceState()
				};

			return null;
		}
コード例 #3
0
ファイル: CJ.cs プロジェクト: vaclavek/PocketHome.Net
		public static void SetInfo(Message message)
		{
			var data = message.Data;

			SerioveCislo = string.Format("{0:X2}{1:X2}{2:X2}", data[2], data[3], data[4]);

			PhPlus = data[5].GetBit(0);
			Ot = data[5].GetBit(1);
			JenEkvitermniRegulace = data[5].GetBit(2);
			AnglickaVerze = data[5].GetBit(3);
			MaGsmModul = data[5].GetBit(4);
			MaBtModul = data[5].GetBit(5);
			MaEeprom = data[5].GetBit(6);
			PocetPripojeni = data[6];
		}
コード例 #4
0
		protected ProcessingMesssage GetEchoResponse(Message message)
		{
			if (message.Id == Request.NextChange.Id)
			{
				return new ProcessingMesssage()
				{
					ResponseMessage = Response.KeepAlive.Data,
					Text = Response.KeepAlive.Text,
					NeedsConfirm = false
				};
			}

			if (message.Id == Request.NextChange.Id)
			{
				CJ.SetFirmware(message);

				return new ProcessingMesssage()
				{
					ResponseMessage = Response.KeepAlive.Data,
					Text = Response.KeepAlive.Text,
					NeedsConfirm = false
				};
			}

			if (message.Id == Request.CurrentDate.Id)
			{
				CJ.SetInfo(message);

				return new ProcessingMesssage()
				{
					ResponseMessage = Response.GetCurrentDateTime(),
					Text = "Nastavuji datum a čas",
					NeedsConfirm = true
				};
			}

			return null;
		}
コード例 #5
0
		internal abstract ProcessingMesssage ProcessMessage(Message message, byte[] confirmMessage, AbstractState newState, bool needsConfirm);
コード例 #6
0
ファイル: CJ.cs プロジェクト: vaclavek/PocketHome.Net
		internal static void SetFirmware(Message message)
		{
			var data = message.Data;
			Firmware = string.Format("{0:X2}{1:X2}{2:X2}{3:X2}", data[2], data[3], data[4], data[5]);
		}