/* * Copyright (C) 2019 Intel Corporation. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #if 0 #define BLUETOOTH_INTERFACE_ADVERTISMENT_DATA_LENGTH 31 /* ble_device_info */ typedef struct ble_device_info { /* address type */ uint8_t address_type; /* MAC of Device */ uint8_t mac[6]; /* security level */ uint8_t security_level; /* signal strength */ int8_t rssi; /* uuid_16_type */ int8_t uuid_16_type; /* uuid_32_type */ int8_t uuid_32_type; /* uuid_128_type */ int8_t uuid_128_type; /* error code */ uint8_t error_code; /* scan response length*/ uint16_t adv_data_len; /* advertisement data */ uint8_t *adv_data; /* scan response length*/ uint16_t scan_response_len; /* scan response */ uint8_t *scan_response; /* next device */ struct ble_device_info *next; /* private data length */ int private_data_length; /* private data */ uint8_t *private_data; /* value handle*/ uint16_t value_handle; /* ccc handle*/ uint16_t ccc_handle; }ble_device_info; /* BLE message sub type */ typedef enum BLE_SUB_EVENT_TYPE { BLE_SUB_EVENT_DISCOVERY, BLE_SUB_EVENT_CONNECTED, BLE_SUB_EVENT_DISCONNECTED, BLE_SUB_EVENT_NOTIFICATION, BLE_SUB_EVENT_INDICATION, BLE_SUB_EVENT_PASSKEYENTRY, BLE_SUB_EVENT_SECURITY_LEVEL_CHANGE }BLE_SUB_EVENT_TYPE; /* Queue message, for BLE Event */ typedef struct bh_queue_ble_sub_msg_t { /* message type, should be one of QUEUE_MSG_TYPE */ BLE_SUB_EVENT_TYPE type; /* payload size */ /*uint32_t payload_size;*/ char payload[1]; }bh_queue_ble_sub_msg_t; static void app_instance_free_ble_msg(char *msg) { bh_queue_ble_sub_msg_t *ble_msg = (bh_queue_ble_sub_msg_t *)msg; ble_device_info *dev_info; dev_info = (ble_device_info *) ble_msg->payload; if (dev_info->scan_response != NULL) bh_free(dev_info->scan_response); if (dev_info->private_data != NULL) bh_free(dev_info->private_data); if (dev_info->adv_data != NULL) bh_free(dev_info->adv_data); if (dev_info != NULL) bh_free(dev_info); } static void app_instance_queue_free_callback(bh_message_t queue_msg) { char * payload = (char *)bh_message_payload(queue_msg); if(payload == NULL) return; switch (bh_message_type(queue_msg)) { /* case SENSOR_EVENT: { bh_sensor_event_t *sensor_event = (bh_sensor_event_t *) payload; attr_container_t *event = sensor_event->event; attr_container_destroy(event); } break; */ case BLE_EVENT: { app_instance_free_ble_msg(payload); break; } } } #endif