From 5a9736bfa312e52f8de5af2b6fc023f4b66db0ad Mon Sep 17 00:00:00 2001 From: InsanityAutomation Date: Tue, 24 Jan 2023 20:38:53 -0500 Subject: [PATCH] add endian swap --- Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp | 17 ++++++++++++++--- Marlin/src/lcd/extui/Creality/Creality_DWIN.h | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp b/Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp index 1aa4e7e6d8..0373ab74a5 100644 --- a/Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp +++ b/Marlin/src/lcd/extui/Creality/Creality_DWIN.cpp @@ -410,9 +410,9 @@ void onIdle() rtscheck.RTS_SndData((unsigned int)(getAxisMaxJerk_mm_s(E0)*100), Jerk_E); #if HAS_HOTEND_OFFSET - rtscheck.WriteVariable(T2Offset_X, (uint32_t)(getNozzleOffset_mm(X, E1)*1000), sizeof(uint32_t)); - rtscheck.WriteVariable(T2Offset_Y, (uint32_t)(getNozzleOffset_mm(Y, E1)*1000), sizeof(uint32_t)); - rtscheck.WriteVariable(T2Offset_Z, (uint32_t)(getNozzleOffset_mm(Z, E1)*1000), sizeof(uint32_t)); + rtscheck.WriteVariable(T2Offset_X, (uint32_t)(getNozzleOffset_mm(X, E1)*1000)); + rtscheck.WriteVariable(T2Offset_Y, (uint32_t)(getNozzleOffset_mm(Y, E1)*1000)); + rtscheck.WriteVariable(T2Offset_Z, (uint32_t)(getNozzleOffset_mm(Z, E1)*1000)); rtscheck.RTS_SndData((unsigned int)(getAxisSteps_per_mm(E1) * 10), T2StepMM_E); #endif @@ -769,6 +769,17 @@ void RTSSHOW::RTS_SndData(unsigned long n, unsigned long addr, unsigned char cmd RTS_SndData(); } +void RTSSHOW::WriteVariable(uint16_t adr, long value) { + union { long l; char lb[4]; } endian; + char tmp[4]; + endian.l = value; + tmp[0] = endian.lb[3]; + tmp[1] = endian.lb[2]; + tmp[2] = endian.lb[1]; + tmp[3] = endian.lb[0]; + WriteVariable(adr, static_cast(&tmp), sizeof(long)); +} + void RTSSHOW::WriteVariable(uint16_t adr, const void* values, uint8_t valueslen, bool isstr=false, char fillChar = ' ') { const char* myvalues = static_cast(values); bool strend = !myvalues; diff --git a/Marlin/src/lcd/extui/Creality/Creality_DWIN.h b/Marlin/src/lcd/extui/Creality/Creality_DWIN.h index 214c05801a..ac7ccb92be 100644 --- a/Marlin/src/lcd/extui/Creality/Creality_DWIN.h +++ b/Marlin/src/lcd/extui/Creality/Creality_DWIN.h @@ -241,6 +241,7 @@ class RTSSHOW { void RTS_SndData(long,unsigned long, unsigned char = VarAddr_W); void RTS_SndData(unsigned long,unsigned long, unsigned char = VarAddr_W); void WriteVariable(uint16_t adr, const void* values, uint8_t valueslen, bool isstr=false, char fillChar = ' '); + void WriteVariable(uint16_t adr, long); void RTS_SDcard_Stop(); void RTS_HandleData(); void RTS_Init();