Initial commit
This is just the 2018 code configured for PlatformIO
This commit is contained in:
		
							
								
								
									
										1
									
								
								lib/arduino-ediptft-master/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								lib/arduino-ediptft-master/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
doc/
 | 
			
		||||
							
								
								
									
										38
									
								
								lib/arduino-ediptft-master/CHANGELOG
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								lib/arduino-ediptft-master/CHANGELOG
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,38 @@
 | 
			
		||||
------------------------------------------------------------------------------
 | 
			
		||||
Library for controlling Electronic Assembly eDIPTFT displays
 | 
			
		||||
 | 
			
		||||
     Copyright (c) 2013 Stefan Gofferje. All rights reserved.
 | 
			
		||||
 | 
			
		||||
     This library is free software; you can redistribute it and/or
 | 
			
		||||
     modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
     License as published by the Free Software Foundation; either
 | 
			
		||||
     version 2.1 of the License, or (at your option) any later
 | 
			
		||||
     version.
 | 
			
		||||
 | 
			
		||||
     This library is distributed in the hope that it will be
 | 
			
		||||
     useful, but WITHOUT ANY WARRANTY; without even the implied
 | 
			
		||||
     warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 | 
			
		||||
     PURPOSE.  See the GNU Lesser General Public License for more
 | 
			
		||||
     details.
 | 
			
		||||
 | 
			
		||||
     You should have received a copy of the GNU Lesser General
 | 
			
		||||
     Public License along with this library; if not, write to the
 | 
			
		||||
     Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 | 
			
		||||
     Boston, MA 02110-1301 USA
 | 
			
		||||
------------------------------------------------------------------------------
 | 
			
		||||
---- 10feb2015 Stefan Lehmann
 | 
			
		||||
- Added support for displays with only 1 Byte display coordinates (<255 pixels):
 | 
			
		||||
  eDIP128, eDIP160 and eDIP240
 | 
			
		||||
 | 
			
		||||
---- 24feb2013 Stefan Gofferje
 | 
			
		||||
- Added functions for touch switches and radio groups
 | 
			
		||||
 | 
			
		||||
---- 03feb2013 Stefan Gofferje
 | 
			
		||||
- Smallprotocol works!!! Yay!
 | 
			
		||||
- More functions added.
 | 
			
		||||
 | 
			
		||||
---- 29jan2013 Stefan Gofferje
 | 
			
		||||
- Basic functionality is there
 | 
			
		||||
 | 
			
		||||
---- 26jan2013 Stefan Gofferje
 | 
			
		||||
- Project started
 | 
			
		||||
							
								
								
									
										2329
									
								
								lib/arduino-ediptft-master/Doxyfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2329
									
								
								lib/arduino-ediptft-master/Doxyfile
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										697
									
								
								lib/arduino-ediptft-master/EDIPTFT.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										697
									
								
								lib/arduino-ediptft-master/EDIPTFT.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,697 @@
 | 
			
		||||
 //
 | 
			
		||||
// Library for controlling Electronic Assembly eDIPTFT displays
 | 
			
		||||
//
 | 
			
		||||
//      Copyright (c) 2013 Stefan Gofferje. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
//      This library is free software; you can redistribute it and/or
 | 
			
		||||
//      modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
//      License as published by the Free Software Foundation; either
 | 
			
		||||
//      version 2.1 of the License, or (at your option) any later
 | 
			
		||||
//      version.
 | 
			
		||||
//
 | 
			
		||||
//      This library is distributed in the hope that it will be
 | 
			
		||||
//      useful, but WITHOUT ANY WARRANTY; without even the implied
 | 
			
		||||
//      warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 | 
			
		||||
//      PURPOSE.  See the GNU Lesser General Public License for more
 | 
			
		||||
//      details.
 | 
			
		||||
//
 | 
			
		||||
//      You should have received a copy of the GNU Lesser General
 | 
			
		||||
//      Public License along with this library; if not, write to the
 | 
			
		||||
//      Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 | 
			
		||||
//      Boston, MA 02110-1301 USA
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#include "EDIPTFT.h"
 | 
			
		||||
#include "Arduino.h"
 | 
			
		||||
#define DEBUG false
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
EDIPTFT::EDIPTFT(boolean smallprotocol, boolean displaybool) {
 | 
			
		||||
  _smallprotocol = smallprotocol;
 | 
			
		||||
  _displaybool = displaybool;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::begin(long baud) {
 | 
			
		||||
    SERIAL_DEV.begin(baud);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::sendByte(char data) {
 | 
			
		||||
  SERIAL_DEV.write(data);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
char EDIPTFT::readByte() {
 | 
			
		||||
  return SERIAL_DEV.read();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::waitBytesAvailable() {
 | 
			
		||||
   const uint32_t t_start = millis();
 | 
			
		||||
   char loop = 0;
 | 
			
		||||
  while (loop == 0)
 | 
			
		||||
  {
 | 
			
		||||
	if (bytesAvailable() != 0){
 | 
			
		||||
		loop = 1;
 | 
			
		||||
	}
 | 
			
		||||
	if(t_start + 100 < millis())
 | 
			
		||||
	{
 | 
			
		||||
		//Serial.println("Error: waited to long!");
 | 
			
		||||
		loop =1;
 | 
			
		||||
	}
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
char EDIPTFT::waitandreadByte() {
 | 
			
		||||
  waitBytesAvailable();
 | 
			
		||||
  char result = readByte();
 | 
			
		||||
  return(result);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
unsigned char EDIPTFT::bytesAvailable() {
 | 
			
		||||
    return SERIAL_DEV.available();
 | 
			
		||||
	//ÄNDERN
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::sendData(char* data, char len) {
 | 
			
		||||
	
 | 
			
		||||
  /*for(int i=0; i < len; i++) {
 | 
			
		||||
    Serial.print(data[i]);
 | 
			
		||||
  }
 | 
			
		||||
  Serial.print('\n');
 | 
			
		||||
  Serial.println(len);*/
 | 
			
		||||
  
 | 
			
		||||
  if (DEBUG) {
 | 
			
		||||
    unsigned char i;
 | 
			
		||||
    for (i = 0; i < len; i++) {
 | 
			
		||||
	  //Serial.print(byte(data[i]), HEX);
 | 
			
		||||
      SERIAL_DEV.print(byte(data[i]), HEX);
 | 
			
		||||
      SERIAL_DEV.print(" ");
 | 
			
		||||
    }
 | 
			
		||||
    SERIAL_DEV.println();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (_smallprotocol) {
 | 
			
		||||
    sendSmall(data, len);
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    unsigned char i;
 | 
			
		||||
    for(i=0; i < len; i++) {
 | 
			
		||||
      sendByte(data[i]);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::sendSmall(char* data, char len) {
 | 
			
		||||
  unsigned char i, bcc;
 | 
			
		||||
  char ok = 0;
 | 
			
		||||
  const uint32_t t_start = millis();
 | 
			
		||||
 | 
			
		||||
  while (ok == 0) {
 | 
			
		||||
    sendByte(0x11);
 | 
			
		||||
    bcc = 0x11;
 | 
			
		||||
 | 
			
		||||
    sendByte(len);
 | 
			
		||||
    bcc = bcc + len;
 | 
			
		||||
 | 
			
		||||
    for(i=0; i < len; i++) {
 | 
			
		||||
      sendByte(data[i]);
 | 
			
		||||
      bcc = bcc + data[i];
 | 
			
		||||
    }
 | 
			
		||||
    sendByte(bcc);
 | 
			
		||||
    waitBytesAvailable();
 | 
			
		||||
    if (bytesAvailable() > 0) {
 | 
			
		||||
	   char x = readByte();
 | 
			
		||||
	   //Serial.print(uint16_t(x));
 | 
			
		||||
      if (x == ACK) ok = 1;
 | 
			
		||||
      else {
 | 
			
		||||
        ok = 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
      delay(200);
 | 
			
		||||
      ok = 0;
 | 
			
		||||
    }
 | 
			
		||||
	if(t_start + 1000 < millis())
 | 
			
		||||
	{
 | 
			
		||||
		//Serial.println("Error: waited to long!");
 | 
			
		||||
		ok =1;
 | 
			
		||||
		_displaybool = true;
 | 
			
		||||
	}
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::sendSmallDC2(char* data, char len) {
 | 
			
		||||
  unsigned char i, bcc;
 | 
			
		||||
  char ok = 0;
 | 
			
		||||
 | 
			
		||||
  while (ok == 0) {
 | 
			
		||||
 | 
			
		||||
    sendByte(0x12);
 | 
			
		||||
    bcc = 0x12;
 | 
			
		||||
 | 
			
		||||
    for(i=0; i < len; i++) {
 | 
			
		||||
      sendByte(data[i]);
 | 
			
		||||
      bcc = bcc + data[i];
 | 
			
		||||
    }
 | 
			
		||||
    sendByte(bcc);
 | 
			
		||||
    waitBytesAvailable(); //delay(6); im 17er
 | 
			
		||||
    if (bytesAvailable() > 0) {
 | 
			
		||||
      if (readByte() == ACK) ok = 1;
 | 
			
		||||
      else ok = 0;
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
      delay(200);
 | 
			
		||||
      ok = 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::smallProtoSelect(char address) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    0x03, 'A', 'S', address
 | 
			
		||||
  };
 | 
			
		||||
  sendSmallDC2(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::smallProtoDeselect(char address) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    0x03, 'A', 'D', address
 | 
			
		||||
  };
 | 
			
		||||
  sendSmallDC2(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
unsigned char EDIPTFT::datainBuffer() {
 | 
			
		||||
  unsigned char result;
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    0x01, 'I'
 | 
			
		||||
  };
 | 
			
		||||
  sendSmallDC2(command, sizeof(command));
 | 
			
		||||
  waitandreadByte();
 | 
			
		||||
  waitandreadByte();
 | 
			
		||||
  result=waitandreadByte();
 | 
			
		||||
  waitandreadByte();
 | 
			
		||||
  waitandreadByte();
 | 
			
		||||
  return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int EDIPTFT::readBuffer(char* data) { //return void
 | 
			
		||||
    unsigned char len, i; // char in 17er
 | 
			
		||||
    char command [] = {
 | 
			
		||||
        0x01, 'S'
 | 
			
		||||
    };
 | 
			
		||||
    sendSmallDC2(command, sizeof(command));
 | 
			
		||||
    waitandreadByte();
 | 
			
		||||
    len=waitandreadByte();
 | 
			
		||||
    char result[len];
 | 
			
		||||
    for (i = 0; i < len; i++) {
 | 
			
		||||
        result[i] = waitandreadByte();
 | 
			
		||||
    }
 | 
			
		||||
    memcpy(data, result, len);
 | 
			
		||||
    waitandreadByte();
 | 
			
		||||
    return len; //zeile nicht vorhanden 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::clear() { //vgl 17er
 | 
			
		||||
  this->deleteDisplay();
 | 
			
		||||
  this->removeTouchArea(0, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::deleteDisplay() {
 | 
			
		||||
    char command [] = {
 | 
			
		||||
      27, 'D', 'L'
 | 
			
		||||
    };
 | 
			
		||||
    sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::invert() {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'D', 'I'
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setDisplayColor(char fg, char bg) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'F', 'D', fg, bg
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::fillDisplayColor(char bg) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'D', 'F', bg
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::terminalOn(boolean on) {
 | 
			
		||||
  if (on) {
 | 
			
		||||
    char command [] = {27, 'T', 'E'};
 | 
			
		||||
    sendData(command, sizeof(command));
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    char command [] = {27, 'T', 'A'};
 | 
			
		||||
    sendData(command, sizeof(command));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::loadImage(int x1, int y1, int nr) {
 | 
			
		||||
    char command [] = {27, 'U', 'I',
 | 
			
		||||
    #if COORD_SIZE == 1
 | 
			
		||||
        (char)x1, (char)y1,
 | 
			
		||||
    #else
 | 
			
		||||
        lowByte(x1), highByte(x1), lowByte(y1), highByte(y1),
 | 
			
		||||
    #endif
 | 
			
		||||
        nr};
 | 
			
		||||
    sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::cursorOn(boolean on) {
 | 
			
		||||
  if (on) {
 | 
			
		||||
    char command [] = {27, 'T', 'C', 1};
 | 
			
		||||
    sendData(command, sizeof(command));
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    char command [] = {27, 'T', 'C', 0};
 | 
			
		||||
    sendData(command, sizeof(command));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setCursor(char col, char row) {
 | 
			
		||||
  char command [] = {27, 'T', 'P', col, row};
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::displayLight(char no) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'Y', 'H', no
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::defineBargraph(char dir, char no, int x1, int y1, int x2, int y2, byte sv, byte ev, char type, char mst) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'B', dir, no,
 | 
			
		||||
    #if COORD_SIZE == 1
 | 
			
		||||
        x1, y1, x2, y2,
 | 
			
		||||
    #else
 | 
			
		||||
        lowByte(x1), highByte(x1), lowByte(y1), highByte(y1),
 | 
			
		||||
        lowByte(x2), highByte(x2), lowByte(y2), highByte(y2),
 | 
			
		||||
    #endif
 | 
			
		||||
    char(sv),
 | 
			
		||||
    char(ev),
 | 
			
		||||
    type,
 | 
			
		||||
    mst
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
  //mst fehlt 17
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::updateBargraph(char no, char val) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'B', 'A', no, val
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setBargraphColor(char no, char fg, char bg, char fr) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'F', 'B', no, fg, bg, fr
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::linkBargraphLight(char no) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'Y', 'B', no
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::makeBargraphTouch(char no) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'A', 'B', no
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::deleteBargraph(char no,char n1) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'B', 'D', no, n1
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::defineInstrument(char no, int x1, int y1, char image, char angle, char sv, char ev) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'I', 'P', no,
 | 
			
		||||
    #if COORD_SIZE == 1
 | 
			
		||||
        x1, y1,
 | 
			
		||||
    #else
 | 
			
		||||
        lowByte(x1), highByte(x1), lowByte(y1), highByte(y1),
 | 
			
		||||
    #endif
 | 
			
		||||
    image, angle, sv, ev
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::updateInstrument(char no, char val) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'I', 'A', no, val
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::redrawInstrument(char no) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'I', 'N', no
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::deleteInstrument(char no, char n1, char n2) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'B', 'D', no, n1, n2
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setLineColor(char fg, char bg) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'F', 'G', fg, bg
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setLineThick(char x, char y) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'G', 'Z', x, y
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setTextColor(char fg, char bg) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'F', 'Z', fg, bg
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setTextFont(char font) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'Z', 'F', font
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setTextSize(int xsize, int ysize){
 | 
			
		||||
	char command[] = {27,	'Z',	'Z',	xsize,	ysize};
 | 
			
		||||
	sendData(command,sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setTextAngle(char angle) {
 | 
			
		||||
  // 0 = 0°, 1 = 90°, 2 = 180°, 3 = 270°
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'Z', 'W', angle
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::drawText(uint16_t x1, uint16_t y1, char justification, const char* text) {
 | 
			
		||||
	//nicht const 17//
 | 
			
		||||
  byte len = strlen(text);
 | 
			
		||||
  byte i;
 | 
			
		||||
  char helper [3 + 4 + len + 1];
 | 
			
		||||
  helper[0] = 27; //esc
 | 
			
		||||
  helper[1] = 'Z';
 | 
			
		||||
  helper[2] = justification;
 | 
			
		||||
  helper[3] = x1 & 0xFF;
 | 
			
		||||
  helper[4] = (x1 >> 8) & 0xFF;
 | 
			
		||||
  helper[5] = y1 & 0xFF;
 | 
			
		||||
  helper[6] = (y1 >> 8) & 0xFF;
 | 
			
		||||
  for (i = 0; i <= len; i++) {
 | 
			
		||||
      helper[i + 7] = text[i];
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  sendData(helper, sizeof(helper));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::drawLine(int x1, int y1, int x2, int y2) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27,'G','D',
 | 
			
		||||
    #if COORD_SIZE == 1
 | 
			
		||||
        x1, y1, x2, y2
 | 
			
		||||
    #else
 | 
			
		||||
        lowByte(x1),highByte(x1),lowByte(y1),highByte(y1),
 | 
			
		||||
        lowByte(x2),highByte(x2),lowByte(y2),highByte(y2)
 | 
			
		||||
    #endif
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::drawRect(int x1, int y1, int x2, int y2) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27,'G','R',
 | 
			
		||||
    #if COORD_SIZE == 1
 | 
			
		||||
        x1, y1, x2, y2
 | 
			
		||||
    #else
 | 
			
		||||
        lowByte(x1),highByte(x1),lowByte(y1),highByte(y1),
 | 
			
		||||
        lowByte(x2),highByte(x2),lowByte(y2),highByte(y2)
 | 
			
		||||
    #endif
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::drawRectf(int x1, int y1, int x2, int y2, char color) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27,'R','F',
 | 
			
		||||
    #if COORD_SIZE == 1
 | 
			
		||||
        x1, y1, x2, y2,
 | 
			
		||||
    #else
 | 
			
		||||
        lowByte(x1),highByte(x1),lowByte(y1),highByte(y1),
 | 
			
		||||
        lowByte(x2),highByte(x2),lowByte(y2),highByte(y2),
 | 
			
		||||
    #endif
 | 
			
		||||
    color
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::defineTouchKey(int x1, int y1, int x2, int y2, char down, char up,
 | 
			
		||||
                             const char* text) { //text nicht const 17
 | 
			
		||||
  byte len = strlen(text);
 | 
			
		||||
  byte i;
 | 
			
		||||
  char helper [len + 6 + 4 * COORD_SIZE];//len+13 17
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'A', 'T',
 | 
			
		||||
    #if COORD_SIZE == 1
 | 
			
		||||
        x1, y1, x2, y2,
 | 
			
		||||
    #else
 | 
			
		||||
        lowByte(x1), highByte(x1), lowByte(y1), highByte(y1),
 | 
			
		||||
        lowByte(x2), highByte(x2), lowByte(y2), highByte(y2),
 | 
			
		||||
    #endif
 | 
			
		||||
    down, up
 | 
			
		||||
  };
 | 
			
		||||
  for (i = 0; i < (5 + 4 * COORD_SIZE); i++) helper[i] = command[i];//i<=12 17
 | 
			
		||||
  for (i = 0; i <= len+1; i++) helper[i + 5 + 4 * COORD_SIZE] = text[i];//i<=len 17
 | 
			
		||||
  sendData(helper, sizeof(helper));//size len+14 17
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::defineTouchSwitch(int x1, int y1, int x2, int y2,
 | 
			
		||||
                                char down, char up, const char* text) {//const nicht 17
 | 
			
		||||
  byte len = strlen(text);
 | 
			
		||||
  byte i;
 | 
			
		||||
  char helper [len + 6 + 4 * COORD_SIZE];//len+13 17
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'A', 'K',
 | 
			
		||||
    #if COORD_SIZE == 1
 | 
			
		||||
        x1, y1, x2, y2,
 | 
			
		||||
    #else
 | 
			
		||||
        lowByte(x1),highByte(x1),lowByte(y1),highByte(y1),
 | 
			
		||||
        lowByte(x2),highByte(x2),lowByte(y2),highByte(y2),
 | 
			
		||||
    #endif
 | 
			
		||||
    down, up
 | 
			
		||||
  };
 | 
			
		||||
  for (i = 0; i < 5 + 4 * COORD_SIZE; i++) helper[i] = command[i];
 | 
			
		||||
  for (i = 0; i <= len; i++) helper[i + 5 + 4 * COORD_SIZE] = text[i];
 | 
			
		||||
  sendData(helper, sizeof(helper));//size len+14
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::defineTouchSwitch(int x, int y, int img, char downcode,
 | 
			
		||||
                                char upcode, const char* text) {
 | 
			
		||||
  byte len = strlen(text);
 | 
			
		||||
  byte i;
 | 
			
		||||
  byte n = 6 + 2 * COORD_SIZE;
 | 
			
		||||
  char helper [len + n + 1];
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'A', 'J',
 | 
			
		||||
    #if COORD_SIZE == 1
 | 
			
		||||
        x, y,
 | 
			
		||||
    #else
 | 
			
		||||
        lowByte(x), highByte(x), lowByte(y), highByte(y),
 | 
			
		||||
    #endif
 | 
			
		||||
    img, downcode, upcode
 | 
			
		||||
  };
 | 
			
		||||
  for (i = 0; i < n; i++) helper[i] = command[i];
 | 
			
		||||
  for (i = 0; i <= len; i++) helper[i + n] = text[i];
 | 
			
		||||
  sendData(helper, sizeof(helper));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setTouchSwitch(char code,char value) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'A', 'P', code, value
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setTouchkeyColors(
 | 
			
		||||
  char n1, char n2, char n3, char s1, char s2, char s3) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'F', 'E', n1, n2, n3, s1, s2, s3
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setTouchkeyFont(char font) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'A', 'F', font
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setTouchkeyLabelColors(char nf, char sf) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'F', 'A', nf, sf
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setTouchGroup(char group) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'A', 'R', group
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::removeTouchArea(char code, char n1) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'A', 'L', code, n1
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::callMacro(uint nr) {
 | 
			
		||||
  char command[] = {
 | 
			
		||||
    27, 'M', 'N', nr
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::callTouchMacro(uint nr) {
 | 
			
		||||
  char command[] = {
 | 
			
		||||
    27, 'M', 'T', nr
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::callMenuMacro(uint nr) {
 | 
			
		||||
  char command[] = {
 | 
			
		||||
    27, 'M', 'M', nr
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::defineTouchMenu(int x1, int y1, int x2, int y2,
 | 
			
		||||
    char downcode, char upcode, char mnucode, const char *text) {
 | 
			
		||||
  byte len = strlen(text);
 | 
			
		||||
  byte n = 6 + 4 * COORD_SIZE;
 | 
			
		||||
  char helper [len + n + 1];
 | 
			
		||||
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'A', 'M',
 | 
			
		||||
    #if COORD_SIZE == 1
 | 
			
		||||
        x1, y1, x2, y2,
 | 
			
		||||
    #else
 | 
			
		||||
        lowByte(x1),highByte(x1),lowByte(y1),highByte(y1),
 | 
			
		||||
        lowByte(x2),highByte(x2),lowByte(y2),highByte(y2),
 | 
			
		||||
    #endif
 | 
			
		||||
    downcode, upcode, mnucode
 | 
			
		||||
  };
 | 
			
		||||
  for (int i = 0; i < n; i++) helper[i] = command[i];
 | 
			
		||||
  for (int i = 0; i <= len; i++) helper[i + n] = text[i];
 | 
			
		||||
  sendData(helper, sizeof(helper));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::openTouchMenu() {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'N', 'T', 2
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setMenuFont(char font) {
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'N', 'F', font
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EDIPTFT::setTouchMenuAutomation(bool val) {
 | 
			
		||||
  char n1 = val ? 1 : 0;
 | 
			
		||||
  char command [] = {
 | 
			
		||||
    27, 'N', 'T', n1
 | 
			
		||||
  };
 | 
			
		||||
  sendData(command, sizeof(command));
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										434
									
								
								lib/arduino-ediptft-master/EDIPTFT.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										434
									
								
								lib/arduino-ediptft-master/EDIPTFT.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,434 @@
 | 
			
		||||
//
 | 
			
		||||
// Library for controlling Electronic Assembly eDIPTFT displays
 | 
			
		||||
//
 | 
			
		||||
//      Copyright (c) 2013 Stefan Gofferje. All rights reserved.
 | 
			
		||||
//
 | 
			
		||||
//      This library is free software; you can redistribute it and/or
 | 
			
		||||
//      modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
//      License as published by the Free Software Foundation; either
 | 
			
		||||
//      version 2.1 of the License, or (at your option) any later
 | 
			
		||||
//      version.
 | 
			
		||||
//
 | 
			
		||||
//      This library is distributed in the hope that it will be
 | 
			
		||||
//      useful, but WITHOUT ANY WARRANTY; without even the implied
 | 
			
		||||
//      warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 | 
			
		||||
//      PURPOSE.  See the GNU Lesser General Public License for more
 | 
			
		||||
//      details.
 | 
			
		||||
//
 | 
			
		||||
//      You should have received a copy of the GNU Lesser General
 | 
			
		||||
//      Public License along with this library; if not, write to the
 | 
			
		||||
//      Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 | 
			
		||||
//      Boston, MA 02110-1301 USA
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef EDIPTFT_h
 | 
			
		||||
#define EDIPTFT_h
 | 
			
		||||
 | 
			
		||||
#include "Arduino.h"
 | 
			
		||||
 | 
			
		||||
//Devices
 | 
			
		||||
#define EDIP128 1
 | 
			
		||||
#define EDIP160 1
 | 
			
		||||
#define EDIP240 1
 | 
			
		||||
#define EDIP320 2
 | 
			
		||||
 | 
			
		||||
//Set your device
 | 
			
		||||
#define DEVICE EDIP320
 | 
			
		||||
#define COORD_SIZE DEVICE  //Byte count for coordinates
 | 
			
		||||
#define SERIAL_DEV Serial3
 | 
			
		||||
 | 
			
		||||
#define EA_BLACK 1
 | 
			
		||||
#define EA_BLUE 2
 | 
			
		||||
#define EA_RED 3
 | 
			
		||||
#define EA_GREEN 4
 | 
			
		||||
#define EA_PURPLE 5
 | 
			
		||||
#define EA_CYAN 6
 | 
			
		||||
#define EA_YELLOW 7
 | 
			
		||||
#define EA_WHITE 8
 | 
			
		||||
#define EA_DARKGREY 9
 | 
			
		||||
#define EA_ORANGE 10
 | 
			
		||||
#define EA_LILA 11
 | 
			
		||||
#define EA_DARKPURPLE 12
 | 
			
		||||
#define EA_MINT 13
 | 
			
		||||
#define EA_GRASSGREEN 14
 | 
			
		||||
#define EA_LIGHTBLUE 15
 | 
			
		||||
#define EA_LIGHTGREY 16
 | 
			
		||||
 | 
			
		||||
// Fonts
 | 
			
		||||
#define EA_FONT8X8 0
 | 
			
		||||
#define EA_FONT4X6 1
 | 
			
		||||
#define EA_FONT6X8 2
 | 
			
		||||
#define EA_FONT7X12 3
 | 
			
		||||
#define EA_GENEVA10 4
 | 
			
		||||
#define EA_CHICAGO14 5
 | 
			
		||||
#define EA_SWISS30B 6
 | 
			
		||||
#define EA_BIGZIF57 7
 | 
			
		||||
 | 
			
		||||
#define NAK 0x15
 | 
			
		||||
#define ACK 0x06
 | 
			
		||||
#define ESC 0x1B
 | 
			
		||||
 | 
			
		||||
#define uint unsigned int
 | 
			
		||||
 | 
			
		||||
class EDIPTFT {
 | 
			
		||||
  public:
 | 
			
		||||
    EDIPTFT(boolean smallprotocol=true, boolean displaybool=false);
 | 
			
		||||
	boolean _displaybool;
 | 
			
		||||
 | 
			
		||||
    void begin(long baud=115200);
 | 
			
		||||
 | 
			
		||||
    // helper functions
 | 
			
		||||
    char readByte();
 | 
			
		||||
    char waitandreadByte();
 | 
			
		||||
    unsigned char datainBuffer();
 | 
			
		||||
    int readBuffer(char* data);
 | 
			
		||||
    void smallProtoSelect(char address);
 | 
			
		||||
    void smallProtoDeselect(char address);
 | 
			
		||||
    void sendData(char* data, char len);
 | 
			
		||||
 | 
			
		||||
    // Basic display functions
 | 
			
		||||
    /*! \brief Clear display
 | 
			
		||||
     *
 | 
			
		||||
     * Clear display contents (all pixels off) and remove touch areas
 | 
			
		||||
     */
 | 
			
		||||
    void clear();
 | 
			
		||||
 | 
			
		||||
    /*! \brief Delete display
 | 
			
		||||
     *
 | 
			
		||||
     * Delete display contents (all pixels off). Touch areas are still active.
 | 
			
		||||
     */
 | 
			
		||||
    void deleteDisplay();
 | 
			
		||||
 | 
			
		||||
    /*! \brief Invert display
 | 
			
		||||
     *
 | 
			
		||||
     * Invert display contents (invert all pixels)
 | 
			
		||||
     */
 | 
			
		||||
    void invert();
 | 
			
		||||
 | 
			
		||||
    void setDisplayColor(char fg, char bg);
 | 
			
		||||
 | 
			
		||||
    void fillDisplayColor(char bg);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Terminal on
 | 
			
		||||
     *
 | 
			
		||||
     * Terminal display is switched on if \a on is true
 | 
			
		||||
     *
 | 
			
		||||
     * \param on determine if terminal is switched on
 | 
			
		||||
     */
 | 
			
		||||
    void terminalOn(boolean on);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Load internal image
 | 
			
		||||
     *
 | 
			
		||||
     * Load internal image with the \a nr (0..255) from the *EEPROM* memory to
 | 
			
		||||
     * \a x1, \a y1
 | 
			
		||||
     *
 | 
			
		||||
     * \param x1 x position of image on the display
 | 
			
		||||
     * \param y1 y position of image on the display
 | 
			
		||||
     * \param nr number of the image on the *EEPROM*
 | 
			
		||||
     */
 | 
			
		||||
    void loadImage(int x1, int y1, int nr);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Cursor on/off
 | 
			
		||||
     *
 | 
			
		||||
     * Switch cursor on/off
 | 
			
		||||
     *
 | 
			
		||||
     * \param on `n1=0`: cursor is invisible, `n1=1`: cursor flashes
 | 
			
		||||
     */
 | 
			
		||||
    void cursorOn(boolean on);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Position cursor
 | 
			
		||||
     *
 | 
			
		||||
     * origin upper-left corner `(1, 1)`
 | 
			
		||||
     *
 | 
			
		||||
     * \param col new cursor column
 | 
			
		||||
     * \param row new cursor row
 | 
			
		||||
     */
 | 
			
		||||
    void setCursor(char col, char row);
 | 
			
		||||
 | 
			
		||||
	void displayLight(char no);
 | 
			
		||||
    // Bargraph
 | 
			
		||||
    /*! \brief Define bargraph
 | 
			
		||||
     *
 | 
			
		||||
     * Define bargraph to form the rectangle enclosing the
 | 
			
		||||
     * bargraph. \a sv and \a ev are the values for `0%` and `100%`.
 | 
			
		||||
     *
 | 
			
		||||
     * \param dir direction ('L'eft, 'R'ight, 'O'up, 'U'down)
 | 
			
		||||
     * \param no bargraph number `1..32`
 | 
			
		||||
     * \param x1 upper left x coordinate
 | 
			
		||||
     * \param y1 upper left y coordinate
 | 
			
		||||
     * \param x2 lower right x coordinate
 | 
			
		||||
     * \param y2 lower right y coordinate
 | 
			
		||||
     * \param sv start value (0%)
 | 
			
		||||
     * \param ev end value (100%)
 | 
			
		||||
 | 
			
		||||
     * \param type set the style of the bargraph:\n
 | 
			
		||||
     *             `type=0`: pattern bar, \a mst=bar pattern,\n
 | 
			
		||||
     *             `type=1`: pattern bar in rectangle, \a mst=bar pattern,\n
 | 
			
		||||
     *             `type=2`: pattern line, \a mst=line width,\n
 | 
			
		||||
     *             `type=3`: pattern line in rectangle, \a mst=line width
 | 
			
		||||
     *
 | 
			
		||||
     * \param mst additional parameter for type specification
 | 
			
		||||
     */
 | 
			
		||||
    void defineBargraph(char dir, char no, int x1, int y1, int x2, int y2,
 | 
			
		||||
                        byte sv, byte ev, char type, char mst);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Update bargraph
 | 
			
		||||
     *
 | 
			
		||||
     * Set and draw the bargraph *no* to the new *value*
 | 
			
		||||
     *
 | 
			
		||||
     * \param no number of the bargraph `1..32`
 | 
			
		||||
     * \param val new value of the bargraph
 | 
			
		||||
     */
 | 
			
		||||
    void updateBargraph(char no, char val);
 | 
			
		||||
 | 
			
		||||
    void setBargraphColor(char no, char fg, char bg, char fr);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Set bargraph by touch
 | 
			
		||||
     *
 | 
			
		||||
     * The bargraph with number *no* is defined for input by touch panel
 | 
			
		||||
     *
 | 
			
		||||
     * \param no number of the bargraph `1..32`
 | 
			
		||||
     */
 | 
			
		||||
    void makeBargraphTouch(char no);
 | 
			
		||||
 | 
			
		||||
    void linkBargraphLight(char no);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Delete bargraph
 | 
			
		||||
     *
 | 
			
		||||
     * The definition of the bargraph with number *no* becomes invalid. If the
 | 
			
		||||
     * bargraph was defined as input with touch, the touchfield will also be
 | 
			
		||||
     * deleted.
 | 
			
		||||
     *
 | 
			
		||||
     * \param no number of the bargraph `1..32`
 | 
			
		||||
     * \param n1 additional parameter\n
 | 
			
		||||
     *           `n1=0`: bargraph remains visible\n
 | 
			
		||||
     *           `n1=1`: bargraph is deleted
 | 
			
		||||
     */
 | 
			
		||||
    void deleteBargraph(char no, char n1);
 | 
			
		||||
 | 
			
		||||
    // Instrument
 | 
			
		||||
    void defineInstrument(char no, int x1, int y1, char image,
 | 
			
		||||
                          char angle, char sv, char ev);
 | 
			
		||||
    void updateInstrument(char no, char val);
 | 
			
		||||
    void redrawInstrument(char no);
 | 
			
		||||
    void deleteInstrument(char no, char n1, char n2);
 | 
			
		||||
 | 
			
		||||
    // Text
 | 
			
		||||
    void setTextColor(char fg, char bg);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Set font
 | 
			
		||||
     *
 | 
			
		||||
     * Set font with the number *font*
 | 
			
		||||
     *
 | 
			
		||||
     * \param font font number `font=0..15`, use font defines here
 | 
			
		||||
     */
 | 
			
		||||
    void setTextFont(char font);
 | 
			
		||||
	
 | 
			
		||||
	void setTextSize(int xsize, int ysize);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Set text angle
 | 
			
		||||
     *
 | 
			
		||||
     * Set text output angle
 | 
			
		||||
     *
 | 
			
		||||
     * \param angle text output angle\n
 | 
			
		||||
                    `angle=0`: 0°
 | 
			
		||||
                    `angle=1`: 90°
 | 
			
		||||
     */
 | 
			
		||||
    void setTextAngle(char angle);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Draw text on display
 | 
			
		||||
     *
 | 
			
		||||
     * Draw a *text* on screen. Several lines are separated by the character `|`
 | 
			
		||||
     * ($7C).
 | 
			
		||||
     * * place text between `~`: characters flash on/off
 | 
			
		||||
     * * place text between `@`: characters flash inversely
 | 
			
		||||
     * * use `\\` as to escape special characters
 | 
			
		||||
     *
 | 
			
		||||
     * \param x1: x coordinate
 | 
			
		||||
     * \param y1: y coordinate
 | 
			
		||||
     * \param justification set text justification to `L`(eft), `R`(ight),
 | 
			
		||||
     *                      `C`(enter)
 | 
			
		||||
     * \param text text to draw on display
 | 
			
		||||
     */
 | 
			
		||||
    void drawText(uint16_t x1, uint16_t y1, char justification, const char* text);
 | 
			
		||||
 | 
			
		||||
    // Rectangle and Line
 | 
			
		||||
    void setLineColor(char fg, char bg);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Point size/line thickness
 | 
			
		||||
     *
 | 
			
		||||
     * \param x x-point size (1..15)
 | 
			
		||||
     * \param y y-point size (1..15)
 | 
			
		||||
     */
 | 
			
		||||
    void setLineThick(char x, char y);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Draw straight line
 | 
			
		||||
     *
 | 
			
		||||
     * Draw straight line from point *x1*, *y1* to point *x2*, *y2*
 | 
			
		||||
     */
 | 
			
		||||
    void drawLine(int x1, int y1, int x2, int y2);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Draw rectangle
 | 
			
		||||
     *
 | 
			
		||||
     * Draw four straight lines as a rectangle from *x1*, *y1* to *x2*, *y2*
 | 
			
		||||
     */
 | 
			
		||||
    void drawRect(int x1, int y1, int x2, int y2);
 | 
			
		||||
 | 
			
		||||
    void drawRectf(int x1, int y1, int x2, int y2, char color);
 | 
			
		||||
 | 
			
		||||
    // Touch keys
 | 
			
		||||
 | 
			
		||||
    /*! \brief Define touch key
 | 
			
		||||
     *
 | 
			
		||||
     * Key remains pressed as long as there is contact. The area from *x1*, *y1*
 | 
			
		||||
     * to *x2*, *y2* is drawn with actual border and defined as a key.
 | 
			
		||||
     * The label is drawn with the current touch font. The first character
 | 
			
		||||
     * determines the alignment of the text (`L`(eft), `R`(ight), `C`(enter)).
 | 
			
		||||
     * Multiline texts are separated by the character `|`.
 | 
			
		||||
     *
 | 
			
		||||
     * \param down return/touchmacro (1-255) if pressed
 | 
			
		||||
     * \param up return/touchmacro (1-255) if released
 | 
			
		||||
     * \param text label of the touch key
 | 
			
		||||
     */
 | 
			
		||||
    void defineTouchKey(int x1, int y1, int x2, int y2,
 | 
			
		||||
                        char down, char up, const char* text);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Define touch switch
 | 
			
		||||
     *
 | 
			
		||||
     * Status of the switch toggles after each contact. The area from *x1*, *y1*
 | 
			
		||||
     * to *x2*, *y2* is drawn with actual border and defined as a key.
 | 
			
		||||
     * The label is drawn with the current touch font. The first character
 | 
			
		||||
     * determines the alignment of the text (`L`(eft), `R`(ight), `C`(enter)).
 | 
			
		||||
     * Multiline texts are separated by the character `|`.
 | 
			
		||||
     *
 | 
			
		||||
     * \param down return/touchmacro (1-255) if pressed
 | 
			
		||||
     * \param up return/touchmacro (1-255) if released
 | 
			
		||||
     * \param text label of the touch key
 | 
			
		||||
     */
 | 
			
		||||
    void defineTouchSwitch(int x1, int y1, int x2, int y2,
 | 
			
		||||
                           char down, char up, const char* text);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Define touch switch with image
 | 
			
		||||
     *
 | 
			
		||||
     * Status of the switch toggles after each contact. Image number *img* is
 | 
			
		||||
     * loaded to *x*, *y* and defined as a switch.
 | 
			
		||||
     * The label is drawn with the current touch font. The first character
 | 
			
		||||
     * determines the alignment of the text (`L`(eft), `R`(ight), `C`(enter)).
 | 
			
		||||
     * Multiline texts are separated by the character `|`.
 | 
			
		||||
     *
 | 
			
		||||
     * \param down return/touchmacro (1-255) if pressed
 | 
			
		||||
     * \param up return/touchmacro (1-255) if released
 | 
			
		||||
     * \param text label of the touch switch
 | 
			
		||||
     */
 | 
			
		||||
    void defineTouchSwitch(int x, int y, int img, char downcode,
 | 
			
		||||
                           char upcode, const char* text);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Set touch switch
 | 
			
		||||
     *
 | 
			
		||||
     * Set the status of the touch switch with the return code *code*
 | 
			
		||||
     * to *value*.
 | 
			
		||||
     *
 | 
			
		||||
     * \param code Return code of the switch
 | 
			
		||||
     * \param value `value=0`: OFF, `value=1`: ON
 | 
			
		||||
     */
 | 
			
		||||
    void setTouchSwitch(char code,char value);
 | 
			
		||||
 | 
			
		||||
    void setTouchkeyColors(char n1, char n2, char n3,
 | 
			
		||||
                           char s1, char s2, char s3);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Label font
 | 
			
		||||
     *
 | 
			
		||||
     * Apply font with number *font* for touch key labels
 | 
			
		||||
     */
 | 
			
		||||
    void setTouchkeyFont(char font);
 | 
			
		||||
 | 
			
		||||
    void setTouchkeyLabelColors(char nf,char sf);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Radio group for switches
 | 
			
		||||
     *
 | 
			
		||||
     * `group=0`: newly defined switches don't belong to a group
 | 
			
		||||
     * `group=1..255`: newly defined switches are assigned to the group with
 | 
			
		||||
     *                 the given number
 | 
			
		||||
     * Only one switch in a group is active at once. All others are deactivated.
 | 
			
		||||
     * For switches only the *down code* is applicable. The *up code* will be
 | 
			
		||||
     * ignored.
 | 
			
		||||
     */
 | 
			
		||||
    void setTouchGroup(char group);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Delete toch area by up- or downcode
 | 
			
		||||
     *
 | 
			
		||||
     *  The touch area with the return code is removed from the touch query
 | 
			
		||||
     *
 | 
			
		||||
     *  \param code the code of the touch area (code=0: all touch areas)
 | 
			
		||||
     *  \param n1 n1==0: the area remains visible on the display,
 | 
			
		||||
     *            n1==1: the area is deleted
 | 
			
		||||
     */
 | 
			
		||||
    void removeTouchArea(char code,char n1);
 | 
			
		||||
 | 
			
		||||
    // Macro Calls
 | 
			
		||||
    /*! \brief Run macro
 | 
			
		||||
     *
 | 
			
		||||
     * Call the (normal) macro with number *nr* (max. 7 levels).
 | 
			
		||||
     */
 | 
			
		||||
    void callMacro(uint nr);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Run touch macro
 | 
			
		||||
     *
 | 
			
		||||
     * Call touch macro with number *nr* (max. 7 levels)
 | 
			
		||||
     */
 | 
			
		||||
    void callTouchMacro(uint nr);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Run menu macro
 | 
			
		||||
     *
 | 
			
		||||
     * Call menu macro with number *nr* (max. 7 levels)
 | 
			
		||||
     */
 | 
			
		||||
    void callMenuMacro(uint nr);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Define touch key with menu function
 | 
			
		||||
     *
 | 
			
		||||
     * Define the area from *x1*, *y1* to *x2*, *y2*  as a menu key.
 | 
			
		||||
     * The first character determines the direction in which the menu opens (R=right,L=left,O=up,U=down)
 | 
			
		||||
     * The second character determines the alignment of the touch text (C=center,L=left-,R=right justified)
 | 
			
		||||
     * The menu items are separated by the character '|' ($7C,dec:124) (e.g. "UCkey|item1|item2|item3".
 | 
			
		||||
     * The key text is written with the current touch font and the menu items are written with the current menu font. The background of the menu is saved automatically.
 | 
			
		||||
     * \param downcode `1-255` return/touchmacro if pressed
 | 
			
		||||
     * \param upcode `1-255` return/touchmacro if released
 | 
			
		||||
     * \param mnucode return/menumacro+(item nr - 1) after selection of a
 | 
			
		||||
     *                menu item
 | 
			
		||||
     * \param text string with the key text and menu items
 | 
			
		||||
     */
 | 
			
		||||
    void defineTouchMenu(int x1, int y1, int x2, int y2,
 | 
			
		||||
                         char downcode, char upcode, char mnucode,
 | 
			
		||||
                         const char *text);
 | 
			
		||||
 | 
			
		||||
    /*! \brief Send *open* signal after a Menu open request has been sent from TFT.
 | 
			
		||||
     *
 | 
			
		||||
     *  If a touch menu is not set to open automatically the TFT sends a
 | 
			
		||||
     *  request 'ESC T 0'. This function sends 'ESC N T 2' to open the menu.
 | 
			
		||||
     */
 | 
			
		||||
    void openTouchMenu();
 | 
			
		||||
 | 
			
		||||
    /*! \brief Set menu font
 | 
			
		||||
     *
 | 
			
		||||
     * Set font with number *font* (`0..15`) for menu display
 | 
			
		||||
     */
 | 
			
		||||
    void setMenuFont(char font);
 | 
			
		||||
 | 
			
		||||
    /*! \brief enable/disable touchmenu automation
 | 
			
		||||
     *
 | 
			
		||||
     * if val==true touch menu opens automatically, if val==false touchmenu
 | 
			
		||||
     * doesn' t open automatically, instead a request is sent to the
 | 
			
		||||
     * host computer, which can then open the menu with openTouchMenu()
 | 
			
		||||
     */
 | 
			
		||||
    void setTouchMenuAutomation(bool val);
 | 
			
		||||
 | 
			
		||||
  private:
 | 
			
		||||
    boolean _smallprotocol;
 | 
			
		||||
	int _counter;
 | 
			
		||||
    unsigned char bytesAvailable();
 | 
			
		||||
    void waitBytesAvailable();
 | 
			
		||||
    void sendByte(char data);
 | 
			
		||||
    void sendSmall(char* data, char len);
 | 
			
		||||
    void sendSmallDC2(char* data, char len);
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										165
									
								
								lib/arduino-ediptft-master/LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										165
									
								
								lib/arduino-ediptft-master/LICENSE
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,165 @@
 | 
			
		||||
                   GNU LESSER GENERAL PUBLIC LICENSE
 | 
			
		||||
                       Version 3, 29 June 2007
 | 
			
		||||
 | 
			
		||||
 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 | 
			
		||||
 Everyone is permitted to copy and distribute verbatim copies
 | 
			
		||||
 of this license document, but changing it is not allowed.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  This version of the GNU Lesser General Public License incorporates
 | 
			
		||||
the terms and conditions of version 3 of the GNU General Public
 | 
			
		||||
License, supplemented by the additional permissions listed below.
 | 
			
		||||
 | 
			
		||||
  0. Additional Definitions.
 | 
			
		||||
 | 
			
		||||
  As used herein, "this License" refers to version 3 of the GNU Lesser
 | 
			
		||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
 | 
			
		||||
General Public License.
 | 
			
		||||
 | 
			
		||||
  "The Library" refers to a covered work governed by this License,
 | 
			
		||||
other than an Application or a Combined Work as defined below.
 | 
			
		||||
 | 
			
		||||
  An "Application" is any work that makes use of an interface provided
 | 
			
		||||
by the Library, but which is not otherwise based on the Library.
 | 
			
		||||
Defining a subclass of a class defined by the Library is deemed a mode
 | 
			
		||||
of using an interface provided by the Library.
 | 
			
		||||
 | 
			
		||||
  A "Combined Work" is a work produced by combining or linking an
 | 
			
		||||
Application with the Library.  The particular version of the Library
 | 
			
		||||
with which the Combined Work was made is also called the "Linked
 | 
			
		||||
Version".
 | 
			
		||||
 | 
			
		||||
  The "Minimal Corresponding Source" for a Combined Work means the
 | 
			
		||||
Corresponding Source for the Combined Work, excluding any source code
 | 
			
		||||
for portions of the Combined Work that, considered in isolation, are
 | 
			
		||||
based on the Application, and not on the Linked Version.
 | 
			
		||||
 | 
			
		||||
  The "Corresponding Application Code" for a Combined Work means the
 | 
			
		||||
object code and/or source code for the Application, including any data
 | 
			
		||||
and utility programs needed for reproducing the Combined Work from the
 | 
			
		||||
Application, but excluding the System Libraries of the Combined Work.
 | 
			
		||||
 | 
			
		||||
  1. Exception to Section 3 of the GNU GPL.
 | 
			
		||||
 | 
			
		||||
  You may convey a covered work under sections 3 and 4 of this License
 | 
			
		||||
without being bound by section 3 of the GNU GPL.
 | 
			
		||||
 | 
			
		||||
  2. Conveying Modified Versions.
 | 
			
		||||
 | 
			
		||||
  If you modify a copy of the Library, and, in your modifications, a
 | 
			
		||||
facility refers to a function or data to be supplied by an Application
 | 
			
		||||
that uses the facility (other than as an argument passed when the
 | 
			
		||||
facility is invoked), then you may convey a copy of the modified
 | 
			
		||||
version:
 | 
			
		||||
 | 
			
		||||
   a) under this License, provided that you make a good faith effort to
 | 
			
		||||
   ensure that, in the event an Application does not supply the
 | 
			
		||||
   function or data, the facility still operates, and performs
 | 
			
		||||
   whatever part of its purpose remains meaningful, or
 | 
			
		||||
 | 
			
		||||
   b) under the GNU GPL, with none of the additional permissions of
 | 
			
		||||
   this License applicable to that copy.
 | 
			
		||||
 | 
			
		||||
  3. Object Code Incorporating Material from Library Header Files.
 | 
			
		||||
 | 
			
		||||
  The object code form of an Application may incorporate material from
 | 
			
		||||
a header file that is part of the Library.  You may convey such object
 | 
			
		||||
code under terms of your choice, provided that, if the incorporated
 | 
			
		||||
material is not limited to numerical parameters, data structure
 | 
			
		||||
layouts and accessors, or small macros, inline functions and templates
 | 
			
		||||
(ten or fewer lines in length), you do both of the following:
 | 
			
		||||
 | 
			
		||||
   a) Give prominent notice with each copy of the object code that the
 | 
			
		||||
   Library is used in it and that the Library and its use are
 | 
			
		||||
   covered by this License.
 | 
			
		||||
 | 
			
		||||
   b) Accompany the object code with a copy of the GNU GPL and this license
 | 
			
		||||
   document.
 | 
			
		||||
 | 
			
		||||
  4. Combined Works.
 | 
			
		||||
 | 
			
		||||
  You may convey a Combined Work under terms of your choice that,
 | 
			
		||||
taken together, effectively do not restrict modification of the
 | 
			
		||||
portions of the Library contained in the Combined Work and reverse
 | 
			
		||||
engineering for debugging such modifications, if you also do each of
 | 
			
		||||
the following:
 | 
			
		||||
 | 
			
		||||
   a) Give prominent notice with each copy of the Combined Work that
 | 
			
		||||
   the Library is used in it and that the Library and its use are
 | 
			
		||||
   covered by this License.
 | 
			
		||||
 | 
			
		||||
   b) Accompany the Combined Work with a copy of the GNU GPL and this license
 | 
			
		||||
   document.
 | 
			
		||||
 | 
			
		||||
   c) For a Combined Work that displays copyright notices during
 | 
			
		||||
   execution, include the copyright notice for the Library among
 | 
			
		||||
   these notices, as well as a reference directing the user to the
 | 
			
		||||
   copies of the GNU GPL and this license document.
 | 
			
		||||
 | 
			
		||||
   d) Do one of the following:
 | 
			
		||||
 | 
			
		||||
       0) Convey the Minimal Corresponding Source under the terms of this
 | 
			
		||||
       License, and the Corresponding Application Code in a form
 | 
			
		||||
       suitable for, and under terms that permit, the user to
 | 
			
		||||
       recombine or relink the Application with a modified version of
 | 
			
		||||
       the Linked Version to produce a modified Combined Work, in the
 | 
			
		||||
       manner specified by section 6 of the GNU GPL for conveying
 | 
			
		||||
       Corresponding Source.
 | 
			
		||||
 | 
			
		||||
       1) Use a suitable shared library mechanism for linking with the
 | 
			
		||||
       Library.  A suitable mechanism is one that (a) uses at run time
 | 
			
		||||
       a copy of the Library already present on the user's computer
 | 
			
		||||
       system, and (b) will operate properly with a modified version
 | 
			
		||||
       of the Library that is interface-compatible with the Linked
 | 
			
		||||
       Version.
 | 
			
		||||
 | 
			
		||||
   e) Provide Installation Information, but only if you would otherwise
 | 
			
		||||
   be required to provide such information under section 6 of the
 | 
			
		||||
   GNU GPL, and only to the extent that such information is
 | 
			
		||||
   necessary to install and execute a modified version of the
 | 
			
		||||
   Combined Work produced by recombining or relinking the
 | 
			
		||||
   Application with a modified version of the Linked Version. (If
 | 
			
		||||
   you use option 4d0, the Installation Information must accompany
 | 
			
		||||
   the Minimal Corresponding Source and Corresponding Application
 | 
			
		||||
   Code. If you use option 4d1, you must provide the Installation
 | 
			
		||||
   Information in the manner specified by section 6 of the GNU GPL
 | 
			
		||||
   for conveying Corresponding Source.)
 | 
			
		||||
 | 
			
		||||
  5. Combined Libraries.
 | 
			
		||||
 | 
			
		||||
  You may place library facilities that are a work based on the
 | 
			
		||||
Library side by side in a single library together with other library
 | 
			
		||||
facilities that are not Applications and are not covered by this
 | 
			
		||||
License, and convey such a combined library under terms of your
 | 
			
		||||
choice, if you do both of the following:
 | 
			
		||||
 | 
			
		||||
   a) Accompany the combined library with a copy of the same work based
 | 
			
		||||
   on the Library, uncombined with any other library facilities,
 | 
			
		||||
   conveyed under the terms of this License.
 | 
			
		||||
 | 
			
		||||
   b) Give prominent notice with the combined library that part of it
 | 
			
		||||
   is a work based on the Library, and explaining where to find the
 | 
			
		||||
   accompanying uncombined form of the same work.
 | 
			
		||||
 | 
			
		||||
  6. Revised Versions of the GNU Lesser General Public License.
 | 
			
		||||
 | 
			
		||||
  The Free Software Foundation may publish revised and/or new versions
 | 
			
		||||
of the GNU Lesser General Public License from time to time. Such new
 | 
			
		||||
versions will be similar in spirit to the present version, but may
 | 
			
		||||
differ in detail to address new problems or concerns.
 | 
			
		||||
 | 
			
		||||
  Each version is given a distinguishing version number. If the
 | 
			
		||||
Library as you received it specifies that a certain numbered version
 | 
			
		||||
of the GNU Lesser General Public License "or any later version"
 | 
			
		||||
applies to it, you have the option of following the terms and
 | 
			
		||||
conditions either of that published version or of any later version
 | 
			
		||||
published by the Free Software Foundation. If the Library as you
 | 
			
		||||
received it does not specify a version number of the GNU Lesser
 | 
			
		||||
General Public License, you may choose any version of the GNU Lesser
 | 
			
		||||
General Public License ever published by the Free Software Foundation.
 | 
			
		||||
 | 
			
		||||
  If the Library as you received it specifies that a proxy can decide
 | 
			
		||||
whether future versions of the GNU Lesser General Public License shall
 | 
			
		||||
apply, that proxy's public statement of acceptance of any version is
 | 
			
		||||
permanent authorization for you to choose that version for the
 | 
			
		||||
Library.
 | 
			
		||||
							
								
								
									
										36
									
								
								lib/arduino-ediptft-master/README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								lib/arduino-ediptft-master/README
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,36 @@
 | 
			
		||||
------------------------------------------------------------------------------
 | 
			
		||||
Library for controlling Electronic Assembly eDIPTFT displays
 | 
			
		||||
 | 
			
		||||
     Copyright (c) 2013 Stefan Gofferje. All rights reserved.
 | 
			
		||||
 | 
			
		||||
     This library is free software; you can redistribute it and/or
 | 
			
		||||
     modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
     License as published by the Free Software Foundation; either
 | 
			
		||||
     version 3 of the License, or (at your option) any later
 | 
			
		||||
     version.
 | 
			
		||||
 | 
			
		||||
     This library is distributed in the hope that it will be
 | 
			
		||||
     useful, but WITHOUT ANY WARRANTY; without even the implied
 | 
			
		||||
     warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 | 
			
		||||
     PURPOSE.  See the GNU Lesser General Public License for more
 | 
			
		||||
     details.
 | 
			
		||||
 | 
			
		||||
     You should have received a copy of the GNU Lesser General
 | 
			
		||||
     Public License along with this library; if not, write to the
 | 
			
		||||
     Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 | 
			
		||||
     Boston, MA 02110-1301 USA
 | 
			
		||||
------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
There isn't much documentation yet. I have started to write the functions on
 | 
			
		||||
25JAN2013 and converted them into a library on 01FEB2013. I'm mainly
 | 
			
		||||
developing this library inside another projects, so functions are added as
 | 
			
		||||
they are needed in that other project. Once the other project is ready, I
 | 
			
		||||
might complete this library.
 | 
			
		||||
 | 
			
		||||
Documentation on the eDIPTFT series is available from
 | 
			
		||||
 | 
			
		||||
  http://www.lcd-module.com/
 | 
			
		||||
 | 
			
		||||
CAVEAT: When using Smallprotocol to communicate with the display (highly
 | 
			
		||||
recommended!) via RS232, the display MUST be selected by with a select
 | 
			
		||||
command, otherwise it will ignore ANY communication!
 | 
			
		||||
							
								
								
									
										55
									
								
								lib/arduino-ediptft-master/Readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								lib/arduino-ediptft-master/Readme.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
			
		||||
 | 
			
		||||
A library for controlling Electronic Assembly eDIPTFT displays.
 | 
			
		||||
 | 
			
		||||
* copyright (c) 2015 by Stefan Lehmann
 | 
			
		||||
* licensed under the GNU Lesser General Public Licens (LGPL)
 | 
			
		||||
 | 
			
		||||
This is a fork of the [ediptft library][edip1] written by *Stefan Gofferje*.
 | 
			
		||||
As its original it is licensed under the GNU Lesser General Public License
 | 
			
		||||
(LGPL). See the original copyright note at the bottom of this file.
 | 
			
		||||
 | 
			
		||||
## Features
 | 
			
		||||
 | 
			
		||||
* draw text, lines, rectangles
 | 
			
		||||
* define touch areas
 | 
			
		||||
* define radio touch groups
 | 
			
		||||
* define menus
 | 
			
		||||
* call macros, touch macros and menu macros
 | 
			
		||||
* draw bargraphs and define them as touch areas
 | 
			
		||||
 | 
			
		||||
## Usage
 | 
			
		||||
 | 
			
		||||
    #include <ediptft.h>
 | 
			
		||||
 | 
			
		||||
    EDIPTFT tft = EDIPTFT();
 | 
			
		||||
 | 
			
		||||
    void main() {
 | 
			
		||||
        tft.begin(115200);  // start display communication
 | 
			
		||||
        tft.clear();  // clear display
 | 
			
		||||
        tft.setTextFont(EA_GENEVA10);  // set a text font
 | 
			
		||||
        tft.drawText(100, 30, 'C', "Hello World");  // draw some text
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Original copyright note
 | 
			
		||||
 | 
			
		||||
    Copyright (c) 2013 Stefan Gofferje. All rights reserved.
 | 
			
		||||
 | 
			
		||||
    This library is free software; you can redistribute it and/or
 | 
			
		||||
    modify it under the terms of the GNU Lesser General Public
 | 
			
		||||
    License as published by the Free Software Foundation; either
 | 
			
		||||
    version 3 of the License, or (at your option) any later
 | 
			
		||||
    version.
 | 
			
		||||
 | 
			
		||||
    This library is distributed in the hope that it will be
 | 
			
		||||
    useful, but WITHOUT ANY WARRANTY; without even the implied
 | 
			
		||||
    warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 | 
			
		||||
    PURPOSE.  See the GNU Lesser General Public License for more
 | 
			
		||||
    details.
 | 
			
		||||
 | 
			
		||||
    You should have received a copy of the GNU Lesser General
 | 
			
		||||
    Public License along with this library; if not, write to the
 | 
			
		||||
    Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 | 
			
		||||
    Boston, MA 02110-1301 USA
 | 
			
		||||
 | 
			
		||||
[edip1]:https://github.com/sgofferj/EDIPTFT
 | 
			
		||||
							
								
								
									
										31
									
								
								lib/arduino-ediptft-master/keywords.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								lib/arduino-ediptft-master/keywords.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
EDIPTFT			    KEYWORD1
 | 
			
		||||
ESC                 KEYWORD1
 | 
			
		||||
ACK                 KEYWORD1
 | 
			
		||||
NAK                 KEYWORD1
 | 
			
		||||
sendData            KEYWORD2
 | 
			
		||||
clear	            KEYWORD2
 | 
			
		||||
invert              KEYWORD2
 | 
			
		||||
setDisplayColor     KEYWORD2
 | 
			
		||||
fillDisplayColor	KEYWORD2
 | 
			
		||||
terminalOn		    KEYWORD2
 | 
			
		||||
cursorOn		    KEYWORD2
 | 
			
		||||
setCursor		    KEYWORD2
 | 
			
		||||
defineBargraph		KEYWORD2
 | 
			
		||||
updateBargraph		KEYWORD2
 | 
			
		||||
setBargraphColor	KEYWORD2
 | 
			
		||||
makeBargraphTouch	KEYWORD2
 | 
			
		||||
linkBargraphLight	KEYWORD2
 | 
			
		||||
deleteBargraph		KEYWORD2
 | 
			
		||||
setTextColor		KEYWORD2
 | 
			
		||||
setTextFont		    KEYWORD2
 | 
			
		||||
setTextAngle		KEYWORD2
 | 
			
		||||
drawText		    KEYWORD2
 | 
			
		||||
setLineColor		KEYWORD2
 | 
			
		||||
drawLine		    KEYWORD2
 | 
			
		||||
drawRect		    KEYWORD2
 | 
			
		||||
drawRectf		    KEYWORD2
 | 
			
		||||
defineTouchKey		KEYWORD2
 | 
			
		||||
setTouchkeyColors	KEYWORD2
 | 
			
		||||
setTouchkeyFont		KEYWORD2
 | 
			
		||||
setTouchkeyLabelColors	KEYWORD2
 | 
			
		||||
removeTouchArea		KEYWORD2
 | 
			
		||||
		Reference in New Issue
	
	Block a user