2010-01-08 7 views
0

Est-il possible d'écrire des données sur une étiquette RFID spécifique (dans sa mémoire utilisateur en fait) en utilisant l'EMDK de Motorola pour .NET/la DLL Symbol.rfid2.device? Imaginez que vous avez 2 balises devant vous et que vous voulez écrire des données uniquement pour l'une d'entre elles.Écrire des données dans une étiquette spécifique

La méthode WriteTag ne semble pas prendre cela en charge.

Merci.

Répondre

4

Je crois qu'il existe un nouvel EMDK avec Symbol.RFID3.device qui vous permet d'effectuer des opérations spécifiques à un point. Vérifiez CS_RFID3Sample3.

Signature:

// Summary: 
    //  This method is used to write data to the memory bank of a specific tag. 
    // 
    // Parameters: 
    // tagID: 
    //  EPC-ID of the Tag on which the Write operation is to be performed. 
    // 
    // writeAccessParams: 
    //  Parameters required for the Write operation. 
    // 
    // antennaInfo: 
    //  Antennas on which the current operation is to be performed. If this is null, 
    //  operation will be performed on all Antennas. 
    public void WriteWait(string tagID, TagAccess.WriteAccessParams writeAccessParams, AntennaInfo antennaInfo); 

Exemple d'utilisation:

public RFIDResults WriteTag(string tagId, string writeData, MEMORY_BANK mb, Int32 offset) 
    { 
     byte[] writeUserData = null; 
     writeUserData = new byte[writeData.Length/2]; 

     ConvertStringToByteArray(writeData, ref writeUserData); 

     TagAccess.WriteAccessParams writeParams = new TagAccess.WriteAccessParams(); 
     writeParams.AccessPassword = 0; 
     writeParams.WriteData = writeUserData; 
     writeParams.WriteDataLength = (uint)writeUserData.Length; 
     writeParams.MemoryBank = mb; 
     writeParams.ByteOffset = (uint)offset; 
     try 
     { 
      m_RfidReader.Actions.TagAccess.WriteWait(tagId, writeParams, null); 
      return RFIDResults.RFID_API_SUCCESS; 
     } 
     catch (OperationFailureException e) 
     { 
      return e.Result; 
     } 
    } 
Questions connexes