Milsymbol Mapping: Difference between revisions

From Maria GDK Wiki
Jump to navigation Jump to search
No edit summary
()
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Milsymbol Mapping ==
== Milsymbol Mapping ==
The "MilSymMapper" class provides methods for mapping draw object SIDC and TypeId between the milsymbol versions: APP6D, MIL-STD-2525D, and MIL-STD-2525C.
The "MilSymMapper" class provides methods for mapping draw object SIDC between the milsymbol versions: APP6D and APP6C.


=== Examples of Usage ===
=== Examples of Usage ===
These examples maps the Battle Position type.


=== Get Mapped SIDC from SIDC ===
<source>
<source lang="c#">
var resources= new DrawObjectCommonResources(...);
var resources= new DrawObjectCommonResources(...);


Line 12: Line 10:
var id_d = resources.MilSymMapper.MapAPP6CToAPP6D("SUGPUSTA--A----");
var id_d = resources.MilSymMapper.MapAPP6CToAPP6D("SUGPUSTA--A----");


// Map milsym hierarchy code from APP6C to APP6D.
// Get APP6D sidc from APP6C hierarchy code.
var id_d = MapAPP6CHierarchyCodeToAPP6D("TACGRP.CSS.PNT.SPT.GNL");
var id_d = MapAPP6CHierarchyCodeToAPP6D("TACGRP.CSS.PNT.SPT.GNL");


Line 18: Line 16:
var id_c = resources.MilSymMapper.MapAPP6DToAPP6C("100301000011010400000000000000");
var id_c = resources.MilSymMapper.MapAPP6DToAPP6C("100301000011010400000000000000");


// Map milsym SIDC from APP6D to APP6C hierarchy codce.
// Get APP6C hierarchy code from APP6D sid.
var id_c = MapAPP6DToAPP6CHierarchyCode("100025000032050000000000000000");
var id_c = MapAPP6DToAPP6CHierarchyCode("100025000032050000000000000000");


</source>
</source>


=== How to Create MilSymMapper Without Factory ===
The MilSymMapper can also be created without using the DrawObjectCommonResources:
<source lang="c#">
 
var mappingDrawObjectTypeXmlParser = new MappingDrawObjectTypeXmlParser();
<source>
var mappingDrawObjectTypeLoader = new MappingDrawObjectTypeLoader(mappingDrawObjectTypeXmlParser);
 
var milSymMapper = new MilSymMapper(mappingDrawObjectTypeLoader);
var milsymMapper = new MilSymMapper();
 
</source>
</source>


=== Handling Mismatches Between APP6D and MIL-STD2525C ===
For compatible mapping between draw objects in MARIA GDK 4 and MARIA GDK 5 the following API can be used:
 
<source>


There are two files handeling mapping between APP6C and APP6D.....
// Get GDK 4 compliant hierarchy code from APP6D sidc.
var id_c = GetGDK4CompliantSIDC("100025000032050000000000000000");


Some objects cannot be mapped directly between APP6D and MIL-STD2525C. Either because the primitive representation of the objects are not compatible or because the objects are not present in both versions.
// Get GDK 5 compliant sidc from MIL-STD2525C hierarchy code.
To handle this, the configuration file MilSymVersionMappings.json (located in the Data folder of the application output), sets up how these objects (SIDCs) should be mapped.
var id_d = GetGDK5CompliantSIDC("TACGRP.CSS.PNT.SPT.GNL);
 
</source>


The file is divided into two sections:
=== How to Update Mapping Between APP6D and APP6C ===


*HierarchyCodeMappings, for mapping a 20 digit APP6D SIDC to a MARIA GDK 4 draw object (MIL-STD2525C) hierarchy code, and vice versa
There are two files handeling mapping between APP6C and APP6D:
*SymbolCodeMappings, for mapping a 20 digit APP6D SIDC to a 15 character MIL-STD2525C SIDC, and vice versa


Entries in each section of the configuration file looks like this:
* C2DMapping.csv, handels mapping from APP6C to APP6D
* D2CMapping.csv, handels mapping from APP6D to APP6C


Each file contains one line per mapping and is a comma separated list of values. The first line in each file contains a descriptive name of each "column".


==== The File C2DMapping.csv ====
<syntaxhighlight lang="csharp">
C_SymbolCode,D_Sidc,C_HierarchyCode,Status
S*A*M-----*****,100001000011000000000000000000,WAR.AIRTRK.MIL,
</syntaxhighlight>


==== The File D2CMapping.csv ====
<syntaxhighlight lang="csharp">
D_Sidc,C_SymbolCode,C_HierarchyCode
100001000011000000000000000000,S*A*M-----*****,WAR.AIRTRK.MIL
</syntaxhighlight>
[[Category:GDK5]]
[[Category:GDK5]]

Latest revision as of 13:23, 21 October 2025

Milsymbol Mapping

The "MilSymMapper" class provides methods for mapping draw object SIDC between the milsymbol versions: APP6D and APP6C.

Examples of Usage

var resources= new DrawObjectCommonResources(...);

// Get APP6D sidc from 15 character MIL-STD-2525C sidc
var id_d = resources.MilSymMapper.MapAPP6CToAPP6D("SUGPUSTA--A----");

// Get APP6D sidc from APP6C hierarchy code.
var id_d = MapAPP6CHierarchyCodeToAPP6D("TACGRP.CSS.PNT.SPT.GNL");

// Get 15 character MIL-STD-2525C sidc from APP6D sidc 
var id_c = resources.MilSymMapper.MapAPP6DToAPP6C("100301000011010400000000000000");

// Get APP6C hierarchy code from APP6D sid.
var id_c = MapAPP6DToAPP6CHierarchyCode("100025000032050000000000000000");

The MilSymMapper can also be created without using the DrawObjectCommonResources:

var milsymMapper = new MilSymMapper();

For compatible mapping between draw objects in MARIA GDK 4 and MARIA GDK 5 the following API can be used:

// Get GDK 4 compliant hierarchy code from APP6D sidc.
var id_c = GetGDK4CompliantSIDC("100025000032050000000000000000");

// Get GDK 5 compliant sidc from MIL-STD2525C hierarchy code.
var id_d = GetGDK5CompliantSIDC("TACGRP.CSS.PNT.SPT.GNL);

How to Update Mapping Between APP6D and APP6C

There are two files handeling mapping between APP6C and APP6D:

  • C2DMapping.csv, handels mapping from APP6C to APP6D
  • D2CMapping.csv, handels mapping from APP6D to APP6C

Each file contains one line per mapping and is a comma separated list of values. The first line in each file contains a descriptive name of each "column".

The File C2DMapping.csv

C_SymbolCode,D_Sidc,C_HierarchyCode,Status
S*A*M-----*****,100001000011000000000000000000,WAR.AIRTRK.MIL,

The File D2CMapping.csv

D_Sidc,C_SymbolCode,C_HierarchyCode
100001000011000000000000000000,S*A*M-----*****,WAR.AIRTRK.MIL