2013-07-05 6 views
8

Мне нужен пример реализации функции didReceiveWriteRequests, которая работает на периферии периферии Bluetooth iOS, когда данные записываются на нее центральным устройством iOS, создающим «writeValue:».где пример iOS Bluetooth LE периферийныйManager didReceiveWriteRequests

Но я искал веб-сайт и не могу найти пример. В документах Apple все еще нет образца кода.

+0

У меня есть учебник BLE, пожалуйста, поделитесь своим идентификатором почты. я дам вам код. –

ответ

12

У меня это работает. Вот мой рабочий код:

// Processes write command received from a central. 
- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests 
{ 

    CBATTRequest*  request = [requests objectAtIndex: 0]; 
    NSData*    request_data = request.value; 
    CBCharacteristic* write_char = request.characteristic; 
    //CBCentral*   write_central = request.central; 
    //NSUInteger   multi_message_offset = request.offset; 

    // Face commands this PWR RX to advertise serno UUID? 
    int total_write_requests = 0; 
    if([ write_char.UUID isEqual: [CBUUID UUIDWithString: YOUR_CHARACTERISTIC_UUID]]) 
    { 


     // Read desired new_state data from central: 
     unsigned char* new_state = (unsigned char*)[request_data bytes]; 
     my_new_state = new_state[0]; 
     #endif 
     NSLog(@"  - advertise serno UUID: %s", my_new_state ? "TRUE" : "FALSE"); 

     // Select UUID that includes serno of PWR RX, for advertisements: 

     ++total_write_requests; 
    } 

    if(total_write_requests) 
     [peripheral respondToRequest:request withResult:CBATTErrorSuccess]; // result = success 
    else 
    { 
     NSLog(@"_no_write_request_FAULT !!"); 
    } 
} 
+2

Можете ли вы, как инициировать запрос из центра? –

+1

Это также не учитывает все запросы в массиве? – JuJoDi

Смежные вопросы