public void UploadLQValue(tLQParam param)
        {
            string cacheData = string.Empty;

            System.Threading.Tasks.Task.Run(() =>
            {
                try
                {
                    if (iCMS.WG.Agent.ComFunction.IsExisted(iCMS.WG.Agent.ComFunction.CreateCacheData(param, EnumCacheType.LQValue)))
                    {
                        iCMS.WG.Agent.Common.LogHelper.WriteLog(iCMS.WG.Agent.Common.Enum.EnumLogType.InvalidData.ToString(), "重复LQ,MAC: " + param.mac.ToHexString() + "采集时间:" + iCMS.WG.Agent.ComFunction.GetSamplingTime(param.SampleTime));
                        return;
                    }

                    VibrationValueParameter LQData = new VibrationValueParameter();
                    LQData.SamplingTime            = iCMS.WG.Agent.ComFunction.GetSamplingTime(param.SampleTime);
                    LQData.DAQStyle     = ((int)param.DaqMode).ToString();
                    LQData.WSMAC        = param.mac.ToHexString().ToUpper();
                    LQData.LQSignalType = (int)param.WaveType;
                    LQData.LQValue      = param.EigenValuePara;

                    cacheData = LQData.ToClientString();

                    ComFunction.CreateRequest(EnumRequestType.UpLoadData, "UploadVibrationValue", cacheData);
                }
                catch (Exception ex)
                {
                    iCMS.WG.Agent.Common.LogHelper.WriteLog(iCMS.WG.Agent.Common.Enum.EnumLogType.Error.ToString(), "iCMS.WG.Agent.CommunicationWithServer.UploadLQValue执行失败,异常:" + ex.Message + "\r\n详细:" + ex.StackTrace.ToString());
                    if (iCMS.WG.Agent.ComFunction.GetAppConfig("isCache").Trim() == "1")
                    {
                        iCMS.WG.Agent.Common.LogHelper.WriteLog(iCMS.WG.Agent.Common.Enum.EnumLogType.Cache.ToString(), "UploadLQValue # \r\n" + cacheData);
                    }
                }
            });
        }
        /// <summary>
        /// 通信层的特征值的再次解析
        /// </summary>
        private void WsEigenDataAnalysis(tMeshEigenValueParam param)
        {
            lock (m_dicReceiveEignWs)
            {
                if (!m_dicReceiveEignWs.ContainsKey(param.mac.ToHexString()))
                {
                    m_dicReceiveEignWs.Add(param.mac.ToHexString(), false);
                }
                if (param.AccDef != null || param.VelDef != null || param.DspDef != null || param.AccEnvDef != null)
                {
                    m_dicReceiveEignWs[param.mac.ToHexString()] = true;
                }
                else
                {
                    m_dicReceiveEignWs[param.mac.ToHexString()] = false;
                }
            }
            if (param.AccDef != null || param.VelDef != null || param.DspDef != null || param.AccEnvDef != null)
            {
                tEigenValueParam Eigen = new tEigenValueParam();
                Eigen.mac.Assign(param.mac);
                Eigen.DaqMode            = enWsDaqMode.eTiming;
                Eigen.SampleTime.u8Year  = param.SampleTime.u8Year;
                Eigen.SampleTime.u8Month = param.SampleTime.u8Month;
                Eigen.SampleTime.u8Day   = param.SampleTime.u8Day;
                Eigen.SampleTime.u8Hour  = param.SampleTime.u8Hour;
                Eigen.SampleTime.u8Min   = param.SampleTime.u8Min;
                Eigen.SampleTime.u8Sec   = param.SampleTime.u8Sec;

                Eigen.AccWaveType = enMeasDefType.eAccWaveform;
                if (param.AccDef != null)
                {
                    Eigen.bAccRMSValid = (param.AccDef.bAccWaveRMSValid == true) ? 1 : 0;
                    Eigen.f32AccRMS    = param.AccDef.fAccRMSValue;
                    Eigen.bAccPKValid  = (param.AccDef.bAccWavePKValid == true) ? 1 : 0;
                    Eigen.f32AccPK     = param.AccDef.fAccPKValue;
                }
                Eigen.VelWaveType = enMeasDefType.eVelWaveform;
                if (param.VelDef != null)
                {
                    Eigen.bVelRMSValid = (param.VelDef.bVelWaveRMSValid == true) ? 1 : 0;
                    Eigen.f32VelRMS    = param.VelDef.fVelRMSValue;
                }
                Eigen.DspWaveType = enMeasDefType.eDspWaveform;
                if (param.DspDef != null)
                {
                    Eigen.bDspPKPKValid = (param.DspDef.bDspWavePKPKValid == true) ? 1 : 0;
                    Eigen.f32DspPKPK    = param.DspDef.fDspPKPKValue;
                }
                Eigen.AccEnvWaveType = enMeasDefType.eAccEnvelope;
                if (param.AccEnvDef != null)
                {
                    Eigen.bAccEnvPKValid  = (param.AccEnvDef.bAccEnvWavePKValid == true) ? 1 : 0;
                    Eigen.f32AccEnvPK     = param.AccEnvDef.fAccEnvPKValue;
                    Eigen.bAccEnvPKCValid = (param.AccEnvDef.bAccEnvWavePKCValid == true) ? 1 : 0;
                    Eigen.f32AccEnvPKC    = param.AccEnvDef.fAccEnvPKCValue;
                }
                //bEigentoDaq = true;
                if (WsEigenDataNotify != null)
                {
                    WsEigenDataNotify(Eigen);
                }
            }
            //解析LQ的特征值
            if (param.LQDef != null)
            {
                tLQParam LQ = new tLQParam();
                LQ.mac.Assign(param.mac);
                LQ.DaqMode            = enWsDaqMode.eTiming;
                LQ.SampleTime.u8Year  = param.SampleTime.u8Year;
                LQ.SampleTime.u8Month = param.SampleTime.u8Month;
                LQ.SampleTime.u8Day   = param.SampleTime.u8Day;
                LQ.SampleTime.u8Hour  = param.SampleTime.u8Hour;
                LQ.SampleTime.u8Min   = param.SampleTime.u8Min;
                LQ.SampleTime.u8Sec   = param.SampleTime.u8Sec;
                LQ.EigenValuePara     = param.LQDef.fLQRMSValue;
                LQ.WaveType           = enMeasDefType.eLQform;
                LQ.EigenType          = enEigenValueType.eLQ;
                if (WsLQNotify != null)
                {
                    WsLQNotify(LQ);
                }
            }
            //解析启停机的特征值
            if (param.RevStopDef != null)
            {
                tRevStopParam RevStop = new tRevStopParam();
                RevStop.mac.Assign(param.mac);
                RevStop.DaqMode            = enWsDaqMode.eTiming;
                RevStop.SampleTime.u8Year  = param.SampleTime.u8Year;
                RevStop.SampleTime.u8Month = param.SampleTime.u8Month;
                RevStop.SampleTime.u8Day   = param.SampleTime.u8Day;
                RevStop.SampleTime.u8Hour  = param.SampleTime.u8Hour;
                RevStop.SampleTime.u8Min   = param.SampleTime.u8Min;
                RevStop.SampleTime.u8Sec   = param.SampleTime.u8Sec;
                RevStop.f32EigenPK         = param.RevStopDef.fRevStopPKValue;
                RevStop.WaveType           = enMeasDefType.eAppRevStopform;
                RevStop.EigenType          = enEigenValueType.ePK;
                if (WsRevStopNotify != null)
                {
                    WsRevStopNotify(RevStop);
                }
            }
        }