2013-07-05 19 views
8

我需要一个函数didReceiveWriteRequests的示例实现,该函数在中央iOS设备执行'writeValue:'写入数据时在蓝牙iOS外设上运行。其中是iOS蓝牙LE外设管理器的示例didReceiveWriteRequests

但我搜索了网页,找不到示例。 Apple文档仍然没有示例代码。

+0

我已经完成了BLE教程,请分享您的邮件ID。我会为你提供代码。 –

回答

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