I feel Slave Latency is unnecessary.
For example :
Connect Interval is 100ms, Supervisor Timeout is 4000ms.
So the Slave Latency must be 39. if I set Slave Latency to 10, is a useless parameter, I force peripheral not to response 39 packet, the connect keeps.
****** Update in 2017-10-30 *******
I'm a little confused about the slave latency.I know the meaning of this parameter.But I dont know why the potocol put "slave latency" in connection parameter.Because if the connection interval and supervision timeout is determined, the "slave latency" has been determined.
I can implement the "slave latency mechanism" without using "slave latency", just like a situation of bad RF environment, peripheral lost packets the central sent. I can simulate this situation to save battery power.I can set Slave Latency to 0, peripheral wake up in 10 connect intervals or 20 connect intervals .... (in the supervision timeout), then peripheral will get the same effect as "slave latency". Why peripheral need to tell the central this parameter.
So What does the potocol designer do with this parameter? Is there anything else I didn't think about? Does it have any other uses?
The reason I ask this question is that I found there is something wrong with Nordic SoftDevice about slave latency. When I set slave latency It's easy to cause disconnect. My connect param is: min interval 90ms, max interval 110ms,slave latency 9,timout 4000ms. (S110 v8, 51822) When I change the slave latency to 0, the connection is very good. So I sniff the connect procedure. I found the peripheral wake up in every 1s to exchange packet.So the peripheral have 4 connect Events, But if the peripheral lost the packet in a connect Event. The peripheral will not change its wake up time. So that makes 4 special packet(in every 1s connect event) very important, if lost all 4 packets, the connection will disconnect. I think this is unreasonable. I think it needs to change its wake up time to recieve the next 100ms.