Agrego nuevo modo incio carrera auto_start , todos los participantes deben mantener pulsados a la vez el boton , ademas sirve para probar el mando independientemente porque se enciende un led con cada mando, el semaforo parpadea lento para indicar esta en este modo

This commit is contained in:
Singular Devices 2021-07-17 08:31:19 +00:00
parent 2d115cd1d4
commit 7c74e922f7

View file

@ -69,6 +69,8 @@ char const version[] = "0.9.6b";
#define NEWRACE_DELAY 5000 #define NEWRACE_DELAY 5000
#define AUTO_START 0
enum{ enum{
MAX_CARS = 4, MAX_CARS = 4,
}; };
@ -276,7 +278,7 @@ void loop() {
break; break;
case READY: case READY:
{ {if (AUTO_START==1){
if(customDelay.elapsed()) { if(customDelay.elapsed()) {
for( int i = 0; i < race.numcars; ++i) { for( int i = 0; i < race.numcars; ++i) {
car_resetPosition( &cars[i] ); car_resetPosition( &cars[i] );
@ -287,6 +289,29 @@ void loop() {
send_phase( race.phase ); send_phase( race.phase );
} }
} }
else {int pstart=0;
strip_clear( &tck );
if( ramp_isactive( &tck ) )
draw_ramp( &tck );
if( box_isactive( &tck ) )
draw_box_entrypoint( &tck );
for( int i = 0; i < race.numcars; ++i) {
if (controller_getStatus(cars[i].ct)==false){
car_resetPosition( &cars[i] );
Serial.println(i);
track.setPixelColor(i,cars[i].color);
cars[i].repeats = 0;
pstart++;}
}
track.setPixelColor(LED_SEMAPHORE , ((millis()/5)%64)*0x010100 );
track.show();
if (pstart==race.numcars){tck.ledcoin = COIN_RESET;
race.phase = COUNTDOWN;
send_phase( race.phase );}
};
}
break; break;
case COUNTDOWN: case COUNTDOWN:
@ -560,7 +585,8 @@ void strip_clear( track_t* tck ) {
void draw_coin( track_t* tck ) { void draw_coin( track_t* tck ) {
struct cfgtrack const* cfg = &tck->cfg.track; struct cfgtrack const* cfg = &tck->cfg.track;
track.setPixelColor( 1 + cfg->nled_main + cfg->nled_aux - tck->ledcoin,COLOR_COIN ); track.setPixelColor( 1 + cfg->nled_main + cfg->nled_aux - tck->ledcoin,COLOR_COIN * ((millis()/4)%64));
//track.setPixelColor( 1 + cfg->nled_main + cfg->nled_aux - tck->ledcoin,0x010100 * ((millis()/4)%64)); // FX if charging ???
} }
void draw_winner( track_t* tck, uint32_t color) { void draw_winner( track_t* tck, uint32_t color) {