Commit Graph

55 Commits

Author SHA1 Message Date
Alex Lin
a7cf791d58 Print some timing statistics when the sim exits
I failed at the cherry-pick merge, I didn't merge in the include files correctly.

refs #183
2016-02-18 13:06:10 -06:00
Alex Lin
347e102f40 Print some timing statistics when the sim exits
Saved the timestamps on the default gettimeofday clock as close to
the beginning of the simulation, after initialization is finished and
at the end of shutdown.  Printed out the elapsed time as well as
the number of overruns counted by RealtimeSync.

refs #183

Conflicts:
	trick_source/sim_services/RealtimeSync/src/RealtimeSync.cpp
2016-02-18 12:52:29 -06:00
Alex Lin
d1f5bea580 Sending the variable server a variable name that lists a composite type causes core dump
If a variable resolves to a class/structure type the variable server tries to free the
attributes associated with that variable name.  But the attributes usually point to
a fixed place in memory that is not allocated.  I removed the free statement.  I don't
believe this will lead to a memory leak.

refs #165
2016-01-19 15:06:32 -06:00
Alex Lin
c14515908e data record buffering optimizations
Added a loop to set each 1024th byte in the recording array to 1 once the
memory has been allocated.  Need to test if this is good enough to get Linux
to allocate the memory.

Added a current recording buffer pointer to use instead of using array offsets.
This should be more cpu cache efficient.

Changed the memcpy calls to direct casted integer assignments based on the size of the
parameter.  If the parameter is not size 1,2,4,or 8 we fall back to a memcpy.

refs #155
2016-01-19 11:01:10 -06:00
Alex Lin
9af14cf45c Unit tests failing on the Mac
X library path needed to be updated when OS is 10.11 (El Capitan).

refs #144
2015-12-03 11:01:55 -06:00
Alex Lin
09c467e423 Input processor crashes if second event with same name is created
When allocating a new event, if the same name is used, no allocation is
created and NULL is returned.  We start trying to use the returned value
which seg-faulted.  I added a check to only continue if the returned value
from the allocation is not NULL.

refs #149
2015-12-03 10:10:39 -06:00
Alex Lin
c3b886c6e5 Add additional thread synchronization mechanisms
file location different in 15 than it is in 16.  Modified include
files to accomodate.

refs #148
2015-12-03 08:53:47 -06:00
Alex Lin
014d78e388 Input processor crashes if second event with same name is created
When allocating a new event, if the same name is used, no allocation is
created and NULL is returned.  We start trying to use the returned value
which seg-faulted.  I added a check to only continue if the returned value
from the allocation is not NULL.

refs #149
2015-12-02 17:09:14 -06:00
Alex Lin
03d89ef56a Add additional thread synchronization mechanisms
Created a thread trigger container class to hold all of the various thread triggering
mechanisms.  I wanted to avoid allocating/freeing trigger mechanisms.  I added
an eventfd and futex trigger types.  Updated SIM_threads_simple test sim to use
show how to set the thread trigger type.

refs #148

Conflicts:
	trick_source/sim_services/Executive/include/Threads.hh
	trick_source/sim_services/Executive/src/Executive_set_thread_rt_semaphore.cpp
	trick_source/sim_services/Executive/src/Threads.cpp
2015-12-02 17:08:39 -06:00
Alex Lin
9792288e6c Revert "Fixes #68: Changed the path where TrickDPActionController expects to find jar files"
This reverts commit 2789727fc5.
2015-10-06 15:53:07 -05:00
Alex Lin
634f25bee3 GUIs using sie file die on Windows quotation marks
We already parse the string character by character escaping newlines, tabs, and
other special characters.  In the case of these quotation marks, we replace them
with the ASCII single and double quotes.

refs #134
2015-10-06 15:20:50 -05:00
Alex Lin
01a8294dd8 Merge branch '15.1.dev' of https://github.com/nasa/trick into 15.1.dev 2015-10-06 12:46:49 -05:00
John M. Penn
2789727fc5 Fixes #68: Changed the path where TrickDPActionController expects to find jar files 2015-10-06 11:18:16 -05:00
Alex Lin
197caee379 MTV/variable server crashes if checkpoint has less malfunctions then currently running sim
Added a case statement for the bad ref type to the binary data handler.  We handle a bad
ref as an integer, because that is what the sim sends us.  This fixes MTV.

refs #117
2015-10-06 11:17:08 -05:00
John M. Penn
cbf61a105f Fix #64: Fixed the call to register_group_with_mm in DRHDF5 constructor. 2015-10-06 11:17:01 -05:00
Alex Lin
4f23b67f65 MTV/variable server crashes if checkpoint has less malfunctions then currently running sim
Did two things to stop the crash.  1.  When following an address path if we hit a NULL
address, stop processing and return the NULL.  2.  When trying to resolve addresses in
copy_sim_data, if a NULL address is returned then reset the reference to unresolved and
return a dummy value.

Need to fix MTV to handle dummy value returns.

refs #117
2015-10-06 11:16:37 -05:00
John M. Penn
899b0d3efe Merge branch 'master' of https://github.com/nasa/Trick 2015-05-15 10:41:36 -05:00
John M. Penn
bc9746db6c Fix #55: Fix problem in stringstream declaration 2015-05-15 10:41:08 -05:00
Alex Lin
24fe5adaec JITEvents are not checkpointable
Changed the way JITEvents are created and handled. Instead of taking a function pointer directly we save a name of a function to the JITEvent class.  The class will dynamically look up a function that matches the name both during event creation and during checkpoint restart.

Fixes #53
2015-05-14 13:41:17 -05:00
John M. Penn
eb46419951 Fix #55 : Use stringsstreams to build paths rather than a fixed size char array. 2015-05-12 18:00:49 -05:00
Derek Bankieris
08138fef87 Moved psi up in the list of units for pressure in Trick View.
refs #54
2015-05-11 15:40:12 -05:00
Derek Bankieris
f85c8e6787 Added psi to the list of units for pressure in Trick View.
fixes #54
2015-05-11 15:30:11 -05:00
Alex Lin
7ecfcad90a Add batch files to start GUIs under Windows
Added a couple of batch files in the java GUI area so they can be used with
Windows.  Made an addition in TrickApplication.java to add the .bat suffix
to script calls when using Windows.

Fixes #47
2015-04-29 15:01:45 -05:00
Alex Lin
24a081a32b Event messages not printing
After further discussion, it was revealed that the event printouts would stop
coming out if a new event was created.  Found that the constructor of the
event was clearing out the static info_msg flag all events used to test
for printing.  Removed the assignment in the constructor and set the
initial value of the info_msg flag to false at the declaration point.

Fixes #38
2015-04-06 08:19:16 -05:00
Derek Bankieris
203a1bd31d Fixes #39: Added logic to restore missing strip chart properties when loaded from a TV file. 2015-04-02 14:16:13 -05:00
Derek Bankieris
df39400847 Merge branch 'master' of https://github.com/nasa/Trick 2015-04-02 14:14:16 -05:00
John M. Penn
c1619156a9 Fixed the way that Trick::MemoryManager::ref_dim() calculates the sizes of elements in an unconstrained array. Fixes #37. 2015-03-30 17:36:54 -05:00
Alex Lin
ea71eefd52 Can't access fields in REGULA_FALSI structure in python
Added regula_falsi.h to the list of files we process with SWIG
when building everything.

Fixes #34
2015-03-26 08:40:02 -05:00
Alex Lin
7544d9cca7 Remove overloaded fields in Integrator/trick_algorithms/ABM_Integrator.hh
Removed the overloaded fields.

Fixes #33
2015-03-26 08:04:17 -05:00
Alex Lin
94b2a4eff0 Checkpoints cannot handle overloaded names
I think I ran into this before.  The offsetof calls that use
fully qualified fields in classes is not compilable using clang
on the Mac.  So I've decided to only conditionally compile this
code for non Apple platforms.  So this fix will work in Linux,
but not on Macs.  We'll have to revisit this and see if we
can make it work for both.

refers to #31
2015-03-25 17:15:42 -05:00
Alex Lin
3e0abdddc5 Checkpoints cannot handle overloaded names
When a field is processed in a class it is added to a list.  This list
will contain the fields from base classes the current class inherits
from.  We check the list of fields we inherited, if we find that the
current field overloads the name of an inherited field we adjust the
inherited field's name to be shown as the fully qualified name in io_src
code.

Fixes #31
2015-03-25 15:58:33 -05:00
John M. Penn
8536208822 Removed erroneous stringstream declaration, which compiled on MacOSX but failed on Linux. 2015-03-25 15:47:36 -05:00
John M. Penn
f5334e07d7 Merge branch 'devel'
to fix issue #25.
2015-03-25 12:06:15 -05:00
John M. Penn
08be591e32 Replace message_publish calls with MemoryManager specific calls. fixes #25 2015-03-25 12:05:25 -05:00
Alex Lin
c5456fab2a Variable Server fails to establish listen port on restart under a specific circumstance.
Added a test in the variable server listen restart job to see if the the name of the
machine in the checkpoint file matches the machine that we are running on.  We
test all of the network names avaiable on the machine.  If the name is not found then
we assume that the checkpoint was taken on another machine and wipe out the machine
name.  This will default the machine name back to localhost.

Fixes #24.
2015-03-24 15:16:35 -05:00
Alex Lin
ea085eb9ee Fixes io_src code for typedef structures.
Found that my check for embedded classes was also catching some typedef structures.
This was causing some io_src code not to be generated.  Changed the test so that
we can differentiate between embedded classes and the typedefs.

This change fixes #10 and fixes #23.
2015-03-24 11:01:31 -05:00
Derek Bankieris
4c5839d437 Merge branch 'master' of https://github.com/nasa/Trick 2015-03-24 07:42:34 -05:00
Derek Bankieris
df6e86e7cb Made VariableServerConnection autocloseable. 2015-03-24 07:42:07 -05:00
John M. Penn
e2be23c269 Add emitMessage, emitError, and emitWarning member functions to MemoryMananger 2015-03-23 17:21:35 -05:00
Alex Lin
306dee18a3 Clean up once include variables
Missed a couple of files where message_publish is in an ifdef __APPLE__
section.  But I decided to put message_type.h back in message_proto.h
because taking it out would affect a lot of user code.

Adds to #14.
2015-03-23 17:01:40 -05:00
Alex Lin
14a75508a3 Cleaning up once include variables and copyright cleanup.
Changed all header file once include variables to follow the same naming
convention and not start with any underscores.  Also deleted old
incorrect copyright notices.  Also removed $Id: tags from all files.

Fixes #14.  Fixes #22.
2015-03-23 16:03:14 -05:00
Derek Bankieris
678cc4b877 Corrected erroneous prototype. 2015-03-17 13:45:42 -05:00
Derek Bankieris
795839dd56 Corrected VSBoolean's toString method to return a value that Python will recognize as a boolean. 2015-03-16 13:20:02 -05:00
Derek Bankieris
ab337c20a8 Made the no-argument constructors of the VS* suite of Java classes public. 2015-03-16 12:51:27 -05:00
Derek Bankieris
d41e7cb937 Genericized the VS* suite of classes, reducing redundancy.
Added a <state> element for variables in TV files.
Added a Trick 13 to Trick 15 TV file converter.
Updated .gitignore files.
fixes #21
2015-03-16 11:36:51 -05:00
Alex Lin
d798792544 Removed protect_ip_hang.
This is obsolete code as we don't support RedHat 5 anymore. Removed
the ifdef check and conditional code.

Fixes #18
2015-03-11 08:42:42 -05:00
Alex Lin
aecc0504fa Changed the calling argument to setASTConsumer.
The calling argument to setASTConsumer changed between clang 3.5
and 3.6.  Changed the code to create a std::unique_ptr that the
call now requires and call setASTConsumer with the unique pointer.

Fixes #15
2015-02-10 18:47:17 -06:00
Derek Bankieris
c7e5ab1139 Merge remote-tracking branch 'origin/master' 2015-03-10 16:05:34 -05:00
Derek Bankieris
71b6b25278 Switched to using jaxb.index instead of enumerating classes in the call to JAXBContent.newInstance.
Modified the makefile to copy jaxb.index files into the JAR.
Removed now-unnecessary annotations from TVBean.
Modified and exposed the save/open .tv file framework to subclasses so they can add additional information to .tv files.
fixes #12
2015-03-10 15:49:24 -05:00
Alex Lin
a1fea8a36f Added code to trick_dp that will check if fxplot exists. If it does then it will
add a radio button for it.  If it doesn't exist, it will not show up in the plot
menu.
2015-03-04 13:37:20 -06:00