konashi를 SDK없이 사용
6867 단어 iOSObjective-CBLE블루투스IoT
공식적으로 제공되는 iOS SDK를 사용하지 않고도 Core Bluetooth에서 직접 연결 및 통신할 수 있습니다.
소리 posted with amazlet at 14.02.04
스위치 과학 매출 랭킹: 17,884
Amazon.co.jp에서 자세히 보기
konashi의 SDK는 Core Bluetooth의 얇은 래퍼이므로 전혀 SDK를 사용하여 불편함을 느끼지 않습니다. SDK없이 연결할 수 있음을 알 수 있다는 장점이 있을까 생각합니다.
방법
매우 간단합니다. 우선, 보통 2대의 iOS 디바이스간에 접속·통신할 수 있도록 Core Bluetooth로 만들어 두고, 나머지는
중앙 (iOS 앱)에서 주변 장치 (konashi)를 찾을 때 서비스의 UUID로 "0xFF00"을 사용합니다.
그냥.
그러나 genuuid 명령에서 생성된 UUID와 같이 문자열에서 CBUUID 객체 생성은
CBUUID *uuid = [CBUUID UUIDWithString:@"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx"];
하지만,
konashi와 같이 16진수 UUID에서 CBUUID 객체를 생성하는 경우 다음을 수행합니다.
UInt16 temp = uuid16 << 8;
temp |= (uuid16 >> 8);
NSData *data = [[NSData alloc] initWithBytes:(char *)&temp length:2];
CBUUID *uuid = [CBUUID UUIDWithData:data];
그리고는, scanForPeripheralsWithServices:options: 하는 때에 이 서비스를 지정하는 것도 좋고, centralManager:didDiscoverPeripheral:advertisementData:RSSI: 가 불려 갔을 때에 이 서비스를 제공하고 있을지 어떨지를 판정하는 것도 좋습니다.
konashi의 characteristic
캐릭터리스틱은 konashi와 상호 작용하는 정보의 종류별로 정의됩니다.
// PIO
#define KONASHI_PIO_SETTING_UUID 0x3000
#define KONASHI_PIO_PULLUP_UUID 0x3001
#define KONASHI_PIO_OUTPUT_UUID 0x3002
#define KONASHI_PIO_INPUT_NOTIFICATION_UUID 0x3003
#define KONASHI_PIO_INPUT_NOTIFICATION_READ_LEN 1
// PWM
#define KONASHI_PWM_CONFIG_UUID 0x3004
#define KONASHI_PWM_PARAM_UUID 0x3005
#define KONASHI_PWM_DUTY_UUID 0x3006
// Analog
#define KONASHI_ANALOG_DRIVE_UUID 0x3007
#define KONASHI_ANALOG_READ0_UUID 0x3008
#define KONASHI_ANALOG_READ1_UUID 0x3009
#define KONASHI_ANALOG_READ2_UUID 0x300A
#define KONASHI_ANALOG_READ_LEN 2
// I2C
#define KONASHI_I2C_CONFIG_UUID 0x300B
#define KONASHI_I2C_START_STOP_UUID 0x300C
#define KONASHI_I2C_WRITE_UUID 0x300D
#define KONASHI_I2C_READ_PARAM_UIUD 0x300E
#define KONASHI_I2C_READ_UUID 0x300F
// UART
#define KONASHI_UART_CONFIG_UUID 0x3010
#define KONASHI_UART_BAUDRATE_UUID 0x3011
#define KONASHI_UART_TX_UUID 0x3012
#define KONASHI_UART_RX_NOTIFICATION_UUID 0x3013
#define KONASHI_UART_RX_NOTIFICATION_READ_LEN 1
// Hardware
#define KONASHI_HARDWARE_RESET_UUID 0x3014
#define KONASHI_HARDWARE_LOW_BAT_NOTIFICATION_UUID 0x3015
#define KONASHI_HARDWARE_LOW_BAT_NOTIFICATION_READ_LEN 1
예를 들어 iOS 앱과 konashi를 연결한 상태에서 konashi의 스위치를 누르면,
KONASHI_PIO_INPUT_NOTIFICATION_UUID 0x3003
라고 정의되고 있는 캐릭터리스틱이 peripheral:didUpdateValueForCharacteristic:error: 로 관측됩니다.
참고 정보
konashi iOS SDK는 소스가 완전히 공개되어 있으므로 직접 구현하는 경우에 유용합니다.
CBUUID *uuid = [CBUUID UUIDWithString:@"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx"];
UInt16 temp = uuid16 << 8;
temp |= (uuid16 >> 8);
NSData *data = [[NSData alloc] initWithBytes:(char *)&temp length:2];
CBUUID *uuid = [CBUUID UUIDWithData:data];
캐릭터리스틱은 konashi와 상호 작용하는 정보의 종류별로 정의됩니다.
// PIO
#define KONASHI_PIO_SETTING_UUID 0x3000
#define KONASHI_PIO_PULLUP_UUID 0x3001
#define KONASHI_PIO_OUTPUT_UUID 0x3002
#define KONASHI_PIO_INPUT_NOTIFICATION_UUID 0x3003
#define KONASHI_PIO_INPUT_NOTIFICATION_READ_LEN 1
// PWM
#define KONASHI_PWM_CONFIG_UUID 0x3004
#define KONASHI_PWM_PARAM_UUID 0x3005
#define KONASHI_PWM_DUTY_UUID 0x3006
// Analog
#define KONASHI_ANALOG_DRIVE_UUID 0x3007
#define KONASHI_ANALOG_READ0_UUID 0x3008
#define KONASHI_ANALOG_READ1_UUID 0x3009
#define KONASHI_ANALOG_READ2_UUID 0x300A
#define KONASHI_ANALOG_READ_LEN 2
// I2C
#define KONASHI_I2C_CONFIG_UUID 0x300B
#define KONASHI_I2C_START_STOP_UUID 0x300C
#define KONASHI_I2C_WRITE_UUID 0x300D
#define KONASHI_I2C_READ_PARAM_UIUD 0x300E
#define KONASHI_I2C_READ_UUID 0x300F
// UART
#define KONASHI_UART_CONFIG_UUID 0x3010
#define KONASHI_UART_BAUDRATE_UUID 0x3011
#define KONASHI_UART_TX_UUID 0x3012
#define KONASHI_UART_RX_NOTIFICATION_UUID 0x3013
#define KONASHI_UART_RX_NOTIFICATION_READ_LEN 1
// Hardware
#define KONASHI_HARDWARE_RESET_UUID 0x3014
#define KONASHI_HARDWARE_LOW_BAT_NOTIFICATION_UUID 0x3015
#define KONASHI_HARDWARE_LOW_BAT_NOTIFICATION_READ_LEN 1
예를 들어 iOS 앱과 konashi를 연결한 상태에서 konashi의 스위치를 누르면,
KONASHI_PIO_INPUT_NOTIFICATION_UUID 0x3003
라고 정의되고 있는 캐릭터리스틱이 peripheral:didUpdateValueForCharacteristic:error: 로 관측됩니다.
참고 정보
konashi iOS SDK는 소스가 완전히 공개되어 있으므로 직접 구현하는 경우에 유용합니다.
※iOS와 연계하는 디바이스의 SDK는 대체로 빌드된 정적 라이브러리 밖에 제공되지 않는 경우가 많다
konashi는 무엇입니까? 라고 하는 분, 혹은konashi의 iOS SDK를 사용한 제휴 방법을 알고 싶은 분은 아래 기사를 참조해 주세요.
서비스나 캐릭터리스틱이란 무엇인가? 라는 분은 이쪽을.
konashi는 최근 아마존에서도 구입할 수있는 것 같습니다.
소리 posted with amazlet at 14.02.04
스위치 과학 매출 랭킹: 17,884
Amazon.co.jp에서 자세히 보기
기타, BLE 관련 기사
Reference
이 문제에 관하여(konashi를 SDK없이 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shu223/items/16170b54070b25c67b0b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)