Skip to content

Commit

Permalink
Merge pull request #2 from cslrfid/release-S3.1
Browse files Browse the repository at this point in the history
Release S3.1
  • Loading branch information
ksclam authored Jun 9, 2020
2 parents 025af99 + 144c466 commit 02c5777
Show file tree
Hide file tree
Showing 30 changed files with 2,957 additions and 476 deletions.
10 changes: 8 additions & 2 deletions CS108iOSClient.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
CABA71662132631F00D15BB1 /* CSLCircularQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = CABA71602132631F00D15BB1 /* CSLCircularQueue.m */; };
CABA71672132631F00D15BB1 /* CSLBlePacket.m in Sources */ = {isa = PBXBuildFile; fileRef = CABA71642132631F00D15BB1 /* CSLBlePacket.m */; };
CABA71682132631F00D15BB1 /* CSLBleInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = CABA71652132631F00D15BB1 /* CSLBleInterface.m */; };
CAD9B73F248F570100AE01A8 /* CSLReaderFrequency.m in Sources */ = {isa = PBXBuildFile; fileRef = CAD9B73E248F570100AE01A8 /* CSLReaderFrequency.m */; };
CADDF6AA21DDF41E00E05D75 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CADDF6A921DDF41E00E05D75 /* CoreGraphics.framework */; };
CAECD0C1214973EF003321CF /* CSLRfidDemoApp.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CAECD0C0214973EF003321CF /* CSLRfidDemoApp.storyboard */; };
CAF5CC2821626F1500C420EF /* CSLReaderBattery.m in Sources */ = {isa = PBXBuildFile; fileRef = CAF5CC2721626F1500C420EF /* CSLReaderBattery.m */; };
Expand Down Expand Up @@ -134,6 +135,8 @@
CABA71632132631F00D15BB1 /* CSLBleInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSLBleInterface.h; sourceTree = "<group>"; };
CABA71642132631F00D15BB1 /* CSLBlePacket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSLBlePacket.m; sourceTree = "<group>"; };
CABA71652132631F00D15BB1 /* CSLBleInterface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSLBleInterface.m; sourceTree = "<group>"; };
CAD9B73D248F570000AE01A8 /* CSLReaderFrequency.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CSLReaderFrequency.h; sourceTree = "<group>"; };
CAD9B73E248F570100AE01A8 /* CSLReaderFrequency.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CSLReaderFrequency.m; sourceTree = "<group>"; };
CADDF6A921DDF41E00E05D75 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
CAECD0C0214973EF003321CF /* CSLRfidDemoApp.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = CSLRfidDemoApp.storyboard; sourceTree = "<group>"; };
CAF5CC2621626F1500C420EF /* CSLReaderBattery.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSLReaderBattery.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -241,6 +244,8 @@
CA78737921514DC9009B7FE6 /* model */ = {
isa = PBXGroup;
children = (
CAD9B73D248F570000AE01A8 /* CSLReaderFrequency.h */,
CAD9B73E248F570100AE01A8 /* CSLReaderFrequency.m */,
CA78737A21514E61009B7FE6 /* CSLRfidAppEngine.h */,
CA78737B21514E61009B7FE6 /* CSLRfidAppEngine.m */,
CA78737D21543B6F009B7FE6 /* CSLReaderSettings.h */,
Expand Down Expand Up @@ -470,6 +475,7 @@
4272751123E91EDD008485F6 /* CSLAboutVC.swift in Sources */,
42B903CF23D7C8180041713C /* CSLSettingsVC.swift in Sources */,
CA4E78E6213528FC0035F075 /* CSLBleReader.m in Sources */,
CAD9B73F248F570100AE01A8 /* CSLReaderFrequency.m in Sources */,
4296980623EA5B610023BC8B /* main.swift in Sources */,
4234D14E24200F2800FA6396 /* GaugeView.swift in Sources */,
CA78737F21543B6F009B7FE6 /* CSLReaderSettings.m in Sources */,
Expand Down Expand Up @@ -621,7 +627,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = S3.0;
MARKETING_VERSION = S3.1;
PRODUCT_BUNDLE_IDENTIFIER = com.csl.CS108iOSClient;
PRODUCT_NAME = CS108Swift;
SWIFT_OBJC_BRIDGING_HEADER = "CS108iOSClient/ViewControllers/CS108iOSClient-Bridging-Header.h";
Expand Down Expand Up @@ -649,7 +655,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = S3.0;
MARKETING_VERSION = S3.1;
PRODUCT_BUNDLE_IDENTIFIER = com.csl.CS108iOSClient;
PRODUCT_NAME = CS108Swift;
SWIFT_OBJC_BRIDGING_HEADER = "CS108iOSClient/ViewControllers/CS108iOSClient-Bridging-Header.h";
Expand Down
Binary file not shown.
50 changes: 25 additions & 25 deletions CS108iOSClient/CSLReader/CSLBleReader+AccessControl.m
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ - (BOOL) TAGMSK_DESC_SEL:(Byte)desc_idx {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -141,7 +141,7 @@ - (BOOL) TAGMSK_DESC_CFG:(BOOL)isEnable selectTarget:(Byte)sel_target selectActi
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -202,7 +202,7 @@ - (BOOL) TAGMSK_DESC_CFG:(BOOL)isEnable selectTarget:(Byte)sel_target selectActi
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -263,7 +263,7 @@ - (BOOL) TAGACC_DESC_CFG:(BOOL)isVerify retryCount:(Byte)count {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -324,7 +324,7 @@ - (BOOL) TAGMSK_BANK:(MEMORYBANK)bank {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -384,7 +384,7 @@ - (BOOL) TAGMSK_PTR:(UInt16)ptr {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -444,7 +444,7 @@ - (BOOL) TAGMSK_LEN:(Byte)length {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -505,7 +505,7 @@ - (BOOL) setTAGMSK:(UInt16)TAGMSKAddr tagMask:(UInt32)mask {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -566,7 +566,7 @@ - (BOOL) TAGACC_BANK:(MEMORYBANK)bank acc_bank2:(MEMORYBANK)bank2 {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -626,7 +626,7 @@ - (BOOL) TAGACC_PTR:(UInt32)ptr secondBank:(UInt32)ptr2 {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -686,7 +686,7 @@ - (BOOL) TAGACC_PTR:(UInt32)ptr {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -747,7 +747,7 @@ - (BOOL) TAGACC_CNT:(Byte)length secondBank:(Byte)length2 {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -807,7 +807,7 @@ - (BOOL) TAGACC_ACCPWD:(UInt32)password {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -867,7 +867,7 @@ - (BOOL) setTAGWRDAT:(UInt16)TAGWRDATAddr data_word:(UInt16)word data_offset:(UI
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -930,7 +930,7 @@ - (BOOL) sendHostCommandWrite {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if ([self.cmdRespQueue count] >= 3) //command response + command begin + command end
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}

if ([self.cmdRespQueue count] >= 3)
Expand Down Expand Up @@ -995,7 +995,7 @@ - (BOOL) sendHostCommandRead {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if ([self.cmdRespQueue count] >= 1) //command response + command begin + command end
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}

if ([self.cmdRespQueue count] >= 1)
Expand Down Expand Up @@ -1061,7 +1061,7 @@ - (BOOL) sendHostCommandSearch {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if ([self.cmdRespQueue count] >= 1) //command response + command begin + command end
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}

if ([self.cmdRespQueue count] >= 1)
Expand Down Expand Up @@ -1127,7 +1127,7 @@ - (BOOL) sendHostCommandLock {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if ([self.cmdRespQueue count] >= 1) //command response + command begin + command end
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}

if ([self.cmdRespQueue count] >= 1)
Expand Down Expand Up @@ -1202,7 +1202,7 @@ - (BOOL) setEpcMatchConfiguration:(BOOL)match_enable matchOn:(BOOL)epc_notEpc ma
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -1264,7 +1264,7 @@ - (BOOL) setInventoryCycleDelay:(UInt32) cycle_delay {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -1472,7 +1472,7 @@ - (BOOL) startTagMemoryRead:(MEMORYBANK)bank dataOffset:(UInt16)offset dataCount
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if ([self.cmdRespQueue count] >= 2)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}

if ([self.cmdRespQueue count] < 2) {
Expand Down Expand Up @@ -1580,7 +1580,7 @@ - (BOOL) startTagMemoryWrite:(MEMORYBANK)bank dataOffset:(UInt16)offset dataCoun
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if ([self.cmdRespQueue count] >= 2)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}

if ([self.cmdRespQueue count] < 2) {
Expand Down Expand Up @@ -1647,7 +1647,7 @@ - (BOOL) startTagSearch:(MEMORYBANK)mask_bank maskPointer:(UInt16)mask_pointer m
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if ([self.cmdRespQueue count] >= 1)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}

if ([self.cmdRespQueue count] < 1) {
Expand Down Expand Up @@ -1775,7 +1775,7 @@ - (BOOL) TAGACC_LOCKCFG:(UInt32)lockCommandConfigBits {
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if([self.cmdRespQueue count] != 0)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}
if ([self.cmdRespQueue count] != 0)
payloadData = ((CSLBlePacket *)[self.cmdRespQueue deqObject]).payload;
Expand Down Expand Up @@ -1819,7 +1819,7 @@ - (BOOL) startTagMemoryLock:(UInt32)lockCommandConfigBits ACCPWD:(UInt32)passwor
for (int i=0;i<COMMAND_TIMEOUT_5S;i++) { //receive data or time out in 5 seconds
if ([self.cmdRespQueue count] >= 2)
break;
[NSThread sleepForTimeInterval:0.1f];
[NSThread sleepForTimeInterval:0.001f];
}

if ([self.cmdRespQueue count] < 2) {
Expand Down
83 changes: 75 additions & 8 deletions CS108iOSClient/CSLReader/CSLBleReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@
#import "CSLBleTag.h"
#import "CSLReaderBattery.h"
#import "CSLReaderBarcode.h"
#import "CSLReaderFrequency.h"

#define COMMAND_TIMEOUT_1S 10
#define COMMAND_TIMEOUT_2S 20
#define COMMAND_TIMEOUT_3S 30
#define COMMAND_TIMEOUT_4S 40
#define COMMAND_TIMEOUT_5S 50
#define COMMAND_TIMEOUT_10S 100
#define COMMAND_TIMEOUT_1S 1000
#define COMMAND_TIMEOUT_2S 2000
#define COMMAND_TIMEOUT_3S 3000
#define COMMAND_TIMEOUT_4S 4000
#define COMMAND_TIMEOUT_5S 5000
#define COMMAND_TIMEOUT_10S 10000

#define COMMAND_ANTCYCLE_CONTINUOUS 0xFFFF

Expand Down Expand Up @@ -162,10 +163,76 @@ Insertion/update of tag data is based on binary searching algorithm for better e
Read OEM data that contains product-specific information such as country code, antenna version and frequency channel information
@param intf CSLBleInterface that references to the current reader instance
@param addr Address of the memory location
@param data Pointer to the NSData object that holds the value of the data address
@param data UInt32 that holds the value of the data address
@return TRUE if the operation is successful
*/
- (BOOL)readOEMData:(CSLBleInterface*)intf atAddr:(unsigned short)addr forData:(NSData*)data;
- (BOOL)readOEMData:(CSLBleInterface*)intf atAddr:(unsigned short)addr forData:(UInt32*)data;
/**
Set frequency band based on the region selected
@param frequencySelector channel number selected
@param config channel enable/disable
@param mult_div frequncy multdiv
@param pll_cc pllcc
@return TRUE if the operation is successful
*/
- (BOOL)setFrequencyBand:(UInt32)frequencySelector bandState:(BOOL) config multdiv:(UInt32)mult_div pllcc:(UInt32) pll_cc;
/**
Set hopping frequency based on region selected
@param frequencyInfo CSLReaderFrequency object that initialized baesd ont he OEM data from the reader
@param region Code of the region being selected
@return TRUE if the operation is successful
*/
- (BOOL) SetHoppingChannel:(CSLReaderFrequency*) frequencyInfo RegionCode:(NSString*)region;
/**
Set fixed frequency based on region and channel selected
@param frequencyInfo CSLReaderFrequency object that initialized baesd ont he OEM data from the reader
@param region Code of the region being selected
@param index Index of the selected frequency channel
@return TRUE if the operation is successful
*/
- (BOOL) SetFixedChannel:(CSLReaderFrequency*) frequencyInfo RegionCode:(NSString*)region channelIndex:(UInt32)index;
/**
Set PLLCC based on the region selected
@param region Code of the region being selected
@return PLLCC value of the selected region
*/
- (UInt32) GetPllcc:(NSString*) region;
/**
Write LNA configurations to the reader
@param intf CSLBleInterface that references to the current reader instance
@param rflna_high_comp The rflna_gain setting generates the following RF-LNA gains
0 = 1 dB
2 = 7 dB
3 = 13 dB
@param rflna_gain The iflna_gain setting generates the following IF-LNA gains
0 = 24 dB
1 = 18 dB
3 = 12 dB
7 = 6 dB
@param ifagc_gain The ifagc_gain setting generates the following AGC gain values
0 = -12 dB
4 = -6 dB
6 = 0 dB
7 = 6 dB
@return TRUE if the operation is successful
*/
- (BOOL)setLNAParameters:(CSLBleInterface*)intf rflnaHighComp:(Byte)rflna_high_comp rflnaGain:(Byte)rflna_gain iflnaGain:(Byte)iflna_gain ifagcGain:(Byte)ifagc_gain;
/**
Write Impinj Extensions register
@param tag_Focus If this feature is enabled, once a tag has been singulated it will remain out of the tag population (the tag's session 1 inventoried flag remains in B state) until the inventory operation is complete.
0=disabled
1=enabled
@param fast_id If this feature is enabled and a M4 tag is in the field, then the 6-word M4 TID will be returned along with the EPC when the tag is singulated.
0=disabled
1=enabled
@param blockwrite_mode Determines the maximum number of words to write per BlockWrite transaction with the tag.
0 = Auto-detect (Default). One or two word BlockWrite will be determined automatically.
1 = Force one word BlockWrite. Unconditionally use one word BlockWrites in all cases.
2 = Force two word BlockWrite. Unconditionally use two word BlockWrites in all cases. A protocol error will occur if the tags in the field do not support this feature.
3-15 = Reserved for future use
@return TRUE if the operation is successful
*/
- (BOOL)setImpinjExtension:(Byte)tag_Focus fastId:(Byte)fast_id blockWriteMode:(Byte)blockwrite_mode;
/**
Enable/disable barcode reader
@param enable TRUE/FALSE for turning on/off the barcode reader module
Expand Down
Loading

0 comments on commit 02c5777

Please sign in to comment.