12 public class MifareUltralightInterface(Tag Tag, MifareUltralight Technology)
15 private readonly MifareUltralight mifareUltralight = Technology;
20 public async Task<byte[]> ReadAllData()
22 MifareUltralightType Type = this.mifareUltralight.Type;
23 int TotalBytes = Type
switch
25 MifareUltralightType.UltralightC => 192,
28 int PageSize = MifareUltralight.PageSize;
29 byte[] Data =
new byte[TotalBytes];
32 while (Offset < TotalBytes)
34 byte[]? Pages = await this.mifareUltralight.ReadPagesAsync(Offset / PageSize) ??
throw UnableToReadDataFromDevice();
35 int i = Math.Min(Pages.Length, TotalBytes - Offset);
37 throw UnableToReadDataFromDevice();
39 Array.Copy(Pages, 0, Data, Offset, i);
Mifare Ultralight interface, for communication with an NFC Tag.