Skip to main content
rerdo.1
Associate II
July 24, 2023
Solved

I had a problem sending the 0xB3 custom command using the handler.customCommand function.

Hello!

I'm using a build of type st25dv64k

For iOS operating systems, use the NfcManager.requestTechnology(NfcTech.Iso15693IOS) technology and for the password:
NfcManager.iso15693HandlerIOS.customCommand(
flags = number,
customCommandCode = number,
customRequestParameters= [] );

I am using the structure

I had a problem sending the 0xB3 custom command using the handler.customCommand function.

Here is my code, I can't see any error there, but my RN code only will give me that [error] message, without giving me any information about what is going on.

try { const idBytes= [1,2,3,4,5,6,7,8]; const passwordBytes= [0,0,0,0,0,0,0,0]
 resp = await NfcManager.iso15693HandlerIOS.customCommand({
 flags = 0x02,
 customCommandCode = 0xb3,
 customRequestParameters = [
0x02, 0xb3, 0x02, ...idBytes, 0x02, ...passwordBytes, ], });

Giving me this error:
Error [error]
Could you help me out?

Thanks!

This topic has been closed for replies.
victor laraison
victor laraisonBest answer
ST Employee
September 14, 2023

Hi rerdo,

The iOS CoreNFC custom command works only in NON-ADDRESSED mode. 
flags value is OK into your command, but you must remove the  IC Device Code (0x02) and UID from the custom request parameters. 
If you have a look into the code we provide, we make the call as follow :

 self.mTag.customCommand(requestFlags: [.highDataRate], customCommandCode: Int(code),customRequestParameters:data)

where data = PasswordNumber + Password Value.

Hope it clarifies.

Br,

 

6 replies

victor laraison
ST Employee
July 26, 2023

hello Rerdo,
Please, could you log the error returned by the iso15693 command ? 
Otherwise, is it normal to resend into customrequestParameters the flags and customcommand ? Normally you should only pass the data for the commands. 
Let me know.
Br,

 

rerdo.1
rerdo.1Author
Associate II
July 26, 2023

Hello Victor,

When I run the program in the way I wrote above, when I press the error message on the screen in the try catch section, I get a message like this :

Error [error]

Unfortunately, it does not give an output other than this.

As you said, when I extract the flags and customcommand values from the customRequestParameters array, a structure is formed as follows :

try { const idBytes=[1,2,3,4,5,6,7,8]; const passwordBytes= [0,0,0,0,0,0,0,0,0]
resp = await NfcManager.iso15693HandlerIOS.customCommand({
flags=0x02,
custom Command Code = 0xb3,
custom Request Parameters = [
0x02, //IC Mfg code
......id Bytes, // device id =[0, 1, 2, 3, 4, 5, 6, 7]
0x02, // Passwordnumber
...passwordBytes, // Password =[0,0,0,0,0,0,0,0]
],
});
}
catch(ex) {
console.log('error',ex);
} finally {
console.log("Finally..");
}

 

i get the same form error error when I try.

Where am I doing wrong here, what should I do, can you help me?

victor laraison
victor laraisonBest answer
ST Employee
September 14, 2023

Hi rerdo,

The iOS CoreNFC custom command works only in NON-ADDRESSED mode. 
flags value is OK into your command, but you must remove the  IC Device Code (0x02) and UID from the custom request parameters. 
If you have a look into the code we provide, we make the call as follow :

 self.mTag.customCommand(requestFlags: [.highDataRate], customCommandCode: Int(code),customRequestParameters:data)

where data = PasswordNumber + Password Value.

Hope it clarifies.

Br,