omit sending hat if direction is not changed
This commit is contained in:
@@ -38,6 +38,7 @@ struct arrow newestYArrow;
|
||||
#define ButtonInfoTableSize 9
|
||||
struct ButtonInfo buttonInfoTable[ButtonInfoTableSize];
|
||||
|
||||
Hat last = Hat::CENTER;
|
||||
|
||||
void perms() {
|
||||
if(val == 0){
|
||||
@@ -125,6 +126,13 @@ void handleButtonInput(ButtonInfo *but){
|
||||
but->prev = but->current;
|
||||
}
|
||||
|
||||
void moveHat(Hat dir){
|
||||
if(last != dir){
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(dir));
|
||||
last = dir;
|
||||
}
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
val = digitalRead(2);
|
||||
@@ -150,27 +158,27 @@ void loop()
|
||||
if(arrowTable[1].current == 0){
|
||||
if(arrowTable[3].current == 0){
|
||||
if(arrowTable[0].current == 0){
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(Hat::TOP));
|
||||
moveHat(Hat::TOP);
|
||||
}
|
||||
else{
|
||||
if(arrowTable[2].current == 0){
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(Hat::BOTTOM));
|
||||
moveHat(Hat::BOTTOM);
|
||||
}
|
||||
else{
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(Hat::CENTER));
|
||||
moveHat(Hat::CENTER);
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(arrowTable[0].current == 0){
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(Hat::TOP_LEFT));
|
||||
moveHat(Hat::TOP_LEFT);
|
||||
}
|
||||
else{
|
||||
if(arrowTable[2].current == 0){
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(Hat::BOTTOM_LEFT));
|
||||
moveHat(Hat::BOTTOM_LEFT);
|
||||
}
|
||||
else{
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(Hat::LEFT));
|
||||
moveHat(Hat::LEFT);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -178,27 +186,27 @@ void loop()
|
||||
else{
|
||||
if(arrowTable[3].current == 0){
|
||||
if(arrowTable[0].current == 0){
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(Hat::TOP_RIGHT));
|
||||
moveHat(Hat::TOP_RIGHT);
|
||||
}
|
||||
else{
|
||||
if(arrowTable[2].current == 0){
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(Hat::BOTTOM_RIGHT));
|
||||
moveHat(Hat::BOTTOM_RIGHT);
|
||||
}
|
||||
else{
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(Hat::RIGHT));
|
||||
moveHat(Hat::RIGHT);
|
||||
}
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(arrowTable[0].current == 0){
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(Hat::TOP));
|
||||
moveHat(Hat::TOP);
|
||||
}
|
||||
else{
|
||||
if(arrowTable[2].current == 0){
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(Hat::BOTTOM));
|
||||
moveHat(Hat::BOTTOM);
|
||||
}
|
||||
else{
|
||||
SwitchControlLibrary().MoveHat(static_cast<uint8_t>(Hat::CENTER));
|
||||
moveHat(Hat::CENTER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user