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); }
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; }