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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user