bool BLECharacteristicImp::write(const unsigned char value[], 
                                 uint16_t length)
{
    int retval = 0;
    bt_conn_t* conn = NULL;
    
    if (true == BLEUtils::isLocalBLE(_ble_device))
    {
        // GATT server can't write
        return false;
    }
    
    conn = bt_conn_lookup_addr_le(_ble_device.bt_le_address());
    if (NULL == conn)
    {
        return false;
    }
    
    // Send read request
    retval = bt_gatt_write_without_response(conn, 
                                            _value_handle,
                                            value, 
                                            length, 
                                            false);
    bt_conn_unref(conn);
    return (0 == retval);
}
bool BLECharacteristic::write(BLEPeripheralHelper &peripheral, 
                              const unsigned char value[], 
                              uint16_t length)
{
    int retval = 0;
    bt_conn_t* conn = NULL;
    
    conn = bt_conn_lookup_addr_le(peripheral.bt_le_address());
    if (NULL == conn)
    {
        return false;
    }
    
    // Send read request
    retval = bt_gatt_write_without_response(conn, 
                                            peripheral.valueHandle(this),
                                            value, length, false);
    bt_conn_unref(conn);
    return (0 == retval);
}
示例#3
0
文件: main.c 项目: lwehmeier/zephyr
static int cmd_gatt_write_signed(int argc, char *argv[])
{
	int err;
	uint16_t handle;
	uint8_t data;

	if (!default_conn) {
		printk("Not connected\n");
		return 0;
	}

	if (argc < 3) {
		return -EINVAL;
	}

	handle = strtoul(argv[1], NULL, 16);
	data = strtoul(argv[2], NULL, 16);

	err = bt_gatt_write_without_response(default_conn, handle, &data,
					     sizeof(data), true);
	printk("Write Complete (err %d)\n", err);

	return 0;
}