🧑‍💻 IA RTS refactor

This commit is contained in:
Scott Lahteine
2023-05-02 18:26:06 -05:00
parent 18e63ad880
commit 5201869a55
4 changed files with 2195 additions and 2203 deletions

View File

@ -95,23 +95,23 @@ void FileNavigator::getFiles(uint16_t index) {
// Clear currently drawn screen // Clear currently drawn screen
for (int i = 0; i < DISPLAY_FILES; i++) { for (int i = 0; i < DISPLAY_FILES; i++) {
for (int j = 0; j < 20; j++) for (int j = 0; j < 20; j++)
rtscheck.RTS_SndData(0, SDFILE_ADDR + (i * 20) + j); rts.sendData(0, SDFILE_ADDR + (i * 20) + j);
} }
for (int j = 0; j < 10; j++) { for (int j = 0; j < 10; j++) {
rtscheck.RTS_SndData(0, Printfilename + j); // clear screen. rts.sendData(0, Printfilename + j); // clear screen.
rtscheck.RTS_SndData(0, Choosefilename + j); // clear filename rts.sendData(0, Choosefilename + j); // clear filename
} }
for (int j = 0; j < 8; j++) for (int j = 0; j < 8; j++)
rtscheck.RTS_SndData(0, FilenameCount + j); rts.sendData(0, FilenameCount + j);
for (int j = 1; j <= DISPLAY_FILES; j++) { for (int j = 1; j <= DISPLAY_FILES; j++) {
rtscheck.RTS_SndData(10, FilenameIcon + j); rts.sendData(10, FilenameIcon + j);
rtscheck.RTS_SndData(10, FilenameIcon1 + j); rts.sendData(10, FilenameIcon1 + j);
} }
if (currentindex == 0 && folderdepth > 0) { // Add a link to go up a folder if (currentindex == 0 && folderdepth > 0) { // Add a link to go up a folder
files--; files--;
rtscheck.RTS_SndData("Up Directory", SDFILE_ADDR); rts.sendData("Up Directory", SDFILE_ADDR);
fcnt++; fcnt++;
} }
else if (currentindex == DISPLAY_FILES && folderdepth > 0) else if (currentindex == DISPLAY_FILES && folderdepth > 0)
@ -123,18 +123,18 @@ void FileNavigator::getFiles(uint16_t index) {
if (filelen > 20) { if (filelen > 20) {
char *buf = (char *)filelist.filename(); char *buf = (char *)filelist.filename();
buf[18] = '\0'; // cutoff at screen edge buf[18] = '\0'; // cutoff at screen edge
rtscheck.RTS_SndData(buf, (SDFILE_ADDR + (fcnt * 20))); rts.sendData(buf, (SDFILE_ADDR + (fcnt * 20)));
} }
else else
rtscheck.RTS_SndData(filelist.filename(), (SDFILE_ADDR + (fcnt * 20))); rts.sendData(filelist.filename(), (SDFILE_ADDR + (fcnt * 20)));
if (filelist.isDir()) { if (filelist.isDir()) {
rtscheck.RTS_SndData((uint8_t)4, FilenameIcon + (fcnt+1)); rts.sendData((uint8_t)4, FilenameIcon + (fcnt+1));
rtscheck.RTS_SndData((unsigned long)0x041F, (FilenameNature + ((1+fcnt) * 16))); // Change BG of selected line to Blue rts.sendData((unsigned long)0x041F, (FilenameNature + ((1+fcnt) * 16))); // Change BG of selected line to Blue
} }
else { else {
rtscheck.RTS_SndData((uint8_t)0, FilenameIcon + (fcnt+1)); rts.sendData((uint8_t)0, FilenameIcon + (fcnt+1));
rtscheck.RTS_SndData((unsigned long)0xFFFF, (FilenameNature + ((1+fcnt) * 16))); // white rts.sendData((unsigned long)0xFFFF, (FilenameNature + ((1+fcnt) * 16))); // white
} }
SERIAL_ECHOLNPGM("-", seek, " '", filelist.filename(), "' '", currentfoldername, "", filelist.shortFilename(), "'\n"); SERIAL_ECHOLNPGM("-", seek, " '", filelist.filename(), "' '", currentfoldername, "", filelist.shortFilename(), "'\n");
fcnt++; fcnt++;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -47,7 +47,7 @@
#define FileNum MaxFileNumber #define FileNum MaxFileNumber
#define FileNameLen TEXTBYTELEN #define FileNameLen TEXTBYTELEN
#define SizeofDatabuf 46 #define DATA_BUF_SIZE 46
//#define FONT_EEPROM 90 //#define FONT_EEPROM 90
//#define AutoLeve_EEPROM 100 //#define AutoLeve_EEPROM 100
@ -177,122 +177,114 @@
#define StatusMessageString 0x2064 #define StatusMessageString 0x2064
// TODO: Use LCD_SERIAL 1 or 3 (?) by configuration, not overriding here
#ifdef TARGET_STM32F4 #ifdef TARGET_STM32F4
#define DWIN_SERIAL Serial1 #define DWIN_SERIAL Serial1
#else #else
#define DWIN_SERIAL LCD_SERIAL #define DWIN_SERIAL LCD_SERIAL
#endif #endif
namespace ExtUI { /************struct**************/
/************struct**************/ typedef enum : uint8_t {
DGUS_IDLE, //< waiting for DGUS_HEADER1.
DGUS_HEADER1_SEEN, //< DGUS_HEADER1 received
DGUS_HEADER2_SEEN, //< DGUS_HEADER2 received
DGUS_WAIT_TELEGRAM, //< LEN received, Waiting for to receive all bytes.
} rx_datagram_state_t;
typedef enum : uint8_t { typedef struct DataBuf {
DGUS_IDLE, //< waiting for DGUS_HEADER1. uint8_t len;
DGUS_HEADER1_SEEN, //< DGUS_HEADER1 received uint8_t head[2];
DGUS_HEADER2_SEEN, //< DGUS_HEADER2 received uint8_t command;
DGUS_WAIT_TELEGRAM, //< LEN received, Waiting for to receive all bytes. uint32_t addr;
} rx_datagram_state_t; uint32_t bytelen;
uint16_t data[32];
uint8_t reserv[4];
} DB;
typedef struct DataBuf { struct creality_dwin_settings_t {
uint8_t len; size_t settings_size;
uint8_t head[2]; uint8_t settings_version;
uint8_t command;
uint32_t addr;
uint32_t bytelen;
uint16_t data[32];
uint8_t reserv[4];
} DB;
struct creality_dwin_settings_t { bool display_standby;
size_t settings_size; bool display_sound;
uint8_t settings_version; int8_t screen_rotation;
int16_t display_volume;
uint8_t standby_screen_brightness;
uint8_t screen_brightness;
int16_t standby_time_seconds;
};
bool display_standby; class RTS {
bool display_sound; public:
int8_t screen_rotation; RTS();
int16_t display_volume; static void onStartup();
uint8_t standby_screen_brightness; static void onIdle();
uint8_t screen_brightness; static int16_t receiveData();
int16_t standby_time_seconds; static void sendData();
}; static void sendData(const String&, const uint32_t, const uint8_t=VarAddr_W);
static void sendData(const char[], const uint32_t, const uint8_t=VarAddr_W);
static void sendData(char, const uint32_t, const uint8_t=VarAddr_W);
static void sendData(int, const uint32_t, const uint8_t=VarAddr_W);
static void sendData(unsigned long, const uint32_t, const uint8_t=VarAddr_W);
static void sendData(const_float_t, const uint32_t, const uint8_t=VarAddr_W);
void SetTouchScreenConfiguration(); static void sendData(uint8_t * const str, const uint32_t addr, const uint8_t cmd=VarAddr_W) { sendData((char *)str, addr, cmd); }
static void sendData(const unsigned int n, uint32_t addr, const uint8_t cmd=VarAddr_W) { sendData(int(n), addr, cmd); }
static void sendData(const long n, const uint32_t addr, const uint8_t cmd=VarAddr_W) { sendData((unsigned long)n, addr, cmd); }
class RTSSHOW { static void handleData();
public:
RTSSHOW();
int16_t RTS_RecData();
void RTS_SDCardInit();
void RTS_SDCardUpate(bool, bool);
int16_t RTS_CheckFilament(int16_t);
void RTS_SndData();
void RTS_SndData(const String&, const uint32_t, const uint8_t=VarAddr_W);
void RTS_SndData(const char[], const uint32_t, const uint8_t=VarAddr_W);
void RTS_SndData(char, const uint32_t, const uint8_t=VarAddr_W);
void RTS_SndData(int, const uint32_t, const uint8_t=VarAddr_W);
void RTS_SndData(unsigned long, const uint32_t, const uint8_t=VarAddr_W);
void RTS_SndData(const_float_t, const uint32_t, const uint8_t=VarAddr_W);
void RTS_SndData(uint8_t * const str, const uint32_t addr, const uint8_t cmd=VarAddr_W) { RTS_SndData((char *)str, addr, cmd); } static void writeVariable(const uint16_t adr, const void * const values, uint8_t valueslen, const bool isstr=false, const char fillChar=' ');
void RTS_SndData(const unsigned int n, uint32_t addr, const uint8_t cmd=VarAddr_W) { RTS_SndData(int(n), addr, cmd); } static void setTouchScreenConfiguration();
void RTS_SndData(const long n, const uint32_t addr, const uint8_t cmd=VarAddr_W) { RTS_SndData((unsigned long)n, addr, cmd); }
void RTS_SDcard_Stop(); static DB recdat, snddat;
void RTS_HandleData(); static uint8_t databuf[DATA_BUF_SIZE];
void RTS_Init();
DB recdat; static rx_datagram_state_t rx_datagram_state;
DB snddat; static uint8_t rx_datagram_len;
uint8_t databuf[SizeofDatabuf]; };
static rx_datagram_state_t rx_datagram_state; extern RTS rts;
static uint8_t rx_datagram_len;
static bool Initialized;
};
static RTSSHOW rtscheck; #define Addvalue 3
#define PrintChoice_Value (0 + Addvalue)
#define Zoffset_Value (3 + Addvalue)
#define Setting_Value (8 + Addvalue)
#define XYZEaxis_Value (12 + Addvalue)
#define Filament_Value (15 + Addvalue)
#define Language_Value (18 + Addvalue)
#define Filename_Value (22 + Addvalue)
#define Addvalue 3 enum PROC_COM {
#define PrintChoice_Value (0 + Addvalue) Printfile = 0,
#define Zoffset_Value (3 + Addvalue) Adjust,
#define Setting_Value (8 + Addvalue) Feedrate,
#define XYZEaxis_Value (12 + Addvalue) PrintChoice = PrintChoice_Value,
#define Filament_Value (15 + Addvalue) Zoffset = Zoffset_Value,
#define Language_Value (18 + Addvalue) TempControl,
#define Filename_Value (22 + Addvalue) ManualSetTemp,
Setting = Setting_Value,
ReturnBack,
Bedlevel,
Autohome,
XYZEaxis = XYZEaxis_Value,
Filament = Filament_Value,
LanguageChoice = Language_Value,
No_Filament,
PwrOffNoF,
Volume,
Filename = Filename_Value
};
enum PROC_COM { const uint16_t Addrbuf[] = {
Printfile = 0, 0x1002, 0x1004, 0x1006, 0x1008, 0x100A, 0x100C, 0x1026, 0x1030, 0x1032, 0x1034, 0x103A,
Adjust, 0x103E, 0x1040, 0x1044, 0x1046, 0x1048, 0x104A, 0x104C, 0x1054, 0x1056, 0x1058,
Feedrate, 0x105C, 0x105E, 0x105F, 0x1088, 0
PrintChoice = PrintChoice_Value, };
Zoffset = Zoffset_Value,
TempControl,
ManualSetTemp,
Setting = Setting_Value,
ReturnBack,
Bedlevel,
Autohome,
XYZEaxis = XYZEaxis_Value,
Filament = Filament_Value,
LanguageChoice = Language_Value,
No_Filament,
PwrOffNoF,
Volume,
Filename = Filename_Value
};
const uint16_t Addrbuf[] = { void RTS_Update();
0x1002, 0x1004, 0x1006, 0x1008, 0x100A, 0x100C, 0x1026, 0x1030, 0x1032, 0x1034, 0x103A,
0x103E, 0x1040, 0x1044, 0x1046, 0x1048, 0x104A, 0x104C, 0x1054, 0x1056, 0x1058,
0x105C, 0x105E, 0x105F, 0x1088, 0
};
void RTSUpdate();
void RTSInit();
} // ExtUI
#ifndef MAIN_MENU_ITEM_1_GCODE #ifndef MAIN_MENU_ITEM_1_GCODE
#if ENABLED(AUTO_BED_LEVELING_BILINEAR) #if ENABLED(AUTO_BED_LEVELING_BILINEAR)