Giter VIP home page Giter VIP logo

rush's Introduction

rush - remote shell for microcontrollers

rush ist eine kompakte Shell für Microcontroller welche es dem Benutzer erlaubt zustände von Peripherie an Microcontrollern zu manipulieren oder auszulesen. Die Software ist ausschließlich Kompatibel mit einem ESP32-S3 Chip.

rush-service

Der rush-service oder auch nur rush bezeichnet den Dienst welcher auf dem Microcontroller läuft. Um mit dem Microcontroller interagieren zu können, ist es notwendig sich mit dem WLAN-Netzwerk von diesem zu verbinden. Es kann unter der SSID „rush“ gefunden werden. Es existiert kein Passwort und die Verbindung ist unverschlüsselt. Nach dem Verbinden mit dem Netzwerk ist es notwendig folgende Nezwerkeinstellungen vorzunehmen:

IP-Adresse Eine Adresse aus dem Bereich 192.168.2.2 bis 192.168.2.254
Subnetzmaske 255.255.255.0 oder in CIDR 192.168.2.2/24
Gateway Keines Eintragen! Kann zum absturz des Systems führen. Sollte die Eingabe unvermeidbar sein, bitte diese auf 0.0.0.0 setzen.
Nameserver Sollte die Eingabe eines Nameservers unvermeidbar sein, bitte diesen auf 0.0.0.0 setzen.

Nun lässt sich eine TCP-Verbindung über einen TCP-Client aufbauen (IP: 192.168.2.1; Port: 2000). Wir empfehlen rush-client, Netcat funktioniert aber auch.

rush-client

Der rush-Client benötigt eine IP-Adresse und einen Port als Ziel des Verbindungsaufbaus. Diese Parameter werden als Kommandozeilenargument übergeben. Unter Windows sehen Programmaufrufe zum Beispiel so aus:

.\rush_client.exe 192.168.2.1:2000

.\rush_client.exe 127.0.0.1:8080

Der zweite Befehl dient dazu, eine Verbindung mit dem localhost aufzubauen. Dies ermöglicht es, mit einem Programm wie Netcat, den rush-Client unabhängig von einem Mikrocontroller zu testen.

Befehlssatz

Wenn die Verbindung zum rush-service über einen TCP-Client steht, kann mit dem Microcontroller Interagiert werden. Unsere Software verwendet einen definierten Befehlssatz zur Manipulation und Beobachtung von Peripherie.

Befehl Beschreibung Rückgabewert
read gpio.[a] liest den aktuellen Zustand des GPIO-Pins mit der Nummer a aus gpio.[a]=[0|1] wobei 0 = LOW-Pegel und 1 = HIGH-Pegel
write gpio.[a] [value] setzt den Zustand des GPIO-Pins mit der Nummer a auf [value] (siehe unten) n/a
watch gpio.[a] abonniert jede Zustandsänderung des GPIO-Pins mit der Nummer a neuer Zustand des Pins, Syntax wie bei read
unwatch gpio.[a] beendet das Abonnement der Zustandsänderungen des GPIO-Pins mit der Nummer a n/a

a gibt die Nummer eines GPIO-Pins an. Gültig ist eine Zahl von 0 bis 48 (einschließlich), wobei die GPIO-Pins mit den Nummern 22, 23, 24 und 25 nicht vorhanden sind.

value kann einen HIGH- oder LOW-Pegel über verschiedene Begriffe annehmen.

LOW-Pegel HIGH-Pegel
low high
l h
off on
0 1
false true
f t

Build-Instruction

rush-service

Eine detailierte Anleitung für das Bauen des rush-service-Projekts ist in der zugehörigen rush-service-readme zu finden.

rush-client

rush-client ist innerhalb der standard-rust toolchain durch folgenden Befehl zu bauen.

cargo build --release

rush's People

Contributors

crazycraftix avatar maze3d avatar atalior avatar

Watchers

 avatar

rush's Issues

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.