NFC-TAG Reader/Writer: Fehler/Hilfe bei Write Funktion



  • Guten Morgen,
    ich bin ein c++ Anfänger und versuche im Moment mit Hilfe von QT eine Android App zu schreiben, welche NFC Tags lesen und beschreiben kann.
    Es Funktioniert bis jetzt die UID abfrage und die Read Funktion (zumindest als Hexadezimalcode - dazu später).
    Das hat Mithilfe dieses Links geklapt: http://doc.qt.io/qt-5/qtnfc-overview.html
    Leider scheitere ich an der Write Funktion.
    Am Anfang soll die App nur eine bestimmte Message schreiben die ich vorher bestimme. (Nachher soll das ein Benutzer auch interaktiv selber machen können. Aber dazu komme ich dann später.)
    Im Moment schaut meine Read und Write Funktion so aus:

    switch (m_changeMode) { 
        case Read: //Reading Tag ByteArray
            connect(target, SIGNAL(ndefMessageRead(QNdefMessage)),
                    this, SLOT(ndefMessageRead(QNdefMessage)));
            connect(target, SIGNAL(error(QNearFieldTarget::Error,QNearFieldTarget::RequestId)),
                    this, SLOT(targetError(QNearFieldTarget::Error,QNearFieldTarget::RequestId)));
    
            m_request = target->readNdefMessages();
    
            if (!m_request.isValid()){ // cannot read messages
                targetError(QNearFieldTarget::NdefReadError, m_request);
                //Target detected but cannot read message
            } else if (m_request.isValid()){
                //Message read
                        }
            break;
        case Write:
            QByteArray message;//Das ist nur eine Beispiel-Message
            message.resize(1);
            message[0] = 0x01;
    
            connect(target, SIGNAL(ndefMessagesWritten()),
                    this, SLOT(ndefMessageWritten()));
            connect(target, SIGNAL(error(QNearFieldTarget::Error,QNearFieldTarget::RequestId)),
                    this, SLOT(targetError(QNearFieldTarget::Error,QNearFieldTarget::RequestId)));
    
            m_request = target->writeNdefMessages(QList<QNdefMessage>() << ndefMessage());
                   if (!m_request.isValid()) // cannot write messages
                       targetError(QNearFieldTarget::NdefWriteError, m_request);
    
            if (!m_request.isValid()){ // cannot read messages
                targetError(QNearFieldTarget::NdefReadError, m_request);
                // Target erkannt aber kann Message nicht schreiben message."));
            } else if (m_request.isValid()){
                // Erfolgreich beschrieben
            }
        }
    

    Er gibt mir im Moment diesen Fehler in Zeile 28 aus: "no match for call to '(QByteArray)()'"

    Also Vermute ich das ich da irgendwie das message-array nicht richtig weitergegeben bekommen.
    Hat da jemand Anregungen, bzw. einen Verbesserungsvorschlag für mich?

    Freundlichen Gruß 🙂
    demu



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum Andere GUIs - Qt, GTK+, wxWidgets verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Log in to reply