#define inktjet_pos_txt 5 byte Inktjet_CRC= 0x00; byte Inktjet_ETX[] = {0x1B, 0x03}; void Inktjet_generate_code() { char line[60] = {0x1B, 0x02, 0x1D, 0x00, 0x1C}; Scroll_Line(line1_14, 14, 0); Scroll_Line(line2_14, 14, 1); dsp_info(line1_14,2); dsp_info(line2_14,3); Serial.println(""); Serial.print("Inktjet --> Line 1 : "); for (int i = 0; i <= 13; i++) { line[inktjet_pos_txt + i] = line1_14[i]; Serial.write(line1_14[i]); } Serial.println(""); Serial.print("Inktjet --> Line 2 : "); for (int i = 0; i <= 13; i++) { line[inktjet_pos_txt + 14 + i] = line2_14[i]; Serial.write(line2_14[i]); } line[inktjet_pos_txt + 28 + 0] = Inktjet_ETX[0]; line[inktjet_pos_txt + 28 + 1] = Inktjet_ETX[1]; Inktjet_Checksum(line, 0, inktjet_pos_txt + 28 + 1); line[inktjet_pos_txt + 28 + 2] = Inktjet_CRC; for (int i = 0; i <= (inktjet_pos_txt + 28 + 2); i++) { MySerial1.write(line[i]); } } void Inktjet_Checksum(char *cmd_line, int start_pos, int eind_pos) { long val_crc = 0; //Checksum Calculation for (int i = start_pos; i <= eind_pos; i++) { if(cmd_line[i] != 0x1B) { val_crc = val_crc + cmd_line[i]; } } Inktjet_CRC = 256 - (val_crc % 256); Serial.println(""); Serial.print("Checksum : CRC = "); Serial.print(256- (val_crc% 256), HEX); Serial.println(""); }