Comments (9)
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.
In answer to the above questions:
- 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.
- 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.
- 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.
- 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.
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.
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.
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.
- Create Symbol -> success
- If it Fails
- 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.
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.
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.
@csmoore , please re test - fix made.
Thanks
from joint-military-symbology-xml.
Retested / works
from joint-military-symbology-xml.
Related Issues (20)
- 18-011-MC Add Battle Handover Line Control Measure
- 18-012-MC Add Forward Passage of Lines as a Tactical Mission Task
- 18-013-MC Add Rearward Passage of Lines as a Tactical Mission Task
- 18-014-MC Add Control Point Control Measure
- 18-015-AR Add Human Resources Symbology
- 18-011-UK Boundary Amplifier Clarification
- 18-012-UK Lines Amplifiers Clarification
- 18-XXX-UK SCP Approval Clarification
- 18-014-UK Planned Control Measure Symbol ID
- Draw Rules for Antitank Ditch and Wall HOT 6
- Empty Paths in SVGs HOT 1
- Additional Affiliations HOT 1
- Ship Area of Interest - Questions HOT 1
- Variation in SVG size for Control Measures and METOC
- Ambiguity in the wording and examples regarding obstacle color HOT 2
- Trip Wire Draw Rule Disparity HOT 1
- Dismounted Individual Leadership Amplifier HOT 2
- Drawing SVGs and viewbox/crop area HOT 6
- Symbols do not scale as expected
- Update to MIL-STD-2525 revision E
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from joint-military-symbology-xml.