diff --git a/src/arduino/shiftlights/shiftlights.h b/src/arduino/shiftlights/shiftlights.h index 2443424..aa5e141 100755 --- a/src/arduino/shiftlights/shiftlights.h +++ b/src/arduino/shiftlights/shiftlights.h @@ -6,20 +6,21 @@ typedef struct { - unsigned char color_1_red; - unsigned char color_1_green; - unsigned char color_1_blue; - unsigned char color_2_red; - unsigned char color_2_green; - unsigned char color_2_blue; - unsigned char color_3_red; - unsigned char color_3_green; - unsigned char color_3_blue; - unsigned char space_1; - unsigned char space_2; - unsigned char space_3; - uint32_t maxrpm; - uint32_t rpm; + uint32_t litleds; + //unsigned char color_1_red; + //unsigned char color_1_green; + //unsigned char color_1_blue; + //unsigned char color_2_red; + //unsigned char color_2_green; + //unsigned char color_2_blue; + //unsigned char color_3_red; + //unsigned char color_3_green; + //unsigned char color_3_blue; + //unsigned char space_1; + //unsigned char space_2; + //unsigned char space_3; + //uint32_t maxrpm; + //uint32_t rpm; } ShiftLightsData; diff --git a/src/arduino/shiftlights/shiftlights.ino b/src/arduino/shiftlights/shiftlights.ino index 20795cb..29e56d0 100644 --- a/src/arduino/shiftlights/shiftlights.ino +++ b/src/arduino/shiftlights/shiftlights.ino @@ -7,15 +7,15 @@ #define NUM_LEDS 6 #define BRIGHTNESS 40 -#define COLOR1A 0 +#define COLOR1R 0 +#define COLOR1G 255 #define COLOR1B 0 -#define COLOR1C 255 -#define COLOR2A 0 -#define COLOR2B 255 -#define COLOR2C 0 -#define COLOR3A 255 +#define COLOR2R 255 +#define COLOR2G 255 +#define COLOR2B 0 +#define COLOR3R 255 +#define COLOR3G 0 #define COLOR3B 0 -#define COLOR3C 0 CRGB leds[NUM_LEDS]; ShiftLightsData sd; @@ -39,62 +39,69 @@ void setup() } FastLED.clear(); - sd.rpm = 0; - sd.maxrpm = 6500; + sd.litleds = 0; + //sd.rpm = 0; + //sd.maxrpm = 6500; } void loop() { int l = 0; + int lit = sd.litleds; char buff[SIMDATA_SIZE]; if (Serial.available() >= SIMDATA_SIZE) { Serial.readBytes(buff, SIMDATA_SIZE); memcpy(&sd, &buff, SIMDATA_SIZE); - rpm = sd.rpm; - maxrpm = sd.maxrpm; + lit = sd.litleds; } + //if (Serial.available() >= SIMDATA_SIZE) + //{ + // Serial.readBytes(buff, SIMDATA_SIZE); + // memcpy(&sd, &buff, SIMDATA_SIZE); + // rpm = sd.rpm; + // maxrpm = sd.maxrpm; + //} - while (l < numlights) - { - lights[l] = 0; - l++; - } - l = -1; - int rpmlights = 0; - while (rpm > rpmlights) - { - if (l>=0) - { - lights[l] = 1; - } - l++; - rpmlights = rpmlights + (((maxrpm-250)/numlights)); - } + //while (l < numlights) + //{ + // lights[l] = 0; + // l++; + //} + //l = -1; + //int rpmlights = 0; + //while (rpm > rpmlights) + //{ + // if (l>=0) + // { + // lights[l] = 1; + // } + // l++; + // rpmlights = rpmlights + (((maxrpm-250)/numlights)); + //} l = 0; FastLED.clear(); - while (l < numlights) + while (l < lit) { - if (l >= numlights / 2) { - leds[l] = CRGB ( COLOR1A, COLOR1B, COLOR1C); + leds[l] = CRGB ( COLOR2R, COLOR2G, COLOR2B); } if (l < numlights / 2) { - leds[l] = CRGB ( COLOR2A, COLOR2B, COLOR2C); + leds[l] = CRGB ( COLOR1R, COLOR1G, COLOR1B); } if (l == numlights - 1) { - leds[l] = CRGB ( COLOR3A, COLOR3B, COLOR3C); + leds[l] = CRGB ( COLOR3R, COLOR3G, COLOR3B); } - if (lights[l] <= 0) - { - leds[l] = CRGB ( 0, 0, 0); - } - FastLED.show(); + //if (lights[l] <= 0) + //{ + // leds[l] = CRGB ( 0, 0, 0); + //} l++; } + FastLED.show(); } diff --git a/src/arduino/simhaptic/simhaptic.ino b/src/arduino/simhaptic/simhaptic.ino index 94ce4e3..e7d6f4b 100644 --- a/src/arduino/simhaptic/simhaptic.ino +++ b/src/arduino/simhaptic/simhaptic.ino @@ -22,7 +22,7 @@ int effect3 = 0; int effect4 = 0; void setup() { - Serial.begin(9600); + Serial.begin(115200); if (!AFMS.begin()) { Serial.println("Could not find Motor Shield. Check wiring."); while (1); diff --git a/src/arduino/simwind/simwind.ino b/src/arduino/simwind/simwind.ino index 3bffd17..bc536d8 100644 --- a/src/arduino/simwind/simwind.ino +++ b/src/arduino/simwind/simwind.ino @@ -14,7 +14,7 @@ SimWindData sd; int velocity = 0; void setup() { - Serial.begin(9600); + Serial.begin(115200); if (!AFMS.begin()) { Serial.println("Could not find Motor Shield. Check wiring."); while (1); diff --git a/src/monocoque/devices/serialdevice.c b/src/monocoque/devices/serialdevice.c index 05fe077..0c720fc 100644 --- a/src/monocoque/devices/serialdevice.c +++ b/src/monocoque/devices/serialdevice.c @@ -28,9 +28,28 @@ int arduino_shiftlights_update(SimDevice* this, SimData* simdata) int result = 1; - serialdevice->u.shiftlightsdata.maxrpm = simdata->maxrpm; - serialdevice->u.shiftlightsdata.rpm = simdata->rpms; - slogt("Updating arduino device rpms to %i", serialdevice->u.shiftlightsdata.rpm); + int num_avail_leds = 6; + int rpm = simdata->rpms; + int maxrpm = simdata->maxrpm; + int litleds = 0; + if(rpm > 0 && maxrpm > 0) + { + int rpmmargin = ceil(.05*maxrpm); + int rpminterval = (maxrpm-rpmmargin) / (num_avail_leds); + + + for (int l = 1; l <= (num_avail_leds); l++) + { + if(rpm >= (rpminterval * l)) + { + litleds = l; + } + } + } + + serialdevice->u.shiftlightsdata.litleds = litleds; + //serialdevice->u.shiftlightsdata.rpm = simdata->rpms; + slogt("Updating arduino device lights to %i", serialdevice->u.shiftlightsdata.litleds); // we can add configs to set all the colors // i can move the size to the initialization since it should not change size_t size = sizeof(ShiftLightsData); diff --git a/src/monocoque/gameloop/gameloop.c b/src/monocoque/gameloop/gameloop.c index 4fbba95..660af81 100644 --- a/src/monocoque/gameloop/gameloop.c +++ b/src/monocoque/gameloop/gameloop.c @@ -305,7 +305,7 @@ void datacheckcallback(uv_timer_t* handle) simdata->tyrediameter[1] = -1; simdata->tyrediameter[2] = -1; simdata->tyrediameter[3] = -1; - uv_timer_start(&datamaptimer, shmdatamapcallback, 2000, 125); + uv_timer_start(&datamaptimer, shmdatamapcallback, 2000, 16); uv_timer_stop(handle); } }