nasa / tvsio Goto Github PK
View Code? Open in Web Editor NEWTrick Variable Server Input Output is a Core Flight Software app that can transfer data to and from Trick simulations
License: Other
Trick Variable Server Input Output is a Core Flight Software app that can transfer data to and from Trick simulations
License: Other
Enable -Wall -Wextra
then cleanup compiler warnings, refer to the multi sim test branch in tvsio_cfs to see the warnings
Currently tvmc.py assumes a single json TVS_IO mapping per TVM file. Users may want to group mappings into files to keep directories cleaner.
Need to be able to support multiple trick sim connections, most of the development is planned to take place in the tvsio_cfs super project, pushing to this branch in the tvsio submodule
A user noted that they had a significant problem with getting communications to work. The cause ended up being due to failure to fully parse a TVM file because of broken JSON formatting. The error/warning messages from TVMC were buried by the sheer volume of output from other compilation.
If TVMC can cause compilation to break, then this scenario will prevented in the future.
Currently, tcs_io_generated.{c,h}
are created in the fsw/src
directory.
This is a problem when multiple cFS CPU instances use different .tvm
files.
A new socket is opened every time ConnectToTrickVariableServer
is called.
If connect
fails in that function, the socket remains open and a new one will be created on the next call.
Trick sends multicast messages announcing the running sim: https://nasa.github.io/trick/documentation/simulation_capabilities/Variable-Server#variable-server-broadcast-channel
These can be used for smarter reconnection behavior, and they could also be used to avoid needing hard-coded hostnames and/or ports.
I have a working implementation that uses them for reconnection.
The child task ReceiveTaskRun()
should be calling CFE_Status_t CFE_ES_RegisterChildTask(void)
at startup and void CFE_ES_ExitChildTask(void)
at termination.
Once registered, this should allow removal of "TVS_IO" from the prints in the child task
For some reason, TVS_IO_TRICK_PIPE_DEPTH
defaults to 256.
This vastly larger than the other default depths.
It has required raising the system maximum queue depth in the past.
If there is some good reason it needs to be this deep, it should be documented.
Otherwise, it should be reduced.
TVM files are created and edited manually. So it would be good to make TVMC able to handle some basic typos
see branch feature/parse-enhance
The TVMC code generator is naive about listing includes. So if the same header is used for multiple mappings it will insert the same include multiple times. Add some sanitizing to prevent this.
The address struct is being memset to '0' (i.e. ASCII for the digit 0) rather than '\0'.
the CMakeLists.txt file has the following comment:
# had to add "mybogusfile.h" which is never generated so the custom target above would always force this command to run
I suspect this isn't really necessary and can be avoided by tweaking the custom command and target.
The current behavior is typically a segfault :face_palm:
There are two things we can do better:
var_exists
commandI think we'll want to do both, since the latter will be the only way to check if variables used in commands exist.
When a variable is missing, the easiest response is to exit the app.
However we could do better and just turn off individual messages.
The desired rate of messages from sim can be specified using the var_cycle
command.
Per Thad: "I suspect that having sims with different rates may break the current architecture because of how we're looping."
Revisit and update unit tests
These all have gone away with cFE 6.8.x and TVS_IO fails to build.
Manually merging desired changes from draco-rc4+dev246 since it contains some good and some not so good code changes
Requested for supporting systems which have different endianness than the sim host
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.