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);