示例#1
0
        public static bool NewRFSignal(int comAddr,
                                       int clsValue,
                                       int forValue)
        {
            bool flag = false;
            int  lvl  = RFPriority.LvlTwo;

            RFSignal.RFNewSignal(comAddr,
                                 ComNames[comAddr - 1],
                                 clsValue,
                                 forValue);

            RFSignal.EnableLog(false);

            if (RFSignal.RFConnected(comAddr, TimeOut))
            {
                flag = true;

                RFSignal.RFClear(comAddr, lvl);

                //只有三维功放需要执行总查询
                if (clsValue == clsSunWave)
                {
                    RFSignal.RFSample2(comAddr, lvl);
                    RFSignal.RFPower(comAddr, lvl, 30);
                }

                RFSignal.RFSample(comAddr, lvl);

                RFSignal.RFStart(comAddr);
            }
            return(flag);
        }
示例#2
0
        private bool RF_Do(int Addr,
                           int Lvl,
                           float P,
                           float F,
                           bool RFon,
                           bool ignoreRFon,
                           bool useP,
                           bool useF,
                           ref PowerStatus status)
        {
            bool RF_Succ = false;

            RFSignal.RFClear(Addr, Lvl);

            if (useP)
            {
                RFSignal.RFPower(Addr, Lvl, P);
            }

            if (useF)
            {
                RFSignal.RFFreq(Addr, Lvl, F);
            }

            if (!ignoreRFon)
            {
                if (RFon)
                {
                    RFSignal.RFOn(Addr, Lvl);
                }
                else
                {
                    RFSignal.RFOff(Addr, Lvl);
                }
            }

            RFSignal.RFSample(Addr, Lvl);

            RFSignal.RFStart(Addr);

            //等待功放
            if (Addr == exe_params.DevInfo.RF_Addr1)
            {
                RF_Succ = power1_Handle.WaitOne(2000, true);
                power1_Handle.Reset();
            }
            else
            {
                RF_Succ = power2_Handle.WaitOne(2000, true);
                power2_Handle.Reset();
            }

            //没有发生功放通信超时,则获取功放状态信息
            if (RF_Succ)
            {
                RFSignal.RFStatus(Addr, ref status);
            }

            //返回通信超时的情况
            return(!RF_Succ);
        }
示例#3
0
        /// <summary>
        /// RF_Set
        /// </summary>
        /// <param name="Addr">功放地址</param>
        /// <param name="Lvl">命令等级</param>
        /// <param name="P">功率</param>
        /// <param name="F">频率</param>
        /// <param name="RFon">开启功放标识</param>
        /// <param name="ignoreRFon">忽略开功放标识</param>
        /// <param name="useP">设置功率标识</param>
        /// <param name="useF">设置频率标识</param>
        /// <returns>true成功 false超时</returns>
        private bool RF_Set(int Addr,
                            int Lvl,
                            float P,
                            float F,
                            bool RFon,
                            bool ignoreRFon,
                            bool useP,
                            bool useF)
        {
            bool RF_Succ = true;

            RFSignal.RFClear(Addr, Lvl);

            //紫光功放改变频率会影响功率,需先设置频率;韩国功放改变功率会影响频率,需先设置功率
            if (RF_Type == 0)
            {
                if (useF)
                {
                    RFSignal.RFFreq(Addr, Lvl, F);
                }

                if (useP)
                {
                    RFSignal.RFPower(Addr, Lvl, P);
                }
            }
            else
            {
                if (useP)
                {
                    RFSignal.RFPower(Addr, Lvl, P);
                }

                if (useF)
                {
                    RFSignal.RFFreq(Addr, Lvl, F);
                }
            }

            if (!ignoreRFon)
            {
                if (RFon)
                {
                    RFSignal.RFOn(Addr, Lvl);
                }
                else
                {
                    RFSignal.RFOff(Addr, Lvl);
                }
            }

            RFSignal.RFStart(Addr);


            //等待功放
            if (Addr == exe_params.DevInfo.RF_Addr1)
            {
                RF_Succ = power1_Handle.WaitOne(1000, true);
                power1_Handle.Reset();
            }
            else
            {
                RF_Succ = power2_Handle.WaitOne(1000, true);
                power2_Handle.Reset();
            }

            if (RFon == true && ignoreRFon == false)
            {
                if (RF_Type == 0)
                {
                    if (Addr == exe_params.DevInfo.RF_Addr1)
                    {
                        Thread.Sleep(Wait_time1);
                    }
                    else
                    {
                        Thread.Sleep(Wait_time2);
                    }
                }
            }
            else
            {
                if (RF_Type == 0)
                {
                    Thread.Sleep(50);
                }
                else
                {
                    Thread.Sleep(150);
                }
            }

            //返回通信超时的情况
            return(!RF_Succ);
        }