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); }
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); }
/// <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); }