コード例 #1
0
 /// <summary>
 /// 获取所有参与计算的频率
 /// </summary>
 /// <param name="item">要计算的互调项目</param>
 /// <returns>参与计算的频率</returns>
 private ComparableFreq[] GetCalcFreqs(IMItemBase item)
 {
     ComparableFreq[] resultFreqs = new ComparableFreq[item.CalcFreqCount + 1];
     for (int i = 0; i < item.CalcFreqCount; i++)
     {
         resultFreqs[i] = item[i];
     }
     resultFreqs[item.CalcFreqCount] = item.DisturbedFreqs[0];
     return(resultFreqs);
 }
コード例 #2
0
 /// <summary>
 /// 向结果中注册互调项目
 /// </summary>
 /// <param name="item">互调项目</param>
 public void RegisterIMItem(IMItemBase item)
 {
     imList.Add(item);
 }
コード例 #3
0
        /// <summary>
        /// 互调干扰
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnIM_Click(object sender, RoutedEventArgs e)
        {
            imresult.Text = null;
            IMOrder          order      = IMOrder.Second | IMOrder.Third | IMOrder.Fifth;
            IMAnalysisResult result     = new IMAnalysisResult();
            IMCalculator     calculator = new IMCalculator(transmitters, receivers, transmitters, receivers);

            result.SetReceiverImResult(calculator.ReceiverIM(order));
            result.SetTransmitterImResult(calculator.TransmitterIM());

            StringBuilder strmsg = new StringBuilder();

            int index = 0;
            //接收互调
            IMCompareResult receiverResult = result.GetReceiverImResult();

            if (receiverResult != null)
            {
                strmsg.Append("接收机互调干扰: \r");
                IMItemBase imBase = null;

                for (int i = 0; i < receiverResult.Values.Length; i++)
                {
                    imBase = receiverResult.Values[i];
                    for (int j = 0; j < imBase.DisturbedFreqs.Length; j++)
                    {
                        index++;
                        ComparableFreq disfreq = imBase.DisturbedFreqs[j];
                        strmsg.AppendFormat("{0}:受干扰接收机: 频率ID:{1},频率:{2},带宽:{3} \r", index, disfreq.FreqID, disfreq.Freq, disfreq.Band);
                        strmsg.AppendFormat("干扰阶数:{0},干扰公式:{1} \r", GetIMOrder(imBase.Order), imBase.Formula);
                        for (int k = 0; k < imBase.IMFreqs.Length; k++)
                        {
                            strmsg.AppendFormat("干扰频率{0}:频率:{1},带宽:{2} \r", k + 1, imBase.IMFreqs[k].Freq, imBase.IMFreqs[k].Band);
                        }
                        strmsg.Append("\r");
                    }
                }
            }

            //发射机互调
            IMCompareResult transResult = result.GetTransmitterImResult();

            if (transResult != null && transResult.Values.Length > 0)
            {
                strmsg.Append("发射机互调干扰: \r");
                IMItemBase imBase = null;
                index = 0;
                for (int i = 0; i < transResult.Values.Length; i++)
                {
                    imBase = transResult.Values[i];
                    for (int j = 0; j < imBase.DisturbedFreqs.Length; j++)
                    {
                        index++;
                        ComparableFreq disfreq = imBase.DisturbedFreqs[j];
                        strmsg.AppendFormat("{0}:受干扰发射机: 频率ID:{1},频率:{2},带宽:{3} \r", index, disfreq.FreqID, disfreq.Freq, disfreq.Band);
                        strmsg.AppendFormat("干扰阶数:{0},干扰公式:{1} \r", GetIMOrder(imBase.Order), imBase.Formula);
                        for (int k = 0; k < imBase.IMFreqs.Length; k++)
                        {
                            strmsg.AppendFormat("干扰频率{0}:频率:{1},带宽:{2} \r", k + 1, imBase.IMFreqs[k].Freq, imBase.IMFreqs[k].Band);
                        }
                        strmsg.Append("\r");
                    }
                }
            }


            imresult.Text = strmsg.ToString();
        }