diff options
-rw-r--r-- | ble.c | 15 | ||||
-rw-r--r-- | dfu.c | 3 | ||||
-rw-r--r-- | nrfdfu.c | 1 |
3 files changed, 17 insertions, 2 deletions
@@ -553,13 +553,13 @@ ble_send_cp (BLE * ble, uint8_t * buf, size_t len) } - int ble_send_cp_noresp (BLE * ble, uint8_t * buf, size_t len) { - printf ("Sending control:\n"); + printf ("Sending control (but ignoring error):\n"); hexdump (buf, len); +#if 0 if (!bt_gatt_client_write_without_response (ble->gatt, ble->cp_handle, false, buf, len)) { @@ -567,6 +567,17 @@ ble_send_cp_noresp (BLE * ble, uint8_t * buf, size_t len) return EXIT_FAILURE; } return EXIT_SUCCESS; +#else + if (!bt_gatt_client_write_value (ble->gatt, ble->cp_handle, buf, len, + write_cb, ble, NULL)) + { + printf ("Failed to initiate write procedure\n"); + return EXIT_FAILURE; + } + + mainloop_run (); + return EXIT_SUCCESS; +#endif } @@ -217,6 +217,9 @@ dfu (const char *bdaddr, const char *type, const char *version, uint8_t * dat, break; #endif + buf[0] = OP_CODE_IMAGE_SIZE_REQ; + ble_send_cp (b, buf, 1); + ble_wait_setup (b, OP_CODE_VALIDATE); buf[0] = OP_CODE_VALIDATE; if (ble_send_cp (b, buf, 1)) @@ -76,6 +76,7 @@ main (int argc, char *argv[]) if (!dfu (bdaddr, m->type, m->dfu_version, dat, dat_size, bin, bin_size)) return EXIT_SUCCESS; + sleep(3); } |