sada45 commented on issue #1291:
URL: https://github.com/apache/mynewt-nimble/issues/1291#issuecomment-1181833269

   I test the connection subrating but find the `Continuation Number` does not 
work.
   I think I find the reason. In the function `ble_ll_conn_next_event()` in 
`ble_ll_conn.c`, Line 2275. The central and peripheral decide wether they 
should turn on radio on the next connection or the next subrate base event. 
   Accroding to the Bluetooth spec. If the next connection event is not a base 
event and the connection event number since we last received a PDU is less than 
`Continuation Number`, nodes will turn on their radio in the next connection 
even, rather than the next base event.
   So, to my understanding, the correct code should be:
   ```C
     if ((connsm->cont_num > 0) &&
        /* (connsm->event_cntr + 1 == connsm->subrate_base_event + */
         (connsm->event_cntr + 1 != connsm->subrate_base_event + 
                                    connsm->subrate_factor) &&
         (connsm->event_cntr - connsm->last_pdu_event < connsm->cont_num)) {
         next_is_subrated = 0;
     }
   ```
   Looking forward to your reply :-) @andrzej-kaczmarek 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@mynewt.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to