Sto sviluppando un'applicazione per il lettore portatile RFID Motorola MC9190.E 'possibile scrivere e leggere caratteri ASCII nel tag RFID UHF?
Ho bisogno di leggere e scrivere le informazioni come leggibile dall'uomo nel tag RFID UHF. Così ho deciso di scrivere informazioni in caratteri ASCII.
Durante alcune ricerche, ho scoperto che è possibile scrivere caratteri ASCII nella memoria dei tag RFID ma supporta meno caratteri. Non mi dispiacerebbe finché non sarà inferiore a 10 caratteri.
riferimenti:
http://blog.atlasrfidstore.com/types-of-memory-in-gen-2-uhf-rfid-tags
Ora, io sono po 'confuso come faccio a scrivere e leggere di caratteri ASCII direttamente nel lettore.
Questo è il codice per la scrittura in caratteri esadecimali.
private void writeButton_Click(object sender, EventArgs e)
{
string dataToWrite="ABCDEF9876";
Symbol.RFID3.TagAccess.WriteAccessParams m_WriteParams;
m_WriteParams.AccessPassword = 0;
m_WriteParams.MemoryBank = MEMORY_BANK.MEMORY_BANK_USER;
m_WriteParams.ByteOffset = 0;
m_WriteParams.WriteDataLength = 6;
byte[] writeData = new byte[m_WriteParams.WriteDataLength];
for (int index = 0; index < m_WriteParams.WriteDataLength; index += 2)
{
writeData[index] = byte.Parse(dataToWrite.Substring(index * 2, 2),
System.Globalization.NumberStyles.HexNumber);
writeData[index + 1] = byte.Parse(dataToWrite.Substring((index + 1) * 2, 2),
System.Globalization.NumberStyles.HexNumber);
}
m_WriteParams.WriteData = writeData;
string m_SelectedTagID = "ABCDEF"; //for example
RunWriteOperation(m_SelectedTagID,m_WriteParams);
}
void RunWriteOperation(string m_SelectedTagID,Symbol.RFID3.TagAccess.WriteAccessParams m_WriteParams)
{
if (m_SelectedTagID != String.Empty)
{
m_ReaderAPI.Actions.TagAccess.WriteWait(m_SelectedTagID,m_WriteParams, null);
}
}
Se voglio scrivere in ASCII, dovrebbe essere codificato come byte ASCII credo. Quindi, invece di for loop, se sostituisco il codice seguente, scriverò correttamente?
string dataToWrite="HELLOWORLD";
byte[] writeData = ASCIIEncoding.ASCII.GetBytes(dataToWrite);
Dal momento che non ho il lettore con me, non potevo in grado di testare ora.
Se si ottiene il successo, durante la lettura del tag, come posso configurare il lettore per decodificare come carattere ASCII e visualizzarlo o devo convertire a livello di programmazione?
Dato che sono nuovo della tecnologia RFID, non sono sicuro di aver svolto correttamente la ricerca. Perfavore, correggimi se sbaglio.
Il codice si mostra non funziona, si aspetta 'dataToWrite' di essere una stringa esadecimale, che "CIAOMONDO" non è. Il metodo Encoding.GetBytes() ti darà i byte che formano la stringa nella codifica data, sì. Il contrario viene fatto tramite Encoding.GetString(), usando la stessa codifica usata per la codifica. – CodeCaster
Oops. hai ragione. Vedi la mia modifica. –
Allora, hai letto il resto del mio commento? Qual è la tua domanda? – CodeCaster