示例#1
0
        /// <summary>
        /// 下发测量定义
        /// </summary>
        /// <param name="stream"></param>
        /// <returns></returns>
        public string ConfigMeasureDefine(Stream stream)
        {
            ConfigMeasureDefineTaskModel param = new ConfigMeasureDefineTaskModel();
            UploadResult result = new UploadResult();

            try
            {
                StreamReader sr = new StreamReader(stream);

                string content = sr.ReadToEnd();
                sr.Dispose();
                NameValueCollection nvc = HttpUtility.ParseQueryString(content);
                param = Json.Parse <ConfigMeasureDefineTaskModel>(nvc["content"]);


                if (iCMS.WG.AgentServer.Common.syncTools == null)
                {
                    Common.Init();
                }
                Common.asyncTools.AddCmd(param);
                result.Result = 0;
            }
            catch
            {
                result.Result = 1;
                result.Reason = "发生错误无法受理请求";
            }

            return(Json.Stringify(result));
        }
示例#2
0
        public object doOperator()
        {
            try
            {
                ConfigMeasureDefineTaskModel model = (configModel as ConfigMeasureDefineTaskModel);
                foreach (SendMeasureDefine measureDefine in model.measureDefineList)
                {
                    //System.Threading.Tasks.Task result = System.Threading.Tasks.Task.Run(() =>
                    //{
                    iMesh.tSetMeasDefParam setMeasDefParam = new iMesh.tSetMeasDefParam();
                    iCMS.WG.Agent.Common.LogHelper.WriteLog(iCMS.WG.Agent.Common.Enum.EnumLogType.Agent2WS.ToString(), "开始下发WS的测量定义 :" + measureDefine.MAC);
                    setMeasDefParam.mac = new iMesh.tMAC(measureDefine.MAC);
                    switch (measureDefine.DAQStyle)
                    {
                    case 1:
                        setMeasDefParam.DaqMode = iMesh.enWsDaqMode.eTiming;
                        //设备总数
                        setMeasDefParam.u8DevTotal = Convert.ToByte(measureDefine.DevTotal);
                        //设备编号
                        setMeasDefParam.u8DevNum = Convert.ToByte(measureDefine.DevNum);

                        iCMS.WG.Agent.Common.LogHelper.WriteLog(iCMS.WG.Agent.Common.Enum.EnumLogType.Agent2WS.ToString(), "定时采集 " + measureDefine.MAC);
                        break;

                    case 2:
                        setMeasDefParam.DaqMode = iMesh.enWsDaqMode.eImmediate;
                        iCMS.WG.Agent.Common.LogHelper.WriteLog(iCMS.WG.Agent.Common.Enum.EnumLogType.Agent2WS.ToString(), "临时采集 " + measureDefine.MAC);
                        break;

                    default:
                        break;
                    }



                    setMeasDefParam.TmpDaqPeriod.u8Hour = measureDefine.DAQPeriodTemperature[0];
                    setMeasDefParam.TmpDaqPeriod.u8Min  = measureDefine.DAQPeriodTemperature[1];
                    setMeasDefParam.u16EigenDaqMult     = measureDefine.DAQPeriodCharacterValue;
                    setMeasDefParam.u16WaveDaqMult      = measureDefine.DAQPeriodWave;

                    if (measureDefine.ACCSubscribe == 1)
                    {
                        setMeasDefParam.AccMdf.MeasDefType      = iMesh.enMeasDefType.eAccWaveform;
                        setMeasDefParam.AccMdf.bSubscribed      = true;
                        setMeasDefParam.AccMdf.u8EigenValueType = measureDefine.ACCValue;
                        setMeasDefParam.AccMdf.u16WaveLen       = measureDefine.ACCWaveLength;
                        setMeasDefParam.AccMdf.u16UpperFreq     = measureDefine.ACCUpLimitFreq;
                        setMeasDefParam.AccMdf.u16LowFreq       = measureDefine.ACCLowLimitFreq;
                    }
                    if (measureDefine.ACCEnvlSubscribe == 1)
                    {
                        setMeasDefParam.AccEnvMdf.MeasDefType      = iMesh.enMeasDefType.eAccEnvelope;
                        setMeasDefParam.AccEnvMdf.bSubscribed      = true;
                        setMeasDefParam.AccEnvMdf.u8EigenValueType = measureDefine.ACCEnvlValue;
                        setMeasDefParam.AccEnvMdf.u16WaveLen       = measureDefine.ACCEnvlWaveLength;
                        setMeasDefParam.AccEnvMdf.u16UpperFreq     = measureDefine.ACCEnvlpBandWidth;
                        setMeasDefParam.AccEnvMdf.u16LowFreq       = measureDefine.ACCEnvlpFilter;
                    }
                    if (measureDefine.DispSubscribe == 1)
                    {
                        setMeasDefParam.DspMdf.MeasDefType      = iMesh.enMeasDefType.eDspWaveform;
                        setMeasDefParam.DspMdf.bSubscribed      = true;
                        setMeasDefParam.DspMdf.u8EigenValueType = measureDefine.DispValue;
                        setMeasDefParam.DspMdf.u16WaveLen       = measureDefine.DispWaveLength;
                        setMeasDefParam.DspMdf.u16UpperFreq     = measureDefine.DispUpLimitFreq;
                        setMeasDefParam.DspMdf.u16LowFreq       = measureDefine.DispLowLimitFreq;
                    }
                    if (measureDefine.VelSubscribe == 1)
                    {
                        setMeasDefParam.VelMdf.MeasDefType      = iMesh.enMeasDefType.eVelWaveform;
                        setMeasDefParam.VelMdf.bSubscribed      = true;
                        setMeasDefParam.VelMdf.u8EigenValueType = measureDefine.VelValue;
                        setMeasDefParam.VelMdf.u16WaveLen       = measureDefine.VelWaveLength;
                        setMeasDefParam.VelMdf.u16UpperFreq     = measureDefine.VelUpLimitFreq;
                        setMeasDefParam.VelMdf.u16LowFreq       = measureDefine.VelLowLimitFreq;
                    }
                    //启停机
                    if (measureDefine.CriticalSubscribe == 1)
                    {
                        if (setMeasDefParam.RevStop != null)
                        {
                            setMeasDefParam.RevStop.MeasDefType      = iMesh.enMeasDefType.eRevStopform;
                            setMeasDefParam.RevStop.bSubscribed      = true;
                            setMeasDefParam.RevStop.u8EigenValueType = measureDefine.CriticalValue;
                            setMeasDefParam.RevStop.u16WaveLen       = measureDefine.CriticalWaveLength;
                            setMeasDefParam.RevStop.u16UpperFreq     = measureDefine.CriticalBandWidth;
                            setMeasDefParam.RevStop.u16LowFreq       = measureDefine.CriticalFilter;
                        }
                    }
                    //LQ
                    if (measureDefine.LQSubscribe == 1)
                    {
                        setMeasDefParam.LQMdf.MeasDefType = iMesh.enMeasDefType.eLQform;
                        setMeasDefParam.LQMdf.bSubscribed = true;

                        setMeasDefParam.LQMdf.u8EigenValueType = measureDefine.LQValue;
                        setMeasDefParam.LQMdf.u16WaveLen       = measureDefine.LQWaveLength;
                        setMeasDefParam.LQMdf.u16UpperFreq     = measureDefine.LQUpLimitFreq;
                        setMeasDefParam.LQMdf.u16LowFreq       = measureDefine.LQLowLimitFreq;
                    }

                    //向底层发送信息
                    if (!iCMS.WG.Agent.ComFunction.Send2WS(setMeasDefParam, Common.Enum.EnumRequestWSType.SetMeasDef))
                    {
                        CommunicationWithServer communication2Server = new CommunicationWithServer();
                        communication2Server.UploadConfigResponse(measureDefine.MAC, Enum_ConfigType.ConfigType_MeasDefine, Convert.ToInt32(EnmuReceiveStatus.Unaccept), "网络正忙下发测量定义失败,退出对该WS的下发测量定义");
                        iCMS.WG.Agent.Common.LogHelper.WriteLog(iCMS.WG.Agent.Common.Enum.EnumLogType.Agent2WS.ToString(), measureDefine.MAC + ":网络正忙下发测量定义失败,退出对该WS的下发测量定义");
                    }
                    else
                    {
                        lock (iCMS.WG.Agent.ComFunction.sendMeasureDefineList)
                        {
                            System.Threading.Timer timer = new System.Threading.Timer(new System.Threading.TimerCallback(CheckSetMeasDefTimeOut), measureDefine.MAC, 40000, -1);
                            measureDefine.time = timer;
                            iCMS.WG.Agent.ComFunction.sendMeasureDefineList.Add(measureDefine);
                        }
                    }

                    System.Threading.Thread.Sleep(100);
                }
            }
            catch (Exception ex)
            {
                iCMS.WG.Agent.Common.LogHelper.WriteLog(ex);
            }
            return("ConfigMeasureDefineOper");
        }