bluetooth: Prevent btsak from repeatedly showing the same error.
This commit is contained in:
parent
f01e395b1c
commit
2dac5e1b6a
|
@ -58,6 +58,7 @@ struct btnet_scanstate_s
|
||||||
volatile bool bs_scanning; /* True: Scanning in progress */
|
volatile bool bs_scanning; /* True: Scanning in progress */
|
||||||
volatile uint8_t bs_head; /* Head of circular list (for removal) */
|
volatile uint8_t bs_head; /* Head of circular list (for removal) */
|
||||||
uint8_t bs_tail; /* Tail of circular list (for addition) */
|
uint8_t bs_tail; /* Tail of circular list (for addition) */
|
||||||
|
uint32_t msgcount; /* Number of warnings printed */
|
||||||
|
|
||||||
struct bt_scanresponse_s bs_rsp[CONFIG_BLUETOOTH_MAXSCANRESULT];
|
struct bt_scanresponse_s bs_rsp[CONFIG_BLUETOOTH_MAXSCANRESULT];
|
||||||
};
|
};
|
||||||
|
@ -185,7 +186,12 @@ static void btnet_scan_callback(FAR const bt_addr_le_t *addr,
|
||||||
head = g_scanstate.bs_head;
|
head = g_scanstate.bs_head;
|
||||||
if (nexttail == head)
|
if (nexttail == head)
|
||||||
{
|
{
|
||||||
wlerr("ERROR: Too many scan results\n");
|
/* Print only one error message for each SIOCBTSCANSTART call */
|
||||||
|
|
||||||
|
if (g_scanstate.msgcount++ == 0)
|
||||||
|
{
|
||||||
|
wlerr("ERROR: Too many scan results\n");
|
||||||
|
}
|
||||||
|
|
||||||
if (++head >= CONFIG_BLUETOOTH_MAXSCANRESULT)
|
if (++head >= CONFIG_BLUETOOTH_MAXSCANRESULT)
|
||||||
{
|
{
|
||||||
|
@ -624,6 +630,7 @@ int btnet_ioctl(FAR struct net_driver_s *netdev, int cmd, unsigned long arg)
|
||||||
g_scanstate.bs_scanning = true;
|
g_scanstate.bs_scanning = true;
|
||||||
g_scanstate.bs_head = 0;
|
g_scanstate.bs_head = 0;
|
||||||
g_scanstate.bs_tail = 0;
|
g_scanstate.bs_tail = 0;
|
||||||
|
g_scanstate.msgcount = 0;
|
||||||
|
|
||||||
ret = bt_start_scanning(btreq->btr_dupenable,
|
ret = bt_start_scanning(btreq->btr_dupenable,
|
||||||
btnet_scan_callback);
|
btnet_scan_callback);
|
||||||
|
|
Loading…
Reference in New Issue