unique client id

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Davo
  • Registratie: Januari 2011
  • Laatst online: 07-05-2024
Hallo,

probeer een "global variable" unique client id aan te maken op de volgende manier:

code:
1
2
3
4
uint32_t chipid=ESP.getChipId();
   
char* clientid[25];
snprintf(clientid,25,"ESP8266-%08X",chipid);


hierbij krijg ik de volgende foutmelding:

code:
1
2
3
4
5
SCD30-MQTT:101:9: error: expected constructor, destructor, or type conversion before '(' token

 snprintf(clientid,25,"ESP8266-%08X",chipid);

         ^


Kan iemand mij een duw in de goede richting geven om dit op te lossen.

Met vriendelijke groet,
Davo

Beste antwoord (via Davo op 20-01-2019 21:57)


  • kunnen
  • Registratie: Februari 2004
  • Niet online
Je probeert code uit te voeren buiten de scope van een functie; dat kan niet. Maak de variabele
code:
1
char clientid[25];
global, en draai je snprintf in main().

Alle reacties


Acties:
  • +1 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Nu online

Reptile209

- gers -

Gokje: heb je de juiste include's gebruikt?

Zo scherp als een voetbal!


Acties:
  • +1 Henk 'm!

  • Rowwan
  • Registratie: November 2000
  • Laatst online: 09:23
code:
1
char* clientid[25];


Is overigens ook niet juist...

Acties:
  • +1 Henk 'm!

  • eric.1
  • Registratie: Juli 2014
  • Laatst online: 06-10 16:39
In welke context voer je dit uit?

Je kan niet alles zomaar global uitvoeren :).

[ Voor 42% gewijzigd door eric.1 op 20-01-2019 19:09 ]


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • kunnen
  • Registratie: Februari 2004
  • Niet online
Je probeert code uit te voeren buiten de scope van een functie; dat kan niet. Maak de variabele
code:
1
char clientid[25];
global, en draai je snprintf in main().

Acties:
  • 0 Henk 'm!

  • Davo
  • Registratie: Januari 2011
  • Laatst online: 07-05-2024
Bedankt voor alle reactie's
Ik probeer een unique client id aan te maken in een arduino skets. Zodat alle esp8266 een unique client id krijgen.
Ik ga google hoe ik de snprintf in een main() moet zetten.

Met vriendelijke groet,
Davo

Acties:
  • 0 Henk 'm!

  • Davo
  • Registratie: Januari 2011
  • Laatst online: 07-05-2024
Heb er dit van gemaakt na wat zoeken op google.

code:
1
2
3
4
char clientid[25];
int main () { 
  snprintf(clientid,25,"ESP8266-%08X",chipid);
}


Is dit zo goed


Met vriendelijke groet,
Davo

Acties:
  • +1 Henk 'm!

  • Gropah
  • Registratie: December 2007
  • Niet online

Gropah

Admin Softe Goederen

Oompa-Loompa 💩

Het beste kun je het zelf even proberen, kijken wat er gebeurd als je het draait of compileert. Als dit daadwerkelijk je probleem is (en niet een knipsel van) dan zou dat geen probleem moeten zijn. Ik zou in ieder geval de documentatie van de functie er bij houden.

Als die 4 regels code daadwerkelijk alles is, is de variable chipid niet gedeclareerd of geïnitialiseerd dus dit gaat niet betrouwbaar compileren/draaien. En verder kun je je afvragen waarom je niet gewoon chipid gebruikt als clientid, als het spul om de chipid statisch is voor de clientid.

Acties:
  • 0 Henk 'm!

  • Davo
  • Registratie: Januari 2011
  • Laatst online: 07-05-2024
Dank voor de reactie.

Het compileert nu zonder fout meldingen.

Sorry was één regel code vergeten.
code:
1
2
3
4
5
6
uint32_t chipid=ESP.getChipId();
   
char clientid[25];
int main () { 
  snprintf(clientid,25,"ESP8266-%08X",chipid);
}


Met vriendelijke groet,
Davo
Pagina: 1