업무용 소스 예제

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
반응형