incompatibilità tra librerie -RISOLTO-

Ho realizzato un circuito con un sistema RFID ed un 1602 LCD Keypad shield.
Il primo richiede due librerie:
#include <NfcAdapter.h>
#include <PN532/PN532/PN532.h>
il secondo una:
#include <LCD4Bit_mod.h>

Ad un certo punto devo leggere dei dati dalla CARD e mandarli sul display, ma il comando diretto:

lcd.printIn(tag.getUidString());

mi dà errore di compilazione:

no known conversion for argument 1 from ‘String’ to ‘char*’

se ho ben capito il lettore legge i dati sotto forma di stringa mentre il display non ne prevede l’uso.
Ho dato un’occhiata al Topic di Guglielmo ma non ne esco.

La domanda è: esiste un passaggio intermedio per stampare questo contenuto o devo cambiare LCD e libreria, per trovarne una che riesca a stampare direttamente il dato?
Grazie.

Penso che tag.getUidString() ritorna un oggetto String
perciò usando .c_str() dovrebbe funzionare (ritorna il puntatore alla stringa interna all'oggetto)
lcd.printIn( tag.getUidString().c_str() );

Oppure puoi usare .toCharArray() che ti copia la String come stringa classica del C in un tuo buffer

nid69ita:
Penso che tag.getUidString() ritorna un oggetto String
perciò usando .c_str() dovrebbe funzionare (ritorna il puntatore alla stringa interna all'oggetto)
lcd.printIn( tag.getUidString().c_str() );

Oppure puoi usare .toCharArray() che ti copia la String come stringa classica del C in un tuo buffer

Funziona .c_str() ma voglio approfondire anche l'altro suggerimento.
Grazie mille Nid, sempre gentile!

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.