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;
|
||||
- (BOOL) setAddressFromString:(NSString *) addressString;
|
||||
- (bd_addr_t*) address;
|
||||
- (NSString *) toString;
|
||||
- (NSString *) addressString;
|
||||
+ (NSString *) stringForAddress:(bd_addr_t*) address;
|
||||
|
||||
+ (BOOL) address:(bd_addr_t *) address fromString:(NSString *) addressString;
|
||||
@property (readonly) BluetoothDeviceType deviceType;
|
||||
@property (readonly) NSString * nameOrAddress;
|
||||
@property (nonatomic, copy) NSString * name;
|
||||
|
@ -58,6 +58,10 @@
|
||||
BD_ADDR_COPY( &_address, newAddr);
|
||||
}
|
||||
|
||||
- (BOOL) setAddressFromString:(NSString *) addressString{
|
||||
return [BTDevice address:&_address fromString:addressString];
|
||||
}
|
||||
|
||||
- (bd_addr_t*) address{
|
||||
return &_address;
|
||||
}
|
||||
@ -68,6 +72,32 @@
|
||||
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{
|
||||
if (name) return name;
|
||||
return [self addressString];
|
||||
|
Loading…
x
Reference in New Issue
Block a user