fixed bug with CRC for SSII

This commit is contained in:
Edward Emelianov 2025-06-03 17:34:14 +03:00
parent 7f44a60965
commit f58d4d63fd
3 changed files with 8 additions and 4 deletions

Binary file not shown.

View File

@ -50,18 +50,22 @@ typedef struct __attribute__((packed)){
uint8_t crc[4]; uint8_t crc[4];
} enc_t; } enc_t;
//#include "usb_dev.h"
//#include "strfunc.h"
void usart_send_enc(uint32_t encX, uint32_t encY){ void usart_send_enc(uint32_t encX, uint32_t encY){
enc_t edata; enc_t edata;
uint8_t *databuf = (uint8_t*) &edata; uint8_t *databuf = (uint8_t*) &edata;
edata.encX = encX;
edata.encY = encY;
uint32_t POS_SUM = 0; uint32_t POS_SUM = 0;
for(int i = 1; i < 9; ++i) POS_SUM += databuf[i]; for(int i = 1; i < 9; ++i) POS_SUM += databuf[i];
// DBG("POSSUM:"); DBGs(uhex2str(POS_SUM));
edata.crc[0] = POS_SUM >> 8; edata.crc[0] = POS_SUM >> 8;
edata.crc[1] = ((0xFFFF - POS_SUM) & 0xFF) - edata.crc[0]; edata.crc[1] = ((0xFFFF - POS_SUM) & 0xFF) - edata.crc[0];
edata.crc[2] = (0xFFFF - POS_SUM) >> 8; edata.crc[2] = (0xFFFF - POS_SUM) >> 8;
edata.crc[3] = 0; edata.crc[3] = 0;
edata.magick = ENC_MAGICK; edata.magick = ENC_MAGICK;
edata.encX = encX; // DBG("CRC:"); DBGs(uhex2str(*(uint32_t*)edata.crc));
edata.encY = encY;
usart_send(databuf, sizeof(enc_t)); usart_send(databuf, sizeof(enc_t));
} }

View File

@ -1,2 +1,2 @@
#define BUILD_NUMBER "107" #define BUILD_NUMBER "108"
#define BUILD_DATE "2025-06-02" #define BUILD_DATE "2025-06-03"