Protokolle duplizieren (Deutsch)

From Ethersex_Wiki
Jump to: navigation, search

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
%s/sll_/sllzwei_/g

  • in der protocols/serialzwei_line_log/config.in die Namen anpassen

vim config.in

%s/LINE_/LINE2_/g
%s/Line/Line2/g

  • die ethersex/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.