read-mfrc522

cesars/mfrc522/read-mfrc522

No description
read-mfrc522
@/read-mfrc522
522@/mfrc522-dev
UPDpulse
read-mfrc522
D1
D2
D3
D4
D5
DONE
522
UPD
DONEpulse
D5byte
D4byte
D3byte
D2byte
D1byte
To use the node in your project you should have the cesars/mfrc522 library installed. Use the “File → Add Library” menu item in XOD IDE if you don’t have it yet. See Using libraries for more info.

C++ implementation

struct State {
};

{{ GENERATED_CODE }}

void evaluate(Context ctx) {

    if (!isInputDirty<input_UPD>(ctx))
        return;

    auto rfid = getValue<input_522>(ctx);
    uint8_t status;
    uint8_t data[MAX_LEN];
    uint8_t serial[6];
    int i, j, pos;

    status = rfid->requestTag(MF1_REQIDL, data);
    if (status == MI_OK) {
        Serial.println("TAG detected.");
        Serial.print("Type: ");
        Serial.print(data[0], HEX);
        Serial.print(", ");
        Serial.println(data[1], HEX);
        status = rfid->antiCollision(data);
        memcpy(serial, data, 6);

        Serial.println("TAG serial:");
        for (i = 0; i < 5; i++) {
        Serial.print(serial[i], HEX);
        }
        Serial.println(serial[5], HEX);

        emitValue<output_D1>(ctx, serial[0]);
        emitValue<output_D2>(ctx, serial[1]);
        emitValue<output_D3>(ctx, serial[2]);
        emitValue<output_D4>(ctx, serial[3]);
        emitValue<output_D5>(ctx, serial[4]);
        emitValue<output_DONE>(ctx, 1);
    }
}