2013-12-12 5 views
0

현재 Impinj Speedway 리더 220에 연결 중이고 두 개의 안테나가 연결되어 있습니다.LLRP Impinj에서 볼 때 안테나 포트를 볼 수 없음

Impinj MultiReader 응용 프로그램을로드하고 Display Antenna Port (안테나 포트 표시)를 켤 때 RFID 태그가 읽힌 안테나를 응용 프로그램에 다시 가져옵니다.

저는 현재 C#을 사용하여 리더에 연결하고 있습니다 (SDK는 모든 언어에서 유사하다고 생각하지만). 아래는 샘플 코드입니다. 그러나 어떤 구성 옵션이 안테나 포트를 읽을 수 있는지에 대해서는 알지 못합니다.

태그를 사용하여 AntennaID가 반환되도록 옵션을 켜는 구성 옵션을 알려주십시오.

 MSG_ERROR_MESSAGE msg_err; 
     MSG_ADD_ROSPEC msg = new MSG_ADD_ROSPEC(); 

     // Reader Operation Spec (ROSpec) 
     msg.ROSpec = new PARAM_ROSpec(); 
     // ROSpec must be disabled by default 
     msg.ROSpec.CurrentState = ENUM_ROSpecState.Disabled; 
     // The ROSpec ID can be set to any number 
     // You must use the same ID when enabling this ROSpec 
     msg.ROSpec.ROSpecID = 123; 

     // ROBoundarySpec 
     // Specifies the start and stop triggers for the ROSpec 
     msg.ROSpec.ROBoundarySpec = new PARAM_ROBoundarySpec(); 
     // Immediate start trigger 
     // The reader will start reading tags as soon as the ROSpec is enabled 
     msg.ROSpec.ROBoundarySpec.ROSpecStartTrigger = 
     new PARAM_ROSpecStartTrigger(); 
     msg.ROSpec.ROBoundarySpec.ROSpecStartTrigger.ROSpecStartTriggerType = 
     ENUM_ROSpecStartTriggerType.Immediate; 
     // No stop trigger. Keep reading tags until the ROSpec is disabled. 
     msg.ROSpec.ROBoundarySpec.ROSpecStopTrigger = new PARAM_ROSpecStopTrigger(); 
     msg.ROSpec.ROBoundarySpec.ROSpecStopTrigger.ROSpecStopTriggerType = 
     ENUM_ROSpecStopTriggerType.Null; 

     // Antenna Inventory Spec (AISpec) 
     // Specifies which antennas and protocol to use 
     msg.ROSpec.SpecParameter = new UNION_SpecParameter(); 

     PARAM_AISpec aiSpec = new PARAM_AISpec(); 
     aiSpec.AntennaIDs = new UInt16Array(); 

     // Enable all antennas 
     aiSpec.AntennaIDs.Add(0); 
     // No AISpec stop trigger. It stops when the ROSpec stops. 
     aiSpec.AISpecStopTrigger = new PARAM_AISpecStopTrigger(); 
     aiSpec.AISpecStopTrigger.AISpecStopTriggerType = ENUM_AISpecStopTriggerType.Null; 
     aiSpec.InventoryParameterSpec = new PARAM_InventoryParameterSpec[1]; 
     aiSpec.InventoryParameterSpec[0] = new PARAM_InventoryParameterSpec(); 

     aiSpec.InventoryParameterSpec[0].InventoryParameterSpecID = 1234; 
     aiSpec.InventoryParameterSpec[0].ProtocolID = ENUM_AirProtocols.EPCGlobalClass1Gen2; 

     aiSpec.InventoryParameterSpec[0].AntennaConfiguration = new PARAM_AntennaConfiguration[1]; 
     aiSpec.InventoryParameterSpec[0].AntennaConfiguration[0] = new PARAM_AntennaConfiguration(); 
     aiSpec.InventoryParameterSpec[0].AntennaConfiguration[0].RFTransmitter = new PARAM_RFTransmitter(); 
     aiSpec.InventoryParameterSpec[0].AntennaConfiguration[0].RFTransmitter.HopTableID = 1; 
     aiSpec.InventoryParameterSpec[0].AntennaConfiguration[0].RFTransmitter.ChannelIndex = 1; 
     aiSpec.InventoryParameterSpec[0].AntennaConfiguration[0].RFTransmitter.TransmitPower = 91; // Max power of 32.5 dbm 
     aiSpec.InventoryParameterSpec[0].AntennaConfiguration[0].RFReceiver = new PARAM_RFReceiver(); 
     aiSpec.InventoryParameterSpec[0].AntennaConfiguration[0].RFReceiver.ReceiverSensitivity = 1; // 1= -80 (the max), 2 = -70, etc. 

     msg.ROSpec.SpecParameter.Add(aiSpec); 

     // Report Spec 
     msg.ROSpec.ROReportSpec = new PARAM_ROReportSpec(); 
     // Send a report for every tag read 
     msg.ROSpec.ROReportSpec.ROReportTrigger = 
     ENUM_ROReportTriggerType.Upon_N_Tags_Or_End_Of_ROSpec; 
     msg.ROSpec.ROReportSpec.N = 1; 
     msg.ROSpec.ROReportSpec.TagReportContentSelector = new PARAM_TagReportContentSelector(); 

     MSG_ADD_ROSPEC_RESPONSE rsp = reader.ADD_ROSPEC(msg, out msg_err, 2000); 

답변

3

나는 결국 어떻게하는지 발견했다.

위의 예에서 그냥

msg.ROSpec.ROReportSpec.TagReportContentSelector = new PARAM_TagReportContentSelector(); 

을 제거하고

PARAM_TagReportContentSelector reportContent = new PARAM_TagReportContentSelector(); 
reportContent.EnableAntennaID = true; 

msg.ROSpec.ROReportSpec.TagReportContentSelector = reportContent; 
로 교체
관련 문제