Code Monkey home page Code Monkey logo

tvsio's Introduction

TVS-IO is a Core Flight Software (cFS) app that enables two-way communication between cFS's Software Bus Network (SBN) and Trick simulations.

Visit the TVS-IO App Wiki for information on how TVS-IO works, cloning, configuring, building, and running.

For a sample of how TVS-IO can be incorporated into a cFS project, see tvsio-demo

This app can be configured as any other CFS app would in a mission. The *.tvm files should be placed in the 'fsw/tvm_files/' directory and all CFS data types w/ an associated mapping in a *.tvm file must have their type definition in a header file in the 'fsw/types_inc' directory. However, it's a common-place for a mission to have a single 'include' directory somewhere that contains header files with all of the message definitions shared by CFS apps for that mission. In this case, you can simply replace the 'fsw/types_inc' with a symbolic link to said directory and all should be well.

TVS-IO is released under the NASA Open Source Agreement Version 1.3 license.

tvsio's People

Contributors

alexlin0 avatar jwpetti1 avatar prkunz avatar tfleming-osr avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

ralphhightower

tvsio's Issues

Make TVMC cause all compiling to halt if there is a problem with generating code

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.

Determine if mybogusfile.h in CMakeLists.txt is really necessary

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.

Socket file descriptor leak

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.

TVSIO_app multi sim support

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

Update/Improve child tasking

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

Improve handling of missing variables

The current behavior is typically a segfault :face_palm:

There are two things we can do better:

  1. Detect the missing variable response when unpacking messages from sim: "The message returned for the non-existent variable will have a type of 24 and it's value will be the string 'BAD_REF'."
  2. Ask Trick if variables exist using the var_exists command

I 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.

Cleanup compiler warnings

Enable -Wall -Wextra then cleanup compiler warnings, refer to the multi sim test branch in tvsio_cfs to see the warnings

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.