2014-01-20 3 views
1

RFID 태그와 Motorola 919Z 핸드 헬드 리더를 사용하여 고객을위한 맞춤형 고정 자산 솔루션을 개발하고 있습니다. 지금까지 EMDK의 모토로라 예제를 기반으로 한 것처럼 잘 진행되고 있습니다. 우리는 VB.NET을 사용하고 있습니다.RFID 태그 (Motorola EMDK + .NET)의 EPC 및 USER 메모리 뱅크에 액세스하는 방법

문제는 하드 태그이므로 프린터에서 태그를 지정할 수없는 Confidex 스틸 웨이브 태그가 있으므로 예제 소프트웨어를 사용하여 태그를 지정하고 관련 데이터를 USER 메모리 뱅크에 저장하고 Zebra RZ400 프린터를 사용하여 인쇄 가능한 Confidex 태그 세트에 태그를 지정하고 관련 데이터를 EPC Tag ID 필드에 기록했습니다.

이제 우리는 두 필드 (한 경우에는 EPC Tag ID, 다른 쪽에서는 USER 메모리 뱅크)를 읽으라는 요청을받습니다. 즉, 관련 데이터가 USER 메모리 뱅크에 태그 된 경우 태그 ID에는 관련없는 16 진수가 포함되고 EPC 태그 ID가 사용 된 경우 USER 메모리 뱅크는 비어 있거나 0으로 채워집니다.

이제는 사용자가 은행에서 읽거나 뱅크를 전환하지 않고 (소프트웨어에서) 두 은행을 동시에 읽을 수있는 방법을 찾을 수 없으므로 처음부터 가능할지 궁금해하고 있습니다. 내가 코드를 게시해야하는 경우가 좀 긴으로

나는, 잘 모르겠어요 ... 어쩌면 관련 부분이다 : Inventory.Perform ... 그것을 읽지 않습니다

우리가 사용하는 경우 USER 메모리 뱅크, 액세스 필터를 사용하지 않는 것 같습니다.

OperationSequence.PerformSequence 을 사용하면 메모리 뱅크를 지정해야합니다.

감사합니다.

+0

이 문제에 대한 해결책을 찾았습니까? – Dai

+0

다른 방법을 찾았습니다. 자동으로 인벤토리를 시작하기 위해 트리거 사용을 중단하고 대신 트리거 이벤트를 잡아 타이머를 시작하고 EPC 은행의 인벤토리를 시작한 다음 타이머가 인벤토리를 중지하고, 사용자 뱅크로 전환 한 다음 트리거를 누르고있는 동안 0.3ms마다 또는 인벤토리를 다시 시작하십시오. 끔찍한 해킹이지만 충분히 잘 작동합니다. 자랑스럽지 않아. – KalaNag

답변

0

나는 동일한 문제가있어 해결책을 찾았습니다.

OperationSequence.PerformSequence을 사용하십시오. 그러나 여러 가지 작업을 먼저 추가하는 것이 트릭입니다. 그래서 다음의 EPC 은행을 읽어 때문에 같은 다른 작업을 추가합니다 USER 뱅크를 읽어들이는 작업을 추가

RFIDReader reader = new RFIDReader(); 
reader.Connect(); 

MEMORY_BANK[] banks = new MEMORY_BANK[] { 
    MEMORY_BANK.MEMORY_BANK_EPC, 
    MEMORY_BANK.MEMORY_BANK_USER, 
    MEMORY_BANK.MEMORY_BANK_RESERVED, 
    MEMORY_BANK.MEMORY_BANK_TID 
}; 
foreach(MEMORY_BANK bank in banks) { 
    TagAccess.Sequence.Operation op = new TagAccess.Sequence.Operation(); 
    op.AccessOperationCode = ACCESS_OPERATION_CODE.ACCESS_OPERATION_READ; 
    op.ReadAccessParams.MemoryBank = bank; 
    reader.Actions.TagAccess.OperationSequence.Add(op); 
} 

그리고 단순히 각각의 태그에, 당신은 각 은행 Read 이벤트를 얻을 것이다, reader.Actions.TagAccess.OperationSequence.PerformSequence 전화를, 태그가 스캐너의 읽기 가능한 거리 내에있는 한.

+0

테스트 해 보았는데 효과가 있었습니까? 이 문제가 생겼을 때이 문제가 발생했을 때 다른 버전을 시도했기 때문에 foreach를 사용하는 대신 자체 MEMORY_BANK가있는 두 개의 Operation 객체를 정의한 다음 시퀀스에 추가하여 작동하지 않았습니다. – KalaNag

+0

@ KalaNag 예, 테스트 해본 결과 나에게 적합합니다. 태그의 모든 은행에서 데이터를 가져올 수 있습니다. "일하지 않았다"는 것은 무엇을 의미합니까? 각'Read' 이벤트에서 태그 데이터를 반환하기 위해 독자 옵션/설정을 지정 했습니까? – Dai

0

메모리 뱅크를 설정해야하는 태그의 인벤토리를 수행하기 전에 작업 순서를 수행해야합니다. 인벤토리를 시작할 때마다 memoryBankData 속성의 tagID 속성 및 메모리 뱅크 데이터에 EPC를 가져옵니다.