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);
}
}