Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
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);
        }