* companion: retransmit delays now hard-coded (only for client repeat mode)
This commit is contained in:
@@ -257,6 +257,15 @@ int MyMesh::calcRxDelay(float score, uint32_t air_time) const {
|
|||||||
return (int)((pow(_prefs.rx_delay_base, 0.85f - score) - 1.0) * air_time);
|
return (int)((pow(_prefs.rx_delay_base, 0.85f - score) - 1.0) * air_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t MyMesh::getRetransmitDelay(const mesh::Packet *packet) {
|
||||||
|
uint32_t t = (_radio->getEstAirtimeFor(packet->path_len + packet->payload_len + 2) * 0.5f);
|
||||||
|
return getRNG()->nextInt(0, 5*t + 1);
|
||||||
|
}
|
||||||
|
uint32_t MyMesh::getDirectRetransmitDelay(const mesh::Packet *packet) {
|
||||||
|
uint32_t t = (_radio->getEstAirtimeFor(packet->path_len + packet->payload_len + 2) * 0.2f);
|
||||||
|
return getRNG()->nextInt(0, 5*t + 1);
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t MyMesh::getExtraAckTransmitCount() const {
|
uint8_t MyMesh::getExtraAckTransmitCount() const {
|
||||||
return _prefs.multi_acks;
|
return _prefs.multi_acks;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,6 +106,8 @@ protected:
|
|||||||
float getAirtimeBudgetFactor() const override;
|
float getAirtimeBudgetFactor() const override;
|
||||||
int getInterferenceThreshold() const override;
|
int getInterferenceThreshold() const override;
|
||||||
int calcRxDelay(float score, uint32_t air_time) const override;
|
int calcRxDelay(float score, uint32_t air_time) const override;
|
||||||
|
uint32_t getRetransmitDelay(const mesh::Packet *packet) override;
|
||||||
|
uint32_t getDirectRetransmitDelay(const mesh::Packet *packet) override;
|
||||||
uint8_t getExtraAckTransmitCount() const override;
|
uint8_t getExtraAckTransmitCount() const override;
|
||||||
bool filterRecvFloodPacket(mesh::Packet* packet) override;
|
bool filterRecvFloodPacket(mesh::Packet* packet) override;
|
||||||
bool allowPacketForward(const mesh::Packet* packet) override;
|
bool allowPacketForward(const mesh::Packet* packet) override;
|
||||||
|
|||||||
Reference in New Issue
Block a user