{
m_processor->AddLog(CEC_LOG_ERROR, "command was not sent");
}
- if (WaitForTransmitSucceeded(data))
+ if (data->expectControllerAck && WaitForTransmitSucceeded(data))
{
if (data->isTransmission)
data->state = ADAPTER_MESSAGE_STATE_SENT_ACKED;
output->PushEscaped(MSGCODE_START_BOOTLOADER);
output->PushBack(MSGEND);
output->isTransmission = false;
+ output->expectControllerAck = false;
if ((bReturn = Write(output)) == false)
m_processor->AddLog(CEC_LOG_ERROR, "could not start the bootloader");
void Clear(void)
{
- state = ADAPTER_MESSAGE_STATE_UNKNOWN;
- transmit_timeout = 0;
+ state = ADAPTER_MESSAGE_STATE_UNKNOWN;
+ transmit_timeout = 0;
packet.Clear();
- maxTries = CEC_DEFAULT_TRANSMIT_RETRIES + 1;
- tries = 0;
- reply = MSGCODE_NOTHING;
- isTransmission = true;
+ maxTries = CEC_DEFAULT_TRANSMIT_RETRIES + 1;
+ tries = 0;
+ reply = MSGCODE_NOTHING;
+ isTransmission = true;
+ expectControllerAck = true;
}
void Shift(uint8_t iShiftBy)
cec_adapter_message_state state;
int32_t transmit_timeout;
bool isTransmission;
+ bool expectControllerAck;
PLATFORM::CMutex mutex;
PLATFORM::CCondition condition;
};