Beispiel #1
0
 protected void SetNetworkController(INetwrokController controller)
 {
     _NetworkController = controller;
 }
Beispiel #2
0
		/// <summary>
		/// Широковешательная команда записи времени и даты во все устройтсва
		/// сети с указанным групповым адресом
		/// </summary>
		/// <param name="dateTime"></param>
		/// <param name="groupAddress">Групповой адрес устройтсв</param>
		/// <param name="networkController"></param>
		/// <param name="isExternalCall"></param>
		/// <returns></returns>
		/// <remarks>Ответ на данный тип запросов не приходит, 
		/// только создаётся временная выдержка</remarks>
		public static IAsyncRequestResult WriteDateTimeInGroupDevices(
			DateTime dateTime, 
			UInt32 groupAddress, 
			INetwrokController networkController, 
			bool isExternalCall = true)
		{
			var request = new DataMessage(
				new IncotexDataTimeTypeConverter().ToArray(IncotexDateTime.FromDateTime(dateTime)))
			{
				Address = groupAddress,
				CmdCode = Convert.ToByte(Mercury203CmdCode.WriteDateTime)
			};

			var transaction = new Transaction(null, TransactionType.BroadcastMode, request)
			{
				Sender = null
			};

			var networkRequest = new NetworkRequest(transaction);

			if (networkController == null)
			{
				transaction.Start();
				transaction.Abort(new TransactionError
				{
					ErrorCode = TransactionErrorCodes.DataLinkPortNotInstalled,
					Description = "Невозможно выполенить запрос. Не установлен контроллер сети"
				});
				networkRequest.AsyncRequestResult.SetCompleted();
			}
			else
			{
				networkController.Write(networkRequest, isExternalCall);
			}
			return (IAsyncRequestResult)networkRequest.AsyncRequestResult;
		}