protected void SetNetworkController(INetwrokController controller) { _NetworkController = controller; }
/// <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; }