Minimal changes related to the behavior of the auxiliary circuit.
This commit is contained in:
parent
1ca6cd6c6d
commit
25ed7efbb7
3 changed files with 14 additions and 10 deletions
|
@ -25,7 +25,7 @@ void update_track( track_t* tck, car_t* car ) {
|
||||||
|
|
||||||
if ( car->trackID == TRACK_MAIN
|
if ( car->trackID == TRACK_MAIN
|
||||||
&& (int)car->dist % cfg->nled_main == cfg->init_aux
|
&& (int)car->dist % cfg->nled_main == cfg->init_aux
|
||||||
&& get_controllerStatus( ct ) != 0 ) {
|
&& get_controllerStatus( ct ) == 0 ) {
|
||||||
|
|
||||||
car->trackID = TRACK_AUX;
|
car->trackID = TRACK_AUX;
|
||||||
car->dist_aux = 0;
|
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 );
|
else if ( car->trackID == TRACK_MAIN ) process_main_track( tck, car );
|
||||||
|
|
||||||
/* Update car lap */
|
/* 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 ){
|
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() ) {
|
||||||
|
|
||||||
car->speed = get_accel ()*10;
|
car->speed = get_accel ()*10;
|
||||||
tck->ledcoin = -1;
|
tck->ledcoin = COIN_RESET;
|
||||||
};
|
};
|
||||||
|
|
||||||
car->speed -= car->speed * cfg->kf;
|
car->speed -= car->speed * cfg->kf;
|
||||||
|
|
|
@ -13,6 +13,11 @@ extern "C"{
|
||||||
#include "olr-controller.h"
|
#include "olr-controller.h"
|
||||||
#include "olr-param.h"
|
#include "olr-param.h"
|
||||||
|
|
||||||
|
enum stcoin{
|
||||||
|
COIN_RESET = -2,
|
||||||
|
COIN_WAIT = -1,
|
||||||
|
};
|
||||||
|
|
||||||
enum{
|
enum{
|
||||||
NOT_TRACK = 0,
|
NOT_TRACK = 0,
|
||||||
TRACK_MAIN,
|
TRACK_MAIN,
|
||||||
|
@ -23,7 +28,6 @@ enum{
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
enum status{
|
enum status{
|
||||||
CAR_WAITING = 0,
|
CAR_WAITING = 0,
|
||||||
CAR_COMING,
|
CAR_COMING,
|
||||||
|
|
|
@ -42,6 +42,8 @@ enum{
|
||||||
MAX_CARS = 4,
|
MAX_CARS = 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
enum loglevel{
|
enum loglevel{
|
||||||
ECHO = 0,
|
ECHO = 0,
|
||||||
DISABLE = 0,
|
DISABLE = 0,
|
||||||
|
@ -143,7 +145,6 @@ void init_track( track_t* tck ){
|
||||||
param_load( &tck->cfg );
|
param_load( &tck->cfg );
|
||||||
tck->gmap = gravity_map;
|
tck->gmap = gravity_map;
|
||||||
init_ramp( tck );
|
init_ramp( tck );
|
||||||
tck->ledcoin = -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
|
@ -205,6 +206,7 @@ void loop() {
|
||||||
reset_carPosition( &cars[i] );
|
reset_carPosition( &cars[i] );
|
||||||
cars[i].repeats = 0;
|
cars[i].repeats = 0;
|
||||||
}
|
}
|
||||||
|
tck.ledcoin = COIN_RESET;
|
||||||
race.phase = COUNTDOWN;
|
race.phase = COUNTDOWN;
|
||||||
send_phase( race.phase );
|
send_phase( race.phase );
|
||||||
}
|
}
|
||||||
|
@ -223,9 +225,8 @@ void loop() {
|
||||||
else if( race.phase == RACING ) {
|
else if( race.phase == RACING ) {
|
||||||
|
|
||||||
strip_clear( &tck );
|
strip_clear( &tck );
|
||||||
|
if( tck.ledcoin == COIN_RESET ) {
|
||||||
if( tck.ledcoin == -1 ) {
|
tck.ledcoin = COIN_WAIT;
|
||||||
tck.ledcoin = 0;
|
|
||||||
tck.ledtime = millis() + random(2000,7000);
|
tck.ledtime = millis() + random(2000,7000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -526,7 +527,6 @@ ack_t parseCommands(AsyncSerial &serial) {
|
||||||
|
|
||||||
pch = strtok (NULL, ",");
|
pch = strtok (NULL, ",");
|
||||||
if( !pch ) return ack;
|
if( !pch ) return ack;
|
||||||
int none = atoi( pch );
|
|
||||||
|
|
||||||
int err = track_configure( &tck, init_aux );
|
int err = track_configure( &tck, init_aux );
|
||||||
if( err ) return ack;
|
if( err ) return ack;
|
||||||
|
|
Loading…
Add table
Reference in a new issue