Просмотр исходного кода

printer: printer_receive: remove use of second checksum variable

Signed-off-by: Kris Bahnsen <Kris@KBEmbedded.com>
Kris Bahnsen 1 год назад
Родитель
Сommit
47bee588b0
1 измененных файлов с 3 добавлено и 3 удалено
  1. 3 3
      protocols/printer/printer_receive.c

+ 3 - 3
protocols/printer/printer_receive.c

@@ -99,12 +99,12 @@ static void byte_callback(void *context, uint8_t val)
 		break;
 		break;
 	case CKSUM_L:
 	case CKSUM_L:
 		packet->state = CKSUM_H;
 		packet->state = CKSUM_H;
-		packet->cksum = (val & 0xff);
+		if ((packet->cksum_calc & 0xff) != val)
+			packet->status |= STATUS_CKSUM_ERR;
 		break;
 		break;
 	case CKSUM_H:
 	case CKSUM_H:
 		packet->state = ALIVE;
 		packet->state = ALIVE;
-		packet->cksum |= ((val & 0xff) << 8);
-		if (packet->cksum != packet->cksum_calc)
+		if (((packet->cksum_calc >> 8) & 0xff) != val)
 			packet->status |= STATUS_CKSUM_ERR;
 			packet->status |= STATUS_CKSUM_ERR;
 		// TRANSFER does not set checksum bytes
 		// TRANSFER does not set checksum bytes
 		if (packet->cmd == CMD_TRANSFER)
 		if (packet->cmd == CMD_TRANSFER)