Commit Graph

2263 Commits

Author SHA1 Message Date
68ced2a1ad Ensure swig target folder is created (#1533) 2023-07-13 13:44:29 -05:00
bbe9768a30 Added separate_thread_set_enabled(bool) function to MessageSimObject class (#1523)
* Added separate_thread_set_enabled(bool) function to MessageSimObject class for user to use the feature of letting trick to write the messages out on a separate thread in a more intuitive way (hopefully ;-).

* Updated Status-Message-System.md for the newly added separate_thread_set_enabled(bool on_off) function in MessageSimObject class of default_trick_sys.sm

* Fixed the bullets

* Put missing update in due to merge.
2023-06-29 13:31:03 -05:00
d3cc021cca Move VariableServerSession logs into subdirectory; make separate toggle for session logs 2023-06-26 12:23:58 -05:00
a4d49850f3 Add per-session variable server logs 2023-06-26 12:23:58 -05:00
99ee88a686 Add more Variable Server unit and integration tests, clean up and clarify naming 2023-06-26 12:23:58 -05:00
0788dcfa9b Replace TrickComm with new connection_handler library 2023-06-26 12:23:58 -05:00
c2e42f4ef4 Refactor and test Variable Server.
- Split VariableServerThread into VariableServerSession and VariableReference classes
- Use C++ streams for data handling
- Unit tests
2023-06-26 12:23:58 -05:00
e89bf083b2 update version numbers to prerelease 19.7.0-beta 2023-06-23 12:08:39 -05:00
7e183656e1 update version numbers for Trick Simulation Environment 19.6.0 19.6.0 2023-06-23 12:05:28 -05:00
2e0e580c98 Add make spotless target to get rid of config info, patch together various other spots missed by clean (#1515) 2023-06-13 09:50:19 -05:00
479171f569 Fix c++20 flag for LLVM 10 (#1520) 2023-06-12 14:36:21 -05:00
b2d7721d20 1501 update python 2 to 3 in documents (#1516)
* Updated example code from Python 2 to 3 in How to Get Simulation Time from the Variable Server How-To Guide.

* Removed one line of commented code.

* Modified the examples in Trick Variable Server Tutorial from Python2 to 3 mainly due to socket send in bytes plus print statement update need for Python 3.

* Fixed 2 missed print statements.
2023-06-12 10:26:25 -05:00
f64a16ecaa Fixed an error with checkpointing change variables (#1518)
* Fixed SIGABRT for checkpointing change variables

* Expanded the Data Recording Checkpoint test sim
  - Added a case for checkpointing change variables

* Updated the test case for checkpointing change vars
  - Changed the header, input, and log files to get better data representation

* Expanded the Checkpoint test sim
  - Added a test case covering when the only tracked variable is the change var.
2023-06-07 15:17:24 -05:00
e102dd7ef2 Revised Monte Carlo Tutorial Page (#1511)
* Adding new monte carlo tutorial images

* Delete Trick-QP-Random.png

* Delete Trick-QP-Calculated.png

* Delete Trick-QP.png

* Delete Trick-QP-File.png

* Delete Trick-DRE.png

* Delete Trick-DP.png

* Added Trick-DP image

* Broad Tutorial Modifications

Lots of the content was changed. The navigation and headers are not correct yet.

* Fixed table of contents

* Fixed toc again
2023-06-07 11:10:59 -05:00
506bac5de7 Move ICG parsing standard specification to separate flag (#1517) 2023-06-05 14:40:32 -05:00
9c356131bc Add option to specify a C++ standard to ICG for parsing (#1499) 2023-06-01 13:43:23 -05:00
ad42376d5e Variable Server byteswapping crashes the sim #1513 (#1514)
* Variable Server byteswapping crashes the sim #1513

The code to byteswap a variable server buffer has a comment saying there is a bug. The comment is
correct.  The original code would swap the parameter and anything else that followed that parameter
in the structure.  Crashes everywhere.  Created a new routine that byteswaps a single parameter.
Strangely we didn't have such a routine until now.  Did some testing of doubles, floats, ints,
shorts, and chars and all were swapped correctly.

* Variable Server byteswapping crashes the sim #1513

enabling binary byteswap test.
2023-06-01 13:20:14 -05:00
fd8252e2c5 Sim robot (#1498)
* First commit of SIM_robot.

* Updates to kinematic arm with controller

* Working well enough, still needs some user interface besides trick-TV

* Add end-effector path trace to graphics client.

* Singularity control bug, remove printouts, udpate makefile

* Improve SIM_robot variable server client.

* Tidy up RobotDisplay.java

* Tidying up

* Removing warnings

* Working on documentation

* Updating documentation

* Updating docs

* Adding figures for documentation

* Removing some stuff in the README carried over from the template

* Tidying up

* Position vector finally done

* Updating based on feedback

* Forward position kinematics completed with notation changes

* First pass documentation done?

* remove printout

* Fix typos in text and filenames

* Update README.md

* Update README.md

* made it smaller

---------

Co-authored-by: John M. Penn <john.m.penn@nasa.gov>
2023-05-12 10:46:51 -05:00
33823f1a0b Correct path and remove Mac attaching a debugger in Executive_fpe_handler.cpp (#1495) 2023-05-04 15:29:32 -05:00
2ef76cf42a Add old design documentation under developer_docs 2023-05-04 08:53:56 -05:00
746311c06e Exclude memory manager int64_t tests on 32 bit architectures (#1494) 2023-05-01 15:50:39 -05:00
4a3eaacb6e Add developer documentation for the CI setup. 2023-05-01 14:20:57 -05:00
008bc6a621 Merge branch 'master' of https://github.com/nasa/trick 2023-04-28 18:00:27 -05:00
54e49f500d For DataTypes: Fix missing paren in EnumDataType.cpp. Tidy up makefile. 2023-04-28 17:55:38 -05:00
9438bd559b Add unittests to cover uncovered code in MemoryManager ADEF_ and REF_… (#1483)
* Add unittests to cover uncovered code in MemoryManager ADEF_ and REF_ parsers.

* Remove the second production of the 'user_defined_type' target
because it is superfluous, and impossible to reach. This is
because the NAME token is defined as pattern : '[_a-zA-Z][_a-zA-Z0-9:]*'.
This pattern will always match a string of colon separated names.
Note that the NAME itoken is used for colon separated type-name as well as
colon separated variable names.

* Add a test to MM_declare_var_unittest that covers the HEX token in adef_parser.l.

* Add a unittest for MemoryManager_JSON_Intf.cpp.

* Tweak MM_JSON_Intf.cc to get better code-coverage.
2023-04-27 14:57:55 -05:00
6c685d8400 Revise Documentation, Correct a single constant (#1326) (#1489)
* Fix formatting, grammar, and syntax

Additionally, a sentence that referenced something that isn't used anywhere was removed.

* Promote headers, Format stuff

Many headers were far too deep. In some cases, the highest header was h4. To correct this, the offending headers were promoted once or twice as appropriate. Minor formatting changes were made, too.

* Fixed an incorrect conversion constant.

* Update library dependency explanation

The old explanation was confusing and seemingly self contradicting in places. This new explanation aims to fix that.

Co-authored-by: Matthew Elmer <m.elmer@mailbox.org>
2023-04-21 17:32:31 -05:00
78bc708f0f Update README.md 2023-04-18 12:46:02 -05:00
2e4034d9e6 Merge branch 'master' of https://github.com/nasa/trick 2023-04-18 12:44:20 -05:00
60097a3931 Fix rendering of conditional equations in SIM_aircraft. 2023-04-18 12:43:54 -05:00
c4f77b570e Add developer docs for debugging python environment issues (#1488) 2023-04-18 11:28:14 -05:00
d76de7e1ee Allow for read only S_sie.resource (#1420) 2023-04-17 17:23:48 -05:00
7d2d5d870c Fix 32 bit build (#1487) 2023-04-17 15:32:59 -05:00
1b38c36d09 Update FAQ.md 2023-04-17 14:28:58 -05:00
bc1be92e84 Update FAQ.md 2023-04-17 14:28:17 -05:00
ffed03521c Update Install-Guide.md 2023-04-13 14:26:25 -05:00
aed99ab1fd SIM_aircraft Waypoint Update (#1466)
* Set up a waypoint system that reads waypoints from an input file.

On branch aircraftUpdate
Changes to be committed:
    new file:   trick_sims/SIM_aircraft/Modified_data/default.waypoints
	modified:   trick_sims/SIM_aircraft/RUN_test/input.py
	modified:   trick_sims/SIM_aircraft/models/Aircraft/include/Aircraft.hh
	modified:   trick_sims/SIM_aircraft/models/Aircraft/src/Aircraft.cpp
	modified:   trick_sims/SIM_aircraft/models/graphics/src/trick/AircraftDisplay.java

* Fixed the Segmentation Fault and completed the waypoint configuration.

On branch aircraftUpdate
Changes to be committed:
	modified:   trick_sims/SIM_aircraft/RUN_test/input.py
	modified:   trick_sims/SIM_aircraft/models/Aircraft/include/Aircraft.hh
	modified:   trick_sims/SIM_aircraft/models/Aircraft/src/Aircraft.cpp

* Created README.md to document recent changes

* Adding in ability to set icons for waypoints.
  On branch aircraftUpdate_WaypointIcons
  Changes to be committed:
	modified:   trick_sims/SIM_aircraft/Modified_data/default.waypoints
	new file:   trick_sims/SIM_aircraft/images/CompassRose.png
	new file:   trick_sims/SIM_aircraft/images/Figure1.png
	new file:   trick_sims/SIM_aircraft/images/Figure2.png
	new file:   trick_sims/SIM_aircraft/images/cheese_64x64.png
	new file:   trick_sims/SIM_aircraft/images/mouse_128x128.png
	new file:   trick_sims/SIM_aircraft/images/strawberry_64x64.png
	new file:   trick_sims/SIM_aircraft/images/twoWheelRover.png
	new file:   trick_sims/SIM_aircraft/images/wp0.png
	new file:   trick_sims/SIM_aircraft/images/wp1.png
	new file:   trick_sims/SIM_aircraft/images/wp10.png
	new file:   trick_sims/SIM_aircraft/images/wp11.png
	new file:   trick_sims/SIM_aircraft/images/wp2.png
	new file:   trick_sims/SIM_aircraft/images/wp3.png
	new file:   trick_sims/SIM_aircraft/images/wp4.png
	new file:   trick_sims/SIM_aircraft/images/wp5.png
	new file:   trick_sims/SIM_aircraft/images/wp6.png
	new file:   trick_sims/SIM_aircraft/images/wp7.png
	new file:   trick_sims/SIM_aircraft/images/wp8.png
	new file:   trick_sims/SIM_aircraft/images/wp9.png
	modified:   trick_sims/SIM_aircraft/models/graphics/src/trick/AircraftDisplay.java

* Reformatted the README file

* Updating the build process to use Maven

* Updating the README file

* Finalized the implementation for adding icons for each waypoint.

* Removed commented code that will not be used.

* Updated the SIM_aircraft documentation to include the waypoint icon implementation.

* Created a menu bar for the GUI

* Minor README fix and file cleanup

* Implemented a view menu to hide and show the info on the map

* Cleared out commented code.

* Last minute code cleanup and update of the documentation.

* Updated the View menu with more options and updated documentation.

* Testing basic Variable Server Client usage.

* Waypoints shared from sim to graphics client.
Need to use list and fix some formatting.

* Refactored and simplified Waypoint implementation

* Documentation and comment updates

* Simplified waypoint structure
Implemented file support in graphics client

* Updated Documentation

* Created a default waypoint icon when unspecified

* Fixed privacy issues in the WaypointList class

* Cleaned up unnecessary file and added comments
2023-04-13 10:50:36 -05:00
6118171c01 Update swig interface to work python 3.11 (#1486) 2023-04-11 13:14:30 -05:00
d3a26b5698 Deleting parameter_types.c. #1482 2023-04-10 12:46:58 -05:00
1b0def8886 Add unit test suite for trickTypeCharString(). (#1467)
* Add unit test suite for trickTypeCharString().

* Rewrite MM test Makefile, Address type warnings in tests.

* Fix test target in Makefile
2023-04-05 15:28:14 -05:00
fc8eb338f1 Add test for a multicast variable server session (#1480) 2023-04-04 11:02:32 -05:00
0a1a092afa Fix typos and clarify content in TrickOps markdown file (#1475)
Co-authored-by: Dan Jordan <daniel.d.jordan@nasa.gov>
2023-03-22 14:33:14 -05:00
02a1f95121 Allow integ_loop, logging, data_record to be reordered (#1472) 2023-03-10 10:20:33 -06:00
1f1c2484d1 Fix SIM_job_class_order (#1470) 2023-03-07 11:56:19 -06:00
19016b4817 job_class_order no longer accidentally disables some system job classes (#1465) 2023-03-07 08:43:39 -06:00
9099792947 Integrate MonteCarloGenerate capability from EG CML and associated TrickOps enhancements (#1415)
* Provide MonteCarloGenerate capability

Intermediate commit, this squash represents all of Isaac Reaves' work
during his Fall 2022 Pathways internship tour

[skip ci]

* TrickOps: Add phase, [min-max] range, and overhaul YAML verification

* Add new "phase:" mechanism to TrickOps Runs and Builds to support
  project-specific constraints on build and run ordering
  - phase defaults to zero if not specified and must be between -1000
    and 1000 if given.
  - jobs can now optionally be requested by their phase or phase range
  - See trickops/README.md for details
* Add [min-max] notation capability to run: entries and compare: entries
  - [min-max] ranges provide definition of a set of runs using a common
    numbering scheme in the YAML file, greatly reducing YAML file size
    for monte-carlo and other zero-padded run numbering use cases
  - See trickops/README.md for details
* YAML parsing changes
  - Overhaul the logic which verifies YAML files for the expected
    TrickOps format. This is now done in TrickWorkflowYamlVerifier and
    provides much more robust error checking than previous approach
  - .yaml_requirements.yml now provides the required types, ranges, and
    default values as applicable to expected entries in YAML files
  - valgrind: is now an sub-option to run: entries, not its own section
    Users should now list their runs normallly and define their flags in
    in that run's valgrind: subsection
  - parallel_safety is now a per-sim parameter and not global. Users
    should move their global config to the sim layer
  - self.config_errors is now a list of errors. Users should now
    check for empty list when using instead of True/False
* Robustify the get_koviz_report_jobs unit test to work whether koviz
  exists on PATH or not
* Adjust trickops.py to use the new phase and range features
   - Make it more configurable on the command-line via argparse
   - Move SIM_mc_generation tests into test_sims.yml

[skip ci]

* Code review and cleanup from PR #1389

Documentation:

* Adjust documentation to fit suggested symlinked approach. Also
  cleaned up duplicate images and old documentation.
* Moved the verification section out of markdown and into a PDF since it
  heavily leverages formatting not available in markdown.
* Clarify a couple points on the Darwin Trick install guide
* Update wiki to clarify that data recording strings is not supported

MCG Code:

* Replace MonteCarloVariableRandomNormal::is_near_equal with new
  Trick::dbl_is_near from trick team

MCG Testing:

* Reduce the set of SIM_mc_generation comparisons. After discussion
  the trick team, we are choosing to remove all comparisons to
  verif_data/ which contain random-generated numbers since
  these tests cannot pass across all supported trick platforms.
* Fix the wrong rule on exlcuding -Werror for Darwin builds
  of SIM_mc_generation
* Remove data recording of strings in SIM_mc_generation

Trickops:

* Replace build_command with build_args per discussion w/ Trick team
  Since we only support arguments to trick-CP, replace the build_command
  yaml entry with build_args
* Disable var server connection by default in SingleRun if TrickWorkflow.quiet
  is True
* Guard against multiple Job starts
* Remove SimulationJob inheritance layer since old monte-carlo wasn't
  and never will be supported by TrickOps
* Ignore IOError raise from variable_server that looks like "The remote
  endpoint has closed the connection". This appears to occur when
  SingleRun jobs attempt to connect to the var server for a sim that
  terminates very early

[skip ci]

* Adjust phasing of old/new MCG initialize functions

* Clarify failure message in generate_dispersions if new/old MC are both
  used.
* Adjust the phasing order of MCG intialize method to be before
  legacy MC initialized. Without this, monte-carlo dry run completes with
  success before the check in generate_dispersions() can run
* Add -Wno-stringop-truncation to S_override.mk for SIM_mc_generation
  since gcc 8+ warns about SWIG generated content in top.cpp

* Introduce MonteCarloGenerationHelper python class

This new class provides an easy-to-use interface for MCG sim-module
users:

1. Run generation
2. Getting an sbatch array job suitable for SLURM
3. Getting a list of SingleRun() instances for generated runs, to be
   executed locally if desired

---------

Co-authored-by: Dan Jordan <daniel.d.jordan@nasa.gov>
2023-03-06 09:25:50 -06:00
9b3e6aac51 Update README.md
Fix title of Trick::flt_is_near
2023-03-03 13:30:52 -06:00
3b630c33dc markdown render fix. 2023-03-01 17:16:29 -06:00
4999b076f4 Typos. 2023-03-01 16:58:35 -06:00
0573bcfaea Merge branch 'master' of https://github.com/nasa/trick 2023-03-01 16:11:03 -06:00
6e272c4b9e Add a HOWTO: How-To-Containerize-Trick-with-Docker. (#1462)
* Add a HOWTO: How-To-Containerize-Trick-with-Docker.

* describe operating the cannon graohics client.

* Fix review issues.
2023-03-01 15:44:46 -06:00