fix ANT device reset requence

This commit is contained in:
Vianney Boyer
2015-08-22 21:03:40 +02:00
parent e79fc3753f
commit 1613f032ff
2 changed files with 18 additions and 3 deletions

View File

@@ -427,10 +427,20 @@ ANT::setup()
// fixme: better synchronisation?
msleep(500);
sendMessage(ANTMessage::resetSystem());
uint8_t attempts = 0;
do
{
ANT_Reset_Acknowledge = false;
sendMessage(ANTMessage::resetSystem());
// specs say wait 500ms after reset before sending any more host commands
msleep(500);
// specs say wait 500ms after reset before sending any more host commands
msleep(500);
if (!ANT_Reset_Acknowledge)
qDebug() << "ANT device reset was not acknowledged !...try again";
// else
// qDebug() << "ANT device reset successful !";
} while (!ANT_Reset_Acknowledge && attempts++<3);
sendMessage(ANTMessage::setNetworkKey(1, key));
@@ -885,6 +895,9 @@ ANT::processMessage(void) {
emit receivedAntMessage(m, timestamp);
switch (rxMessage[ANT_OFFSET_ID]) {
case ANT_NOTIF_STARTUP:
ANT_Reset_Acknowledge = true;
break;
case ANT_ACK_DATA:
case ANT_BROADCAST_DATA:
case ANT_CHANNEL_STATUS:

View File

@@ -165,6 +165,7 @@ struct setChannelAtom {
#define ANT_VERSION 0x3E
#define ANT_CAPABILITIES 0x54
#define ANT_SERIAL_NUMBER 0x61
#define ANT_NOTIF_STARTUP 0x6F
#define ANT_CW_INIT 0x53
#define ANT_CW_TEST 0x48
@@ -530,6 +531,7 @@ private:
QTime elapsedTime;
#endif
bool ANT_Reset_Acknowledge;
unsigned char rxMessage[ANT_MAX_MESSAGE_SIZE];
// state machine whilst receiving bytes