mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-19 16:21:06 +00:00
added methods to parse BD ADDR
This commit is contained in:
parent
855942a4c2
commit
da5c17bf8b
@ -74,11 +74,12 @@ typedef enum {
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void) setAddress:(bd_addr_t*)addr;
|
- (void) setAddress:(bd_addr_t*)addr;
|
||||||
|
- (BOOL) setAddressFromString:(NSString *) addressString;
|
||||||
- (bd_addr_t*) address;
|
- (bd_addr_t*) address;
|
||||||
- (NSString *) toString;
|
- (NSString *) toString;
|
||||||
- (NSString *) addressString;
|
- (NSString *) addressString;
|
||||||
+ (NSString *) stringForAddress:(bd_addr_t*) address;
|
+ (NSString *) stringForAddress:(bd_addr_t*) address;
|
||||||
|
+ (BOOL) address:(bd_addr_t *) address fromString:(NSString *) addressString;
|
||||||
@property (readonly) BluetoothDeviceType deviceType;
|
@property (readonly) BluetoothDeviceType deviceType;
|
||||||
@property (readonly) NSString * nameOrAddress;
|
@property (readonly) NSString * nameOrAddress;
|
||||||
@property (nonatomic, copy) NSString * name;
|
@property (nonatomic, copy) NSString * name;
|
||||||
|
@ -58,6 +58,10 @@
|
|||||||
BD_ADDR_COPY( &_address, newAddr);
|
BD_ADDR_COPY( &_address, newAddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL) setAddressFromString:(NSString *) addressString{
|
||||||
|
return [BTDevice address:&_address fromString:addressString];
|
||||||
|
}
|
||||||
|
|
||||||
- (bd_addr_t*) address{
|
- (bd_addr_t*) address{
|
||||||
return &_address;
|
return &_address;
|
||||||
}
|
}
|
||||||
@ -68,6 +72,32 @@
|
|||||||
addr[3], addr[4], addr[5]];
|
addr[3], addr[4], addr[5]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
+ (BOOL) address:(bd_addr_t *)address fromString:(NSString *) addressString{
|
||||||
|
// support both : and - or NOTHING as separator
|
||||||
|
addressString = [addressString stringByReplacingOccurrencesOfString:@":" withString:@""];
|
||||||
|
addressString = [addressString stringByReplacingOccurrencesOfString:@"-" withString:@""];
|
||||||
|
if ([addressString length] != 12) return NO;
|
||||||
|
|
||||||
|
unsigned int bd_addr_buffer[BD_ADDR_LEN]; //for sscanf, integer needed
|
||||||
|
// reset result buffer
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < BD_ADDR_LEN; i++) {
|
||||||
|
bd_addr_buffer[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// parse
|
||||||
|
int result = sscanf([addressString UTF8String], "%2x%2x%2x%2x%2x%2x", &bd_addr_buffer[0], &bd_addr_buffer[1], &bd_addr_buffer[2],
|
||||||
|
&bd_addr_buffer[3], &bd_addr_buffer[4], &bd_addr_buffer[5]);
|
||||||
|
// store
|
||||||
|
if (result == 6){
|
||||||
|
for (i = 0; i < BD_ADDR_LEN; i++) {
|
||||||
|
(*address)[i] = (uint8_t) bd_addr_buffer[i];
|
||||||
|
}
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
- (NSString *) nameOrAddress{
|
- (NSString *) nameOrAddress{
|
||||||
if (name) return name;
|
if (name) return name;
|
||||||
return [self addressString];
|
return [self addressString];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user