Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: dialog_fota/gapm_task.h
- Revision:
- 4:60be78a172c2
- Parent:
- 3:1e70387e1337
- Child:
- 5:e11b23f9aacc
--- a/dialog_fota/gapm_task.h Tue Jun 23 06:32:40 2015 +0000
+++ b/dialog_fota/gapm_task.h Wed Jun 24 08:50:07 2015 +0000
@@ -1,8 +1,17 @@
#ifndef GAPM_TASK_H
#define GAPM_TASK_H
+#include "dialog_fota_config.h"
+
namespace sevencore_fota{
+/// Advertising or scanning report information event
+struct gapm_adv_report_ind
+{
+ /// Advertising report structure
+ struct adv_report report;
+};
+
/// Reset link layer and the host command
struct gapm_reset_cmd
{
@@ -10,6 +19,193 @@
/// - GAPM_RESET: Reset BLE subsystem: LL and HL.
uint8_t operation;
};
+/// Command complete event data structure
+struct gapm_cmp_evt
+{
+ /// GAP requested operation
+ uint8_t operation;
+ /// Status of the request
+ uint8_t status;
+};
+
+/// Air operation default parameters
+struct gapm_air_operation
+{
+ /// Operation code.
+ uint8_t code;
+
+
+ /** Own BD address source of the device:
+ * - GAPM_PUBLIC_ADDR: Public Address
+ * - GAPM_PROVIDED_RND_ADDR: Provided random address
+ * - GAPM_GEN_STATIC_RND_ADDR: Generated static random address
+ * - GAPM_GEN_RSLV_ADDR: Generated resolvable private random address
+ * - GAPM_GEN_NON_RSLV_ADDR: Generated non-resolvable private random address
+ * - GAPM_PROVIDED_RECON_ADDR: Provided Reconnection address (only for GAPM_ADV_DIRECT)
+ */
+ uint8_t addr_src;
+
+ /// Dummy data use to retrieve internal operation state (should be set to 0).
+ uint16_t state;
+
+ /// Duration of resolvable address before regenerate it.
+ uint16_t renew_dur;
+
+ /// Provided own static private random address (addr_src = 1 or 5)
+ struct bd_addr addr;
+};
+
+/// Advertising data that contains information set by host.
+struct gapm_adv_host
+{
+ /// Advertising mode :
+ /// - GAP_NON_DISCOVERABLE: Non discoverable mode
+ /// - GAP_GEN_DISCOVERABLE: General discoverable mode
+ /// - GAP_LIM_DISCOVERABLE: Limited discoverable mode
+ /// - GAP_BROADCASTER_MODE: Broadcaster mode
+ uint8_t mode;
+
+ /// Advertising filter policy:
+ /// - ADV_ALLOW_SCAN_ANY_CON_ANY: Allow both scan and connection requests from anyone
+ /// - ADV_ALLOW_SCAN_WLST_CON_ANY: Allow both scan req from White List devices only and
+ /// connection req from anyone
+ /// - ADV_ALLOW_SCAN_ANY_CON_WLST: Allow both scan req from anyone and connection req
+ /// from White List devices only
+ /// - ADV_ALLOW_SCAN_WLST_CON_WLST: Allow scan and connection requests from White List
+ /// devices only
+ uint8_t adv_filt_policy;
+
+ /// Advertising data length - maximum 28 bytes, 3 bytes are reserved to set
+ /// Advertising AD type flags, shall not be set in advertising data
+ uint8_t adv_data_len;
+ /// Advertising data
+ uint8_t adv_data[ADV_DATA_LEN-3];
+ /// Scan response data length- maximum 31 bytes
+ uint8_t scan_rsp_data_len;
+ /// Scan response data
+ uint8_t scan_rsp_data[SCAN_RSP_DATA_LEN];
+};
+
+
+//////////////GAP
+#define KEY_LEN 0x10
+/// Generic Security key structure
+struct gap_sec_key
+{
+ /// Key value MSB -> LSB
+ uint8_t key[KEY_LEN];
+};
+
+/// Address information about a device address
+struct gap_bdaddr
+{
+ /// BD Address of device
+ struct bd_addr addr;
+ /// Address type of the device 0=public/1=private random
+ uint8_t addr_type;
+};
+
+/// Advertising mode
+enum gap_adv_mode
+{
+ /// Mode in non-discoverable
+ GAP_NON_DISCOVERABLE,
+ /// Mode in general discoverable
+ GAP_GEN_DISCOVERABLE,
+ /// Mode in limited discoverable
+ GAP_LIM_DISCOVERABLE,
+ /// Broadcaster mode which is a non discoverable and non connectable mode.
+ GAP_BROADCASTER_MODE,
+};
+/****************** GAP Role **********************/
+enum gap_role
+{
+ /// No role set yet
+ GAP_NO_ROLE = 0x00,
+
+ /// Observer role
+ GAP_OBSERVER_SCA = 0x01,
+
+ /// Broadcaster role
+ GAP_BROADCASTER_ADV = 0x02,
+
+ /// Master/Central role
+ GAP_CENTRAL_MST = (0x04 | GAP_OBSERVER_SCA),
+
+ /// Peripheral/Slave role
+ GAP_PERIPHERAL_SLV = (0x08 | GAP_BROADCASTER_ADV),
+};
+
+//////////////GAP
+
+/// Set advertising mode Command
+struct gapm_start_advertise_cmd
+{
+ /// GAPM requested operation:
+ /// - GAPM_ADV_NON_CONN: Start non connectable advertising
+ /// - GAPM_ADV_UNDIRECT: Start undirected connectable advertising
+ /// - GAPM_ADV_DIRECT: Start directed connectable advertising
+ struct gapm_air_operation op;
+
+ /// Minimum interval for advertising
+ uint16_t intv_min;
+ /// Maximum interval for advertising
+ uint16_t intv_max;
+
+ ///Advertising channel map
+ uint8_t channel_map;
+
+ /// Advertising information
+ union gapm_adv_info
+ {
+ /// Host information advertising data (GAPM_ADV_NON_CONN and GAPM_ADV_UNDIRECT)
+ struct gapm_adv_host host;
+ /// Direct address information (GAPM_ADV_DIRECT)
+ /// (used only if reconnection address isn't set or privacy disabled)
+ struct gap_bdaddr direct;
+ } info;
+};
+
+
+/// Set device configuration command
+struct gapm_set_dev_config_cmd
+{
+ /// GAPM requested operation:
+ /// - GAPM_SET_DEV_CONFIG: Set device configuration
+ uint8_t operation;
+ /// Device Role: Central, Peripheral, Observer or Broadcaster
+ uint8_t role;
+ /// Device IRK used for resolvable random BD address generation (LSB first)
+ struct gap_sec_key irk;
+
+ /// Device Appearance (0x0000 - Unknown appearance)
+ uint16_t appearance;
+ /// Device Appearance write permission requirements for peer device (@see gapm_write_att_perm)
+ uint8_t appearance_write_perm;
+ /// Device Name write permission requirements for peer device (@see gapm_write_att_perm)
+ uint8_t name_write_perm;
+
+ /// Maximal MTU
+ uint16_t max_mtu;
+
+ /// Peripheral only: *****************************************************************
+ /// Slave preferred Minimum of connection interval
+ uint16_t con_intv_min;
+ /// Slave preferred Maximum of connection interval
+ uint16_t con_intv_max;
+ /// Slave preferred Connection latency
+ uint16_t con_latency;
+ /// Slave preferred Link supervision timeout
+ uint16_t superv_to;
+
+ /// Privacy settings bit field (0b1 = enabled, 0b0 = disabled)
+ /// - [bit 0]: Privacy Support
+ /// - [bit 1]: Multiple Bond Support (Peripheral only); If enabled, privacy flag is
+ /// read only.
+ /// - [bit 2]: Reconnection address visible.
+ uint8_t flags;
+};
+
/// GAP Manager Message Interface
@@ -206,6 +402,36 @@
GAPM_LAST
};
+/// Own BD address source of the device
+enum gapm_own_addr_src
+{
+ /// Public Address
+ GAPM_PUBLIC_ADDR,
+ /// Provided random address
+ GAPM_PROVIDED_RND_ADDR,
+ /// Provided static random address
+ GAPM_GEN_STATIC_RND_ADDR,
+ /// Generated resolvable private random address
+ GAPM_GEN_RSLV_ADDR,
+ /// Generated non-resolvable private random address
+ GAPM_GEN_NON_RSLV_ADDR,
+ /// Provided Reconnection address
+ GAPM_PROVIDED_RECON_ADDR,
+};
+
+/// Device Attribute write permission requirement
+enum gapm_write_att_perm
+{
+ /// Disable write access
+ GAPM_WRITE_DISABLE = 0,
+ /// Enable write access
+ GAPM_WRITE_ENABLE = 8,
+ /// Write access requires unauthenticated link
+ GAPM_WRITE_UNAUTH = 16,
+ /// Write access requires authenticated link
+ GAPM_WRITE_AUTH = 24,
+};
+
}//namespace
#endif//GAPM_TASK_H
