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