Obfuscation, got a good one?

Having just read this thread, it occurred to me that we don't see much in the way of obfuscated code. I encountered some the other night, in demo code for the ClickEncoder library. While it wasn't difficult figure out, it was totally unnecessary, especially for a demo program. The silliness begins with the #define on line 72, as found on Github, I did not reformat.

#define WITH_LCD 1

#include <ClickEncoder.h>
#include <TimerOne.h>

#ifdef WITH_LCD
#include <LiquidCrystal.h>

#define LCD_RS       8
#define LCD_RW       9
#define LCD_EN      10
#define LCD_D4       4
#define LCD_D5       5
#define LCD_D6       6
#define LCD_D7       7

#define LCD_CHARS   20
#define LCD_LINES    4

LiquidCrystal lcd(LCD_RS, LCD_RW, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
#endif

ClickEncoder *encoder;
int16_t last, value;

void timerIsr() {
  encoder->service();
}

#ifdef WITH_LCD
void displayAccelerationStatus() {
  lcd.setCursor(0, 1);  
  lcd.print("Acceleration ");
  lcd.print(encoder->getAccelerationEnabled() ? "on " : "off");
}
#endif

void setup() {
  Serial.begin(9600);
  encoder = new ClickEncoder(A1, A0, A2);

#ifdef WITH_LCD
  lcd.begin(LCD_CHARS, LCD_LINES);
  lcd.clear();
  displayAccelerationStatus();
#endif

  Timer1.initialize(1000);
  Timer1.attachInterrupt(timerIsr); 
  
  last = -1;
}

void loop() {  
  value += encoder->getValue();
  
  if (value != last) {
    last = value;
    Serial.print("Encoder Value: ");
    Serial.println(value);
#ifdef WITH_LCD
    lcd.setCursor(0, 0);
    lcd.print("         ");
    lcd.setCursor(0, 0);
    lcd.print(value);
#endif
  }
  
  ClickEncoder::Button b = encoder->getButton();
  if (b != ClickEncoder::Open) {
    Serial.print("Button: ");
    #define VERBOSECASE(label) case label: Serial.println(#label); break;
    switch (b) {
      VERBOSECASE(ClickEncoder::Pressed);
      VERBOSECASE(ClickEncoder::Held)
      VERBOSECASE(ClickEncoder::Released)
      VERBOSECASE(ClickEncoder::Clicked)
      case ClickEncoder::DoubleClicked:
          Serial.println("ClickEncoder::DoubleClicked");
          encoder->setAccelerationEnabled(!encoder->getAccelerationEnabled());
          Serial.print("  Acceleration is ");
          Serial.println((encoder->getAccelerationEnabled()) ? "enabled" : "disabled");
#ifdef WITH_LCD
          displayAccelerationStatus();
#endif
        break;
    }
  }    
}

If you have a good unintentional example, post away. Let's get keep this simple, Arduino only, no obfuscation contest material please.

I can't see any obfuscation in that.

My only grumble might be.....

#ifdef WITH_LCD
    lcd.setCursor(0, 0);
    lcd.print("         ");
    lcd.setCursor(0, 0);
    lcd.print(value);
#endif

The ensuing code doesn't know the display size, so doesn't know how many spaces to overwrite .....
perhaps it could be

#ifdef WITH_LCD
    lcd.clear;
    lcd.setCursor(0, 0);
    lcd.print(value);
#endif

Depends on the context.

Allan

My main grumble would then be     lcd.clear;

It only causes flicker if you call it.

Yes - but only a small one.

If completely re-writing a screen as when swapping states in a FSM it's useful.

Allan

allanhurst:
Yes - but only a small one.

Yes, but only if you call it [hint]

I wouldn't spend too many words on it, AWOL.

But for it's function, it's got the right name.
So no obfuscation there, it's a good demo sketch doing what it claims to be.

Tsss.

I've been looking at the code in the 1st. post, to which AWOL's comment "only if you call it" is also valid.