Es wird der IP-Stack von Harrison Pham in Administra integriert, Regnatix kann darauf über den Hive-Bus zugreifen. Zum Testen wurde ein einfacher FTP-Client erstellt, welcher Dateien downloaden und in der RAM-Disk ablegen kann. Genauer wird alles in der README des angehängten Archives beschrieben. Der Client wurde mit mehreren FTP-Servern getestet, es wird aber sicher etliche Server geben, welche auf Grund abweichender Implementierung nicht funktionieren. Dann bitte hier mögliche Fehlermeldungen posten. Prinzipiell funktionieren nur Server, welche passives FTP und das SIZE-Kommando unterstützen.
Die Netzwerk-Konfiguration des Hive (IP-Adresse, Mac-Adresse usw.) wird im NVRAM der RTC gespeichert. Damit soll es einmal möglich sein, den Hive ohne SD-Card zu verwenden und Programme direkt aus dem Netz zu starten. Nachteil ist natürlich, daß das Netzwerk nicht mit Hives ohne RTC funktioniert. (Ergänzung: ab Version R56-nw1.1 wird erkannt, ob eine RTC vorhanden ist. Falls nicht, erfolgt die Speicherung automatisch auf SD-Card)
FTP habe ich deswegen gewählt, weil damit Dateien im Netzwerk recht einfach sowohl gelesen als auch geschrieben werden können. Mit HTTP wäre zumindest das Schreiben wohl komplexer geworden. Und TFTP als noch einfachere Variante scheidet aus, weil es auf UDP basiert. Der IP-Stack von Harrison Pham unterstützt nur TCP.
Was kann man damit nun anfangen?
Mir schwebt als nächstes eine Integration von FTP in Regime vor, um Dateien statt von SD-Card direkt über das Netz zu laden. Damit könnte man dann wesentlich einfacher eigene Programme testen: Anstatt diese nach der Übersetzung erst am PC auf SD-Karte zu kopieren, die SD-Karte in den Hive zu stecken und dann zu testen, könnte man sich diese ganzen Umwege sparen. Das Programm wird am PC übersetzt, die Binaries landen in einem Verzeichnis, welches ein FTP-Server für den Hive freigibt. Am Hive muß man dann nur noch das Programm aufrufen.
Ansonsten würde ich mich natürlich sehr freuen, wenn es noch andere Ideen und Anwendungen zur Nutzung des Netzwerkes geben würde.
Wie gesagt handelt es sich um meine ersten Programmierversuche in SPIN und am Hive. Deswegen sind mit hoher Wahrscheinlichkeit Fehler enthalten, viele Dinge könnte man sicher besser machen. Für Verbesserungsvorschläge und Tips zur richtigen Programmierung bin ich immer offen. Die Spezialisten unter euch sollten bitte auch mal nachsehen, ob ich die Integration ins TriOS wie vorgesehen vorgenommen habe. Ich denke da speziell an die Nummerierung und Namen der in glob-con.spin sowie reg-ios.spin hinzugefügten LAN-Funktionen und an die Verwendung von CHIP_SPEC in admnet.spin. Auch die Verwendung des NVRAM könnte diskutiert werden.
Historie:
R57-nw1.5 (23.07.2014)
- Webserver: erste Version eines Webservers für Domonstrationszwecke und eigene Experimente
- admnet: Korrektur beim Verbindungsende, konnte zum Absturz nach Start des nächsten Programmes bit Netzwerkfunktionen führen
- admnet: Netzwerkfunktionen nutzen nun den ABORT Trap
- Update auf TriOS R57
- IRC-Client: Unterstützung von /me und /ctcp
- IRC-Client: Schönerer Ton bei neuen Mitteilungen (Tip von drohne235)
- IRC-Client: Erkennung von Verbindungsabbrüchen und automatischer Reconnect (nach jeweils 1-2 Minuten)
- IRC-Client: Prüfung beim Start, ob Administra Netzwerk-Funktionen zur Verfügung stellt. Falls nicht, wird "/system/admnet.adm" von SD-Card geladen. Mit dieser Änderung kann der IRC-Client auch vom aktuellen Plexus aus gestartet werden.
- IRC-Client: Das Eingabefenster wird bei Eingabe einer längeren Mitteilung nun dynamisch vergrößert, die anderen Fenster entsprechend verkleinert (Anregung von drohne235)
- admnet: HSS-Soundeffekte wieder eingefügt (aber keine Hintergrund-Musik)
- admnet: statt 4 nur 2 Sockets in driver_socket.spin
- IRC-Client: Klingeln bei jeder neuen Mitteilung
- Lokalisierung aller Netzwerk-Programme (z.Z deutsch und englisch)
- #define __DEBUG zur Aktivierung von Debug-Ausgaben, weniger Ausgaben der Programme, wenn nicht aktiviert
- automatische Erkennung, ob RTC/NVRAM vorhanden ist (falls nicht, wird Konfiguration auf SD-Card in /system/nvram.sav geschrieben)
- IRC-Client: private Mitteilungen besser erkennbar
- IRC-Client: besseres Timing für Auto-Join
- IRC-Client: erste Release-Version mit vollem Funktionsumfang
- alle Programme (ipconfig, ftp) prüfen, ob Administra Netzwerk-Funktionen zur Verfügung stellt (admnet geladen)
- ipconfig: Konfiguration wird nur noch nach Angabe des Parameters /l angezeigt (nicht mehrfach bei Angabe mehrerer Parameter)
- ipconfig: konfigurierte Parameter werden sofort aktiviert (IP-Stack wird gestoppt und wieder gestartet)
- ftp: Parameter für FTP-Server von /s in /f geändert
- ftp: direktes Speichern auf SD-Card (Parameter /s)
- ftp: Benutzername und Paßwort kann angegeben werden
- ftp: anonymous-Login mit und ohne Paßwort (je nach Server)
- ftp: verbessertes Timing (Kompatibilität mit verschiedenen Servern)
- ftp: verschiedene Default-Werte hinterlegt:
- FTP-Server: mittels ipconfig eingetragener Boot-Server
- Verzeichnis: /hive/sdcard/system
- Benutzer: anonymous
- Paßwort: anonymous@hive<hive-id> - IRC-Client (Proof of Concept)
- neue Administra-Funktionen lan_rxbyte und lan_isconnected
(für IRC-Client benötigt)
- erste veröffentlichte Version, basierend auf TriOS R56