Configtool: add display page implementation.

Most work by Ruslan Popov, collected from various commits and
made compatible with regression tests by Traumflug.

Display test code is now enabled by #defining DISPLAY_BUS to
i2c_twi.
This commit is contained in:
Ruslan Popov 2015-09-23 15:59:35 +03:00 committed by Markus Hitter
parent 071cb9067b
commit 212eca7f8e
25 changed files with 912 additions and 1 deletions

View File

@ -275,3 +275,41 @@ DEFINE_HEATER(fan, DIO8, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -271,3 +271,41 @@ DEFINE_HEATER(extruder, AIO2, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -263,3 +263,41 @@ DEFINE_TEMP_SENSOR(noheater, TT_INTERCOM, AIO0, 0)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -266,3 +266,41 @@ DEFINE_HEATER(extruder, DIO6, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -281,3 +281,41 @@ DEFINE_HEATER(bed, PIO1_9, 1, 10)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -277,3 +277,41 @@ DEFINE_HEATER(bed, DIO3, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -278,3 +278,41 @@ DEFINE_HEATER(bed, DIO3, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -279,3 +279,41 @@ DEFINE_HEATER(fan, DIO4, 0, 0)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -275,3 +275,41 @@ DEFINE_HEATER(bed, DIO3, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS i2c_twi
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -276,3 +276,41 @@ DEFINE_HEATER(fan, DIO9, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -279,3 +279,41 @@ DEFINE_HEATER(fan, DIO9, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -279,3 +279,41 @@ DEFINE_HEATER(fan, DIO8, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -275,3 +275,41 @@ DEFINE_HEATER(bed, DIO14, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -275,3 +275,41 @@ DEFINE_HEATER(bed, DIO13, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -275,3 +275,41 @@ DEFINE_HEATER(bed, DIO4, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -278,3 +278,41 @@ DEFINE_HEATER(fan, DIO5, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -275,3 +275,41 @@ DEFINE_HEATER(fan, DIO16, 0, 0)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
#define USB_SERIAL #define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -275,3 +275,41 @@ DEFINE_HEATER(fan, DIO8, 0, 0)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
#define USB_SERIAL #define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -277,3 +277,41 @@ DEFINE_HEATER(fan, DIO4, 0, 1)
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
//#define USB_SERIAL //#define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -1,4 +1,14 @@
/**
Display bus stuff. This likely goes away soon or gets at least moved
elsewhere.
*/
#define disabled 0
#define direct_4bit 1
#define direct_8bit 2
#define i2c_twi 3
#define spi 4
/** /**
Some stuff common to all config.h files. Put it here to allow files like Some stuff common to all config.h files. Put it here to allow files like
board.*.config.h or printer.*.h to be moved to about everywhere in the board.*.config.h or printer.*.h to be moved to about everywhere in the
@ -42,6 +52,13 @@
#define SPI #define SPI
#endif #endif
/**
Check wether we need I2C.
*/
#if DISPLAY_BUS == i2c_twi
#define I2C
#endif
/** /**
ACCELERATION_TEMPORAL doesn't support lookahead, yet. ACCELERATION_TEMPORAL doesn't support lookahead, yet.
*/ */

View File

@ -263,3 +263,41 @@
USB-equipped ATmegas, like the ATmega32U4, only. USB-equipped ATmegas, like the ATmega32U4, only.
*/ */
#define USB_SERIAL #define USB_SERIAL
/***************************************************************************\
* *
* 6. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306

View File

@ -11,11 +11,13 @@ from configtool.data import (defineValueFormat,
reStartSensors, reEndSensors, reStartHeaters, reStartSensors, reEndSensors, reStartHeaters,
reEndHeaters, reCandHeatPins, reCandThermPins, reEndHeaters, reCandHeatPins, reCandThermPins,
reCandProcessors, reCandCPUClocks, reFloatAttr, reCandProcessors, reCandCPUClocks, reFloatAttr,
reCandDisplayBuses, reCandDisplayTypes,
reDefine, reDefineBL, reDefQS, reDefQSm, reDefine, reDefineBL, reDefQS, reDefQSm,
reDefQSm2, reDefBool, reDefBoolBL, reDefHT, reDefQSm2, reDefBool, reDefBoolBL, reDefHT,
reDefTS, reDefTT, reSensor, reHeater3, reHeater4, reDefTS, reDefTT, reSensor, reHeater3, reHeater4,
reTempTable4, reTempTable7) reTempTable4, reTempTable7)
from configtool.pinoutspage import PinoutsPage from configtool.pinoutspage import PinoutsPage
from configtool.displaypage import DisplayPage
from configtool.sensorpage import SensorsPage from configtool.sensorpage import SensorsPage
from configtool.heaterspage import HeatersPage from configtool.heaterspage import HeatersPage
from configtool.communicationspage import CommunicationsPage from configtool.communicationspage import CommunicationsPage
@ -58,6 +60,7 @@ class BoardPanel(wx.Panel):
self.pgCpu = self.registerPage(CpuPage, "CPU") self.pgCpu = self.registerPage(CpuPage, "CPU")
self.pgPins = self.registerPage(PinoutsPage, "Pinouts") self.pgPins = self.registerPage(PinoutsPage, "Pinouts")
self.pgDisplay = self.registerPage(DisplayPage, "Display")
self.pgHeaters = self.registerPage(HeatersPage, "Heaters") self.pgHeaters = self.registerPage(HeatersPage, "Heaters")
self.pgSensors = self.registerPage(SensorsPage, "Temperature Sensors", self.pgSensors = self.registerPage(SensorsPage, "Temperature Sensors",
heatersPage = self.pgHeaters) heatersPage = self.pgHeaters)
@ -215,6 +218,8 @@ class BoardPanel(wx.Panel):
self.candThermPins = [] self.candThermPins = []
self.candProcessors = [] self.candProcessors = []
self.candClocks = [] self.candClocks = []
self.candDisplayBuses = []
self.candDisplayTypes = []
self.tempTables = {} self.tempTables = {}
gatheringHelpText = False gatheringHelpText = False
helpTextString = "" helpTextString = ""
@ -273,6 +278,8 @@ class BoardPanel(wx.Panel):
self.candThermPins = [] self.candThermPins = []
self.candProcessors = [] self.candProcessors = []
self.candClocks = [] self.candClocks = []
self.candDisplayBuses = []
self.candDisplayTypes = []
self.tempTables = {} self.tempTables = {}
gatheringHelpText = False gatheringHelpText = False
@ -338,6 +345,8 @@ class BoardPanel(wx.Panel):
self.pgSensors.setCandidatePins(self.candThermPins) self.pgSensors.setCandidatePins(self.candThermPins)
self.pgCpu.setCandidateProcessors(self.candProcessors) self.pgCpu.setCandidateProcessors(self.candProcessors)
self.pgCpu.setCandidateClocks(self.candClocks) self.pgCpu.setCandidateClocks(self.candClocks)
self.pgDisplay.setCandidateDisplayBuses(self.candDisplayBuses)
self.pgDisplay.setCandidateDisplayTypes(self.candDisplayTypes)
for pg in self.pages: for pg in self.pages:
pg.insertValues(self.cfgValues) pg.insertValues(self.cfgValues)
@ -422,6 +431,20 @@ class BoardPanel(wx.Panel):
self.candClocks.append(t[0]) self.candClocks.append(t[0])
return True return True
m = reCandDisplayBuses.match(ln)
if m:
t = m.groups()
if len(t) == 1:
self.candDisplayBuses.append(t[0])
return True
m = reCandDisplayTypes.match(ln)
if m:
t = m.groups()
if len(t) == 1:
self.candDisplayTypes.append(t[0])
return True
m = reDefTT.match(ln) m = reDefTT.match(ln)
if m: if m:
t = m.groups() t = m.groups()
@ -545,6 +568,8 @@ class BoardPanel(wx.Panel):
candHeatPinsWritten = False candHeatPinsWritten = False
candProcessorsWritten = False candProcessorsWritten = False
candCPUClocksWritten = False candCPUClocksWritten = False
candDisplayBusesWritten = False
candDisplayTypesWritten = False
for ln in self.cfgBuffer: for ln in self.cfgBuffer:
m = reStartSensors.match(ln) m = reStartSensors.match(ln)
@ -633,6 +658,20 @@ class BoardPanel(wx.Panel):
candCPUClocksWritten = True candCPUClocksWritten = True
continue continue
if reCandDisplayBuses.match(ln):
if not candDisplayBusesWritten:
for value in self.candDisplayBuses:
fp.write("//#define DISPLAY_BUS_OPT {}\n".format(value))
candDisplayBusesWritten = True
continue
if reCandDisplayTypes.match(ln):
if not candDisplayTypesWritten:
for value in self.candDisplayTypes:
fp.write("//#define DISPLAY_TYPE_OPT {}\n".format(value))
candDisplayTypesWritten = True
continue
m = reDefine.match(ln) m = reDefine.match(ln)
if m: if m:
t = m.groups() t = m.groups()

View File

@ -51,6 +51,8 @@ reCandHeatPins = re.compile("^\s*//\s*#define\s+HEATER_PIN\s+(\w+)")
reCandThermPins = re.compile("^\s*//\s*#define\s+TEMP_SENSOR_PIN\s+(\w+)") reCandThermPins = re.compile("^\s*//\s*#define\s+TEMP_SENSOR_PIN\s+(\w+)")
reCandProcessors = re.compile("^\s*//\s*#define\s+CPU_TYPE\s+(\w+)") reCandProcessors = re.compile("^\s*//\s*#define\s+CPU_TYPE\s+(\w+)")
reCandCPUClocks = re.compile("^\s*//\s*#define\s+F_CPU_OPT\s+(\w+)") reCandCPUClocks = re.compile("^\s*//\s*#define\s+F_CPU_OPT\s+(\w+)")
reCandDisplayBuses = re.compile("^\s*//\s*#define\s+DISPLAY_BUS_OPT\s+(\w+)")
reCandDisplayTypes = re.compile("^\s*//\s*#define\s+DISPLAY_TYPE_OPT\s+(\w+)")
reHelpTextStart = re.compile("^\s*/\*\*\s+\\\\def\s+(.*)") reHelpTextStart = re.compile("^\s*/\*\*\s+\\\\def\s+(.*)")
reHelpTextEnd = re.compile("^\s*\*/") reHelpTextEnd = re.compile("^\s*\*/")

53
configtool/displaypage.py Normal file
View File

@ -0,0 +1,53 @@
import wx
from configtool.page import Page
class DisplayPage(wx.Panel, Page):
def __init__(self, parent, nb, idPg, font):
wx.Panel.__init__(self, nb, wx.ID_ANY)
Page.__init__(self, font)
self.parent = parent
self.id = idPg
self.labels = {'DISPLAY_BUS': "Display Bus:",
'DISPLAY_TYPE': "Display Type:"}
self.buses = []
self.types = []
sz = wx.GridBagSizer()
sz.AddSpacer((20, 40), pos = (0, 0))
k = 'DISPLAY_BUS'
ch = self.addChoice(k, self.buses, 0, 100, self.onChoice, size = (140, -1))
sz.Add(ch, pos = (1, 1))
sz.AddSpacer((100, 10), pos = (1, 2))
k = 'DISPLAY_TYPE'
ch = self.addChoice(k, self.types, 0, 100, self.onChoice,
size = (140, -1))
sz.Add(ch, pos = (1, 3))
self.SetSizer(sz)
self.enableAll(False)
def setCandidateDisplayBuses(self, busList):
k = 'DISPLAY_BUS'
self.choices[k].Clear()
for p in busList:
self.choices[k].Append(p)
self.buses = busList
def setCandidateDisplayTypes(self, typeList):
k = 'DISPLAY_TYPE'
self.choices[k].Clear()
for c in typeList:
self.choices[k].Append(c)
self.types = typeList
def insertValues(self, cfgValues):
Page.insertValues(self, cfgValues)
if len(self.buses) > 0:
self.setChoice('DISPLAY_BUS', cfgValues, self.buses[0])
if len(self.types) > 0:
self.setChoice('DISPLAY_TYPE', cfgValues, self.types[0])

View File

@ -666,9 +666,49 @@ PWM value for 'off'
*/ */
/***************************************************************************\ /***************************************************************************\
* * * *
* 8. APPENDIX A - PWMABLE PINS AND MAPPINGS * * 8. DISPLAY SUPPORT *
* *
\***************************************************************************/
/** \def DISPLAY_BUS_OPT
Display buses a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_BUS_OPT disabled
//#define DISPLAY_BUS_OPT direct_4bit
//#define DISPLAY_BUS_OPT direct_8bit
//#define DISPLAY_BUS_OPT i2c_twi
//#define DISPLAY_BUS_OPT spi
/** \def DISPLAY_BUS
The display bus in use. 'disabled' if there is no display.
*/
#define DISPLAY_BUS disabled
/** \def DISPLAY_TYPE_OPT
Display types a user should be able to choose from in Configtool. All
commented out.
*/
//#define DISPLAY_TYPE_OPT ssd1306
//#define DISPLAY_TYPE_OPT lcd1602
/** \def DISPLAY_TYPE
The type of display in use.
*/
#define DISPLAY_TYPE ssd1306
/***************************************************************************\
* *
* 9. APPENDIX A - PWMABLE PINS AND MAPPINGS *
* * * *
* * * *
* list of PWM-able pins and corresponding timers * * list of PWM-able pins and corresponding timers *