Microchip TPC-IP Stack 5.42 Hostname dynamisch vergeben

Gast #5671468
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
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
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
Dirk F schrieb:
> Hallo Andre, perfekt.
> Aber wie kann ich das umsetzen ?

Bei Deinen Kenntnissen:
String passender Größe deklarieren, dann mit sprintf und itoa füllen. 
Anschließend nach AppConfig.NetBIOSName kopieren.
Gast
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

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.