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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.