From 9c063b9d609a04a9495bd931cd3eb274d663e09f Mon Sep 17 00:00:00 2001 From: Singular Devices Date: Tue, 13 Jul 2021 07:21:31 +0000 Subject: [PATCH] Upload New File --- open-led-race/olr-lib.h | 107 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 open-led-race/olr-lib.h diff --git a/open-led-race/olr-lib.h b/open-led-race/olr-lib.h new file mode 100644 index 0000000..2fed95f --- /dev/null +++ b/open-led-race/olr-lib.h @@ -0,0 +1,107 @@ + +#ifndef _OLR_LIB_h +#define _OLR_LIB_h + +#ifdef __cplusplus + +extern "C"{ +#endif + +#include +#include +#include +#include "olr-controller.h" +#include "olr-param.h" + +#define SPD_MIN_TRACK_AUX 0.8 +#define BATTERY_DELTA 0.03 +#define BATTERY_MIN 60 +#define SPEED_BOOST_SCALER 10 + +enum stcoin{ + COIN_RESET = -2, + COIN_WAIT = -1, +}; + +enum{ + NOT_TRACK = 0, + TRACK_MAIN, + TRACK_AUX, + TRACK_IN, + TRACK_OUT, + NUM_TRACKS, +}; + + +enum status{ + CAR_WAITING = 0, + CAR_COMING, + CAR_ENTER, + CAR_RACING, + CAR_LEAVING, + CAR_GO_OUT, + CAR_FINISH +}; + +typedef struct{ + controller_t* ct; + float speed; + float dist; + float dist_aux; + byte nlap; + byte repeats; + uint32_t color; + int trackID; + enum status st; + bool leaving; + float battery; +}car_t; + + + +typedef struct { + struct cfgparam cfg; + int ledcoin; //LED_SPEED_COIN + uint32_t ledtime; + bool rampactive; + bool boxactive; +}track_t; + + +void car_init( car_t* car, controller_t* ct, uint32_t color ); + +void car_updateController( car_t* car ); + +void car_resetPosition( car_t* car); + +void update_track( track_t* tck, car_t* car ); + +void process_main_track( track_t* tck, car_t* car ); + +void process_aux_track( track_t* tck, car_t* car ); + +void box_init( track_t* tck ); + +bool box_isactive( track_t* tck ); + +int tracklen_configure( track_t* tck, int nled ); + +int boxlen_configure( track_t* tck, int box_len, int boxalwaysOn ); + +int physic_configure( track_t* tck, float kgp, float kfp ); + +int track_configure( track_t* tck, int init_box ); + +void ramp_init( track_t* tck ); + +bool ramp_isactive( track_t* tck ); + +int ramp_configure( track_t* tck, int init, int center, int end, int high, int alwaysOn ); + +int race_configure( track_t* tck, int startline, int nlap, int nrepeat, int finishline ); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif