migration: first pass over examples/embedded

This commit is contained in:
Matthias Ringwald 2016-03-11 15:48:04 +01:00
parent 7cadd387f4
commit 785a493911
6 changed files with 237 additions and 77 deletions

View File

@ -1,23 +0,0 @@
@@
expression dest, src;
@@
- bt_flip_addr(dest,src)
+ reverse_bd_addr(src, dest)
@@
expression handle;
@@
- hci_remote_eSCO_supported(handle)
+ hci_remote_esco_supported(handle)
@@
expression event, cmd;
@@
- COMMAND_COMPLETE_EVENT(event,cmd)
+ HCI_EVENT_IS_COMMAND_COMPLETE(event,cmd)
@@
expression event, cmd;
@@
- COMMAND_STATUS_EVENT(event,cmd)
+ HCI_EVENT_IS_COMMAND_STATUS(event,cmd)

View File

@ -1,54 +0,0 @@
-e 's/SDP_EVENT_QUERY_COMPLETE/SDP_EVENT_QUERY_COMPLETE/g'
-e 's/SDP_EVENT_QUERY_RFCOMM_SERVICE/SDP_EVENT_QUERY_RFCOMM_SERVICE/g'
-e 's/SDP_EVENT_QUERY_ATTRIBUTE_BYTE/SDP_EVENT_QUERY_ATTRIBUTE_BYTE/g'
-e 's/SDP_EVENT_QUERY_ATTRIBUTE_VALUE/SDP_EVENT_QUERY_ATTRIBUTE_VALUE/g'
-e 's/SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE/SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE/g'
-e 's/GATT_EVENT_QUERY_COMPLETE/GATT_EVENT_QUERY_COMPLETE/g'
-e 's/GATT_EVENT_SERVICE_QUERY_RESULT/GATT_EVENT_SERVICE_QUERY_RESULT/g'
-e 's/GATT_EVENT_CHARACTERISTIC_QUERY_RESULT/GATT_EVENT_CHARACTERISTIC_QUERY_RESULT/g'
-e 's/GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT/GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT/g'
-e 's/GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT/GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT/g'
-e 's/GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT/GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT/g'
-e 's/GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT/GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT/g'
-e 's/GATT_EVENT_NOTIFICATION/GATT_EVENT_NOTIFICATION/g'
-e 's/GATT_EVENT_INDICATION/GATT_EVENT_INDICATION/g'
-e 's/GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT/GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT/g'
-e 's/GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT/GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT/g'
-e 's/GATT_EVENT_MTU/GATT_EVENT_MTU/g'
-e 's/ATT_EVENT_MTU_EXCHANGE_COMPLETE/ATT_EVENT_MTU_EXCHANGE_COMPLETE/g'
-e 's/ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE/ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE/g'
-e 's/SM_EVENT_JUST_WORKS_REQUEST/SM_EVENT_JUST_WORKS_REQUEST/g'
-e 's/SM_EVENT_JUST_WORKS_CANCEL/SM_EVENT_JUST_WORKS_CANCEL/g'
-e 's/SM_EVENT_PASSKEY_DISPLAY_NUMBER/SM_EVENT_PASSKEY_DISPLAY_NUMBER/g'
-e 's/SM_EVENT_PASSKEY_DISPLAY_CANCEL/SM_EVENT_PASSKEY_DISPLAY_CANCEL/g'
-e 's/SM_EVENT_PASSKEY_INPUT_NUMBER/SM_EVENT_PASSKEY_INPUT_NUMBER/g'
-e 's/SM_EVENT_PASSKEY_INPUT_CANCEL/SM_EVENT_PASSKEY_INPUT_CANCEL/g'
-e 's/SM_EVENT_IDENTITY_RESOLVING_STARTED/SM_EVENT_IDENTITY_RESOLVING_STARTED/g'
-e 's/SM_EVENT_IDENTITY_RESOLVING_FAILED/SM_EVENT_IDENTITY_RESOLVING_FAILED/g'
-e 's/SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED/SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED/g'
-e 's/SM_EVENT_AUTHORIZATION_REQUEST/SM_EVENT_AUTHORIZATION_REQUEST/g'
-e 's/SM_EVENT_AUTHORIZATION_RESULT/SM_EVENT_AUTHORIZATION_RESULT/g'
-e 's/GAP_EVENT_SECURITY_LEVEL/GAP_EVENT_SECURITY_LEVEL/g'
-e 's/GAP_EVENT_DEDICATED_BONDING_COMPLETED/GAP_EVENT_DEDICATED_BONDING_COMPLETED/g'
-e 's/GAP_EVENT_ADVERTISING_REPORT/GAP_EVENT_ADVERTISING_REPORT/g'
-e 's/ANCS_EVENT_CLIENT_CONNECTED/ANCS_EVENT_CLIENT_CONNECTED/g'
-e 's/ANCS_EVENT_CLIENT_NOTIFICATION/ANCS_EVENT_CLIENT_NOTIFICATION/g'
-e 's/ANCS_EVENT_CLIENT_DISCONNECTED/ANCS_EVENT_CLIENT_DISCONNECTED/g'
--
#define READ_BT_16( buffer, pos) ( ((uint16_t) buffer[pos]) | (((uint16_t)buffer[(pos)+1]) << 8))
#define READ_BT_24( buffer, pos) ( ((uint32_t) buffer[pos]) | (((uint32_t)buffer[(pos)+1]) << 8) | (((uint32_t)buffer[(pos)+2]) << 16))
#define READ_BT_32( buffer, pos) ( ((uint32_t) buffer[pos]) | (((uint32_t)buffer[(pos)+1]) << 8) | (((uint32_t)buffer[(pos)+2]) << 16) | (((uint32_t) buffer[(pos)+3])) << 24)
#define READ_NET_16( buffer, pos) ( ((uint16_t) buffer[(pos)+1]) | (((uint16_t)buffer[ pos ]) << 8))
#define READ_NET_32( buffer, pos) ( ((uint32_t) buffer[(pos)+3]) | (((uint32_t)buffer[(pos)+2]) << 8) | (((uint32_t)buffer[(pos)+1]) << 16) | (((uint32_t) buffer[pos])) << 24)
#define READ_L2CAP_LENGTH(buffer) ( READ_BT_16(buffer, 4))
#define READ_L2CAP_CHANNEL_ID(buffer) ( READ_BT_16(buffer, 6))
void bt_store_16(uint8_t *buffer, uint16_t pos, uint16_t value);
void bt_store_32(uint8_t *buffer, uint16_t pos, uint32_t value);
void net_store_16(uint8_t *buffer, uint16_t pos, uint16_t value);
void net_store_32(uint8_t *buffer, uint16_t pos, uint32_t value);
find . -type f -print0 | xargs -0 sed -i -e 's/READ_BT_16/little_endian_read_16/g' -e 's/READ_BT_24/little_endian_read_24/g' -e 's/READ_BT_32/little_endian_read_32/g' -e 's/READ_NET_16/big_endian_read_16/g' -e 's/READ_NET_32/big_endian_read_32/g' -e 's/bt_store_16/little_endian_store_16/g' -e 's/bt_store_32/little_endian_store_32/g' -e 's/net_store_16/big_endian_store_16/g' -e 's/net_store_32/big_endian_store_32/g'

View File

@ -0,0 +1,32 @@
#!/bin/bash
set -e
set -u
USAGE="Usage: conversion_to_1.0.sh src-path dest-path"
echo "BTstack conversion to v1.0 helper"
echo "BlueKitchen GmbH, 2016"
echo
# command line checks, bash
if [ $# -ne 2 ]; then
echo ${USAGE}
exit 0
fi
SRC=$1
DEST=$2
echo "Creating copy of $SRC at $DEST"
cp -r $SRC/ $DEST
echo "Updating function calls"
# simple function rename
find $DEST -type f -print0 | xargs -0 sed -i -f convert.sed
# complext function rename using coccinelle
command -v spatch >/dev/null 2>&1 || { echo >&2 "spatch from cocinelle required but not installed. Aborting."; exit 1; }
spatch --sp-file convert.cocci --in-place --dir $DEST > /dev/null # 2>&1
echo "Done. Good luck!"

View File

@ -0,0 +1,69 @@
@@
expression dest, src;
@@
- bt_flip_addr(dest,src)
+ reverse_bd_addr(src, dest)
@@
expression handle;
@@
- hci_remote_eSCO_supported(handle)
+ hci_remote_esco_supported(handle)
@@
expression packet_handler;
@@
- hci_register_packet_handler(packet_handler);
+ static btstack_packet_callback_registration_t callback_registration;
+ callback_registration.callback = packet_handler;
+ hci_add_event_handler(&callback_registration);
@@
typedef uint8_t, uint16_t;
identifier fn, packet_type, packet, size;
@@
- void fn(uint8_t packet_type, uint8_t * packet, uint16_t size)
+ void fn(uint8_t packet_type, uint16_t channel, uint8_t * packet, uint16_t size)
{ ... }
@@
// typedef uint8_t, uint16_t;
identifier fn, connection, packet_type, channel, packet, size;
@@
- void fn(void * connection, uint8_t packet_type, uint16_t channel, uint8_t * packet, uint16_t size)
+ void fn(uint8_t packet_type, uint16_t channel, uint8_t * packet, uint16_t size)
{ ... }
@@
expression handle;
@@
- hci_can_send_sco_packet_now(handle)
+ hci_can_send_sco_packet_now()
@@
expression uuid;
@@
- printUUID128(uuid)
+ printf("%s", uuid128_to_str(uuid))
@@
expression addr;
@@
- print_bd_addr(addr)
+ printf("%s", bd_addr_to_str(addr))
@@
expression str, addr;
typedef bd_addr_t;
@@
- sscan_bd_addr((uint8_t*)str, addr)
+ sscanf_bd_addr(str, addr)
@@
typedef timer;
typedef btstack_timer_source_t;
identifier fn, ts;
@@
- fn(struct timer * ts)
+ fn(btstack_timer_source_t * ts)
{ ... }

View File

@ -0,0 +1,135 @@
# sed script
# DEFINES
s/ANCS_CLIENT_CONNECTED/ANCS_EVENT_CLIENT_CONNECTED/g
s/ANCS_CLIENT_DISCONNECTED/ANCS_EVENT_CLIENT_DISCONNECTED/g
s/ANCS_CLIENT_NOTIFICATION/ANCS_EVENT_CLIENT_NOTIFICATION/g
s/ATT_HANDLE_VALUE_INDICATION_COMPLETE/ATT_EVENT_HANDLE_VALUE_INDICATION_COMPLETE/g
s/ATT_MTU_EXCHANGE_COMPLETE/ATT_EVENT_MTU_EXCHANGE_COMPLETE/g
s/COMMAND_COMPLETE_EVENT/HCI_EVENT_IS_COMMAND_COMPLETE/g
s/COMMAND_STATUS_EVENT/HCI_EVENT_IS_COMMAND_STATUS/g
s/GAP_LE_ADVERTISING_REPORT/GAP_EVENT_ADVERTISING_REPORT/g
s/GAP_DEDICATED_BONDING_COMPLETED/GAP_EVENT_DEDICATED_BONDING_COMPLETED/g
s/GAP_SECURITY_LEVEL/GAP_EVENT_SECURITY_LEVEL/g
s/GATT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT/GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT/g
s/GATT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT/GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT/g
s/GATT_CHARACTERISTIC_QUERY_RESULT/GATT_EVENT_CHARACTERISTIC_QUERY_RESULT/g
s/GATT_CHARACTERISTIC_VALUE_QUERY_RESULT/GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT/g
s/GATT_INCLUDED_SERVICE_QUERY_RESULT/GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT/g
s/GATT_INDICATION/GATT_EVENT_INDICATION/g
s/GATT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT/GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT/g
s/GATT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT/GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT/g
s/GATT_MTU/GATT_EVENT_MTU/g
s/GATT_NOTIFICATION/GATT_EVENT_NOTIFICATION/g
s/DAEMON_EVENT_HCI_PACKET_SENT/HCI_EVENT_TRANSPORT_PACKET_SENT/g
s/GATT_QUERY_COMPLETE/GATT_EVENT_QUERY_COMPLETE/g
s/GATT_SERVICE_QUERY_RESULT/GATT_EVENT_SERVICE_QUERY_RESULT/g
s/SDP_EVENT_QUERY_ATTRIBUTE_BYTE/SDP_EVENT_QUERY_ATTRIBUTE_BYTE/g
s/SDP_EVENT_QUERY_ATTRIBUTE_VALUE/SDP_EVENT_QUERY_ATTRIBUTE_VALUE/g
s/SDP_EVENT_QUERY_COMPLETE/SDP_EVENT_QUERY_COMPLETE/g
s/SDP_EVENT_QUERY_RFCOMM_SERVICE/SDP_EVENT_QUERY_RFCOMM_SERVICE/g
s/SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE/SDP_EVENT_QUERY_SERVICE_RECORD_HANDLE/g
s/SM_EVENT_AUTHORIZATION_REQUEST/SM_EVENT_AUTHORIZATION_REQUEST/g
s/SM_EVENT_AUTHORIZATION_RESULT/SM_EVENT_AUTHORIZATION_RESULT/g
s/SM_EVENT_IDENTITY_RESOLVING_FAILED/SM_EVENT_IDENTITY_RESOLVING_FAILED/g
s/SM_EVENT_IDENTITY_RESOLVING_STARTED/SM_EVENT_IDENTITY_RESOLVING_STARTED/g
s/SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED/SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED/g
s/SM_EVENT_JUST_WORKS_CANCEL/SM_EVENT_JUST_WORKS_CANCEL/g
s/SM_EVENT_JUST_WORKS_REQUEST/SM_EVENT_JUST_WORKS_REQUEST/g
s/SM_EVENT_PASSKEY_DISPLAY_CANCEL/SM_EVENT_PASSKEY_DISPLAY_CANCEL/g
s/SM_EVENT_PASSKEY_DISPLAY_NUMBER/SM_EVENT_PASSKEY_DISPLAY_NUMBER/g
s/SM_EVENT_PASSKEY_INPUT_CANCEL/SM_EVENT_PASSKEY_INPUT_CANCEL/g
s/SM_EVENT_PASSKEY_INPUT_NUMBER/SM_EVENT_PASSKEY_INPUT_NUMBER/g
s/BTSTACK_EVENT_REMOTE_NAME_CACHED/DAEMON_EVENT_REMOTE_NAME_CACHED/g
# Functions/Macros
s/att_server_can_send/att_server_can_send_packet_now/g
s/BD_ADDR_CMP/bd_addr_cmp/g
s/bt_store_16/little_endian_store_16/g
s/bt_store_24/little_endian_store_24/g
s/bt_store_32/little_endian_store_32/g
s/hci_discoverable_control/gap_discoverable_control/g
s/le_central_connect/gap_connect/g
s/le_central_connect_cancel/gap_connect_cancel/g
s/le_central_set_scan_parameters/gap_set_scan_parameters/g
s/le_central_start_scan/gap_start_scan/g
s/le_central_stop_scan/gap_stop_scan/g
s/net_store_16/big_endian_store_16/g
s/net_store_24/big_endian_store_24/g
s/net_store_32/big_endian_store_32/g
s/READ_BT_16/little_endian_read_16/g
s/READ_BT_24/little_endian_read_24/g
s/READ_BT_32/little_endian_read_32/g
s/READ_NET_16/big_endian_read_16/g
s/READ_NET_24/big_endian_read_24/g
s/READ_NET_32/big_endian_read_32/g
s/rfcomm_accept_connection_internal/rfcomm_accept_connection/g
s/rfcomm_register_service_internal/rfcomm_register_service/g
s/rfcomm_send_internal/rfcomm_send/g
s/rfcomm_disconnect_internal/rfcomm_disconnect/g
s/run_loop_add_timer/btstack_run_loop_add_timer/g
s/run_loop_get_time_ms/btstack_run_loop_get_time_ms/g
s/run_loop_set_timer/btstack_run_loop_set_timer/g
s/sdp_register_service_internal/sdp_register_service/g
s/swap32/reverse_32/g
s/swap48/reverse_48/g
s/swap64/reverse_64/g
s/swap128/reverse_128/g
s/hci_ssp_set_io_capability/gap_ssp_set_io_capability/g
# Folder structure
s|/example/embedded|/example|g
s|/ble/compile-gatt.py|/tool/compile-gatt.py|g
# type renames
s/le_service_t/gatt_client_service_t/g
s/le_characteristic_t/gatt_client_characteristic_t/g
# header changes
s|"att.h"|"att_db.h"|g
s|"bnep.h"|"classic/bnep.h"|g
s|"gap_le.h"|"gap.h"|g
s|"hfp_ag.h"|"classic/hfp_ag.h"|g
s|"hfp_hf.h"|"classic/hfp_hf.h"|g
s|"hsp_ag.h"|"classic/hsp_ag.h"|g
s|"hsp_hs.h"|"classic/hsp_hs.h"|g
s|"pan.h"|"classic/pan.h"|g
s|"rfcomm.h"|"classic/rfcomm.h"|g
s|"sdp.h"|"classic/sdp_server.h"|g
s|"sdp_client.h"|"classic/sdp_client.h"|g
s|"sdp_parser.h"|"classic/sdp_client.h"|g
s|"sdp_query_rfcomm.h"|"classic/sdp_query_rfcomm.h"|g
s|#include "sdp_query_util.h"|// sdp_query_util doens not exist anymore|g
s|<btstack/hal_led.h>|"hal_led.h"|g
s|<btstack/hci_cmds.h>|"hci_cmd.h"|g
s|<btstack/run_loop.h>|"btstack_run_loop.h"|g
s|<btstack/sdp_util.h>|"classic/sdp_util.h"|g
s|<btstack/utils.h>|"btstack_util.h"|g
# File renames
s|debug.h|btstack_debug.h|g
s|btstack-config.h|btstack_config.h|g
s|hci_cmds\.c|hci_cmd\.c|g
s|linked_list|btstack_linked_list|g
s|memory_pool|btstack_memory_pool|g
s|remote_device_db_memory|btstack_link_key_db_memory|g
s|run_loop\.c|btstack_run_loop\.c|g
s|timer_source_t|btstack_timer_source_t|g
s|sdp\.c|sdp_server\.c|g
s|utils|btstack_util|g
s|att\.c|att_db\.c|g
s|ancs_client_lib|ancs_client|g
s|sdp_parser.[c|o]||g
s|sdp_query_util.[c|o]||g
# Makefile hacks: fix path to src/ble
s|/ble|/src/ble|g
## might not work, due to very precise matching rules, or BTSTACK_ROOT not being used
# Makefile hacks: add VPATH to src/classic
s|VPATH += ${BTSTACK_ROOT}/src$|VPATH += ${BTSTACK_ROOT}/src\nVPATH += ${BTSTACK_ROOT}/src/classic|g
# Disable ancs_client BTstack examples
s|${CC} $(filter-out ancs_client.h,$^) ${CFLAGS} ${LDFLAGS} -o $@|echo ANCS Client target disabled by converstion script|g

View File

@ -0,0 +1 @@
./conversion_to_1.0.sh /Projects/btstack-master/example/embedded/ /Projects/btstack/example