Skip to content

Commit 04b5ed2

Browse files
committed
LE Scan: modify message codes
bug: v/82820 Modify message codes so its safe when client and server have different version of codes. Signed-off-by: Zihao Gao <[email protected]>
1 parent f3d2637 commit 04b5ed2

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

service/ipc/socket/include/bt_message_scan.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ BT_SCAN_MESSAGE_START,
2626

2727
#ifdef __BT_CALLBACK_CODE__
2828
BT_SCAN_CALLBACK_START,
29-
BT_LE_ON_SCAN_RESULT,
29+
BT_LE_ON_SCAN_RESULT_UNUSED, // Unused, but kept to maintain enum stability
3030
BT_LE_ON_SCAN_START_STATUS,
3131
BT_LE_ON_SCAN_STOPPED,
3232
BT_SCAN_CALLBACK_END,
@@ -46,7 +46,9 @@ BT_SCAN_MESSAGE_START,
4646

4747
enum {
4848
BLE_SCAN_SUBCODE_START = 0,
49-
BLE_SCAN_SUBCODE_BATCH_SCAN_CALLBACK = 1,
49+
BLE_SCAN_SUBCODE_BATCH_SCAN_CALLBACK_UNUSED = 1, // Unused
50+
BLE_SCAN_SUBCODE_SCAN_CALLBACK = 2,
51+
BLE_SCAN_SUBCODE_BATCH_SCAN_CALLBACK = 3,
5052
BLE_SCAN_SUBCODE_END = BT_IPC_CODE_SUBCODE_MAX_NUM,
5153
};
5254

@@ -56,6 +58,7 @@ BT_SCAN_MESSAGE_START,
5658

5759
#define BT_IPC_CODE_CALLBACK_BLE_SCAN_BEGIN BT_IPC_CODE(BT_IPC_CODE_TYPE_CALLBACK, BT_IPC_CODE_GROUP_BLE_SCAN, 0)
5860
// TODO: Add new BT IPC Code sequentially
61+
#define BT_LE_ON_SCAN_RESULT BT_IPC_CODE(BT_IPC_CODE_TYPE_CALLBACK, BT_IPC_CODE_GROUP_BLE_SCAN, BLE_SCAN_SUBCODE_SCAN_CALLBACK)
5962
#define BT_LE_ON_BATCH_SCAN_RESULT BT_IPC_CODE(BT_IPC_CODE_TYPE_CALLBACK, BT_IPC_CODE_GROUP_BLE_SCAN, BLE_SCAN_SUBCODE_BATCH_SCAN_CALLBACK)
6063
#define BT_IPC_CODE_CALLBACK_BLE_SCAN_END BT_IPC_CODE(BT_IPC_CODE_TYPE_CALLBACK, BT_IPC_CODE_GROUP_BLE_SCAN, BT_IPC_CODE_SUBCODE_MAX_NUM)
6164

service/ipc/socket/src/bt_socket_scan.c

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -271,14 +271,7 @@ int bt_socket_client_scan_callback(service_poll_t* poll,
271271
int fd, bt_instance_t* ins, bt_message_packet_t* packet, bool is_async)
272272
{
273273
switch (packet->code) {
274-
case BT_LE_ON_SCAN_RESULT: {
275-
bt_scan_remote_t* scan = INT2PTR(bt_scan_remote_t*) packet->scan_cb._on_scan_result_cb.scanner;
276-
ble_scan_result_t* result = &packet->scan_cb._on_scan_result_cb.result;
277-
ble_scan_result_t* tmp = malloc(sizeof(ble_scan_result_t) + result->length);
278-
memcpy(tmp, result, sizeof(ble_scan_result_t));
279-
memcpy(tmp->adv_data, packet->scan_cb._on_scan_result_cb.adv_data, result->length);
280-
scan->callback->on_scan_result(scan, tmp);
281-
free(tmp);
274+
case BT_LE_ON_SCAN_RESULT_UNUSED: {
282275
break;
283276
}
284277
case BT_LE_ON_SCAN_START_STATUS: {
@@ -320,6 +313,16 @@ int bt_socket_client_scan_callback(service_poll_t* poll,
320313
}
321314
break;
322315
}
316+
case BLE_SCAN_SUBCODE_SCAN_CALLBACK: {
317+
bt_scan_remote_t* scan = INT2PTR(bt_scan_remote_t*) packet->scan_cb._on_scan_result_cb.scanner;
318+
ble_scan_result_t* result = &packet->scan_cb._on_scan_result_cb.result;
319+
ble_scan_result_t* tmp = malloc(sizeof(ble_scan_result_t) + result->length);
320+
memcpy(tmp, result, sizeof(ble_scan_result_t));
321+
memcpy(tmp->adv_data, packet->scan_cb._on_scan_result_cb.adv_data, result->length);
322+
scan->callback->on_scan_result(scan, tmp);
323+
free(tmp);
324+
break;
325+
}
323326
default:
324327
return BT_STATUS_PARM_INVALID;
325328
}

0 commit comments

Comments
 (0)