 917410a0a8
			
		
	
	
		917410a0a8
		
			
		
	
	
	
	
		
			
			* fbt: reworking targets & assets handling WIP * fbt: dist fixes * fbt: moved SD card resources to owning apps * unit_tests: moved resources to app folder * github: updated unit_tests paths * github: packaging fixes * unit_tests: fixes * fbt: assets: internal cleanup * fbt: reworked assets handling * github: unit_tests: reintroducing fixes * minor cleanup * fbt: naming changes to reflect private nature of scons tools * fbt: resources: fixed dist archive paths * docs: updated paths * docs: updated more paths * docs: included "resources" parameter in app manifest docs; updated assets readme * updated gitignore for assets * github: updated action versions * unit_tests: restored timeout; scripts: assets: logging changes * gh: don't upload desktop animations for unit test run Co-authored-by: あく <alleteam@gmail.com>
		
			
				
	
	
		
			203 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			203 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include <ble/core/ble_defs.h>
 | |
| 
 | |
| #define CFG_TX_POWER (0x19) /* +0dBm */
 | |
| 
 | |
| #define CFG_IDENTITY_ADDRESS GAP_PUBLIC_ADDR
 | |
| 
 | |
| /**
 | |
|  * Define IO Authentication
 | |
|  */
 | |
| #define CFG_USED_FIXED_PIN USE_FIXED_PIN_FOR_PAIRING_FORBIDDEN
 | |
| #define CFG_ENCRYPTION_KEY_SIZE_MAX (16)
 | |
| #define CFG_ENCRYPTION_KEY_SIZE_MIN (8)
 | |
| 
 | |
| /**
 | |
|  * Define IO capabilities
 | |
|  */
 | |
| #define CFG_IO_CAPABILITY IO_CAP_DISPLAY_YES_NO
 | |
| 
 | |
| /**
 | |
|  * Define MITM modes
 | |
|  */
 | |
| #define CFG_MITM_PROTECTION MITM_PROTECTION_REQUIRED
 | |
| 
 | |
| /**
 | |
|  * Define Secure Connections Support
 | |
|  */
 | |
| #define CFG_SC_SUPPORT SC_PAIRING_OPTIONAL
 | |
| 
 | |
| /**
 | |
|  * Define PHY
 | |
|  */
 | |
| #define ALL_PHYS_PREFERENCE 0x00
 | |
| #define RX_2M_PREFERRED 0x02
 | |
| #define TX_2M_PREFERRED 0x02
 | |
| #define TX_1M 0x01
 | |
| #define TX_2M 0x02
 | |
| #define RX_1M 0x01
 | |
| #define RX_2M 0x02
 | |
| 
 | |
| /******************************************************************************
 | |
|  * BLE Stack
 | |
|  ******************************************************************************/
 | |
| /**
 | |
|  * Maximum number of simultaneous connections that the device will support.
 | |
|  * Valid values are from 1 to 8
 | |
|  */
 | |
| #define CFG_BLE_NUM_LINK 1
 | |
| 
 | |
| /**
 | |
|  * Maximum number of Services that can be stored in the GATT database.
 | |
|  * Note that the GAP and GATT services are automatically added so this parameter should be 2 plus the number of user services
 | |
|  */
 | |
| #define CFG_BLE_NUM_GATT_SERVICES 8
 | |
| 
 | |
| /**
 | |
|  * Maximum number of Attributes
 | |
|  * (i.e. the number of characteristic + the number of characteristic values + the number of descriptors, excluding the services)
 | |
|  * that can be stored in the GATT database.
 | |
|  * Note that certain characteristics and relative descriptors are added automatically during device initialization
 | |
|  * so this parameters should be 9 plus the number of user Attributes
 | |
|  */
 | |
| #define CFG_BLE_NUM_GATT_ATTRIBUTES 68
 | |
| 
 | |
| /**
 | |
|  * Maximum supported ATT_MTU size
 | |
|  */
 | |
| #define CFG_BLE_MAX_ATT_MTU (256 + 128 + 16 + 8 + 4 + 2)
 | |
| 
 | |
| /**
 | |
|  * Size of the storage area for Attribute values
 | |
|  *  This value depends on the number of attributes used by application. In particular the sum of the following quantities (in octets) should be made for each attribute:
 | |
|  *  - attribute value length
 | |
|  *  - 5, if UUID is 16 bit; 19, if UUID is 128 bit
 | |
|  *  - 2, if server configuration descriptor is used
 | |
|  *  - 2*DTM_NUM_LINK, if client configuration descriptor is used
 | |
|  *  - 2, if extended properties is used
 | |
|  *  The total amount of memory needed is the sum of the above quantities for each attribute.
 | |
|  */
 | |
| #define CFG_BLE_ATT_VALUE_ARRAY_SIZE (1344)
 | |
| 
 | |
| /**
 | |
|  * Prepare Write List size in terms of number of packet
 | |
|  */
 | |
| #define CFG_BLE_PREPARE_WRITE_LIST_SIZE BLE_PREP_WRITE_X_ATT(CFG_BLE_MAX_ATT_MTU)
 | |
| 
 | |
| /**
 | |
|  * Number of allocated memory blocks
 | |
|  */
 | |
| #define CFG_BLE_MBLOCK_COUNT \
 | |
|     (BLE_MBLOCKS_CALC(CFG_BLE_PREPARE_WRITE_LIST_SIZE, CFG_BLE_MAX_ATT_MTU, CFG_BLE_NUM_LINK))
 | |
| 
 | |
| /**
 | |
|  * Enable or disable the Extended Packet length feature. Valid values are 0 or 1.
 | |
|  */
 | |
| #define CFG_BLE_DATA_LENGTH_EXTENSION 1
 | |
| 
 | |
| /**
 | |
|  * Sleep clock accuracy in Slave mode (ppm value)
 | |
|  */
 | |
| #define CFG_BLE_SLAVE_SCA 500
 | |
| 
 | |
| /**
 | |
|  * Sleep clock accuracy in Master mode
 | |
|  * 0 : 251 ppm to 500 ppm
 | |
|  * 1 : 151 ppm to 250 ppm
 | |
|  * 2 : 101 ppm to 150 ppm
 | |
|  * 3 : 76 ppm to 100 ppm
 | |
|  * 4 : 51 ppm to 75 ppm
 | |
|  * 5 : 31 ppm to 50 ppm
 | |
|  * 6 : 21 ppm to 30 ppm
 | |
|  * 7 : 0 ppm to 20 ppm
 | |
|  */
 | |
| #define CFG_BLE_MASTER_SCA 0
 | |
| 
 | |
| /**
 | |
|  *  Source for the low speed clock for RF wake-up
 | |
|  *  1 : external high speed crystal HSE/32/32
 | |
|  *  0 : external low speed crystal ( no calibration )
 | |
|  */
 | |
| #define CFG_BLE_LSE_SOURCE                                                        \
 | |
|     SHCI_C2_BLE_INIT_CFG_BLE_LS_CLK_LSE | SHCI_C2_BLE_INIT_CFG_BLE_LS_OTHER_DEV | \
 | |
|         SHCI_C2_BLE_INIT_CFG_BLE_LS_CALIB
 | |
| 
 | |
| /**
 | |
|  * Start up time of the high speed (16 or 32 MHz) crystal oscillator in units of 625/256 us (~2.44 us)
 | |
|  */
 | |
| #define CFG_BLE_HSE_STARTUP_TIME 0x148
 | |
| 
 | |
| /**
 | |
|  * Maximum duration of the connection event when the device is in Slave mode in units of 625/256 us (~2.44 us)
 | |
|  */
 | |
| #define CFG_BLE_MAX_CONN_EVENT_LENGTH (0xFFFFFFFF)
 | |
| 
 | |
| /**
 | |
|  * Viterbi Mode
 | |
|  * 1 : enabled
 | |
|  * 0 : disabled
 | |
|  */
 | |
| #define CFG_BLE_VITERBI_MODE 1
 | |
| 
 | |
| /**
 | |
|  * BLE stack Options flags to be configured with:
 | |
|  * - SHCI_C2_BLE_INIT_OPTIONS_LL_ONLY
 | |
|  * - SHCI_C2_BLE_INIT_OPTIONS_LL_HOST
 | |
|  * - SHCI_C2_BLE_INIT_OPTIONS_NO_SVC_CHANGE_DESC
 | |
|  * - SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC
 | |
|  * - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RO
 | |
|  * - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW
 | |
|  * - SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV
 | |
|  * - SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV
 | |
|  * - SHCI_C2_BLE_INIT_OPTIONS_CS_ALGO2
 | |
|  * - SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2
 | |
|  * - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_1
 | |
|  * - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3
 | |
|  * which are used to set following configuration bits:
 | |
|  * (bit 0): 1: LL only
 | |
|  *          0: LL + host
 | |
|  * (bit 1): 1: no service change desc.
 | |
|  *          0: with service change desc.
 | |
|  * (bit 2): 1: device name Read-Only
 | |
|  *          0: device name R/W
 | |
|  * (bit 3): 1: extended advertizing supported       [NOT SUPPORTED]
 | |
|  *          0: extended advertizing not supported   [NOT SUPPORTED]
 | |
|  * (bit 4): 1: CS Algo #2 supported
 | |
|  *          0: CS Algo #2 not supported
 | |
|  * (bit 7): 1: LE Power Class 1
 | |
|  *          0: LE Power Class 2-3
 | |
|  * other bits: reserved (shall be set to 0)
 | |
|  */
 | |
| #define CFG_BLE_OPTIONS                                                                 \
 | |
|     (SHCI_C2_BLE_INIT_OPTIONS_LL_HOST | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | \
 | |
|      SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RO | SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV |       \
 | |
|      SHCI_C2_BLE_INIT_OPTIONS_CS_ALGO2 | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
 | |
| 
 | |
| /**
 | |
|  * Queue length of BLE Event
 | |
|  * This parameter defines the number of asynchronous events that can be stored in the HCI layer before
 | |
|  * being reported to the application. When a command is sent to the BLE core coprocessor, the HCI layer
 | |
|  * is waiting for the event with the Num_HCI_Command_Packets set to 1. The receive queue shall be large
 | |
|  * enough to store all asynchronous events received in between.
 | |
|  * When CFG_TLBLE_MOST_EVENT_PAYLOAD_SIZE is set to 27, this allow to store three 255 bytes long asynchronous events
 | |
|  * between the HCI command and its event.
 | |
|  * This parameter depends on the value given to CFG_TLBLE_MOST_EVENT_PAYLOAD_SIZE. When the queue size is to small,
 | |
|  * the system may hang if the queue is full with asynchronous events and the HCI layer is still waiting
 | |
|  * for a CC/CS event, In that case, the notification TL_BLE_HCI_ToNot() is called to indicate
 | |
|  * to the application a HCI command did not receive its command event within 30s (Default HCI Timeout).
 | |
|  */
 | |
| #define CFG_TLBLE_EVT_QUEUE_LENGTH 5
 | |
| /**
 | |
|  * This parameter should be set to fit most events received by the HCI layer. It defines the buffer size of each element
 | |
|  * allocated in the queue of received events and can be used to optimize the amount of RAM allocated by the Memory Manager.
 | |
|  * It should not exceed 255 which is the maximum HCI packet payload size (a greater value is a lost of memory as it will
 | |
|  * never be used)
 | |
|  * With the current wireless firmware implementation, this parameter shall be kept to 255
 | |
|  *
 | |
|  */
 | |
| #define CFG_TLBLE_MOST_EVENT_PAYLOAD_SIZE \
 | |
|     255 /**< Set to 255 with the memory manager and the mailbox */
 | |
| 
 | |
| #define TL_BLE_EVENT_FRAME_SIZE (TL_EVT_HDR_SIZE + CFG_TLBLE_MOST_EVENT_PAYLOAD_SIZE)
 |