1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-07-26 07:02:15 +03:00

- Make most type definitions public instead of protected, to facilitate use in composition.

- Call ResponseTransmittedHook after every response transmission attempt, instead of after every successful response transmission attempt.

- Improve documentation.

- Finalize README.md.

- Update keywords.txt.
This commit is contained in:
Anders
2020-06-05 21:56:33 +02:00
parent 0516b30655
commit fba4ac15f6
11 changed files with 592 additions and 82 deletions

View File

@ -162,15 +162,17 @@ void EspnowTransmitter::sendEspnowResponses(const ExpiringTimeTracker *estimated
continue;
}
bool hookOutcome = true;
// Note that callbacks can be called during delay time, so it is possible to receive a transmission during espnowSendToNode
// (which may add an element to the responsesToSend list).
if(espnowSendToNodeUnsynchronized(responseIterator->getMessage(), responseIterator->getRecipientMac(), 'A', responseIterator->getRequestID())
== TransmissionStatusType::TRANSMISSION_COMPLETE)
bool transmissionSuccessful = espnowSendToNodeUnsynchronized(responseIterator->getMessage(), responseIterator->getRecipientMac(), 'A', responseIterator->getRequestID())
== TransmissionStatusType::TRANSMISSION_COMPLETE;
bool hookOutcome = true;
if(EspnowMeshBackend *currentEspnowRequestManager = EspnowMeshBackend::getEspnowRequestManager())
hookOutcome = currentEspnowRequestManager->getResponseTransmittedHook()(transmissionSuccessful, responseIterator->getMessage(), responseIterator->getRecipientMac(), responseIndex, *currentEspnowRequestManager);
if(transmissionSuccessful)
{
if(EspnowMeshBackend *currentEspnowRequestManager = EspnowMeshBackend::getEspnowRequestManager())
hookOutcome = currentEspnowRequestManager->getResponseTransmittedHook()(responseIterator->getMessage(), responseIterator->getRecipientMac(), responseIndex, *currentEspnowRequestManager);
responseIterator = EspnowDatabase::responsesToSend().erase(responseIterator);
--responseIndex;
}