업무용 소스 예제

마우스 포지션의 도플러값 반환 예제

준이바라기얍 2022. 2. 26. 12:59
728x90
반응형
 private double GetDoppler(Point mp)
        {
            try
            {
                int xIndex = (int)(mp.X / 16);
                int aIndex = (int)mp.X % 16;
                double yIndex = mp.Y;
                if (yIndex >= 320.0) yIndex = 319;

                ushort unMode = DataManagerUnit1.BDTSystemInfo.stBDTAOSInfo.unTransmitMode;
                switch (DataManagerUnit1.BDTSystemInfo.stBDTAOSInfo.unDispMode)
                {
                    case 0:                         if (DataManagerUnit1.dic_CWCASPCRInfo.ContainsKey((ushort)(unMode + 1)))
                        {
                            if (this.Tag.Equals("AOSD"))
                            {
                                double exPos = (DataManagerUnit1.BDTSystemInfo.stBDTAOSInfo.unExpandScale * mp.X) / this.ActualWidth;
                                xIndex = (int)(exPos / 16);
                                aIndex = (int)exPos % 16;
                            }
                            if (DataManagerUnit1.dic_CWCASPCRInfo[(ushort)(unMode + 1)].Count > xIndex)
                                return DataManagerUnit1.dic_CWCASPCRInfo[(ushort)(unMode + 1)][xIndex].sDisplayDoppler[aIndex, (int)yIndex];
                        } break;
                    case 1:                         if (DataManagerUnit1.dic_FMCASPCRInfo.ContainsKey((ushort)(unMode + 1)))
                        {
                            if (this.Tag.Equals("AOSD"))
                            {
                                double exPos = (DataManagerUnit1.BDTSystemInfo.stBDTAOSInfo.unExpandScale * mp.X) / this.ActualWidth;
                                xIndex = (int)(exPos / 16);
                                aIndex = (int)exPos % 16;
                            }
                            if (DataManagerUnit1.dic_FMCASPCRInfo[(ushort)(unMode + 1)].Count > xIndex)
                                return DataManagerUnit1.dic_FMCASPCRInfo[(ushort)(unMode + 1)][xIndex].sDisplayDoppler[aIndex, (int)yIndex];
                        } break;
                    case 2:                         if (this.Tag.Equals("AOSU"))
                        {
                            if (DataManagerUnit1.dic_CWCASPCRInfo.ContainsKey((ushort)(unMode + 1)))
                                if (DataManagerUnit1.dic_CWCASPCRInfo[(ushort)(unMode + 1)].Count > xIndex)
                                    return DataManagerUnit1.dic_CWCASPCRInfo[(ushort)(unMode + 1)][xIndex].sDisplayDoppler[aIndex, (int)yIndex];
                        }
                        else
                        {
                            if (DataManagerUnit1.dic_FMCASPCRInfo.ContainsKey((ushort)(unMode + 1)))
                                if (DataManagerUnit1.dic_FMCASPCRInfo[(ushort)(unMode + 1)].Count > xIndex)
                                    return DataManagerUnit1.dic_FMCASPCRInfo[(ushort)(unMode + 1)][xIndex].sDisplayDoppler[aIndex, (int)yIndex];
                        } break;
                }
                return double.NaN;
            }
            catch (Exception ee)
            {
                TraceManager.AddLog(string.Format("{0}r\n{1}", ee.StackTrace, ee.Message));
                System.Diagnostics.Debug.WriteLine(string.Format("{0}r\n{1}", ee.StackTrace, ee.Message));
                return double.NaN;
            }
        }
728x90
반응형