/// <summary>
        /// возврат клиенту статуса 
        /// выполнения команды        
        /// </summary>
        /// <param name="ACommandID"></param>
        /// <returns></returns>
        public EnumerationCommandStates CommandStateCheck(string ACommandID)
        {
            try
            {
                lock (lockObjectForCommands)
                {
                    IWcfDataServer iwds = dWCFClientsList[DS4CurrtntCMD].wcfDataServer;

                    DSServiceReference.EnumerationCommandStates ecs = iwds.CommandStateCheck();

                    CurrentCMDState = (EnumerationCommandStates)ecs;
                }
            }
            catch (Exception ex)
            {
                TraceSourceLib.TraceSourceDiagMes.WriteDiagnosticMSG(ex);

                CurrentCMDState = EnumerationCommandStates.cmdNotSend_DSR_2_DS;
            }
            return CurrentCMDState;
        }
        /// <summary>
        /// /// Запрос на запуск команды на устройстве
        /// </summary>
        /// <param name="ACommandID">ds.dev.cmdid</param>
        /// <param name="AParameters">массив параметров</param>
        /// <returns>false - если роутер уже выполняет другую команду</returns>
        public void CommandRun(string ACommandID, object[] AParameters)
        {
            try
            {
                CurrentCMDState = EnumerationCommandStates.sentFromClientToRouter;

                string[] arrcmdid = ACommandID.Split(new char[] { '.' });
                DS4CurrtntCMD = UInt16.Parse(arrcmdid[0]);
                uint dev = UInt32.Parse(arrcmdid[1]);
                uint tagguid = UInt32.Parse(arrcmdid[2]);

                TraceSourceLib.TraceSourceDiagMes.WriteDiagnosticMSG(TraceEventType.Error, 1385, string.Format("{0} : Получен запрос на команду от HMI-клиента для {1}.", DateTime.Now.ToString(), ACommandID));

                IWcfDataServer iwds = dWCFClientsList[DS4CurrtntCMD].wcfDataServer;
                //bool rez = iwds.RunCMD(DS4CurrtntCMD, dev, tagguid, null /*byte[] pq*/);   // нужно поправить контракт на DS на массив объектов
                iwds.BeginCommandRun(ACommandID, null, GetCMDStateCallback, iwds);

                CurrentCMDState = EnumerationCommandStates.sentFromRouterToDataServer;
            }
            catch (Exception ex)
            {
                Log.WriteErrorMessage("DSRouterService.CommandRun() : Исключение : " + ex.Message);
                TraceSourceLib.TraceSourceDiagMes.WriteDiagnosticMSG(ex);
            }
        }