Protokolle duplizieren
Protokolle duplizieren
Es kommt immer mal wider vor, das man das gleiche Protokoll zweimal benötigt. Bei mir war der Fall, das ich ein Net-IO mit einem ATMega 644p ausgestattet habe, der zwei UART besitz. Diese zwei Schnittstellen wollte ich zum auslesen meiner Wechselrichter nutzen.
Das Protokoll der Wahl war bei mir sll (serial_line_log)
Leider muste ich feststellen, das ich immer nur ein Protokoll auf ein UART binden kann. Da es bist jetzt noch keine gute Idee gibt, wie man so etwas besser lösen kann, hier ein kleiner Trick. Das Protokoll serial_line_log wird einfach dupliziert. Ich habe jedes "seria_" in ein "serialzwei_" gewandelt.
- Kopieren des Ordners (cp -a ethersex/protocols/serial_line_log ethersex/protocols/serialzwei_line_log)
- alle Dateien im Ordner umbenannt (auser Makefile und config.in) (cd ethersex/protocols/serialzwei_line_log; mv serial_<...>.c serialzwei_<...>.c
- mit einem Editor Alle Variabeln und Symbolenamen geändert
vim serialzwei_line_log.c
- %s/SERIAL_/SERIALZWEI_/g
- %s/serial_/serialzwei_/g
- %s/sll_/sllzwei_/g
- in der serialzwei_line_log_ecmd.c muss noch der ecmd Befehl angepasst werden (ganz am Schluss der META abschnitt)
vim serialzwei_line_log_ecmd.c
- %s/sll get/sll2 get
- die config.in und das MAKEFILE an die neuen Namen anpassen
Zum Schluss müssen noch zwei zentrale Dateien angepasst werden.
cd ethersex/
vim Makefile
SUBDIRS += protocols/serialzwei_line_log
vim config.in
source protocols/serialzwei_line_log/config.in
Danach sollte
make menuconfig
Jetzt sollte unter Protokolle das Serial Line Log zweimal vorhanden sein.
Anmerkung: Das gleiche Verfahren funktioniert auch mit dem yport-Protokoll. Wenn man z.B. einen ATMega644p besitzt und beide UARTs "gleichzeitig" benutzen will, kann man das yport-Protokoll mit dem hier vorgestellten Verfahren duplizieren. nc <ip> 7970 bzw nc <ip> 7971 liefert dann die Ausgabe der beiden Ports.