Coder Social home page Coder Social logo

Comments (9)

csmoore avatar csmoore commented on August 22, 2024

FYI, the C# code/project I used to generate a list of 2525C codes is here: https://github.com/csmoore/MyMiscellanea/tree/master/CSharp/TestLegacyCodesCsv

I just added the following code here: https://github.com/csmoore/MyMiscellanea/blob/master/CSharp/TestLegacyCodesCsv/Program.cs#L75

Symbol jmsSymbol = librarian.MakeSymbol("2525C", symbolId);

// Question: how do I know if this lookup fails? Just this check below?
if ((jmsSymbol.SIDC.PartAString == "1000000000") &&
(jmsSymbol.SIDC.PartBString == "1000000000"))
{
System.Diagnostics.Trace.WriteLine(symbolId + "--> (" +
jmsSymbol.SIDC.PartAString + ", " + jmsSymbol.SIDC.PartBString + ")");
}

from joint-military-symbology-xml.

abouffard avatar abouffard commented on August 22, 2024

In answer to the above questions:

  1. There is now (see the readme for Diagnostics information). A Symbol created with a given SIDC can have one of three SymbolStatus property values, which indicate whether the symbol created is new at 2525D/APP-6(C), was old (in 2525C/APP-6(B) and brought forward, or has been retired and was in 2525C/APP-6(B) but is no longer in the newer standards.
  2. No. Some 2525C/APP-6(B) symbols have been retired and are not in the newer standards, others are in the new standards but may appear slightly differently.
  3. I have notes from DISA that identify which symbols were retained from version to version, and how they translate. As well as which symbols are new in 2525D/APP-6(C). The XML instance data represents this information and the JMSML API parses this information and makes it available to the developer.
  4. If MakeSymbol cannot interpret a provided SIDC the symbol is not created. The failure is also logged in the NLog file at User>My Documents>jmsml>logs and the error code can be queried using the Librarian's StatusCode property.

The Test app and Unit Tests now test retired and invalid symbols. A change proposal is in the works before the SSMC to also add new symbols in 2525D Change 1 to represent an SIDC that has been encountered that is Invalid or Retired. So if a future system encounters an invalid or retired SIDC, there will now be standardized symbols for drawing these conditions. When you attempt to make a symbol with a retired 2525C SIDC, the 2525D symbol created is the new symbol for "retired" (1000980000, 1100000000). The new 2525D symbol for an "invalid" data is (1000980000, 1000000000). Symbol set 98 will be the new set for any special or diagnostic symbols needed in the standard.

Note that at the moment, JMSML can give lots of false negatives. Until land units are added to the XML instance data, for example, any attempt to create a symbol using "SFGPUCI--------" will result in an Invalid Symbol.

The first four in your list above (SFAP, etc) are retired (2525D no longer has symbols for those). The rest of the SIDCs in your list above were not found because I had typos in the XML instance file. Those have now been fixed.

from joint-military-symbology-xml.

csmoore avatar csmoore commented on August 22, 2024

I'm still not sure how to independently verify that what is in the xml and returned from the API is correct - any suggestions?

Reran test & looks better, but should these have been created (based on item answer 4 above, I was expecting null)?

If the API user has to check symbol.SymbolStatus every time a symbol was created just to make sure the operation was successful, then they probably don't care if it is statusEnumNew or statusEnumOld, just that it succeeded or failed.

SFAP-------------> (1000980000, 1100000000)
Found Match: (SHAP-----------, Air Track H)
SHAP-------------> (1000980000, 1100000000)
Found Match: (SNAP-----------, Air Track N)
SNAP-------------> (1000980000, 1100000000)
Found Match: (SUAP-----------, Air Track U)
SUAP-------------> (1000980000, 1100000000)

Found Match: (SFAPWM---------, Missile In Flight F)
SFAPWM-----------> (1000980000, 1100000000)
Found Match: (SHAPWM---------, Missile In Flight H)
SHAPWM-----------> (1000980000, 1100000000)
Found Match: (SNAPWM---------, Missile In Flight N)
SNAPWM-----------> (1000980000, 1100000000)
Found Match: (SUAPWM---------, Missile In Flight U)
SUAPWM-----------> (1000980000, 1100000000)

from joint-military-symbology-xml.

abouffard avatar abouffard commented on August 22, 2024

Those symbols are all 2525C symbols that are not now supported in 2525D. Therefore, the SSMC has determined that they should be drawn, if displayed, by using a new 2525D symbol that indicates the SIDC being represented is retired. They are not the result of invalid/bad SIDC data. If a symbol is truly invalid (unrecognized by JMSML) then MakeSymbol returns null. It's up to a system whether to then draw the symbol denoting invalidity. That something is there at a map location but its supplied SIDC cannot be interpreted. The only other two results are "old" and "new". When "old" is determined the symbol SIDC is set to the "retired/old" symbol so something can be drawn. That SIDC is what you see above. When "new" is determined you see the new 2525D symbol SIDC.

Symbol Set 98 is a new symbol set for "special case symbols". Entity 10 = invalid, which will appear as an inverted question mark. Think of it as a special symbol for marking the location on a map of an otherwise invalid SIDC. The SSMC would have this inverted question mark displayed by systems to illustrate an invalid SIDC has been encountered. Entity 11 = a retired symbol, its appearance is still TBD.

from joint-military-symbology-xml.

csmoore avatar csmoore commented on August 22, 2024

I'm not sure I understand all of the issues, or if just creating a symbol by name or id should be this complex.

For instance, I'm still not sure how I would ever get statusEnumInvalid. So you might still want to think how you can simplify this and not create a bunch of special cases and/or complicate the normal symbol create steps.

  1. Create Symbol -> success
  2. If it Fails
  3. Then get error code, and address the special cases

But if you are happy with how this behaves then sounds good.

from joint-military-symbology-xml.

csmoore avatar csmoore commented on August 22, 2024

Just noticed one more that doesn't map/returns null: SFAPMFFI-------

SFAPMFFI------- ==>> 2525C: SFAPMFFI------- is null in 2525D.

So just reopening this existing issue. How should this one behave?

I was expecting a "Retired" instead of null. Test Driver used added as #13

from joint-military-symbology-xml.

abouffard avatar abouffard commented on August 22, 2024

Oversight on my part, fixed in the 2525D_Air XML. Interceptor should have been marked "Retired". This symbol is deprecated/retired in 2525D.

from joint-military-symbology-xml.

abouffard avatar abouffard commented on August 22, 2024

@csmoore , please re test - fix made.

Thanks

from joint-military-symbology-xml.

csmoore avatar csmoore commented on August 22, 2024

Retested / works

from joint-military-symbology-xml.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.