Update borg.h
This commit is contained in:
parent
0d2b1b7a79
commit
2d79caa413
@ -5,9 +5,9 @@
|
|||||||
#include <FastLED.h>
|
#include <FastLED.h>
|
||||||
|
|
||||||
struct LEDSelect {
|
struct LEDSelect {
|
||||||
byte side;
|
byte side;
|
||||||
byte column;
|
byte column;
|
||||||
byte row;
|
byte row;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Decodes side, column, row into n LED
|
// Decodes side, column, row into n LED
|
||||||
@ -32,109 +32,109 @@ void printError(CRGB color, CRGB* leds);
|
|||||||
|
|
||||||
|
|
||||||
int decodeLED(LEDSelect selection) {
|
int decodeLED(LEDSelect selection) {
|
||||||
return 9 * selection.side + 3 * selection.row + selection.column;
|
return 9 * selection.side + 3 * selection.row + selection.column;
|
||||||
}
|
}
|
||||||
|
|
||||||
void encodeLED(int n, LEDSelect* Result) {
|
void encodeLED(int n, LEDSelect* Result) {
|
||||||
Result->side = n / 9;
|
Result->side = n / 9;
|
||||||
Result->column = n % 9 / 3;
|
Result->column = n % 9 / 3;
|
||||||
Result->row = n % 9 % 3;
|
Result->row = n % 9 % 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool setColor(LEDSelect selection, CRGB color, CRGB* leds) {
|
bool setColor(LEDSelect selection, CRGB color, CRGB* leds) {
|
||||||
if (selection.side == 255) {
|
if (selection.side == 255) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (selection.column == 255 && selection.row == 255) {
|
if (selection.column == 255 && selection.row == 255) {
|
||||||
for (byte n = 0; n < 9; n++) {
|
for (byte n = 0; n < 9; n++) {
|
||||||
leds[selection.side * 9 + n] = color;
|
leds[selection.side * 9 + n] = color;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (selection.column == 255 && selection.row != 255) {
|
else if (selection.column == 255 && selection.row != 255) {
|
||||||
for (byte n = 0; n < 3; n++) {
|
for (byte n = 0; n < 3; n++) {
|
||||||
leds[decodeLED({ selection.side, n, selection.row })] = color;
|
leds[decodeLED({ selection.side, n, selection.row })] = color;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (selection.column != 255 && selection.row == 255) {
|
else if (selection.column != 255 && selection.row == 255) {
|
||||||
for (byte n = 0; n < 3; n++) {
|
for (byte n = 0; n < 3; n++) {
|
||||||
leds[decodeLED({ selection.side, selection.column, n })] = color;
|
leds[decodeLED({ selection.side, selection.column, n })] = color;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (selection.column != 255 && selection.row != 255) {
|
else if (selection.column != 255 && selection.row != 255) {
|
||||||
leds[decodeLED(selection)] = color;
|
leds[decodeLED(selection)] = color;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool updateColors(LEDSelect selection, CRGB color, CRGB* leds) {
|
bool updateColors(LEDSelect selection, CRGB color, CRGB* leds) {
|
||||||
if (selection.side == 255) {
|
if (selection.side == 255) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (selection.column == 255 && selection.row == 255) {
|
if (selection.column == 255 && selection.row == 255) {
|
||||||
for (int n = 0; n < 9; n++) {
|
for (int n = 0; n < 9; n++) {
|
||||||
CRGB* led = &leds[selection.side * 9 + n];
|
CRGB* led = &leds[selection.side * 9 + n];
|
||||||
if (*led != (CRGB) 0x000000) {
|
if (*led != (CRGB) 0x000000) {
|
||||||
*led = color;
|
*led = color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (selection.column == 255 && selection.row != 255) {
|
else if (selection.column == 255 && selection.row != 255) {
|
||||||
for (int n = 0; n < 3; n++) {
|
for (int n = 0; n < 3; n++) {
|
||||||
CRGB* led = &leds[decodeLED({ selection.side, n, selection.row })];
|
CRGB* led = &leds[decodeLED({ selection.side, n, selection.row })];
|
||||||
if (*led != (CRGB)0x000000) {
|
if (*led != (CRGB)0x000000) {
|
||||||
*led = color;
|
*led = color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (selection.column != 255 && selection.row == 255) {
|
else if (selection.column != 255 && selection.row == 255) {
|
||||||
for (int n = 0; n < 3; n++) {
|
for (int n = 0; n < 3; n++) {
|
||||||
CRGB* led = &leds[decodeLED({ selection.side, selection.column, n })];
|
CRGB* led = &leds[decodeLED({ selection.side, selection.column, n })];
|
||||||
if (*led != (CRGB) 0x000000) {
|
if (*led != (CRGB) 0x000000) {
|
||||||
*led = color;
|
*led = color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (selection.column != 255 && selection.row != 255) {
|
else if (selection.column != 255 && selection.row != 255) {
|
||||||
CRGB* led = &leds[decodeLED(selection)];
|
CRGB* led = &leds[decodeLED(selection)];
|
||||||
if (*led != (CRGB) 0x000000) {
|
if (*led != (CRGB) 0x000000) {
|
||||||
*led = color;
|
*led = color;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool mirror(byte side, CRGB* leds) {
|
bool mirror(byte side, CRGB* leds) {
|
||||||
/*TODO: figure out memory structure,
|
/*TODO: figure out memory structure,
|
||||||
copy the nine leds to the the different memory parts, so it the text is displayed on all sides.
|
copy the nine leds to the the different memory parts, so it the text is displayed on all sides.
|
||||||
should probably use some form of modulo
|
should probably use some form of modulo
|
||||||
*/
|
*/
|
||||||
for(int i = 0; i < sizeof(leds) / sizeof(CRGB); i+=9) {
|
for(int i = 0; i < sizeof(leds) / sizeof(CRGB); i+=9) {
|
||||||
memcpy(&leds[i], &leds[decodeLED({side, 0, 0})], sizeof(CRGB) * 9);
|
memcpy(&leds[i], &leds[decodeLED({side, 0, 0})], sizeof(CRGB) * 9);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void printError(CRGB color, CRGB* leds) {
|
void printError(CRGB color, CRGB* leds) {
|
||||||
setColor({0, 255, 255}, (CRGB) color, leds);
|
setColor({0, 255, 255}, (CRGB) color, leds);
|
||||||
setColor({0, 0, 1}, (CRGB) 0, leds);
|
setColor({0, 0, 1}, (CRGB) 0, leds);
|
||||||
setColor({0, 1, 0}, (CRGB) 0, leds);
|
setColor({0, 1, 0}, (CRGB) 0, leds);
|
||||||
setColor({0, 1, 2}, (CRGB) 0, leds);
|
setColor({0, 1, 2}, (CRGB) 0, leds);
|
||||||
setColor({0, 2, 1}, (CRGB) 0, leds);
|
setColor({0, 2, 1}, (CRGB) 0, leds);
|
||||||
mirror(0, leds);
|
mirror(0, leds);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user