Add first rudimentary support for Anycubic Touchscreen usind serial interface.
This commit is contained in:
1473
Marlin/src/lcd/anycubic_touchscreen.cpp
Executable file
1473
Marlin/src/lcd/anycubic_touchscreen.cpp
Executable file
File diff suppressed because it is too large
Load Diff
130
Marlin/src/lcd/anycubic_touchscreen.h
Executable file
130
Marlin/src/lcd/anycubic_touchscreen.h
Executable file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
AnycubicTouchscreen.h --- Support for Anycubic i3 Mega TFT
|
||||
Created by Christian Hopp on 2017-12-09
|
||||
Modiefied by Oliver Köster on 2020-06-02
|
||||
|
||||
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 anycubic_touchscreen_h
|
||||
#define anycubic_touchscreen_h
|
||||
|
||||
#include <stdio.h>
|
||||
#include "../inc/MarlinConfig.h"
|
||||
|
||||
char *itostr2(const uint8_t &x);
|
||||
|
||||
#ifndef ULTRA_LCD
|
||||
char *itostr3(const int);
|
||||
char *ftostr32(const float &);
|
||||
#endif
|
||||
|
||||
#define TFTBUFSIZE 4
|
||||
#define TFT_MAX_CMD_SIZE 96
|
||||
#define MSG_MY_VERSION "V116"
|
||||
|
||||
#define ANYCUBIC_TFT_STATE_IDLE 0
|
||||
#define ANYCUBIC_TFT_STATE_SDPRINT 1
|
||||
#define ANYCUBIC_TFT_STATE_SDPAUSE 2
|
||||
#define ANYCUBIC_TFT_STATE_SDPAUSE_REQ 3
|
||||
#define ANYCUBIC_TFT_STATE_SDPAUSE_OOF 4
|
||||
#define ANYCUBIC_TFT_STATE_SDSTOP_REQ 5
|
||||
#define ANYCUBIC_TFT_STATE_SDOUTAGE 99
|
||||
|
||||
class AnycubicTouchscreenClass
|
||||
{
|
||||
public:
|
||||
AnycubicTouchscreenClass();
|
||||
void Setup();
|
||||
void CommandScan();
|
||||
void BedHeatingStart();
|
||||
void BedHeatingDone();
|
||||
void HeatingDone();
|
||||
void HeatingStart();
|
||||
void FilamentRunout();
|
||||
void KillTFT();
|
||||
char TFTstate = ANYCUBIC_TFT_STATE_IDLE;
|
||||
|
||||
/**
|
||||
* Anycubic TFT pause states:
|
||||
*
|
||||
* 0 - printing / stopped
|
||||
* 1 - regular pause
|
||||
* 2 - M600 pause
|
||||
* 3 - filament runout pause
|
||||
* 4 - nozzle timeout on M600
|
||||
* 5 - nozzle timeout on filament runout
|
||||
*/
|
||||
uint8_t ai3m_pause_state = 0;
|
||||
|
||||
private:
|
||||
char TFTcmdbuffer[TFTBUFSIZE][TFT_MAX_CMD_SIZE];
|
||||
int TFTbuflen = 0;
|
||||
int TFTbufindr = 0;
|
||||
int TFTbufindw = 0;
|
||||
char serial3_char;
|
||||
int serial3_count = 0;
|
||||
char *TFTstrchr_pointer;
|
||||
char FlagResumFromOutage = 0;
|
||||
uint16_t filenumber = 0;
|
||||
unsigned long starttime = 0;
|
||||
unsigned long stoptime = 0;
|
||||
uint8_t tmp_extruder = 0;
|
||||
char LastSDstatus = 0;
|
||||
uint16_t HeaterCheckCount = 0;
|
||||
bool IsParked = false;
|
||||
|
||||
struct OutageDataStruct
|
||||
{
|
||||
char OutageDataVersion;
|
||||
char OutageFlag;
|
||||
float last_position[XYZE];
|
||||
float last_bed_temp;
|
||||
float last_hotend_temp;
|
||||
long lastSDposition;
|
||||
} OutageData;
|
||||
|
||||
void WriteOutageEEPromData();
|
||||
void ReadOutageEEPromData();
|
||||
|
||||
float CodeValue();
|
||||
bool CodeSeen(char);
|
||||
void Ls();
|
||||
void StartPrint();
|
||||
void PausePrint();
|
||||
void StopPrint();
|
||||
void StateHandler();
|
||||
void GetCommandFromTFT();
|
||||
void CheckSDCardChange();
|
||||
void CheckHeaterError();
|
||||
void HandleSpecialMenu();
|
||||
void FilamentChangePause();
|
||||
void FilamentChangeResume();
|
||||
void ReheatNozzle();
|
||||
void ParkAfterStop();
|
||||
|
||||
char SelectedDirectory[30];
|
||||
uint8_t SpecialMenu = false;
|
||||
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
char FilamentTestStatus = false;
|
||||
char FilamentTestLastStatus = false;
|
||||
bool FilamentSetMillis = true;
|
||||
#endif
|
||||
};
|
||||
|
||||
extern AnycubicTouchscreenClass AnycubicTouchscreen;
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user