Skip to content

Commit

Permalink
added function to rotate by 180 degrees
Browse files Browse the repository at this point in the history
  • Loading branch information
noah1510 committed Mar 23, 2020
1 parent 4053b1d commit c8a4e06
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 19 deletions.
30 changes: 11 additions & 19 deletions examples/LedControllerDemoCounting/LedControllerDemoCounting.ino
Original file line number Diff line number Diff line change
Expand Up @@ -120,39 +120,31 @@ std::array<byte,8> nine= {
B00000000
};

std::array <byte ,8> reverse(std::array <byte ,8> dat){
decltype(dat) ret;
for(unsigned int i=0;i<8;i++){
ret[7-i]=lc.reverse(dat[i]);
}
return ret;
}

std::array <byte ,8> getDigit(unsigned int i){
switch (i){
case 0:
return reverse(zero);
return lc.rotate180(zero);
case 1:
return reverse(one);
return lc.rotate180(one);
case 2:
return reverse(two);
return lc.rotate180(two);
case 3:
return reverse(three);
return lc.rotate180(three);
case 4:
return reverse(four);
return lc.rotate180(four);
case 5:
return reverse(five);
return lc.rotate180(five);
case 6:
return reverse(six);
return lc.rotate180(six);
case 7:
return reverse(seven);
return lc.rotate180(seven);
case 8:
return reverse(eight);
return lc.rotate180(eight);
case 9:
return reverse(nine);
return lc.rotate180(nine);

default:
return reverse(zero);
return lc.rotate180(zero);
}
}

Expand Down
10 changes: 10 additions & 0 deletions src/LedController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -392,5 +392,15 @@ std::array<byte,8> LedController::reverse(std::array<byte,8> input){
ret.at(i) = reverse(input.at(i));
}

return ret;
}

std::array<byte,8> LedController::rotate180(std::array<byte,8> input){
decltype(input) ret;

for(unsigned int i = 0; i < input.size();i++){
ret.at(input.size()-(i+1)) = reverse(input.at(i));
}

return ret;
}
8 changes: 8 additions & 0 deletions src/LedController.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -308,5 +308,13 @@ class LedController{
* @return std::array<byte,8> The mirrored array
*/
std::array<byte,8> reverse(std::array<byte,8> input);

/**
* @brief rotate an byte[8] array by 180 degrees
*
* @param input the array that will be rotated
* @return std::array<byte,8> The rotated array
*/
std::array<byte,8> rotate180(std::array<byte,8> input);
};

0 comments on commit c8a4e06

Please sign in to comment.