2022-01-20 04:13 AM
I am writing the c# application using Feig "FEDM for NET" library to communicate with ST25DV02K-W1/W2. I want to use PresentPassword and WritePassword command. ST25DV02K-W1/W2 is recognized by the library as 'TH_ISO15693_STM' tag. The 'TH_ISO15693_STM' class does not have a Present/Write password command available. There are implemented in TH_ISO15693_STM_ST25DVxxK class.
The problem is that memory is not recognized as 'TH_ISO15693_STM_ST25DVxxK'
and I can not cast 'TH_ISO15693_STM' to 'TH_ISO15693_STM_ST25DVxxK' class.
Does anyone have had this problem too? How can I resolve it?
I try using the Transparent command but was not successful.
Solved! Go to Solution.
2022-01-20 08:57 AM
Hello Karol,
the FEIG SDK recognizes the ST25DV-I2C but not the ST25DV-PWM (ST25DV02K-W1/W2).
Hence your best bet is to use the transparent commands API.
Check out the sendProtocol() API.
Java and .Net APIs are pretty close so you can get inspiration from this example :
String response = mReaderHandle.ICmd.sendProtocol((byte) 0xBF, requestData);
where:
You will find more examples in the Java source code for the ST25PC-NFC application in the model.readers.feig.FEIG_OBID_Generic_TransceiveImplementation class.
Regards,
Damien
2022-01-20 08:57 AM
Hello Karol,
the FEIG SDK recognizes the ST25DV-I2C but not the ST25DV-PWM (ST25DV02K-W1/W2).
Hence your best bet is to use the transparent commands API.
Check out the sendProtocol() API.
Java and .Net APIs are pretty close so you can get inspiration from this example :
String response = mReaderHandle.ICmd.sendProtocol((byte) 0xBF, requestData);
where:
You will find more examples in the Java source code for the ST25PC-NFC application in the model.readers.feig.FEIG_OBID_Generic_TransceiveImplementation class.
Regards,
Damien
2022-02-08 12:40 AM
Damien, thank You for your hints.
I did some tests with ReadMultipleBlock sent by sendProtocol function. It works. I attached the simple working code in c#. Maybe it will be useful to someone.
...
byte command = 0x23;
byte mode = 0x01; // see Reader documentation
byte[] uuid = new byte[] { 0xE0, 0x02, 0x38, 0x00, 0x07, 0xA1, 0x31, 0xBB };
byte address = 0x01;
byte numberOfData = 0x01;
byte[] reqSelectData = new byte[] {command, mode, uuid[0], uuid[1], uuid[2], uuid[3], uuid[4], uuid[5], uuid[6], uuid[7], address, numberOfData };
byte cmdByte = 0xB0;
string requestData = FeHexConvert.ByteArrayToHexString(reqSelectData); // result: "2301E002380007A131BB0101" string
string responseData = "";
// MyTag.BaseTag - it is mine class to store the Tag
int status = MyTag.BaseTag.GetTagHandlerImpl().GetReader().SendProtocol(cmdByte, requestData, out responseData);
Console.WriteLine("Response status: " + status);
Console.WriteLine("Response data: " + responseData);
...