Minimal changes related to the behavior of the auxiliary circuit.

This commit is contained in:
Angel Maldonado 2019-09-29 19:57:44 +02:00
parent 1ca6cd6c6d
commit 25ed7efbb7
3 changed files with 14 additions and 10 deletions

View file

@ -25,7 +25,7 @@ void update_track( track_t* tck, car_t* car ) {
if ( car->trackID == TRACK_MAIN
&& (int)car->dist % cfg->nled_main == cfg->init_aux
&& get_controllerStatus( ct ) != 0 ) {
&& get_controllerStatus( ct ) == 0 ) {
car->trackID = TRACK_AUX;
car->dist_aux = 0;
@ -42,7 +42,7 @@ void update_track( track_t* tck, car_t* car ) {
else if ( car->trackID == TRACK_MAIN ) process_main_track( tck, car );
/* Update car lap */
if ( car->dist > cfg->nled_main*car->nlap ) car->nlap++;
if ( car->dist > ( cfg->nled_main*car->nlap -1) ) car->nlap++;
}
void process_aux_track( track_t* tck, car_t* car ){
@ -52,7 +52,7 @@ void process_aux_track( track_t* tck, car_t* car ){
&& car->speed <= get_accel() ) {
car->speed = get_accel ()*10;
tck->ledcoin = -1;
tck->ledcoin = COIN_RESET;
};
car->speed -= car->speed * cfg->kf;

View file

@ -13,6 +13,11 @@ extern "C"{
#include "olr-controller.h"
#include "olr-param.h"
enum stcoin{
COIN_RESET = -2,
COIN_WAIT = -1,
};
enum{
NOT_TRACK = 0,
TRACK_MAIN,
@ -22,7 +27,6 @@ enum{
NUM_TRACKS,
};
enum status{
CAR_WAITING = 0,

View file

@ -42,6 +42,8 @@ enum{
MAX_CARS = 4,
};
enum loglevel{
ECHO = 0,
DISABLE = 0,
@ -143,7 +145,6 @@ void init_track( track_t* tck ){
param_load( &tck->cfg );
tck->gmap = gravity_map;
init_ramp( tck );
tck->ledcoin = -1;
}
void setup() {
@ -205,6 +206,7 @@ void loop() {
reset_carPosition( &cars[i] );
cars[i].repeats = 0;
}
tck.ledcoin = COIN_RESET;
race.phase = COUNTDOWN;
send_phase( race.phase );
}
@ -222,10 +224,9 @@ void loop() {
}
else if( race.phase == RACING ) {
strip_clear( &tck );
if( tck.ledcoin == -1 ) {
tck.ledcoin = 0;
strip_clear( &tck );
if( tck.ledcoin == COIN_RESET ) {
tck.ledcoin = COIN_WAIT;
tck.ledtime = millis() + random(2000,7000);
}
@ -526,7 +527,6 @@ ack_t parseCommands(AsyncSerial &serial) {
pch = strtok (NULL, ",");
if( !pch ) return ack;
int none = atoi( pch );
int err = track_configure( &tck, init_aux );
if( err ) return ack;