업무용 소스 예제
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
반응형