Code Monkey home page Code Monkey logo

opendis7-java's People

Contributors

blueoak avatar brutzman avatar sirtobi79 avatar terry-norbraten avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

opendis7-java's Issues

Need run-time network diagnostics utility method

Had difficulty troubleshooting loss of PDU receipts. Incorrectly suspected a threading problem - perhaps caused by Debug mode instead of Run mode - nope.

Actual problem: running NPS PaloAlto GlobalConnect VPN blocked receipts! Neither multicast nor loopback is mentioned in the documentation, so this is likely an unintended interaction with the network interface card. And so, originally opened this issue as "loss of PDU receipts caused by VPN?!"

Disconnecting VPN showed PDU receipt again. Used DisThreadedNetworkInterface to test. This problem only manifests under Windows, not MacOSX.

Rebooting/retesting 2 days later showed the receipt working again! Something tricky is going on... but it appears to be local to one machine, or possibly to side effects from NPS VPN reconfiguration (in progress). Thus NPS VPN problems per se are not an issue to solve.

However: there ought to be a way to create a general self-test diagnostic that checks for such pathologies when creating DisThreadedNetworkInterface.

  • renamed this issue as Need run-time network diagnostics utility method in DisChannel/DisThreadedNetworkIterface
  • TODO: make this test part of run-time network interface setup, reporting if sent PDUs are not received.
  • TODO: also expose this test as an option for programmers to check status of DisThreadedNetworkInterface at runtime, if troubleshooting or confirmation testing is desired

Thread safety for PDU classes

Found an interesting problem in DisThreadedNetworkInterface.selfTest() method where ESPDU changes to marking values were getting clobbered during fast sends/updates. This was shown by print statements showing the same marking value in rapid progression (rather than marking 1, marking 2, etc.).

Avoided this problem (for now) by creating a new PDU each time. I think this anomaly indicates that the library isn't fully thread safe, e.g. an ESPDU instance might get modified while still being sent (or reported upon). Some more thought will be needed for making all PDU methods thread safe.

Log of test results found in DisThreadedNetworkInterfaceSelfTestLog.txt

upgrade tests to JUnit5

Individual test programs all compile and run individually, but not as part of the project.

Likely needs adjustment or upgrade of old test code to match JUnit5.

Typical output:

Testsuite: edu.nps.moves.dis7.CreateAllObjectTypesTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.428 sec

Testcase: initializationError(edu.nps.moves.dis7.CreateAllObjectTypesTest): Caused an ERROR
No runnable methods
java.lang.Exception: No runnable methods
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)

Open DIS logo image

We need to document the source of the OpenDIS surfer logo to confirm that we have rights to publish openly.

Thanks to the inestimable Don McGregor for first posing this image as our cool logo.

Readme is ambiguous about `entityjars`

Where is the entityjars directory mentioned in the readme? Alternatively, how does one go about creating entityjars and the jars that are supposed to populate it?

X3D Scenes in cartesian and geospatial coordinates

The (Ala Moana Hawaii) test scene from VR Forces is used to provide a test example for DIS to X3D interpolators. The goal is to show both Cartesian and geospatial coordinates.

Cartesian:

  • Y is up, 0 is ground,X north, Y east, Z west
  • Use an image ruler to estimate waypoint values
  • PositionInterpolator, OrientationInterpolator and WaypointInterpolator
  • IndexedFaceSet for image texture on ground plane
  • TODO: convert DIS geospatial PDUs to local x y z
  • Provide JavaClass with Converter

Geospatial:

  • DIS coordinate system
  • Corresponding X3D geospatial reference frame (choose one)
  • GeoTransform for image quadrilateral
  • GeoPositionInterpolator for line-fit PDU values

OpenDIS Progress report, IITSEC 2021, future plans

Hello all, apologies for long time no post here!

Am maintaining open-dis7-java and open-dis7-source-generator distributions, have also gotten all of the current SISO enumerations building in Java and working compatibly. Built jars are posted on the course site along with numerous test programs.

Currently maintained primary links follow.

As it turns out I am at IITSEC this week giving the DIS 101 Tutorial

  • Tutorial 1, LVC 2 , third session, Monday 29 NOV, 1430-1630, OCCC room 301
  • Further information buried deep within the agenda

If anyone else is here, am happy to meet and discuss. We've been quietly working for quite a while but are hoping to get going with the group again. Looking forward to further progress together.

EmitterNameAdditional enums not supported in EmitterSystem

EmitterSystem supports EmitterName enums, but not EmitterNameAdditional enums which cover part of all the enums defined in the standard. This means that enums which are part of EmitterNameAdditional cannot be put into EmitterSystem. Also, during unmarshall of EmitterSystem with an enum that is in the range EmitterNameAdditional covers, a null value is set to the systems emitterName attribute.

RadioType class is broken

Hi @brutzman,

According to this page, the RadioType should contain only 6 fields, but the resulting implementation contains 7. It starts off with field names that match - EntityKind, Domain, Country, and then Category, but after that the implementation has Subcategory, Specific, and Extra, which are not in the standard. There's no mention of the Nomenclature, or Nomenclature version fields. Essentially, the unmarshalling pulls out 9 bytes from the PDU instead of the 8 bytes that it should for this field.

I noticed activity has picked up on the repo recently. Any chance of this one being fixed soon?

open-dis7-java servlet plans

Have been thinking about long-term development efforts and how we might setup servlets on savage.nps.edu and create a DIS PDU playground for connecting different systems.

Given that a server can have its own protected internal network, we might try setting this up for PDU sharing among applications and across various kinds of bridges. While any NPS work would be internal, the principles seem repeatable enough. Java servlet motto: write once, serve anywhere...

At following link, please find some concept diagrams of what the corresponding HTML pages might look like to connecting individuals.

All feedback and insights welcome. Have fun with Open DIS!

missing javadoc in methods AllPduRoundTripTest

Found during tutorial:

[loading /modules/java.base/java/lang/annotation/Documented.class]
C:\x-nps-gitlab\opendis7-java\test\edu\nps\moves\dis7\test\AllPduRoundTripTest.java:52: warning: no comment
public static void afterAllTests()
C:\x-nps-gitlab\opendis7-java\test\edu\nps\moves\dis7\test\AllPduRoundTripTest.java:46: warning: no comment
public static void beforeAllTests()
C:\x-nps-gitlab\opendis7-java\test\edu\nps\moves\dis7\test\AllPduRoundTripTest.java:261: warning: no comment
public static void main(String[] args)
C:\x-nps-gitlab\opendis7-java\test\edu\nps\moves\dis7\test\AllPduRoundTripTest.java:57: warning: no comment
public void setUp() {
C:\x-nps-gitlab\opendis7-java\test\edu\nps\moves\dis7\test\AllPduRoundTripTest.java:66: warning: no comment
public void tearDown()
C:\x-nps-gitlab\opendis7-java\test\edu\nps\moves\dis7\test\AllPduRoundTripTest.java:71: warning: no comment
public void testRoundTripAllPdus()

Wrong case in file names

I can't compile the project with lots of errors like

C:\path\to\opendis7-java\src-generated\edu\nps\moves\dis7\entities\chn\platform\land\CSSC6HY3Sawhorselauncher.java:31:
error: class CSSC6HY3SawhorseLauncher is public, should be declared in a file named CSSC6HY3SawhorseLauncher.java
public final class CSSC6HY3SawhorseLauncher extends EntityType

The problem is the wrong case in the file name CSSC6HY3Sawhorselauncher.java instead of CSSC6HY3SawhorseLauncher.java (with capital L in Launcher).

I can fix this locally on my machine but I think the repo should be updated as well. It's difficult however to generate a pull-request, since I'm on Windows and Git on Windows doesn't understand the file name has changed if it's only different by case. Maybe someone on Linux has to do it.

HQ16TrackingandGuidanceRADARVehicle case-insensitive filesystem collision

There seems to be two similar versions of the following class: HQ16TrackingandGuidanceRADARVehicle

warning: the following paths have collided (e.g. case-sensitive paths
on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:

'src-generated/edu/nps/moves/dis7/entities/chn/platform/land/HQ16TrackingandGuidanceRADARVehicle.java'
'src-generated/edu/nps/moves/dis7/entities/chn/platform/land/HQ16TrackingandGuidanceRadarVehicle.java'

Should we remove one of them?

stream encoding improvements for PLAINTEXT recording

Need several stream encoding improvements for PLAINTEXT recording:

  • Better treatment of time values to indicate HH:MM:SS.dd
  • Corresponding COMMENT PDU for optional real-time clock synchronization
  • Consider a commented key in the log indicating variable names upon first appearance of each PDU type

https://github.com/open-dis/open-dis7-java/blob/master/src/edu/nps/moves/dis7/utilities/stream/PduRecorderSelfTestENCODING_PLAINTEXT_PduCaptureLog.dislog

Project rename to opendis7-java

A "hyphen-ectomy" is planned, we are preparing to rename project from

  • open-dis7-java
    to
  • opendis7-java

This simplification with lead to more consistency in deliverables without reducing capabilities. This only applies to the "7" series of codebases using the XML program generator.

  • opendis7-source-generator (mature)
  • opendis7-java (mature)
  • opendis7-python (in preparation)

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.