diff --git a/master/master/lib/slavesensors.c b/master/master/lib/slavesensors.c --- a/master/master/lib/slavesensors.c +++ b/master/master/lib/slavesensors.c @@ -119,21 +119,30 @@ void slavesensors_network_scan() serial0_sendChar(0x0D); // wait for scan to complete - uint16_t scanStart = time_millis(); - while(!serial0_hasChar()) - { - if(time_millis() - scanStart > 7000) - { - led_errorcode(ERROR_XBEETIMEOUT); - return; - } - wdt_reset(); - } + uint32_t scanStart = time_millis(); + uint32_t lastBlink = 0; + // Scan data end when newline by itself ("") int lineCount = 0; while(1) { + while(!serial0_hasChar()) + { + if(time_millis() - scanStart > 7000) + { + led_errorcode(ERROR_XBEETIMEOUT); + return; + } + if(time_millis() - lastBlink > 50) + { + led_spin(); + + lastBlink = time_millis(); + } + wdt_reset(); + } + bufPtr = serial0_readLine(); // If we're starting a new block but got a newline instead, we're done! @@ -173,7 +182,13 @@ void slavesensors_network_scan() } + // Display number of found nodes on spinning indicator + led_off(LED_ACT0); + led_off(LED_ACT1); + led_off(LED_ACT2); + led_off(LED_ACT3); + switch(nodeCount) { case 0: @@ -188,9 +203,9 @@ void slavesensors_network_scan() led_on(LED_ACT0); _delay_ms(100); } - + _delay_ms(500); led_on(LED_SIDEBOARD); - _delay_ms(200); + _delay_ms(500); led_off(LED_SIDEBOARD); #ifdef DEBUG_OUTPUT