Giter VIP home page Giter VIP logo

yamcs-gateway's Introduction

Yamcs Gateway

The goal of this project is to allow Yamcs to control instruments/payloads as part of an EGSE.

EGSE, short for Electrical Ground Support Equipment, is a common term in the aerospace industry denoting specialized equipment and systems essential for supporting, testing, and maintaining the electrical systems and subsystems of spacecraft, satellites, and similar vehicles. These EGSE systems often utilize low-level hardware connections such as MIL1553, CANbus, RS422, among others.

Yamcs abstracts the concept of data links for connecting to a target system, with most links implementing network protocols such as TCP or UDP. Integrating links that utilize low-level hardware connections poses challenges in Java, often requiring the use of device drivers available only in C.

In projects where Yamcs is used as part of the EGSE, a common approach involves developing interfacing software that communicates with Yamcs via standard TCP network connections and controls the target system using custom-built protocols. The Yamcs Gateway serves as a framework facilitating the implementation of such interface software.

Rust has been selected as the language for implementing the Yamcs Gateway due to its high-level nature, memory safety features, and its ease of interfacing with C libraries.

The directory structure includes:

  • ygw: This serves as the primary Rust library implementing the Yamcs Gateway, and it's available on crates.io for easy access.
  • ygw-macros: This directory contains implementations of macros designed to streamline the creation of Yamcs parameters and commands.
  • ygw-plugin: Here lies a Yamcs plugin, which operates within Yamcs itself and communicates with the Gateway via TCP.
  • quickstart: An illustrative example program showcasing the utilization of the ygw crate to generate an executable.

yamcs-gateway's People

Contributors

xpromache avatar

Watchers

 avatar

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.