text: #ifndef SSD_1306_COMMANDS_H_
  #define SSD_1306_COMMANDS_H_
  
  /**
   * @file commands.h
   * @brief Commands for the SSD1306 from the datasheet
   *
   */
  
  #include <cstdint>
  
  namespace SSD_1306_reg {
  
    enum commands : uint8_t {
      SET_CONTRAST_CONTROL = 0x81,
      ENTIRE_DISPLAY_FROM_RAM = 0xA4,
      ENTIRE_DISPLAY_ON = 0xA5,
      SET_NORMAL_DISPLAY = 0xA6,
      SET_INVERSE_DISPLAY = 0xA7,
      SET_DISPLAY_OFF = 0xAE,
      SET_DISPLAY_ON = 0xAF,
      RIGHT_HORIZONTAL_SCROLL = 0x26,
      LEFT_HORIZONTAL_SCROLL = 0x27,
      VERTICAL_AND_RIGHT_SCROLL = 0x29,
      VERTICAL_AND_LEFT_SCROLL = 0x2A,
      STOP_SCROLL = 0x2E,
      START_SCROLL = 0x2F,
      SET_VERTICAL_SCROLL_AREA = 0xA3,
      SET_LOWER_COLUMN_START_ADDRESS = 0x00,
      SET_HIGHER_COLUMN_START_ADDRESS = 0x10,
      SET_MEMORY_ADDRESSING_MODE = 0x20,
      SET_COLUMN_ADDRESS = 0x21,
      SET_PAGE_ADDRESS = 0x22,
      SET_PAGE_START_ADDRESS = 0xB0,
      SET_DISPLAY_START_LINE = 0x40,
      SET_SEGMENT_REMAP = 0xA0,
      SET_MUX_RATIO = 0xA8,
      SET_COM_OUTPUT_SCAN_DIR = 0xC0,
      SET_DISPLAY_OFFSET = 0xD3,
      SET_COM_HW_CONFIG = 0xDA,
      SET_CLOCK_DIVIDE_RATIO = 0xD5,
      SET_PRE_CHARGE_PERIOD = 0xD9,
      SET_VCOMH_DESELECT_LEVEL = 0xDB,
      NOP = 0xE3,
      CHARGE_PUMP_SETTINGS = 0x8D,
    };
  }
  #endif
  