Central writing characteristic to Peripheral (iOS Core Bluetooth)

不想你离开。 提交于 2019-12-03 09:10:09
Tushar Goyal

Are you still stuck with the problem?

I guess your problem is persisting due to the fact that you have not implemented didReceiveWriteRequests method.

// 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 !!");
    }
}

Comment out the [peripheral respondToRequest:request withResult:CBATTErrorSuccess];, as in your case you are using CBCharacteristicWriteWithoutResponse.

Code taken from: where is example of iOS Bluetooth LE peripheralManager didReceiveWriteRequests

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!