private void RequestComplete(PackageResults packageRes, CommResults comRes, AckResults ackType, string strTag, PackageBase pack)
        {
            if (ackType != AckResults.ok
               || comRes != CommResults.ok
               || packageRes != PackageResults.ok)
            {
                if (strTag == "SetSaveSendCardsParameters")
                {
                    _isSaveToHWSuccessful = false;
                }
                if (strTag == "SetParameterStore2SpiFlash")
                {
                    string msg = "";
                    
                    msg = "保存信息到硬件失败!";
                    GetLangString(msg, "Lang_ScreenInfo_SaveDataFailt", out msg);

                    SendTextToMessageBox(msg, MessageBoxImage.Error);
                    CloseProcessForm();

                    return;
                }
                if (strTag == "SetReturnFactoryValues")
                {
                    string msg = "";
                    msg = "返回出厂设置失败!";
                    GetLangString(msg, "Lang_ScreenInfo_ReturnFactoryData", out msg);

                    SendTextToMessageBox(msg, MessageBoxImage.Error);
                    CloseProcessForm();

                    return;
                }
            }
            else
            {
                if (strTag == "SetParameterStore2SpiFlash")
                {
                    CustomTransform.Delay(SpecialPackTimeOut.SAVE_PARAMS_TIMEOUT * 1000, 60);
                    string msg = string.Empty;
                    msg = "保存信息到硬件成功!";
                    GetLangString(msg, "Lang_ScreenInfo_SendToHWSuccess", out msg);

                    _isSendDataToHW = false;

                    //if (_globalParams.AllBaseInfo.AllInfoDict.ContainsKey(pack.PortName))
                    //{
                    //    List<ILEDDisplayInfo> infoList = _globalParams.AllBaseInfo.AllInfoDict[pack.PortName].LEDDisplayInfoList;
                    //    infoList.Clear();
                    //    for (int i = 0; i < _oldDisplayList.Count; i++)
                    //    {
                    //        infoList.Add(_oldDisplayList[i]);
                    //    }
                    //}

                    SendTextToMessageBox(msg, MessageBoxImage.Exclamation);                    
                    CloseProcessForm();
                    Messenger.Default.Send<string>("", MsgToken.MSG_SCREENINFO_CHANGED);
                }
                else if (strTag == "SetReturnFactoryValues")
                {
                    SpecialPackageRequest spcPack = new SpecialPackageRequest(SpecialPackID.RETURN_FACTORY_ID,
                        SpecialPackTimeOut.RETURN_FACTORY);
                    int curID;
                    _serverProxy.SendEndRequestSpecialPacke(spcPack, out curID);

                    RedundancyInfoAccessor reduInfoAccessor = new RedundancyInfoAccessor(_serverProxy, _hwCardType, _selectedPortName);
                    HWSoftwareSpaceRes res = reduInfoAccessor.ClearHWReduInfo(OnClearReduInfoComplete);
                    if (res != HWSoftwareSpaceRes.OK)
                    {
                        string msg = "";
                        msg = "返回出厂设置失败!";
                        GetLangString(msg, "Lang_ScreenInfo_ReturnFactoryData", out msg);

                        SendTextToMessageBox(msg,MessageBoxImage.Error);                                            
                        CloseProcessForm();
                        return;
                    }
                }
            }
        }
        private void SendSaveParams(string selectedPortName)
        {
            string msg = string.Empty;
            if (!_isSaveToHWSuccessful)
            {
                
               msg = "保存信息到硬件失败!";
               GetLangString(msg, "Lang_ScreenInfo_SaveDataFailt", out msg);

               SendTextToMessageBox(msg, MessageBoxImage.Error);
               CloseProcessForm();

                return;
            }

            #region 参数保存

            SpecialPackageRequest spcPack = null;

            int savaStore2SpiFlashTimeOut = CommandTimeOut.SENDER_SAVEPARAMS_TIMEOUT;
            if (_serverProxy is LCTServerMessageProxy)
            {
                spcPack = new SpecialPackageRequest(SpecialPackID.SAVE_PARAMS_ID,
                     SpecialPackTimeOut.SAVE_PARAMS_TIMEOUT);
                savaStore2SpiFlashTimeOut = CommandTimeOut.SENDER_SAVEPARAMS_TIMEOUT;
            }
            else
            {
                spcPack = new SpecialPackageRequest(SpecialPackID.SAVE_PARAMS_ID,
                     (ushort)(SpecialPackTimeOut.SAVE_PARAMS_TIMEOUT + 10000));
                savaStore2SpiFlashTimeOut = CommandTimeOut.SENDER_SAVEPARAMS_TIMEOUT + 10000;
            }

            int curPackID;
            bool res = _serverProxy.SendStartRequestSpecialPacke(spcPack, out curPackID);
            if (!res)
            {
                
                msg = "服务正在处理其他请求,请稍后再试......";
                GetLangString(msg, "Lang_ScreenInfo_ServiceBusy", out msg);

                SendTextToMessageBox(msg,MessageBoxImage.Error);
                CloseProcessForm();

                return;
            }

            PackageRequestWriteData writeData;
            if (_serverProxy != null)
            {

                writeData = TGProtocolParser.SetSaveSendCardsParameters(selectedPortName,
                                                                        SystemAddress.SENDER_BROADCAST_ADDRESS,
                                                                        CommandTimeOut.SENDER_SAVEPARAMS_TIMEOUT,
                                                                        "SetSaveSendCardsParameters",
                                                                        false,
                                                                        0,
                                                                        null,
                                                                        CompleteRequestDealing);
                writeData.Reserved2 = SpecialPackID.SAVE_PARAMS_ID;
                _serverProxy.SendRequestWriteData(writeData);


                writeData = TGProtocolParser.SetParameterStore2SpiFlash(selectedPortName,
                                                                        SystemAddress.SENDER_BROADCAST_ADDRESS,
                                                                        SystemAddress.PORT_BROADCAST_ADDRESS,
                                                                        SystemAddress.SCANBOARD_BROADCAST_ADDRESS,
                                                                        savaStore2SpiFlashTimeOut,
                                                                        "SetParameterStore2SpiFlash",
                                                                        false,
                                                                        0,
                                                                        null,
                                                                        CompleteRequestDealing);
                writeData.Reserved2 = SpecialPackID.SAVE_PARAMS_ID;
                _serverProxy.SendRequestWriteData(writeData);
            }


            #endregion

        }