self_display.h

self_display.h
// *************************************************************
// Code and Variables for Controlling Display
// *************************************************************
// 0 <= nx < 20
// 0 <= ny <  3
// *************************************************************

#include <U8g2lib.h>

U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

uint8_t selfCurs_nx, selfCurs_ny;
uint8_t selfCurs_on;

void selfSetup() {
  u8g2.begin();
  u8g2.setDisplayRotation(U8G2_R0);
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_6x10_mf);
  u8g2.setFontRefHeightExtendedText();
  u8g2.setDrawColor(1);
  u8g2.setFontPosTop();
  u8g2.setFontDirection(0);
  u8g2.drawFrame(0,0, 128, 64);
  u8g2.sendBuffer();

  selfCurs_on = 0;
}

void selfClrScrn() {
  u8g2.clearBuffer();
  u8g2.drawFrame(0,0, 128, 64);
  selfCurs_on = 0;
}

void selfDraw() {
  u8g2.sendBuffer();
}

void selfSetCurs(uint8_t nx, uint8_t ny) {
  if (selfCurs_on) {
    u8g2.setDrawColor(0);
    u8g2.drawFrame(4+selfCurs_nx*6-1, 2+selfCurs_ny*10-2, 7, 12);
    u8g2.setDrawColor(1);
  }

  selfCurs_nx = nx;
  selfCurs_ny = ny;
  u8g2.drawFrame(4+selfCurs_nx*6-1, 2+selfCurs_ny*10-2, 7, 12);

  selfCurs_on = 1;
}

void selfDelCurs() {
  if (selfCurs_on) {
    u8g2.setDrawColor(0);
    u8g2.drawFrame(4+selfCurs_nx*6-1, 2+selfCurs_ny*10-2, 7, 12);
    u8g2.setDrawColor(1);
    selfCurs_on = 0;
  }
}

void selfText(uint8_t nx, uint8_t ny, char *jstr) {
  u8g2.drawStr( 4+nx*6,  2+ny*10, jstr);
}

void selfTextN(uint8_t nx, uint8_t ny, char *jstr, uint8_t n) {
  char kstr[32];
  uint8_t jlen;

  strcpy(kstr, jstr);

  if (n > 20) {
    n = 20;
  }

  jlen = strlen(jstr);
  while (jlen < n) {
    kstr[jlen] = ' ';
    jlen++;
  }
  kstr[jlen] = '\0';

  u8g2.drawStr( 4+nx*6,  2+ny*10, kstr);
}
// *************************************************************