Ejemplo n.º 1
0
        /// <summary>
        /// RF_Sample
        /// </summary>
        /// <param name="Addr">功放地址</param>
        /// <param name="Lvl">命令等级</param>
        /// <param name="status">功放状态对象</param>
        /// <returns>true成功 false超时</returns>
        private bool RF_Sample(int Addr,
                               int Lvl,
                               ref PowerStatus status)
        {
            bool RF_Succ = true;

            RFSignal.RFClear(Addr, Lvl);

            RFSignal.RFSample(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 (RF_Succ)
            {
                RFSignal.RFStatus(Addr, ref status);
            }

            //返回通信超时的情况
            return(!RF_Succ);
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Rev
        /// </summary>
        /// <returns>true成功 false失败</returns>
        public static bool Rev()
        {
            bool rev = false;

            int[] value = new int[1];

            if (App_Configure.Cnfgs.Gpio == 0)
            {
                GetPortVal(0x084d, value, 1);
                if (SetPortVal(0x084d, value[0] & 0xfe, 1))
                {
                    App_Configure.Cnfgs.Channel = 0;
                    rev = true;
                }
            }
            else if (App_Configure.Cnfgs.Gpio == 4)
            {
                int[] original = new int[1];

                if (GetPortVal(0x0a00, original, 1) == false)
                {
                    return(false);
                }
                rev = SetPortVal(0x0a00, original[0] & 0xfe, 1);
                if (App_Configure.Cnfgs.Ms_switch_port_count >= 1)
                {
                    RFSignal.RFClear(comAddr, RFPriority.LvlTwo);
                    RFSignal.RFAssistGpo(comAddr, RFPriority.LvlTwo, 0);
                    RFSignal.RFStart(comAddr);
                }
            }
            if (App_Configure.Cnfgs.Ms_switch_port_count >= 2 && App_Configure.Cnfgs.Gpio == 0)
            {
                GetPortVal(0x084d, value, 1);
                if (SetPortVal(0x084d, value[0] & 0xfe, 1))
                {
                    App_Configure.Cnfgs.Channel = 0;
                    rev = true;
                }
                if (App_Configure.Cnfgs.Ms_switch_port_count >= 1)
                {
                    RFSignal.RFClear(comAddr, RFPriority.LvlTwo);
                    RFSignal.RFAssistGpo(comAddr, RFPriority.LvlTwo, 0);
                    RFSignal.RFStart(comAddr);
                }
            }



            return(rev);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Fwd
        /// </summary>
        /// <returns>true成功 false失败</returns>
        public static bool Fwd()
        {
            bool rev = false;

            int[] value = new int[1];

            if (App_Configure.Cnfgs.Gpio == 0)
            {
                GetPortVal(0x084d, value, 1);
                if (SetPortVal(0x084d, value[0] | 0x01, 1))
                {
                    App_Configure.Cnfgs.Channel = 1;
                    rev = true;
                }


                //}
                //else
                //{
                //    byte pinNum = Convert.ToByte(Width_pinNum.ToString(), 10);
                //    if (gpioSucc)
                //    {
                //        if (susiGpio.susiGpio.WriteExHigh(pinNum))
                //        {
                //            App_Configure.Cnfgs.Channel = 1;
                //            rev = true;
                //        }
                //    }
                //}
            }
            else if (App_Configure.Cnfgs.Gpio == 4)
            {
                int[] original = new int[1];

                if (GetPortVal(0x0a00, original, 1) == false)
                {
                    return(false);
                }
                rev = SetPortVal(0x0a00, original[0] | 0x01, 1);
                if (App_Configure.Cnfgs.Ms_switch_port_count >= 1)
                {
                    RFSignal.RFClear(comAddr, RFPriority.LvlTwo);
                    RFSignal.RFAssistGpo(comAddr, RFPriority.LvlTwo, 1);
                    RFSignal.RFStart(comAddr);
                }
            }

            return(rev);
        }
Ejemplo n.º 5
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.º 6
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);
        }
Ejemplo n.º 7
0
        public static bool Fwd(int num)
        {
            bool rev = false;

            int[] value = new int[1];

            //if (App_Configure.Cnfgs.Gpio == 0)
            //{
            if (num == 1)
            {
                // GPO 1= 0,2=1
                //GetPortVal(0x084d, value, 1);
                if (SetPortVal(0x084d, 0x80, 1))
                {
                    App_Configure.Cnfgs.Channel = 0;
                    rev = true;
                }
                //GetPortVal(0x084d, value, 1);
                //if (SetPortVal(0x084d, (value[0] | 0x40), 1))
                //{
                //    App_Configure.Cnfgs.Channel = 0;
                //    rev = true;
                //}
            }
            else if (num == 2)
            {
                // GPO 1= 1,2=1
                //GetPortVal(0x084d, value, 1);
                if (SetPortVal(0x084d, 0x81, 1))
                {
                    App_Configure.Cnfgs.Channel = 1;
                    rev = true;
                }
                //GetPortVal(0x084d, value, 1);
                //if (SetPortVal(0x084d, 0x40, 1))
                //{
                //    App_Configure.Cnfgs.Channel = 1;
                //    rev = true;
                //}
            }
            //
            if (App_Configure.Cnfgs.Ms_switch_port_count >= 2 && App_Configure.Cnfgs.Gpio == 0)
            {
                int[] original = new int[1];

                GetPortVal(0x084d, value, 1);
                if (SetPortVal(0x084d, value[0] | 0x01, 1))
                {
                    App_Configure.Cnfgs.Channel = 1;
                    rev = true;
                }
                if (App_Configure.Cnfgs.Ms_switch_port_count >= 1)
                {
                    RFSignal.RFClear(comAddr, RFPriority.LvlTwo);
                    RFSignal.RFAssistGpo(comAddr, RFPriority.LvlTwo, 1);
                    RFSignal.RFStart(comAddr);
                }
            }

            return(rev);
        }