Microchip TPC-IP Stack 5.42 Hostname dynamisch vergeben

Gast #5671468
Lesenswert?

Hallo,
ich nutze auf dem PIC32MX795 den Microchip TPC/IP stack V 5.42 (Nicht 
Harmony).

In der Datei "TCPIP ETH795.h" wird der Host Name des Gerätes definiert:
#define MY_DEFAULT_HOST_NAME "Gerät_SNxxx"

Im main wird bei Initialisierung dies einmalig aufgerufen:
// Load the default NetBIOS Host Name
memcpypgm2ram(AppConfig.NetBIOSName, (ROM void*)MY_DEFAULT_HOST_NAME, 
16);
FormatNetBIOSName(AppConfig.NetBIOSName);

Jetzt möchte ich die xxx im Namen durch eine Serien Nummer ersetzen, die 
so definiert ist:
unsigned short serial;                   // Serial Number
(Hinweis: serial wird aus dem externen EEPROM initialisiert)

Also die Firmware soll für mehrere Geräte gleich sein. Nur die im EEPROM 
gespeicherte Seriennummer soll halt mit im Hostname erscheinen.

Wie gehts ???
Gast #5671475
Lesenswert?

Du musst aus der Seriennummer einen String machen (mit itoa oder sowas). 
Dann kopierst du deinen festen Text aus dem ROM in die Konfig und hängst 
den dynamischen String hinten dran (mit Offset kopieren).
Ab dann wie gehabt initialisieren.
Gast #5671477
Lesenswert?

Hallo Keiner,
geht nicht.

Hier wird benutzt:
memcpypgm2ram(AppConfig.NetBIOSName, (ROM void*)MY_DEFAULT_HOST_NAME,
16);

Also ein Konstant aus ROM ins RAM kopeiert und dann weiter verwendet.
Nützt aber nichts, da ich ja mit der gleichen Firmware (gleiches ROM) 
für mehrere Geräte nutzen möchte.
Ich muss also irgendwie dafür sorgen, dass in  AppConfig.NetBIOSName 
dann Gerät_SN001  fürs erste Gerät, Gerät_SN002 fürs zweite Gerät u.s.w. 
steht.
Gast #5671550
Lesenswert?

Hallo, danke für eure Unterstützung.
Es läuft.
Habs so gemacht:


char Text[40];                                  // Textausgabe
char Text2[40];                                  // Textausgabe
char Text3[40];                                  // Textausgabe

BYTE2BCD ( serial);  // Ergebnis in Text
strcpy ( Text2 , (ROM void*)MY_DEFAULT_HOST_NAME );
strcat ( Text2, Text );
strcpy ( (char *)AppConfig.NetBIOSName,Text2);

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren