Iso15693 class

ISO 15693, as CoreNFC exposes it, with typed commands rather than raw transceive. iOS only; Android reaches the same tags through NfcV.

Properties

hashCode int
The hash code for this object.
no setterinherited
icManufacturerCode int
The IC manufacturer's registration code, as assigned by ISO/IEC 7816-6.
final
icSerialNumber Uint8List
The manufacturer-assigned serial number, which together with icManufacturerCode makes up the tag's UID.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

authenticate({required Set<Iso15693RequestFlag> requestFlags, required int cryptoSuiteIdentifier, required Uint8List message}) Future<Iso15693Response>
Authenticates against the tag (0x35), per ISO/IEC 29167.
challenge({required Set<Iso15693RequestFlag> requestFlags, required int cryptoSuiteIdentifier, required Uint8List message}) Future<void>
Poses a challenge (0x39), which answers nothing on its own: the tag computes into its response buffer, and readBuffer is what collects the result.
customCommand({required Set<Iso15693RequestFlag> requestFlags, required int customCommandCode, required Uint8List customRequestParameters}) Future<Uint8List>
Sends a manufacturer-defined command. customCommandCode is 0xA0-0xDF.
customCommandWithConfiguration({required int manufacturerCode, required int customCommandCode, required Uint8List customRequestParameters, required Iso15693CommandConfiguration configuration}) Future<Uint8List>
As customCommand, with the retries configuration asks for and an explicit manufacturerCode in place of the tag's own icManufacturerCode.
extendedFastReadMultipleBlocks({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber, required int numberOfBlocks}) Future<List<Uint8List>>
As fastReadMultipleBlocks (0x3D), for tags with more than 256 blocks.
extendedGetMultipleBlockSecurityStatus({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber, required int numberOfBlocks}) Future<List<int>>
As getMultipleBlockSecurityStatus, for tags with more than 256 blocks.
extendedLockBlock({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber}) Future<void>
As lockBlock, for tags with more than 256 blocks. blockNumber is 0-65535.
extendedReadMultipleBlocks({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber, required int numberOfBlocks}) Future<List<Uint8List>>
As readMultipleBlocks, for tags with more than 256 blocks.
extendedReadSingleBlock({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber}) Future<Uint8List>
As readSingleBlock, for tags with more than 256 blocks.
extendedWriteMultipleBlocks({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber, required int numberOfBlocks, required List<Uint8List> dataBlocks}) Future<void>
As writeMultipleBlocks, for tags with more than 256 blocks. dataBlocks must hold numberOfBlocks entries, each one exactly the tag's block size.
extendedWriteSingleBlock({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber, required Uint8List dataBlock}) Future<void>
As writeSingleBlock, for tags with more than 256 blocks. blockNumber is 0-65535.
fastReadMultipleBlocks({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber, required int numberOfBlocks}) Future<List<Uint8List>>
As readMultipleBlocks, with the fast read command (0x2D), which the tag answers at double the data rate. Not every tag implements it.
getMultipleBlockSecurityStatus({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber, required int numberOfBlocks}) Future<List<int>>
Reports the lock state of each block in the range, one entry per block.
getSystemInfo({required Set<Iso15693RequestFlag> requestFlags}) Future<Iso15693SystemInfo>
Reads the tag's own description: block size, block count, AFI and DSFID.
getSystemInfoAndUid({required Set<Iso15693RequestFlag> requestFlags}) Future<Iso15693SystemInfo>
Reads the tag's own description, Iso15693SystemInfo.uid included.
keyUpdate({required Set<Iso15693RequestFlag> requestFlags, required int keyIdentifier, required Uint8List message}) Future<Iso15693Response>
Replaces the key keyIdentifier names (0x36).
lockAfi({required Set<Iso15693RequestFlag> requestFlags}) Future<void>
Locks the AFI permanently.
lockBlock({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber}) Future<void>
Locks one block permanently. It can never be written again.
lockDsfId({required Set<Iso15693RequestFlag> requestFlags}) Future<void>
Locks the DSFID permanently.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
readBuffer({required Set<Iso15693RequestFlag> requestFlags}) Future<Iso15693Response>
Reads whatever the tag left in its response buffer (0x3A), which is where challenge puts its answer.
readMultipleBlocks({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber, required int numberOfBlocks}) Future<List<Uint8List>>
Reads numberOfBlocks consecutive blocks starting at blockNumber, one entry each.
readMultipleBlocksWithConfiguration({required int blockNumber, required int numberOfBlocks, required int chunkSize, required Iso15693CommandConfiguration configuration}) Future<List<Uint8List>>
As readMultipleBlocks, except CoreNFC cuts the range into requests of chunkSize blocks and retries each one per configuration without coming back to Dart in between. The tag's hardware caps how large a chunk it will answer.
readSingleBlock({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber}) Future<Uint8List>
Reads one block. blockNumber is 0-255; use extendedReadSingleBlock beyond that.
resetToReady({required Set<Iso15693RequestFlag> requestFlags}) Future<void>
Moves the tag back to the ready state, undoing select or stayQuiet.
select({required Set<Iso15693RequestFlag> requestFlags}) Future<void>
Puts the tag in the selected state, so later commands need not carry its UID.
sendRequest({required int requestFlags, required int commandCode, Uint8List? data}) Future<Iso15693Response>
Sends any ISO 15693-3 request: the 8-bit request flag, an 8-bit command code, and the data the command takes, if it takes any.
stayQuiet() Future<void>
Silences the tag until it leaves the field, so other tags can be reached.
toString() String
A string representation of this object.
inherited
writeAfi({required Set<Iso15693RequestFlag> requestFlags, required int afi}) Future<void>
Sets the application family identifier, 0-255.
writeDsfId({required Set<Iso15693RequestFlag> requestFlags, required int dsfId}) Future<void>
Sets the data storage format identifier, 0-255.
writeMultipleBlocks({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber, required int numberOfBlocks, required List<Uint8List> dataBlocks}) Future<void>
Writes consecutive blocks. dataBlocks must hold numberOfBlocks entries.
writeSingleBlock({required Set<Iso15693RequestFlag> requestFlags, required int blockNumber, required Uint8List dataBlock}) Future<void>
Writes one block. dataBlock must be exactly the tag's block size.

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

from(NfcTag tag) Iso15693?
Returns an instance for tag, or null when the tag is not ISO 15693.