Discussion:
[ethersex-devel] Hostnamen und IP in control6
Tom Weber
2015-04-28 17:12:13 UTC
Permalink
Hallo liebe Liste,

kann wir jemand sagen, wie ich z.B. den Hostnamen und/oder die aktuelle
IP in Control6 verwenden kann ? Ein Beispiel wäre super !

Vielen Dank,
Tom
tjareson
2015-04-29 04:26:54 UTC
Permalink
Hallo,

vielleicht so etwas in der Art. (ich konnte es noch nicht ausprobieren,
habe aber das gleiche Problem)

control6.scr auszugsweise:

#include "protocols/uip/uip.h"
#include "protocols/uip/uip_router.h"

uip_ipaddr_t hostaddr;

CONTROL_START
ECMD_GLOBAL(clientadr0,0);
ECMD_GLOBAL(clientadr1,0);
ECMD_GLOBAL(clientadr2,0);
ECMD_GLOBAL(clientadr3,0);


THREAD(xyz....)
uip_gethostaddr(&hostaddr);

Falls man dann auf die IP-Adresse direkt, also quasi jedes Oktett,
zugreifen will:

clientadr0=hostaddr[0] & 0xFF;
clientadr1=hostaddr[0] >> 8;
clientadr2=hostaddr[1] & 0xFF;
clientadr3=hostaddr[1] >> 8;

Kommt halt darauf an, was Du mit der eigenen IP dann machen willst. Von
aussen kann man ja auch einen broadcast senden, falls man sie nicht
kennt, auf das ethersex dann halt antwortet.

Besten Gruß.
Tjareson
Post by Tom Weber
Hallo liebe Liste,
kann wir jemand sagen, wie ich z.B. den Hostnamen und/oder die
aktuelle IP in Control6 verwenden kann ? Ein Beispiel wäre super !
Vielen Dank,
Tom
_______________________________________________
Ethersex-devel mailing list
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
Tom Weber
2015-04-29 04:53:15 UTC
Permalink
Hi und Danke, das sind schon mal gute Hinweise. Ich benötige das eher
umgekehrt - also meine Ethersexe senden broadcasts an mein IP-Symcon,
nur kann ich dort nirgends die Sendeip feststellen.
Also dachte ich daran, die IP bzw. besser noch den Hostnamen im
UDP-paket mitzusenden.

Ich sehe, dass der per make menuconfig eingetragene Hostname in der
CONFIG-Datei steht, und zwar unter "CONF_HOSTNAME" - bloß: Wie nutze ich
das in control6 ?

Grüße,
Tom
Post by tjareson
Hallo,
vielleicht so etwas in der Art. (ich konnte es noch nicht
ausprobieren, habe aber das gleiche Problem)
#include "protocols/uip/uip.h"
#include "protocols/uip/uip_router.h"
uip_ipaddr_t hostaddr;
CONTROL_START
ECMD_GLOBAL(clientadr0,0);
ECMD_GLOBAL(clientadr1,0);
ECMD_GLOBAL(clientadr2,0);
ECMD_GLOBAL(clientadr3,0);
THREAD(xyz....)
uip_gethostaddr(&hostaddr);
Falls man dann auf die IP-Adresse direkt, also quasi jedes Oktett,
clientadr0=hostaddr[0] & 0xFF;
clientadr1=hostaddr[0] >> 8;
clientadr2=hostaddr[1] & 0xFF;
clientadr3=hostaddr[1] >> 8;
Kommt halt darauf an, was Du mit der eigenen IP dann machen willst.
Von aussen kann man ja auch einen broadcast senden, falls man sie
nicht kennt, auf das ethersex dann halt antwortet.
Besten Gruß.
Tjareson
Post by Tom Weber
Hallo liebe Liste,
kann wir jemand sagen, wie ich z.B. den Hostnamen und/oder die
aktuelle IP in Control6 verwenden kann ? Ein Beispiel wäre super !
Vielen Dank,
Tom
_______________________________________________
Ethersex-devel mailing list
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
_______________________________________________
Ethersex-devel mailing list
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
tjareson
2015-04-29 05:07:37 UTC
Permalink
Gibt's denn ein ecmd Kommando, um den hostnamen festzustellen? Weiss ich
gerade auswendig nicht. Falls ja, muss es dazu auch irgendwo eine
Funktion in den ethersex sourcen geben, die den liefert. Und die kannst
Du dann in control6 natürlich auch nutzen.

Was ist denn der use-case mit den Hostnamen anstatt ip?
Wenn Du mehrere Ethersex-boards hast und deren Hostnamen über make
menuconfig oder im config-file einstellst, dann könntest Du ja
stattdessen auch gleich irgendwas in control6.src individualisieren.

Ansonsten einfach mal die sourcen durchsehen - da habe ich die Funktion
unten auch gefunden.

Zum Beispiel hier: (bzw. auf Deine Platte)
https://github.com/ethersex/ethersex/blob/master/protocols/uip/uip.h
Post by Tom Weber
Hi und Danke, das sind schon mal gute Hinweise. Ich benötige das eher
umgekehrt - also meine Ethersexe senden broadcasts an mein IP-Symcon,
nur kann ich dort nirgends die Sendeip feststellen.
Also dachte ich daran, die IP bzw. besser noch den Hostnamen im
UDP-paket mitzusenden.
Ich sehe, dass der per make menuconfig eingetragene Hostname in der
CONFIG-Datei steht, und zwar unter "CONF_HOSTNAME" - bloß: Wie nutze
ich das in control6 ?
Grüße,
Tom
Post by tjareson
Hallo,
vielleicht so etwas in der Art. (ich konnte es noch nicht
ausprobieren, habe aber das gleiche Problem)
#include "protocols/uip/uip.h"
#include "protocols/uip/uip_router.h"
uip_ipaddr_t hostaddr;
CONTROL_START
ECMD_GLOBAL(clientadr0,0);
ECMD_GLOBAL(clientadr1,0);
ECMD_GLOBAL(clientadr2,0);
ECMD_GLOBAL(clientadr3,0);
THREAD(xyz....)
uip_gethostaddr(&hostaddr);
Falls man dann auf die IP-Adresse direkt, also quasi jedes Oktett,
clientadr0=hostaddr[0] & 0xFF;
clientadr1=hostaddr[0] >> 8;
clientadr2=hostaddr[1] & 0xFF;
clientadr3=hostaddr[1] >> 8;
Kommt halt darauf an, was Du mit der eigenen IP dann machen willst.
Von aussen kann man ja auch einen broadcast senden, falls man sie
nicht kennt, auf das ethersex dann halt antwortet.
Besten Gruß.
Tjareson
Post by Tom Weber
Hallo liebe Liste,
kann wir jemand sagen, wie ich z.B. den Hostnamen und/oder die
aktuelle IP in Control6 verwenden kann ? Ein Beispiel wäre super !
Vielen Dank,
Tom
_______________________________________________
Ethersex-devel mailing list
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
_______________________________________________
Ethersex-devel mailing list
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
_______________________________________________
Ethersex-devel mailing list
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
Tom Weber
2015-04-29 05:09:57 UTC
Permalink
ja, so habe ich es jetzt auch geschafft. (Ich wollte für alle Boards
eben in einheitliches control6-script nutzen, da ich diese
Individualisierungen mental einfach nicht schaffe)

CONF_HOSTNAME kann ich benutzen, wenn ich die config.h include.

Prima und Danke, deine Hinweise waren der richtige Tip !
Post by tjareson
Gibt's denn ein ecmd Kommando, um den hostnamen festzustellen? Weiss
ich gerade auswendig nicht. Falls ja, muss es dazu auch irgendwo eine
Funktion in den ethersex sourcen geben, die den liefert. Und die
kannst Du dann in control6 natürlich auch nutzen.
Was ist denn der use-case mit den Hostnamen anstatt ip?
Wenn Du mehrere Ethersex-boards hast und deren Hostnamen über make
menuconfig oder im config-file einstellst, dann könntest Du ja
stattdessen auch gleich irgendwas in control6.src individualisieren.
Ansonsten einfach mal die sourcen durchsehen - da habe ich die
Funktion unten auch gefunden.
Zum Beispiel hier: (bzw. auf Deine Platte)
https://github.com/ethersex/ethersex/blob/master/protocols/uip/uip.h
Post by Tom Weber
Hi und Danke, das sind schon mal gute Hinweise. Ich benötige das eher
umgekehrt - also meine Ethersexe senden broadcasts an mein IP-Symcon,
nur kann ich dort nirgends die Sendeip feststellen.
Also dachte ich daran, die IP bzw. besser noch den Hostnamen im
UDP-paket mitzusenden.
Ich sehe, dass der per make menuconfig eingetragene Hostname in der
CONFIG-Datei steht, und zwar unter "CONF_HOSTNAME" - bloß: Wie nutze
ich das in control6 ?
Grüße,
Tom
Post by tjareson
Hallo,
vielleicht so etwas in der Art. (ich konnte es noch nicht
ausprobieren, habe aber das gleiche Problem)
#include "protocols/uip/uip.h"
#include "protocols/uip/uip_router.h"
uip_ipaddr_t hostaddr;
CONTROL_START
ECMD_GLOBAL(clientadr0,0);
ECMD_GLOBAL(clientadr1,0);
ECMD_GLOBAL(clientadr2,0);
ECMD_GLOBAL(clientadr3,0);
THREAD(xyz....)
uip_gethostaddr(&hostaddr);
Falls man dann auf die IP-Adresse direkt, also quasi jedes Oktett,
clientadr0=hostaddr[0] & 0xFF;
clientadr1=hostaddr[0] >> 8;
clientadr2=hostaddr[1] & 0xFF;
clientadr3=hostaddr[1] >> 8;
Kommt halt darauf an, was Du mit der eigenen IP dann machen willst.
Von aussen kann man ja auch einen broadcast senden, falls man sie
nicht kennt, auf das ethersex dann halt antwortet.
Besten Gruß.
Tjareson
Post by Tom Weber
Hallo liebe Liste,
kann wir jemand sagen, wie ich z.B. den Hostnamen und/oder die
aktuelle IP in Control6 verwenden kann ? Ein Beispiel wäre super !
Vielen Dank,
Tom
_______________________________________________
Ethersex-devel mailing list
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
_______________________________________________
Ethersex-devel mailing list
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
_______________________________________________
Ethersex-devel mailing list
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
e***@users.sourceforge.net
2015-04-29 16:49:33 UTC
Permalink
Hallo Tom,
Post by Tom Weber
Ich benötige das
eher umgekehrt - also meine Ethersexe senden broadcasts an mein
IP-Symcon, nur kann ich dort nirgends die Sendeip feststellen.
Falsch. Im UDP-Header steht neben der Ziel-IP selbstverständlich auch
die Absender-IP.
Post by Tom Weber
Also dachte ich daran, die IP bzw. besser noch den Hostnamen im
UDP-paket mitzusenden.
E6 kann aber mehrere Interfaces und damit IP-Adressen besitzen.
Die IP-Adresse steht im EEPROM, Details core/eeprom.h.
In C6 kannst Du auch pures C programmieren und Funktionen von E6
rufen bzw. auf Daten zugreifen.

Falls Dein E6-System eine statische IP zur Compilezeit bekommt,
dann nutze

uip_ipaddr_t ip;
set_CONF_ETHERSEX_IP (&ip);


und
CONF_HOSTNAME

als char-Pointer auf den Hostnamen.

Loading...