2023-02-08 19:17:58 +00:00
# include "image.h"
Image : : Image ( )
{
}
2023-02-11 17:26:52 +00:00
void Image : : serialPrintInt ( uint16_t source )
{
for ( uint8_t i = 0 ; i < 16 ; i + + )
Serial . print ( ( source & ( 1 < < i ) ) > 0 ) ;
}
2023-02-08 19:17:58 +00:00
void Image : : init ( )
{
flipdot . init ( ) ; //sets pin modes etc.
2023-02-08 20:00:15 +00:00
flag_updating = false ;
update_counter = 0 ;
2023-02-13 18:02:11 +00:00
updateDelay = 10 ;
2023-02-11 17:51:33 +00:00
resetOrder ( true ) ;
2023-02-08 19:17:58 +00:00
}
uint8_t Image : : getW ( ) {
return COLUMNS ;
}
uint8_t Image : : getH ( ) {
return ROWS ;
}
2023-02-08 20:00:15 +00:00
void Image : : setBuffer_solid ( bool set )
{
for ( uint8_t x = 0 ; x < getW ( ) ; x + + ) {
if ( set ) {
backBuffer [ x ] = 0xffff ; //all white
} else {
backBuffer [ x ] = 0x0 ; //all black
}
}
flag_updating = true ; //make update run
2023-02-13 18:58:45 +00:00
}
2023-09-20 17:22:59 +00:00
2023-11-23 07:02:12 +00:00
void Image : : setBuffer_Image1 ( ) //Bumblebee
2023-09-20 17:22:59 +00:00
{
2023-11-22 18:32:33 +00:00
backBuffer [ 0 ] = 0b0000000000000111 ;
backBuffer [ 1 ] = 0b0000000000000000 ;
backBuffer [ 2 ] = 0b0000000000000000 ;
backBuffer [ 3 ] = 0b0000000000000010 ;
backBuffer [ 4 ] = 0b0000000000000001 ;
backBuffer [ 5 ] = 0b0000000001100000 ;
backBuffer [ 6 ] = 0b0000000001110000 ;
backBuffer [ 7 ] = 0b0000000000111000 ;
backBuffer [ 8 ] = 0b0000000000001111 ;
backBuffer [ 9 ] = 0b0000110000011111 ;
backBuffer [ 10 ] = 0b0000111001110000 ;
backBuffer [ 11 ] = 0b0000011110000001 ;
backBuffer [ 12 ] = 0b0000111000000010 ;
backBuffer [ 13 ] = 0b0000110000000000 ;
backBuffer [ 14 ] = 0b0000000000000000 ;
backBuffer [ 15 ] = 0b0000000000000111 ;
backBuffer [ 16 ] = 0b0000000000001000 ;
backBuffer [ 17 ] = 0b0000000000000000 ;
backBuffer [ 18 ] = 0b0000000000000000 ;
backBuffer [ 19 ] = 0b0000000000000011 ;
backBuffer [ 20 ] = 0b0000000000000000 ;
backBuffer [ 21 ] = 0b0000000000000011 ;
backBuffer [ 22 ] = 0b0000000000000000 ;
backBuffer [ 23 ] = 0b1100000000000000 ;
backBuffer [ 24 ] = 0b1110000000000111 ;
backBuffer [ 25 ] = 0b1111000000000000 ;
backBuffer [ 26 ] = 0b1111100000000000 ;
backBuffer [ 27 ] = 0b1111100000000010 ;
backBuffer [ 28 ] = 0b1111000000000001 ;
backBuffer [ 29 ] = 0b1110000000000000 ;
backBuffer [ 30 ] = 0b1110000000000001 ;
backBuffer [ 31 ] = 0b1111000000000000 ;
backBuffer [ 32 ] = 0b1111000000000000 ;
backBuffer [ 33 ] = 0b1111100000000001 ;
backBuffer [ 34 ] = 0b1111100000000000 ;
backBuffer [ 35 ] = 0b1111100000000001 ;
backBuffer [ 36 ] = 0b1111000000000000 ;
backBuffer [ 37 ] = 0b1110000000000000 ;
backBuffer [ 38 ] = 0b1110000000000000 ;
backBuffer [ 39 ] = 0b1111000000000000 ;
backBuffer [ 40 ] = 0b1111000000000011 ;
backBuffer [ 41 ] = 0b1110000000000000 ;
backBuffer [ 42 ] = 0b1100000000000000 ;
backBuffer [ 43 ] = 0b1000000000000000 ;
backBuffer [ 44 ] = 0b0000000000000010 ;
backBuffer [ 45 ] = 0b0000000000000001 ;
backBuffer [ 46 ] = 0b0000000000000000 ;
backBuffer [ 47 ] = 0b0000000000000000 ;
backBuffer [ 48 ] = 0b0000000000000111 ;
backBuffer [ 49 ] = 0b0000000000000000 ;
backBuffer [ 50 ] = 0b0000000000000000 ;
backBuffer [ 51 ] = 0b0000000000000011 ;
backBuffer [ 52 ] = 0b0000000000000000 ;
backBuffer [ 53 ] = 0b0000000000000000 ;
backBuffer [ 54 ] = 0b0000000000000110 ;
backBuffer [ 55 ] = 0b0000000000000001 ;
backBuffer [ 56 ] = 0b0000110000000000 ;
backBuffer [ 57 ] = 0b0001111000000000 ;
backBuffer [ 58 ] = 0b0011110000000000 ;
backBuffer [ 59 ] = 0b0011111000000011 ;
backBuffer [ 60 ] = 0b0001110000000100 ;
backBuffer [ 61 ] = 0b0000000000000000 ;
backBuffer [ 62 ] = 0b0000000000000000 ;
backBuffer [ 63 ] = 0b0000000000000000 ;
backBuffer [ 64 ] = 0b0000000111000000 ;
backBuffer [ 65 ] = 0b0000000111000011 ;
backBuffer [ 66 ] = 0b0000000111100000 ;
backBuffer [ 67 ] = 0b0000000011110000 ;
backBuffer [ 68 ] = 0b0000000001111111 ;
backBuffer [ 69 ] = 0b0011000001110110 ;
backBuffer [ 70 ] = 0b0011100111000100 ;
backBuffer [ 71 ] = 0b0011111100001000 ;
backBuffer [ 72 ] = 0b0011111000000000 ;
backBuffer [ 73 ] = 0b0111100000000001 ;
backBuffer [ 74 ] = 0b0000000000000000 ;
2023-09-20 17:22:59 +00:00
flag_updating = true ; //make update run
}
2023-11-23 07:02:12 +00:00
void Image : : setBuffer_Image2 ( ) //CTDO
2023-09-20 17:22:59 +00:00
{
2023-11-22 18:32:33 +00:00
backBuffer [ 0 ] = 0b0000000000000000 ;
backBuffer [ 1 ] = 0b0000000000000000 ;
backBuffer [ 2 ] = 0b0000000000000000 ;
backBuffer [ 3 ] = 0b0000000000000000 ;
backBuffer [ 4 ] = 0b0000000000000000 ;
backBuffer [ 5 ] = 0b0000000000000000 ;
backBuffer [ 6 ] = 0b0000000000000000 ;
backBuffer [ 7 ] = 0b0000011110000000 ;
backBuffer [ 8 ] = 0b0011111111000000 ;
backBuffer [ 9 ] = 0b0111111111100000 ;
backBuffer [ 10 ] = 0b1111110111110000 ;
backBuffer [ 11 ] = 0b1110000000111000 ;
backBuffer [ 12 ] = 0b1110000000111100 ;
backBuffer [ 13 ] = 0b1110000000111100 ;
backBuffer [ 14 ] = 0b1110000001111000 ;
backBuffer [ 15 ] = 0b1111000000110000 ;
backBuffer [ 16 ] = 0b0110000000000000 ;
backBuffer [ 17 ] = 0b0000000000000000 ;
backBuffer [ 18 ] = 0b0000000000000000 ;
backBuffer [ 19 ] = 0b0000000000000000 ;
backBuffer [ 20 ] = 0b0000000000000000 ;
backBuffer [ 21 ] = 0b0110000000000000 ;
backBuffer [ 22 ] = 0b1111000000000000 ;
backBuffer [ 23 ] = 0b1110000000000000 ;
backBuffer [ 24 ] = 0b1110000000001100 ;
backBuffer [ 25 ] = 0b1110000011111110 ;
backBuffer [ 26 ] = 0b1111111111111110 ;
backBuffer [ 27 ] = 0b1111111111111100 ;
backBuffer [ 28 ] = 0b1111111111000000 ;
backBuffer [ 29 ] = 0b1110000000000000 ;
backBuffer [ 30 ] = 0b1110000000000000 ;
backBuffer [ 31 ] = 0b1110000000000000 ;
backBuffer [ 32 ] = 0b1111000000000000 ;
backBuffer [ 33 ] = 0b0110000000000000 ;
backBuffer [ 34 ] = 0b0000000000000000 ;
backBuffer [ 35 ] = 0b0000000000000000 ;
backBuffer [ 36 ] = 0b0000000000000000 ;
backBuffer [ 37 ] = 0b0000000000000000 ;
backBuffer [ 38 ] = 0b0000000000000000 ;
backBuffer [ 39 ] = 0b0110000000000000 ;
backBuffer [ 40 ] = 0b1111000000011000 ;
backBuffer [ 41 ] = 0b1111111111111100 ;
backBuffer [ 42 ] = 0b1111111111111110 ;
backBuffer [ 43 ] = 0b1111111111111110 ;
backBuffer [ 44 ] = 0b1111000011111111 ;
backBuffer [ 45 ] = 0b1111000000000111 ;
backBuffer [ 46 ] = 0b1111000000000111 ;
backBuffer [ 47 ] = 0b0111000000000111 ;
backBuffer [ 48 ] = 0b0111000000000011 ;
backBuffer [ 49 ] = 0b0111100000000111 ;
backBuffer [ 50 ] = 0b0011100000011111 ;
backBuffer [ 51 ] = 0b0001111111111110 ;
backBuffer [ 52 ] = 0b0000111111111100 ;
backBuffer [ 53 ] = 0b0000011111110000 ;
backBuffer [ 54 ] = 0b0000001110000000 ;
backBuffer [ 55 ] = 0b0000000000000000 ;
backBuffer [ 56 ] = 0b0000000000000000 ;
backBuffer [ 57 ] = 0b0000000000000000 ;
backBuffer [ 58 ] = 0b0000000000000000 ;
backBuffer [ 59 ] = 0b0000000000000000 ;
backBuffer [ 60 ] = 0b0000000000000000 ;
backBuffer [ 61 ] = 0b0000001111000000 ;
backBuffer [ 62 ] = 0b0000111111100000 ;
backBuffer [ 63 ] = 0b0001111111110000 ;
backBuffer [ 64 ] = 0b0001111111111000 ;
backBuffer [ 65 ] = 0b0011110000111100 ;
backBuffer [ 66 ] = 0b0011100000011100 ;
backBuffer [ 67 ] = 0b0111110000011100 ;
backBuffer [ 68 ] = 0b0111100000011110 ;
backBuffer [ 69 ] = 0b0011111001111100 ;
backBuffer [ 70 ] = 0b0001111111111000 ;
backBuffer [ 71 ] = 0b0000111111110000 ;
backBuffer [ 72 ] = 0b0000011111100000 ;
backBuffer [ 73 ] = 0b0000000000000000 ;
backBuffer [ 74 ] = 0b0000000000000000 ;
2023-09-20 17:22:59 +00:00
flag_updating = true ; //make update run
}
2023-11-23 07:02:12 +00:00
void Image : : setBuffer_Image3 ( ) //23:24
2023-09-20 17:22:59 +00:00
{
2023-11-22 18:32:33 +00:00
backBuffer [ 0 ] = 0b1111111111111111 ;
backBuffer [ 1 ] = 0b1111111111111111 ;
backBuffer [ 2 ] = 0b1111111111111111 ;
backBuffer [ 3 ] = 0b1111111111111111 ;
backBuffer [ 4 ] = 0b1111111111111111 ;
backBuffer [ 5 ] = 0b1111111111111111 ;
backBuffer [ 6 ] = 0b1111111111111111 ;
backBuffer [ 7 ] = 0b1111111111111111 ;
backBuffer [ 8 ] = 0b1111111111111111 ;
backBuffer [ 9 ] = 0b1111111111111111 ;
backBuffer [ 10 ] = 0b1111111111111111 ;
backBuffer [ 11 ] = 0b1111111111111111 ;
backBuffer [ 12 ] = 0b1111111111111111 ;
backBuffer [ 13 ] = 0b1111111111111111 ;
backBuffer [ 14 ] = 0b1101111111000111 ;
backBuffer [ 15 ] = 0b1101111110000111 ;
backBuffer [ 16 ] = 0b1001111100000111 ;
backBuffer [ 17 ] = 0b1001111000100111 ;
backBuffer [ 18 ] = 0b1000110001100111 ;
backBuffer [ 19 ] = 0b1100000011100111 ;
backBuffer [ 20 ] = 0b1100000111100111 ;
backBuffer [ 21 ] = 0b1111111111111111 ;
backBuffer [ 22 ] = 0b1111111111111111 ;
backBuffer [ 23 ] = 0b1111111111111111 ;
backBuffer [ 24 ] = 0b1111111111101111 ;
backBuffer [ 25 ] = 0b1101111111101111 ;
backBuffer [ 26 ] = 0b1101100111100111 ;
backBuffer [ 27 ] = 0b1001100111100111 ;
backBuffer [ 28 ] = 0b1001100111100111 ;
backBuffer [ 29 ] = 0b1001100011000111 ;
backBuffer [ 30 ] = 0b1100000000001111 ;
backBuffer [ 31 ] = 0b1100011000001111 ;
backBuffer [ 32 ] = 0b1111111100111111 ;
backBuffer [ 33 ] = 0b1111111111111111 ;
backBuffer [ 34 ] = 0b1111111111111111 ;
backBuffer [ 35 ] = 0b1111111111111111 ;
backBuffer [ 36 ] = 0b1111000111000111 ;
backBuffer [ 37 ] = 0b1111000111000111 ;
backBuffer [ 38 ] = 0b1111111111111111 ;
backBuffer [ 39 ] = 0b1111111111111111 ;
backBuffer [ 40 ] = 0b1111111111111111 ;
backBuffer [ 41 ] = 0b1111111111111111 ;
backBuffer [ 42 ] = 0b1101111111000111 ;
backBuffer [ 43 ] = 0b1101111110000111 ;
backBuffer [ 44 ] = 0b1001111100000111 ;
backBuffer [ 45 ] = 0b1001111000100111 ;
backBuffer [ 46 ] = 0b1000110001100111 ;
backBuffer [ 47 ] = 0b1100000011100111 ;
backBuffer [ 48 ] = 0b1100000111100111 ;
backBuffer [ 49 ] = 0b1111111111111111 ;
backBuffer [ 50 ] = 0b1111111111111111 ;
backBuffer [ 51 ] = 0b1111111111111111 ;
backBuffer [ 52 ] = 0b1111111100011111 ;
backBuffer [ 53 ] = 0b1111110000011111 ;
backBuffer [ 54 ] = 0b1111000110011111 ;
backBuffer [ 55 ] = 0b1110011110011111 ;
backBuffer [ 56 ] = 0b1000111110011111 ;
backBuffer [ 57 ] = 0b1000000000000111 ;
backBuffer [ 58 ] = 0b1000000000000111 ;
backBuffer [ 59 ] = 0b1111111110011111 ;
backBuffer [ 60 ] = 0b1111111110011111 ;
backBuffer [ 61 ] = 0b1111111111111111 ;
backBuffer [ 62 ] = 0b1111111111111111 ;
backBuffer [ 63 ] = 0b1111111111111111 ;
backBuffer [ 64 ] = 0b1111111111111111 ;
backBuffer [ 65 ] = 0b1111111111111111 ;
backBuffer [ 66 ] = 0b1111111111111111 ;
backBuffer [ 67 ] = 0b1111111111111111 ;
backBuffer [ 68 ] = 0b1111111111111111 ;
backBuffer [ 69 ] = 0b1111111111111111 ;
backBuffer [ 70 ] = 0b1111111111111111 ;
backBuffer [ 71 ] = 0b1111111111111111 ;
backBuffer [ 72 ] = 0b1111111111111111 ;
backBuffer [ 73 ] = 0b1111111111111111 ;
backBuffer [ 74 ] = 0b1111111111111111 ;
2023-09-20 17:22:59 +00:00
flag_updating = true ; //make update run
}
2023-11-23 07:02:12 +00:00
void Image : : setBuffer_Image4 ( ) //Linux
2023-09-20 17:22:59 +00:00
{
2023-11-22 18:32:33 +00:00
backBuffer [ 0 ] = 0b0000000000000000 ;
backBuffer [ 1 ] = 0b0000000000000000 ;
backBuffer [ 2 ] = 0b0000000000000000 ;
backBuffer [ 3 ] = 0b0000000000000000 ;
backBuffer [ 4 ] = 0b0000000000000000 ;
backBuffer [ 5 ] = 0b0000000000000000 ;
backBuffer [ 6 ] = 0b0000000011000000 ;
backBuffer [ 7 ] = 0b0000011111100000 ;
backBuffer [ 8 ] = 0b0011111111110000 ;
backBuffer [ 9 ] = 0b0111111111110000 ;
backBuffer [ 10 ] = 0b0111110011110000 ;
backBuffer [ 11 ] = 0b0011000011110000 ;
backBuffer [ 12 ] = 0b0000000011110000 ;
backBuffer [ 13 ] = 0b0000000011110000 ;
backBuffer [ 14 ] = 0b0000000001110000 ;
backBuffer [ 15 ] = 0b0000000000100000 ;
backBuffer [ 16 ] = 0b0000000000000000 ;
backBuffer [ 17 ] = 0b0000000000000000 ;
backBuffer [ 18 ] = 0b0000000000000000 ;
backBuffer [ 19 ] = 0b0000000000011000 ;
backBuffer [ 20 ] = 0b0000000001111100 ;
backBuffer [ 21 ] = 0b0001000011111000 ;
backBuffer [ 22 ] = 0b0011100111110000 ;
backBuffer [ 23 ] = 0b0011100011000000 ;
backBuffer [ 24 ] = 0b0001000000000000 ;
backBuffer [ 25 ] = 0b0000000000000000 ;
backBuffer [ 26 ] = 0b0000000000000000 ;
backBuffer [ 27 ] = 0b0000000000000000 ;
backBuffer [ 28 ] = 0b0000000000011100 ;
backBuffer [ 29 ] = 0b0000000111111110 ;
backBuffer [ 30 ] = 0b0000001111111110 ;
backBuffer [ 31 ] = 0b0000000111111100 ;
backBuffer [ 32 ] = 0b0000000111100000 ;
backBuffer [ 33 ] = 0b0000000111000000 ;
backBuffer [ 34 ] = 0b0000000111000000 ;
backBuffer [ 35 ] = 0b0000000111000000 ;
backBuffer [ 36 ] = 0b0000000111111000 ;
backBuffer [ 37 ] = 0b0000000011111100 ;
backBuffer [ 38 ] = 0b0000000001111110 ;
backBuffer [ 39 ] = 0b0000000000011100 ;
backBuffer [ 40 ] = 0b0000000000000000 ;
backBuffer [ 41 ] = 0b0000000000000000 ;
backBuffer [ 42 ] = 0b0000000000000000 ;
backBuffer [ 43 ] = 0b0000001111110000 ;
backBuffer [ 44 ] = 0b0000011111111000 ;
backBuffer [ 45 ] = 0b0000011111111100 ;
backBuffer [ 46 ] = 0b0000001100111100 ;
backBuffer [ 47 ] = 0b0000000000111000 ;
backBuffer [ 48 ] = 0b0000000000111000 ;
backBuffer [ 49 ] = 0b0000000000111000 ;
backBuffer [ 50 ] = 0b0000000001110000 ;
backBuffer [ 51 ] = 0b0000000011110000 ;
backBuffer [ 52 ] = 0b0000001111100000 ;
backBuffer [ 53 ] = 0b0000011111000000 ;
backBuffer [ 54 ] = 0b0000001100000000 ;
backBuffer [ 55 ] = 0b0000000000001000 ;
backBuffer [ 56 ] = 0b0000011000011100 ;
backBuffer [ 57 ] = 0b0000111100011100 ;
backBuffer [ 58 ] = 0b0000111100011100 ;
backBuffer [ 59 ] = 0b0000011110111000 ;
backBuffer [ 60 ] = 0b0000001111111000 ;
backBuffer [ 61 ] = 0b0000000011110000 ;
backBuffer [ 62 ] = 0b0000000011110000 ;
backBuffer [ 63 ] = 0b0000000111110000 ;
backBuffer [ 64 ] = 0b0000001111111000 ;
backBuffer [ 65 ] = 0b0000011110111100 ;
backBuffer [ 66 ] = 0b0000011100011110 ;
backBuffer [ 67 ] = 0b0000001000001110 ;
backBuffer [ 68 ] = 0b0000000000000100 ;
backBuffer [ 69 ] = 0b0000000000000000 ;
backBuffer [ 70 ] = 0b0000000000000000 ;
backBuffer [ 71 ] = 0b0000000000000000 ;
backBuffer [ 72 ] = 0b0000000000000000 ;
backBuffer [ 73 ] = 0b0000000000000000 ;
backBuffer [ 74 ] = 0b0000000000000000 ;
flag_updating = true ; //make update run
}
2023-11-23 07:02:12 +00:00
void Image : : setBuffer_Image5 ( ) //Datamatrix ctdo.de
2023-11-22 18:32:33 +00:00
{
backBuffer [ 0 ] = 0b1111111111111111 ;
backBuffer [ 1 ] = 0b1111111111111111 ;
backBuffer [ 2 ] = 0b1111111111111111 ;
backBuffer [ 3 ] = 0b1111111111111111 ;
backBuffer [ 4 ] = 0b1111111111111111 ;
backBuffer [ 5 ] = 0b1111111111111111 ;
backBuffer [ 6 ] = 0b1111111111111111 ;
backBuffer [ 7 ] = 0b1111111111111111 ;
backBuffer [ 8 ] = 0b1111111111111111 ;
backBuffer [ 9 ] = 0b1111111111111111 ;
backBuffer [ 10 ] = 0b1111111111111111 ;
backBuffer [ 11 ] = 0b1111111111111111 ;
backBuffer [ 12 ] = 0b1111111111111111 ;
backBuffer [ 13 ] = 0b1111111111111111 ;
backBuffer [ 14 ] = 0b1111111111111111 ;
backBuffer [ 15 ] = 0b1111111111111111 ;
backBuffer [ 16 ] = 0b1111111111111111 ;
backBuffer [ 17 ] = 0b1111111111111111 ;
backBuffer [ 18 ] = 0b1111111111111111 ;
backBuffer [ 19 ] = 0b1111111111111111 ;
backBuffer [ 20 ] = 0b1111111111111111 ;
backBuffer [ 21 ] = 0b1111111111111111 ;
backBuffer [ 22 ] = 0b1111111111111111 ;
backBuffer [ 23 ] = 0b1111111111111111 ;
backBuffer [ 24 ] = 0b1111111111111111 ;
backBuffer [ 25 ] = 0b1111111111111111 ;
backBuffer [ 26 ] = 0b1111111111111111 ;
backBuffer [ 27 ] = 0b1111111111111111 ;
backBuffer [ 28 ] = 0b1111111111111111 ;
backBuffer [ 29 ] = 0b1111111111111111 ;
backBuffer [ 30 ] = 0b1111111111111111 ;
backBuffer [ 31 ] = 0b1000000000000001 ;
backBuffer [ 32 ] = 0b1110011010010001 ;
backBuffer [ 33 ] = 0b1000110011111101 ;
backBuffer [ 34 ] = 0b1101001100110101 ;
backBuffer [ 35 ] = 0b1011001000101101 ;
backBuffer [ 36 ] = 0b1101101000000001 ;
backBuffer [ 37 ] = 0b1001000110111001 ;
backBuffer [ 38 ] = 0b1101101011011001 ;
backBuffer [ 39 ] = 0b1011100011100101 ;
backBuffer [ 40 ] = 0b1111001111110101 ;
backBuffer [ 41 ] = 0b1000111010110101 ;
backBuffer [ 42 ] = 0b1110110110011001 ;
backBuffer [ 43 ] = 0b1011100101110001 ;
backBuffer [ 44 ] = 0b1101010101010101 ;
backBuffer [ 45 ] = 0b1111111111111111 ;
backBuffer [ 46 ] = 0b1111111111111111 ;
backBuffer [ 47 ] = 0b1111111111111111 ;
backBuffer [ 48 ] = 0b1111111111111111 ;
backBuffer [ 49 ] = 0b1111111111111111 ;
backBuffer [ 50 ] = 0b1111111111111111 ;
backBuffer [ 51 ] = 0b1111111111111111 ;
backBuffer [ 52 ] = 0b1111111111111111 ;
backBuffer [ 53 ] = 0b1111111111111111 ;
backBuffer [ 54 ] = 0b1111111111111111 ;
backBuffer [ 55 ] = 0b1111111111111111 ;
backBuffer [ 56 ] = 0b1111111111111111 ;
backBuffer [ 57 ] = 0b1111111111111111 ;
backBuffer [ 58 ] = 0b1111111111111111 ;
backBuffer [ 59 ] = 0b1111111111111111 ;
backBuffer [ 60 ] = 0b1111111111111111 ;
backBuffer [ 61 ] = 0b1111111111111111 ;
backBuffer [ 62 ] = 0b1111111111111111 ;
backBuffer [ 63 ] = 0b1111111111111111 ;
backBuffer [ 64 ] = 0b1111111111111111 ;
backBuffer [ 65 ] = 0b1111111111111111 ;
backBuffer [ 66 ] = 0b1111111111111111 ;
backBuffer [ 67 ] = 0b1111111111111111 ;
backBuffer [ 68 ] = 0b1111111111111111 ;
backBuffer [ 69 ] = 0b1111111111111111 ;
backBuffer [ 70 ] = 0b1111111111111111 ;
backBuffer [ 71 ] = 0b1111111111111111 ;
backBuffer [ 72 ] = 0b1111111111111111 ;
backBuffer [ 73 ] = 0b1111111111111111 ;
backBuffer [ 74 ] = 0b1111111111111111 ;
flag_updating = true ; //make update run
}
2023-11-23 07:02:12 +00:00
void Image : : setBuffer_Image6 ( ) //13:37
2023-11-22 18:32:33 +00:00
{
backBuffer [ 0 ] = 0b1111111111111111 ;
backBuffer [ 1 ] = 0b1111111111111111 ;
backBuffer [ 2 ] = 0b1111111111111111 ;
backBuffer [ 3 ] = 0b1111111111111111 ;
backBuffer [ 4 ] = 0b1111111111111111 ;
backBuffer [ 5 ] = 0b1111111111111111 ;
backBuffer [ 6 ] = 0b1111111111111111 ;
backBuffer [ 7 ] = 0b1111111111111111 ;
backBuffer [ 8 ] = 0b1111111111111111 ;
backBuffer [ 9 ] = 0b1111111111111111 ;
backBuffer [ 10 ] = 0b1111111111111111 ;
backBuffer [ 11 ] = 0b1111111111111111 ;
backBuffer [ 12 ] = 0b1110011111110011 ;
backBuffer [ 13 ] = 0b1110111111110011 ;
backBuffer [ 14 ] = 0b1100111111110011 ;
backBuffer [ 15 ] = 0b1100000000000011 ;
backBuffer [ 16 ] = 0b1100000000000011 ;
backBuffer [ 17 ] = 0b1100000000000011 ;
backBuffer [ 18 ] = 0b1111111111110011 ;
backBuffer [ 19 ] = 0b1111111111110011 ;
backBuffer [ 20 ] = 0b1111111111111111 ;
backBuffer [ 21 ] = 0b1111111111111111 ;
backBuffer [ 22 ] = 0b1111111111111111 ;
backBuffer [ 23 ] = 0b1111111111110111 ;
backBuffer [ 24 ] = 0b1110111111110111 ;
backBuffer [ 25 ] = 0b1110111111110011 ;
backBuffer [ 26 ] = 0b1100111001110011 ;
backBuffer [ 27 ] = 0b1100111001110011 ;
backBuffer [ 28 ] = 0b1100111001110011 ;
backBuffer [ 29 ] = 0b1110000000000111 ;
backBuffer [ 30 ] = 0b1110000100000111 ;
backBuffer [ 31 ] = 0b1111001110001111 ;
backBuffer [ 32 ] = 0b1111111111111111 ;
backBuffer [ 33 ] = 0b1111111111111111 ;
backBuffer [ 34 ] = 0b1111111111111111 ;
backBuffer [ 35 ] = 0b1111111111111111 ;
backBuffer [ 36 ] = 0b1111100011100011 ;
backBuffer [ 37 ] = 0b1111100011100011 ;
backBuffer [ 38 ] = 0b1111100011100011 ;
backBuffer [ 39 ] = 0b1111111111111111 ;
backBuffer [ 40 ] = 0b1111111111111111 ;
backBuffer [ 41 ] = 0b1111111111111111 ;
backBuffer [ 42 ] = 0b1111111111110111 ;
backBuffer [ 43 ] = 0b1110111111110111 ;
backBuffer [ 44 ] = 0b1110111111110011 ;
backBuffer [ 45 ] = 0b1100111001110011 ;
backBuffer [ 46 ] = 0b1100111001110011 ;
backBuffer [ 47 ] = 0b1100111001110011 ;
backBuffer [ 48 ] = 0b1110000000000111 ;
backBuffer [ 49 ] = 0b1110000100000111 ;
backBuffer [ 50 ] = 0b1111001110001111 ;
backBuffer [ 51 ] = 0b1111111111111111 ;
backBuffer [ 52 ] = 0b1111111111111111 ;
backBuffer [ 53 ] = 0b1111111111111111 ;
backBuffer [ 54 ] = 0b1100111111111111 ;
backBuffer [ 55 ] = 0b1100111111111111 ;
backBuffer [ 56 ] = 0b1100111111111011 ;
backBuffer [ 57 ] = 0b1100111111000011 ;
backBuffer [ 58 ] = 0b1100111100000011 ;
backBuffer [ 59 ] = 0b1100110000001111 ;
backBuffer [ 60 ] = 0b1100000001111111 ;
backBuffer [ 61 ] = 0b1100000111111111 ;
backBuffer [ 62 ] = 0b1100011111111111 ;
backBuffer [ 63 ] = 0b1111111111111111 ;
backBuffer [ 64 ] = 0b1111111111111111 ;
backBuffer [ 65 ] = 0b1111111111111111 ;
backBuffer [ 66 ] = 0b1111111111111111 ;
backBuffer [ 67 ] = 0b1111111111111111 ;
backBuffer [ 68 ] = 0b1111111111111111 ;
backBuffer [ 69 ] = 0b1111111111111111 ;
backBuffer [ 70 ] = 0b1111111111111111 ;
backBuffer [ 71 ] = 0b1111111111111111 ;
backBuffer [ 72 ] = 0b1111111111111111 ;
backBuffer [ 73 ] = 0b1111111111111111 ;
backBuffer [ 74 ] = 0b1111111111111111 ;
flag_updating = true ; //make update run
}
2023-11-23 07:02:12 +00:00
void Image : : setBuffer_Image7 ( ) //13:59
2023-11-22 18:32:33 +00:00
{
backBuffer [ 0 ] = 0b1111111111111111 ;
backBuffer [ 1 ] = 0b1111111111111111 ;
backBuffer [ 2 ] = 0b1111111111111111 ;
backBuffer [ 3 ] = 0b1111111111111111 ;
backBuffer [ 4 ] = 0b1111111111111111 ;
backBuffer [ 5 ] = 0b1111111111111111 ;
backBuffer [ 6 ] = 0b1111111111111111 ;
backBuffer [ 7 ] = 0b1111111111111111 ;
backBuffer [ 8 ] = 0b1111111111111111 ;
backBuffer [ 9 ] = 0b1111111111111111 ;
backBuffer [ 10 ] = 0b1111111111111111 ;
backBuffer [ 11 ] = 0b1111111111111111 ;
backBuffer [ 12 ] = 0b1110011111110011 ;
backBuffer [ 13 ] = 0b1110111111110011 ;
backBuffer [ 14 ] = 0b1100111111110011 ;
backBuffer [ 15 ] = 0b1100000000000011 ;
backBuffer [ 16 ] = 0b1100000000000011 ;
backBuffer [ 17 ] = 0b1100000000000011 ;
backBuffer [ 18 ] = 0b1111111111110011 ;
backBuffer [ 19 ] = 0b1111111111110011 ;
backBuffer [ 20 ] = 0b1111111111111111 ;
backBuffer [ 21 ] = 0b1111111111111111 ;
backBuffer [ 22 ] = 0b1111111111111111 ;
backBuffer [ 23 ] = 0b1111111111110111 ;
backBuffer [ 24 ] = 0b1110111111110111 ;
backBuffer [ 25 ] = 0b1110111111110011 ;
backBuffer [ 26 ] = 0b1100111001110011 ;
backBuffer [ 27 ] = 0b1100111001110011 ;
backBuffer [ 28 ] = 0b1100111001110011 ;
backBuffer [ 29 ] = 0b1110000000000111 ;
backBuffer [ 30 ] = 0b1110000100000111 ;
backBuffer [ 31 ] = 0b1111001110001111 ;
backBuffer [ 32 ] = 0b1111111111111111 ;
backBuffer [ 33 ] = 0b1111111111111111 ;
backBuffer [ 34 ] = 0b1111111111111111 ;
backBuffer [ 35 ] = 0b1111111111111111 ;
backBuffer [ 36 ] = 0b1111100011100011 ;
backBuffer [ 37 ] = 0b1111100011100011 ;
backBuffer [ 38 ] = 0b1111100011100011 ;
backBuffer [ 39 ] = 0b1111111111111111 ;
backBuffer [ 40 ] = 0b1111111111111111 ;
backBuffer [ 41 ] = 0b1111111111111111 ;
backBuffer [ 42 ] = 0b1111111111111111 ;
backBuffer [ 43 ] = 0b1100000011110111 ;
backBuffer [ 44 ] = 0b1100000011110111 ;
backBuffer [ 45 ] = 0b1100110011110011 ;
backBuffer [ 46 ] = 0b1100110011110011 ;
backBuffer [ 47 ] = 0b1100110011110011 ;
backBuffer [ 48 ] = 0b1100110001100111 ;
backBuffer [ 49 ] = 0b1100111000000111 ;
backBuffer [ 50 ] = 0b1111111100001111 ;
backBuffer [ 51 ] = 0b1111111111111111 ;
backBuffer [ 52 ] = 0b1111111111111111 ;
backBuffer [ 53 ] = 0b1111111111111111 ;
backBuffer [ 54 ] = 0b1111100011111111 ;
backBuffer [ 55 ] = 0b1110000001110111 ;
backBuffer [ 56 ] = 0b1110000001110111 ;
backBuffer [ 57 ] = 0b1100111100110011 ;
backBuffer [ 58 ] = 0b1100111100110011 ;
backBuffer [ 59 ] = 0b1100111101110011 ;
backBuffer [ 60 ] = 0b1110011001100111 ;
backBuffer [ 61 ] = 0b1110000000000111 ;
backBuffer [ 62 ] = 0b1111000000001111 ;
backBuffer [ 63 ] = 0b1111111111111111 ;
backBuffer [ 64 ] = 0b1111111111111111 ;
backBuffer [ 65 ] = 0b1111111111111111 ;
backBuffer [ 66 ] = 0b1111111111111111 ;
backBuffer [ 67 ] = 0b1111111111111111 ;
backBuffer [ 68 ] = 0b1111111111111111 ;
backBuffer [ 69 ] = 0b1111111111111111 ;
backBuffer [ 70 ] = 0b1111111111111111 ;
backBuffer [ 71 ] = 0b1111111111111111 ;
backBuffer [ 72 ] = 0b1111111111111111 ;
backBuffer [ 73 ] = 0b1111111111111111 ;
backBuffer [ 74 ] = 0b1111111111111111 ;
flag_updating = true ; //make update run
}
2023-11-23 07:02:12 +00:00
void Image : : setBuffer_Image8 ( ) //14:00
2023-11-22 18:32:33 +00:00
{
backBuffer [ 0 ] = 0b1111111111111111 ;
backBuffer [ 1 ] = 0b1111111111111111 ;
backBuffer [ 2 ] = 0b1111111111111111 ;
backBuffer [ 3 ] = 0b1111111111111111 ;
backBuffer [ 4 ] = 0b1111111111111111 ;
backBuffer [ 5 ] = 0b1111111111111111 ;
backBuffer [ 6 ] = 0b1111111111111111 ;
backBuffer [ 7 ] = 0b1111111111111111 ;
backBuffer [ 8 ] = 0b1111111111111111 ;
backBuffer [ 9 ] = 0b1111111111111111 ;
backBuffer [ 10 ] = 0b1111111111111111 ;
backBuffer [ 11 ] = 0b1111111111111111 ;
backBuffer [ 12 ] = 0b1110011111110011 ;
backBuffer [ 13 ] = 0b1110111111110011 ;
backBuffer [ 14 ] = 0b1100111111110011 ;
backBuffer [ 15 ] = 0b1100000000000011 ;
backBuffer [ 16 ] = 0b1100000000000011 ;
backBuffer [ 17 ] = 0b1100000000000011 ;
backBuffer [ 18 ] = 0b1111111111110011 ;
backBuffer [ 19 ] = 0b1111111111110011 ;
backBuffer [ 20 ] = 0b1111111111111111 ;
backBuffer [ 21 ] = 0b1111111111111111 ;
backBuffer [ 22 ] = 0b1111111111111111 ;
backBuffer [ 23 ] = 0b1111111100011111 ;
backBuffer [ 24 ] = 0b1111111000011111 ;
backBuffer [ 25 ] = 0b1111100010011111 ;
backBuffer [ 26 ] = 0b1111001110011111 ;
backBuffer [ 27 ] = 0b1110011110011111 ;
backBuffer [ 28 ] = 0b1100011110011111 ;
backBuffer [ 29 ] = 0b1100000000000011 ;
backBuffer [ 30 ] = 0b1100000000000011 ;
backBuffer [ 31 ] = 0b1111111110011111 ;
backBuffer [ 32 ] = 0b1111111110011111 ;
backBuffer [ 33 ] = 0b1111111111111111 ;
backBuffer [ 34 ] = 0b1111111111111111 ;
backBuffer [ 35 ] = 0b1111111111111111 ;
backBuffer [ 36 ] = 0b1111100011100011 ;
backBuffer [ 37 ] = 0b1111100011100011 ;
backBuffer [ 38 ] = 0b1111100011100011 ;
backBuffer [ 39 ] = 0b1111111111111111 ;
backBuffer [ 40 ] = 0b1111111111111111 ;
backBuffer [ 41 ] = 0b1111111111111111 ;
backBuffer [ 42 ] = 0b1111100000011111 ;
backBuffer [ 43 ] = 0b1111000000001111 ;
backBuffer [ 44 ] = 0b1110000000000111 ;
backBuffer [ 45 ] = 0b1100111111110011 ;
backBuffer [ 46 ] = 0b1100111111110011 ;
backBuffer [ 47 ] = 0b1100111111110011 ;
backBuffer [ 48 ] = 0b1110011111100111 ;
backBuffer [ 49 ] = 0b1110000000000111 ;
backBuffer [ 50 ] = 0b1111000000001111 ;
backBuffer [ 51 ] = 0b1111110000111111 ;
backBuffer [ 52 ] = 0b1111111111111111 ;
backBuffer [ 53 ] = 0b1111111111111111 ;
backBuffer [ 54 ] = 0b1111100000011111 ;
backBuffer [ 55 ] = 0b1111000000001111 ;
backBuffer [ 56 ] = 0b1110000000000111 ;
backBuffer [ 57 ] = 0b1100111111110011 ;
backBuffer [ 58 ] = 0b1100111111110011 ;
backBuffer [ 59 ] = 0b1100111111110011 ;
backBuffer [ 60 ] = 0b1110011111100111 ;
backBuffer [ 61 ] = 0b1110000000000111 ;
backBuffer [ 62 ] = 0b1111000000001111 ;
backBuffer [ 63 ] = 0b1111110000111111 ;
backBuffer [ 64 ] = 0b1111111111111111 ;
backBuffer [ 65 ] = 0b1111111111111111 ;
backBuffer [ 66 ] = 0b1111111111111111 ;
backBuffer [ 67 ] = 0b1111111111111111 ;
backBuffer [ 68 ] = 0b1111111111111111 ;
backBuffer [ 69 ] = 0b1111111111111111 ;
backBuffer [ 70 ] = 0b1111111111111111 ;
backBuffer [ 71 ] = 0b1111111111111111 ;
backBuffer [ 72 ] = 0b1111111111111111 ;
backBuffer [ 73 ] = 0b1111111111111111 ;
backBuffer [ 74 ] = 0b1111111111111111 ;
2023-09-20 17:22:59 +00:00
flag_updating = true ; //make update run
}
2023-02-13 18:58:45 +00:00
void Image : : setBufferColumn ( uint8_t _colnum , uint16_t _rowdata )
{
if ( _colnum > = COLUMNS ) {
Serial . println ( " colnum too high " ) ;
} else {
backBuffer [ _colnum ] = _rowdata ; //all white
flag_updating = true ; //make update run
}
2023-02-08 20:00:15 +00:00
}
2023-11-23 21:47:45 +00:00
void Image : : setBuffer_random ( uint8_t brightness )
2023-02-08 20:00:15 +00:00
{
2023-02-08 20:29:10 +00:00
for ( uint8_t x = 0 ; x < getW ( ) ; x + + ) {
uint16_t randomnumber = 0 ;
for ( uint8_t y = 0 ; y < getH ( ) ; y + + ) {
2023-11-23 21:47:45 +00:00
if ( random ( 256 ) < brightness ) { //the higher the parameter the more white
2023-02-08 20:29:10 +00:00
randomnumber + = pow ( 2 , y ) ;
}
}
backBuffer [ x ] = randomnumber ;
//backBuffer[x]=(uint16_t)random(0x10000);
2023-02-08 20:00:15 +00:00
}
2023-02-08 20:29:10 +00:00
flag_updating = true ; //make update run
}
2023-11-23 21:47:45 +00:00
void Image : : setBuffer_byString ( String data , String & error )
{
//first check size
if ( data . length ( ) ! = getW ( ) * getH ( ) ) { //if characters matches pixels then its likely binary
error = " setBuffer_byString: size mismatch " ;
}
for ( uint8_t x = 0 ; x < getW ( ) ; x + + ) {
uint16_t columnnumber = 0 ;
for ( uint8_t y = 0 ; y < getH ( ) ; y + + ) {
char currentChar = data . charAt ( x * getH ( ) + y ) ;
if ( currentChar ! = ' 0 ' & & currentChar ! = ' ' & & currentChar ! = ' _ ' ) { //0, Space or "_" are black pixels.
columnnumber + = pow ( 2 , y ) ; //if not one of the above, then make white
}
}
backBuffer [ x ] = columnnumber ;
}
flag_updating = true ; //make update run
}
void Image : : setBuffer_byInt ( String data , String & error )
{
int str_len = data . length ( ) + 1 ;
char char_array [ str_len ] ;
data . toCharArray ( char_array , str_len ) ;
char * token = strtok ( char_array , " , " ) ;
uint8_t x = 0 ;
while ( token ! = NULL & & x < getW ( ) ) {
String tokenString ( token ) ;
uint16_t tokenInt = tokenString . toInt ( ) ;
backBuffer [ x ] = tokenInt ;
token = strtok ( NULL , " , " ) ; //get next token
x + + ;
}
if ( x ! = getW ( ) ) { //x reached exaclty the end
Serial . println ( " Warning: Not Enough Data! " ) ;
error = " setBuffer_byInt: not enough data. x= " + x ;
}
if ( token ! = NULL ) { //exited loop but there was another valid token
Serial . println ( " Warning: too much data " ) ;
error = " setBuffer_byInt: too much data " ;
}
flag_updating = true ; //make update run
}
2023-02-11 17:51:33 +00:00
void Image : : resetOrder ( bool ascending ) {
for ( uint8_t i = 0 ; i < getW ( ) ; i + + ) { //fill with ascending numbers
2023-02-13 18:02:11 +00:00
if ( ascending ) {
orderArray [ i ] = i ;
} else {
orderArray [ i ] = ( getW ( ) - 1 ) - i ;
}
2023-02-11 17:51:33 +00:00
}
}
void Image : : shuffleOrder ( uint8_t iterations ) {
for ( uint8_t s = 0 ; s < iterations ; s + + ) { //shuffle iterations
uint8_t _r1 = random ( getW ( ) ) ;
uint8_t _r2 = random ( getW ( ) ) ;
uint8_t _backup = orderArray [ _r1 ] ;
//swap numbers
orderArray [ _r1 ] = orderArray [ _r2 ] ;
orderArray [ _r2 ] = _backup ;
}
for ( uint8_t i = 0 ; i < getW ( ) ; i + + ) { //fill with ascending numbers
Serial . print ( orderArray [ i ] ) ; Serial . print ( " " ) ;
}
Serial . println ( ) ;
}
UpdateReturn Image : : updateByColumn ( bool clearFirst , bool optimizeClear , bool optimizeSet )
2023-02-08 20:29:10 +00:00
{
2023-11-23 21:47:45 +00:00
/*
2023-11-23 22:50:16 +00:00
clearFirst : if True , go through all columns and clear them ( by set order ) . Then go through same order and set dots . If False , clear one column then set it immediately afterwards .
2023-11-23 21:47:45 +00:00
optimizeClear : if True , do not clear columns where dots need to be set or no change is happening . if False , clear every column
optimizeSet : if True , do not set already set dots again .
*/
2023-02-08 20:29:10 +00:00
2023-11-23 22:50:16 +00:00
if ( flag_redraw ) {
clearFirst = false ;
optimizeClear = false ;
optimizeSet = false ;
}
2023-02-08 20:00:15 +00:00
if ( ! flag_updating ) {
2023-02-11 16:31:49 +00:00
return nochange ; //finished
2023-02-08 20:00:15 +00:00
}
2023-02-11 17:26:52 +00:00
if ( millis ( ) - lastUpdateMillis < updateDelay ) { //too early
2023-02-11 16:31:49 +00:00
return wait ; //not finished
2023-02-08 20:29:10 +00:00
}
2023-02-11 17:26:52 +00:00
unsigned long functionStartMillis = millis ( ) ;
2023-02-11 17:51:33 +00:00
2023-02-08 20:00:15 +00:00
uint8_t x = update_counter / 2 ;
2023-02-11 17:51:33 +00:00
bool setDot = ( update_counter % 2 = = 1 ) ;
if ( clearFirst ) {
x = update_counter % getW ( ) ;
setDot = ! ( update_counter / getW ( ) = = 0 ) ;
}
x = orderArray [ x ] ; //use custom order
2023-02-08 20:00:15 +00:00
2023-02-11 17:26:52 +00:00
if ( ! setDot ) { //even counter numbers are for clearing
uint16_t _colClear = frontBuffer [ x ] & ~ backBuffer [ x ] ; //Front & ~Back = Which bits have to be cleared
if ( ! optimizeClear | | _colClear > 0 ) { //at least on dot has to be cleared in this column
flipdot . setRow ( 0 ) ;
flipdot . selectColumnClear ( x ) ;
if ( ! flipdot . clearSelectedColumn ( ) ) {
Serial . println ( " Error clearing column! " ) ;
}
lastUpdateMillis = millis ( ) ;
frontBuffer [ x ] = 0 ;
2023-02-08 20:00:15 +00:00
}
2023-02-11 17:26:52 +00:00
} else { //odd counter numbers are for setting
uint16_t _colSet = backBuffer [ x ] & ~ frontBuffer [ x ] ;
if ( ! optimizeSet | | _colSet > 0 ) { //at least on dot has to be set in this column (if optimize is enabled)
flipdot . selectColumnSet ( x ) ; //lower column number is on the left
if ( ! optimizeSet ) {
flipdot . setRow ( backBuffer [ x ] ) ; //flip all set dots in this column
} else {
flipdot . setRow ( _colSet ) ; //flip only currently not set dots in this column that have to be set
}
if ( ! flipdot . setSelectedDot ( ) ) {
Serial . println ( " Error setting dots! " ) ;
}
lastUpdateMillis = millis ( ) ;
frontBuffer [ x ] = backBuffer [ x ] ; //flip current column in buffer
}
2023-02-08 20:00:15 +00:00
}
update_counter + + ; //next column
2023-02-11 17:26:52 +00:00
unsigned long _duration = millis ( ) - functionStartMillis ; //how long it took to shift data and flip dots in this update
2023-02-08 20:29:10 +00:00
updateDuration = max ( updateDuration , _duration ) ; //store maximum value
2023-02-08 20:00:15 +00:00
if ( update_counter / 2 > = getW ( ) ) { //reached last column
flag_updating = false ;
update_counter = 0 ;
2023-11-23 22:50:16 +00:00
flag_redraw = false ;
2023-02-11 16:31:49 +00:00
return finished ; //finished
2023-02-08 20:00:15 +00:00
}
2023-02-11 16:31:49 +00:00
return updating ; //not finished
2023-02-08 20:00:15 +00:00
}
2023-02-08 19:17:58 +00:00
void Image : : loop_testDots ( ) {
static bool init = false ;
if ( ! init ) {
flipdot . setRow ( 0 ) ;
Serial . println ( " Clearing Display " ) ;
for ( int l = 0 ; l < COLUMNS ; l + + ) {
flipdot . selectColumnClear ( l % COLUMNS ) ;
if ( ! flipdot . clearSelectedColumn ( ) ) {
Serial . println ( " Error clearing column! " ) ;
} else {
Serial . println ( " Cleared " ) ;
}
delay ( 50 ) ;
}
init = true ;
Serial . println ( " Finished Clearing " ) ;
delay ( 1000 ) ;
}
Serial . println ( " Clearing " ) ;
flipdot . setRow ( 0 ) ;
flipdot . selectColumnClear ( 23 ) ;
if ( ! flipdot . clearSelectedColumn ( ) ) {
Serial . println ( " Error clearing column! " ) ;
}
delay ( 50 ) ;
flipdot . setRow ( 0 ) ;
flipdot . selectColumnClear ( 24 ) ;
if ( ! flipdot . clearSelectedColumn ( ) ) {
Serial . println ( " Error clearing column! " ) ;
}
delay ( 100 ) ;
Serial . println ( " Setting " ) ;
for ( int i = 23 ; i < 25 ; i + + ) {
flipdot . selectColumnSet ( i ) ; //lower column number is on the left
flipdot . setRow ( 0 ) ;
flipdot . setRow ( flipdot . getRow ( ) + pow ( 2 , 4 ) ) ; //low significant bits are lower rows (when connector at top)
flipdot . setRow ( flipdot . getRow ( ) + pow ( 2 , 5 ) ) ; //low significant bits are lower rows (when connector at top)
flipdot . setSelectedDot ( ) ;
delay ( 50 ) ;
}
delay ( 100 ) ;
countz + + ;
countz % = 14 ;
//init=false;
}
void Image : : loop_drawClearTest ( ) {
static bool init = false ;
if ( ! init ) {
flipdot . setRow ( 0 ) ;
Serial . println ( " Clearing Display " ) ;
for ( int l = 0 ; l < COLUMNS ; l + + ) {
flipdot . selectColumnClear ( l % COLUMNS ) ;
if ( ! flipdot . clearSelectedColumn ( ) ) {
Serial . println ( " Error clearing column! " ) ;
} else {
Serial . println ( " Cleared " ) ;
}
delay ( 20 ) ;
}
init = true ;
delay ( 1000 ) ;
}
Serial . print ( " count= " ) ;
Serial . print ( countz ) ; Serial . print ( " : " ) ;
//setting colX to 128, 32, 8,2 (or a combination of), then appling 12V to driver and GND to Clear, clears these colums
// this applies +12v to selected columns
//setting colX to 64,16,4,1 (or a combination of), then setting row shift registers to some setting sets the selected dots
// this applies GND to selected columns
//reset pin on annax board input should be used (not pulled to gnd for a short time) after dots have been flipped (to disable potentially activated transistors)
//cycle testing set dots
flipdot . selectColumnSet ( countz / ROWS ) ; //lower column number is on the left
flipdot . setRow ( pow ( 2 , ( countz ) % ROWS ) ) ; //low significant bits are lower rows (when connector at top)
/*Serial.print("Row="); Serial.print(row); Serial.print(" Col=");
for ( uint8_t i = 0 ; i < 7 ; i + + ) {
Serial . print ( " , " ) ; Serial . print ( col [ i ] ) ;
}
Serial . println ( ) ; */
//reset pin on ribbon cable high (12Vpullup/open), then low (via Transistor)
unsigned long starttime = micros ( ) ;
flipdot . setSelectedDot ( ) ;
unsigned long shiftduration = micros ( ) - starttime ;
Serial . println ( " " ) ;
Serial . print ( " Duration= " ) ; Serial . println ( shiftduration ) ;
countz + + ;
if ( countz > = ROWS * COLUMNS ) {
countz = 0 ;
init = false ;
}
}
2023-11-23 22:50:16 +00:00
void Image : : redraw ( ) {
flag_redraw = true ;
flag_updating = true ;
}