ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TMGR Make SubBearing Info Process 예제
    업무용 소스 예제 2021. 9. 23. 17:38
    728x90
    반응형
    728x90

    - TRK Make SubBearing Info Process 예제

    private Task ProcessTRKMGR_SUBSURFACEBEARING_INFOInfo(ushort trackId)
            {
                return Task.Run(() =>
                {
                    try
                    {
                        string cLinkTrackComment = string.Empty;
                        TRKMGR_SUBSURFACEBEARING_INFO TrackSURFACEBEARING = new TRKMGR_SUBSURFACEBEARING_INFO();
                        if (DataManagerUnit1.dic_SubSurFaceBearingTargetInfo.ContainsKey(trackId))
                        {
                            TrackSURFACEBEARING.copy_from(DataManagerUnit1.dic_SubSurFaceBearingTargetInfo[trackId]);
                        }
                        else
                        {
                            return;
                        }
                        Track_total_InfoViewModel TTIV3 = new Track_total_InfoViewModel();
                        TTIV3.ChartTrackID = (uint)(TrackSURFACEBEARING.unLinkTrackID + TrackID.TrackSURFACEBEARING);
    
                        TTIV3.unLinkTackID = TrackSURFACEBEARING.unLinkTrackID;
                        TTIV3.enumEN_IDENTIFICATION = (EN_IDENTIFICATION)TrackSURFACEBEARING.eTrackIdentification;
                        TTIV3.enumEN_TYPECATEGORY = (EN_TYPECATEGORY)TrackSURFACEBEARING.eTrackCategory;
                        TTIV3.fBearing = TrackSURFACEBEARING.stTarget2DPosition.fBearing;
                        TTIV3.fRange = TrackSURFACEBEARING.stTarget2DPosition.fRange;
    
                        cLinkTrackComment = CommonUtils.GetUTF8String(TrackSURFACEBEARING.cLinkTrackComment);
                        cLinkTrackComment = cLinkTrackComment.Replace("\0", String.Empty);
                        TTIV3.LinkTrackComment = cLinkTrackComment;
                        TTIV3.SonaKind = EN_SENSORSOURCEKIND.SENSORSOURCEKIND_LINK;
                        TTIV3.eMainTrackingSource = EN_SENSORSOURCEKIND.SENSORSOURCEKIND_LINK;
                        TTIV3.SymbolName = GetSymbolCode((uint)TTIV3.enumEN_TYPECATEGORY, (uint)TTIV3.enumEN_IDENTIFICATION, TTIV3.enumEnumClassType, DataManagerUnit7.St_Setting.TrackSymbol);
                        TTIV3.fDepth = TrackSURFACEBEARING.stGeodeticPosition.fDepth;
                        ushort unOriginLinkTrackID = TrackSURFACEBEARING.unOriginLinkTrackID;
    
                        ushort unPosDataKindTTIV3 = 0;
                        if (TTIV3.dLat == double.MaxValue || TTIV3.fRange == float.MaxValue)
                        {
                            unPosDataKindTTIV3 = 4;
                            uint TTIVTempid = SettingChartID(unOriginLinkTrackID, TrackID.TrackAIR);
                            if (Track_total_InfoList.ContainsKey(TTIVTempid))
                            {
                                Track_total_InfoViewModel TTIVtemp = Track_total_InfoList[TTIVTempid];
                                Tuple<double, double> datLontemp = ViewModel.Presentation.GetChart().BD2LL(TTIVtemp.dLon, TTIVtemp.dLat, TTIV3.fBearing, 91440);
                                TTIV3.dLat = datLontemp.Item2;
                                TTIV3.dLon = datLontemp.Item1;
                            }
                            else return;
                        }
                        else
                        {
                            unPosDataKindTTIV3 = 2;
                            TTIV3.dLat = TrackSURFACEBEARING.stGeodeticPosition.dLatitude;
                            TTIV3.dLon = TrackSURFACEBEARING.stGeodeticPosition.dLongitude;
                        }
    
                        if (DataManager._displayFilterInfo.sensorSourceKind[TTIV3.SonaKind] &&
                            DataManager._displayFilterInfo.identification[TTIV3.enumEN_IDENTIFICATION] &&
                            DataManager._displayFilterInfo.typeCategory[TTIV3.enumEN_TYPECATEGORY]) TTIV3.unSystemExist = 1;
    
                        else TTIV3.unSystemExist = 0;
    
                        if (Track_total_InfoList.ContainsKey(TTIV3.ChartTrackID))
                        {
                            short a = Track_total_InfoList[TTIV3.ChartTrackID].unSystemExist;
                            TTIV3.unSystemExist = (short)(a & TTIV3.unSystemExist);
                            if (Track_total_InfoList[TTIV3.ChartTrackID].unPosDataKind != unPosDataKindTTIV3)
                            {
                                ViewModel.Presentation.GetSymbolLayer().DelLayerObject(TTIV3.ChartTrackID, 0);
                                if (Track_total_InfoList[TTIV3.ChartTrackID].unPosDataKind == 4) ViewModel.Presentation.GetSymbolLayer().AddWatchTrack(TTIV3.ChartTrackID, TTIV3.unOriginLinkTrackID, 0, 0);                         }
                            TTIV3.unPosDataKind = unPosDataKindTTIV3;
                            TTIV3.unOriginLinkTrackID = unOriginLinkTrackID;
                            Track_total_InfoList[TTIV3.ChartTrackID] = TTIV3;
                        }
                        else
                        {
                            TTIV3.unPosDataKind = unPosDataKindTTIV3;
                            TTIV3.unOriginLinkTrackID = unOriginLinkTrackID;
                            if (Track_total_InfoList == null) return; Track_total_InfoList.TryAdd(TTIV3.ChartTrackID, TTIV3);
                        }
    
                        PrintSHOW_MAX_DEBUG(String.Format("TaskEnd : TRKMGR_SUBSURFACEBEARING_INFO ID {0}, {1}", TrackSURFACEBEARING.unLinkTrackID, DateTime.Now));
                                            PrintMsgPopUp(string.Format("{0}  unLinkTrackID:{1}", "TRKMGR_SUBSURFACEBEARING_INFO", TrackSURFACEBEARING.unLinkTrackID));
                    }
                    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));
                    }
                });
            }
    728x90
    반응형

    댓글

Designed by Tistory.