6 Replies Latest reply on Dec 5, 2014 9:44 AM by mkim

    Scan stops working after connection timeout error

      My understanding is the connection timeout error is supposed to happen

      after supervision timeout which is 500 ms in my application.

       

      The problem is scan no longer works once the connection timeout (0x8) occurs.

      My application is the Initiator of the connection and

      emconinfo_getDiscReason() returns 0x8 on connection down callback.

       

      Can you provide some advice to debug this issue?

      I am using 20737 with SDK 2.1.1

       

      Here are my scan parameters.

       

      blecen_cen_cfg.scan_type = HCIULP_PASSIVE_SCAN;

          blecen_cen_cfg.scan_adr_type = HCIULP_PUBLIC_ADDRESS;

          blecen_cen_cfg.scan_filter_policy = HCIULP_SCAN_FILTER_POLICY_WHITE_LIST_NOT_USED;

          blecen_cen_cfg.filter_duplicates = HCIULP_SCAN_DUPLICATE_FILTER_OFF;

          blecen_cen_cfg.init_filter_policy = HCIULP_INITIATOR_FILTER_POLICY_WHITE_LIST_NOT_USED;

          blecen_cen_cfg.init_addr_type = HCIULP_PUBLIC_ADDRESS;

       

       

      blecen_cen_cfg.high_scan_interval = 1500; //slots

          blecen_cen_cfg.low_scan_interval = 1500; //slots

          blecen_cen_cfg.high_scan_window = 100; //slots

          blecen_cen_cfg.low_scan_window = 100; //slots

          blecen_cen_cfg.high_scan_duration = 300; //seconds

          blecen_cen_cfg.low_scan_duration = 300; //seconds 

       

      blecen_cen_cfg.high_conn_min_interval = 8;  //frames

          blecen_cen_cfg.low_conn_min_interval = 8;  //frames

          blecen_cen_cfg.high_conn_max_interval = 8; //frames

          blecen_cen_cfg.low_conn_max_interval = 8; //frames

       

       

      blecen_cen_cfg.high_conn_latency = 0;

          blecen_cen_cfg.low_conn_latency = 0;

          blecen_cen_cfg.high_supervision_timeout = 50;

          blecen_cen_cfg.low_supervision_timeout = 50;

          blecen_cen_cfg.conn_min_event_len = 0;

          blecen_cen_cfg.conn_max_event_len = 0;