Telink TLSR8232 BLE SDK Developer Handbook
AN-19112700-E1
68
Ver.1.0.0
u16
connRemoteMaxRxOctets
;
u16
connRemoteMaxTxOctets
;
u16
supportedMaxRxOctets
;
u16
supportedMaxTxOctets
;
u16
connInitialMaxTxOctets
;
u8
connMaxTxRxOctets_req
;
}
ll_data_extension_t
;
“connEffectiveMaxRxOctets” and “connEffectiveMaxTxOctets” are max RX and TX data
length
finally allowed in current connection; “connMaxRxOctets” and “connMaxTxOctets”
are max RX and TX data length of the device; “connRemoteMaxRxOctets” and
“connRemoteMaxTxOctets” are max RX and TX data length of peer device.
connEffectiveMaxRxOctets = min(supportedMaxRxOctets,connRemoteMaxTxOctets);
connEffectiveMaxTxOctets = min(supportedMaxTxOctets, connRemoteMaxRxOctets);
3.2.7.8 BLT_EV_FLAG_GPIO_EARLY_WAKEUP
Event trigger condition: Slave will calculate wakeup time before it enters suspend, so that
it can wake up when the wakeup time is due (
It’s realized via timer in suspend state).
Since user tasks won’t be processed until wakeup from suspend, long suspend time may
bring problem for real-time demanding applications. Take keyboard scanning as an
example, if user
presses keys fast, to avoid key press loss and process debouncing, it’s
recommended to set the scan interval as 10~20ms; longer suspend time (e.g. 400ms or
1s, which may be reached when latency is enabled) will lead to key press loss. So it’s
needed to jud
ge current suspend time before MCU enters suspend; if it’s too long, the
wakeup method of user key press should be enabled, so that MCU can wake up from
suspend in advance (i.e. before timer timeout) if any key press is detected. This will be
introduced in details in following PM module section.
The
event “BLT_EV_FLAG_GPIO_EARLY_WAKEUP” will be triggered if MCU is woke
up from suspend by GPIO in advance before wakeup timer expires.
Data length
“n”: 1.
Pointer
“p”: p points to an u8-type variable “wakeup_status”. This variable indicates valid
wakeup source status for current suspend. Following types of wakeup status are defined
in “drivers/5316/pm.h” (“WAKEUP_STATUS_COMP” is not used in SDK).
enum
{
WAKEUP_STATUS_COMP
= BIT(0),
WAKEUP_STATUS_TIMER
= BIT(1),
WAKEUP_STATUS_CORE
= BIT(2),
WAKEUP_STATUS_PAD
= BIT(3),
STATUS_GPIO_ERR_NO_ENTER_PM
= BIT(7),
STATUS_ENTER_SUSPEND
= BIT(30),
}
PM_WakeupStatusTypeDef
;