add endian swap

This commit is contained in:
InsanityAutomation
2023-01-24 20:38:53 -05:00
parent 359258701f
commit 5a9736bfa3
2 changed files with 15 additions and 3 deletions
@@ -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<const void*>(&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<const char*>(values);
bool strend = !myvalues;
@@ -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();