2017-05-15 1 views
0

en faisant un programme qui permet à ma balise et à ma carte DK de démarrer la numérisation et d'arrêter la numérisation à l'aide de BLE. Je suis capable de commencer la numérisation, mais je ne savais pas comment arrêter la numérisation. Quelqu'un peut-il me conseiller à ce sujet? Le code fourni est mon scan_start. Je vous remercie!Comment utiliser BLE scan_stop

static void scan_start(void) 
{ 

    uint32_t err_code; 

    err_code = sd_ble_gap_scan_start(&m_scan_params); 
    APP_ERROR_CHECK(err_code); 

    err_code = bsp_indication_set(BSP_INDICATE_SCANNING); 
    APP_ERROR_CHECK(err_code); 
} 
+0

Avez-vous vérifié la documentation/référence de l'API? – Emil

+0

comme, je ne sais pas comment commencer avec le code pour arrêter la numérisation. – GIJEO

Répondre

0

L'arrêt de scan_start dépend de l'endroit où vous utilisez cette fonction. Par exemple, si vous utilisez scan_start dans la fonction principale (avant pour la boucle), après un certain temps, s'il n'y a pas de connexion, il passe en mode veille et arrête l'analyse.

Sinon, si vous voulez contrôler l'heure de start_scanning, vous pouvez définir la fonction app_timer. Par exemple, vous pouvez définir un minuteur ou un gestionnaire de boutons qui commence à analyser lorsque le bouton est enfoncé.

Si vous ne trouvez toujours pas la réponse que vous cherchez, il y a une autre suggestion. Vous pouvez utiliser la fonction stop_scanning dans le fichier "ble_gap.h" pour arrêter la numérisation. Fonctionne comme ceci;

SVCALL(SD_BLE_GAP_SCAN_STOP, uint32_t, sd_ble_gap_scan_stop(void)); 

Vous pouvez utiliser ceci:

(void) sd_ble_gap_scan_stop(); 

En cas d'erreur, corrigez-la. J'espère que ce sera utile ...