From 8b83977e5df89fbc215e79bf978e0e589df14939 Mon Sep 17 00:00:00 2001 From: frank Date: Fri, 7 Jan 2022 15:38:23 +0100 Subject: [PATCH] inktjet toegevoegd --- Laser_Test/General.ino | 2 + Laser_Test/Laser_Test.ino | 75 ++++++++++++++++++++++++++-------- Laser_Test/Linx500SL.ino | 8 +--- Laser_Test/LinxCL60.ino | 28 +++++++++++++ Laser_Test/Linx_Inktjet.ino | 61 ++++++++++++++++++++++++++++ Laser_Test/MundiScan2000.ino | 78 ++++++++++++++++++++++++++++++++++++ 6 files changed, 230 insertions(+), 22 deletions(-) create mode 100644 Laser_Test/LinxCL60.ino create mode 100644 Laser_Test/Linx_Inktjet.ino create mode 100644 Laser_Test/MundiScan2000.ino diff --git a/Laser_Test/General.ino b/Laser_Test/General.ino index 3d2ae49..4fc6a4d 100644 --- a/Laser_Test/General.ino +++ b/Laser_Test/General.ino @@ -3,6 +3,8 @@ void dsp_info(char *buf, int line) { + display.setCursor(0, (line - 1) * 10); + display.println(F(" ")); display.setCursor(0, (line - 1) * 10); display.println(F(buf)); display.display(); diff --git a/Laser_Test/Laser_Test.ino b/Laser_Test/Laser_Test.ino index c5dbfdc..9c14c3d 100644 --- a/Laser_Test/Laser_Test.ino +++ b/Laser_Test/Laser_Test.ino @@ -14,7 +14,9 @@ HardwareSerial MySerial2(2); #define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); -#define pin_LASERTYPE 12 +#define pin1_LASERTYPE 12 +#define pin2_LASERTYPE 14 + #define pin_MODE 13 #define pin_RXD1 5 #define pin_TXD1 18 @@ -31,30 +33,50 @@ int lasertype = 0; //Lasertype selected //void Linx500SL_Watchdog(); //void Linx500SL_SendCode(); -char line1_14[] = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4'}; -char line2_14[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N'}; +char line1_14[] = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', 0}; +char line2_14[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 0}; void setup() { - pinMode(pin_LASERTYPE, INPUT_PULLUP); + pinMode(pin1_LASERTYPE, INPUT_PULLUP); + pinMode(pin2_LASERTYPE, INPUT_PULLUP); pinMode(pin_MODE, INPUT_PULLUP); //init debug port Serial.begin(9600); - if (digitalRead(pin_LASERTYPE) == false) { + if((!digitalRead(pin1_LASERTYPE)) && (!digitalRead(pin2_LASERTYPE))) { + lasertype = 1; + } + + if((!digitalRead(pin1_LASERTYPE)) && (digitalRead(pin2_LASERTYPE))) { + lasertype = 2; + } + + if((digitalRead(pin1_LASERTYPE)) && (!digitalRead(pin2_LASERTYPE))) { + lasertype = 3; + } + + if((digitalRead(pin1_LASERTYPE)) && (digitalRead(pin2_LASERTYPE))) { + lasertype = 4; + } +// + +//lasertype = 4; + +// + + if (lasertype == 1) { Serial.println("Lasertype set to : Linx 500SL - baudrate 19k2"); //init serial ports MySerial1.begin(19200, SERIAL_8N1, pin_RXD1, pin_TXD1); MySerial2.begin(19200, SERIAL_8N1, pin_RXD1, pin_TXD2); - lasertype = 1; } else { Serial.println("Lasertype set to : Linx ??? - baudrate 9600"); //init serial ports MySerial1.begin(9600, SERIAL_8N1, pin_RXD1, pin_TXD1); MySerial2.begin(9600, SERIAL_8N1, pin_RXD1, pin_TXD2); - lasertype = 2; } //init I2C Display @@ -70,19 +92,31 @@ void setup() display.setTextColor(WHITE, BLACK); display.setCursor(10, 0); - display.println(F("RS232 Sniffer v1.1")); + display.println(F("RS232 Sniffer v0.3")); delay(1000); display.display(); display.clearDisplay(); display.setCursor(10, 0); if (lasertype == 1) { - dsp_info("Linx 500SL ", 1); + dsp_info("Linx 500SL", 1); } if (lasertype == 2) { dsp_info("MundiScan 2000", 1); } - - dsp_info("Sniffer Mode ", 2); + if (lasertype == 3) { + dsp_info("Linx CL30 / CL60", 1); + } + if (lasertype == 4) { + dsp_info("Linx Inktjet", 1); + } + + b_mode = digitalRead(pin_MODE); + if(b_mode) { + dsp_info("Sniffer Mode ", 2); + } + else{ + dsp_info("Generate Code ", 2); + } delay(2000); } @@ -132,15 +166,24 @@ void loop() if (now - prev >= 5000) { //Laser 500SL if (lasertype == 1) { + dsp_info("==> Linx 500SL", 1); SL500_generate_code(); } - + //MundiScan 2000 if (lasertype == 2) { - Serial.println("."); - MySerial1.println("P1 : Hallo Frank"); - MySerial2.println("P2 : Hallo Frank"); + dsp_info("==> MundiScan2000", 1); + MundiScan_generate_code(); + } + //Laser Linx CL30 / CL 60 + if (lasertype == 3) { + dsp_info("==> Linx CL30/CL60", 1); + CL60_generate_code(); + } + //Linx Inktjet + if (lasertype == 4) { + dsp_info("==> Linx Inktjet", 1); + Inktjet_generate_code(); } - prev = now; } } diff --git a/Laser_Test/Linx500SL.ino b/Laser_Test/Linx500SL.ino index 8ff75d2..5785627 100644 --- a/Laser_Test/Linx500SL.ino +++ b/Laser_Test/Linx500SL.ino @@ -101,10 +101,7 @@ void Linx500SL_SendCode() SL500_SEQ++; line1[pos_seq] = SL500_SEQ; -// display.setCursor(0, 20); -// display.println(F("No Response laser !! ")); - - dsp_info("Send line 1 to laser",3); + dsp_info(line1_14,2); Serial.println(""); Serial.print("Linx500SL --> Line 1 : "); for (int i = 0; i <= 13; i++) { @@ -131,8 +128,7 @@ void Linx500SL_SendCode() SL500_SEQ++; line2[pos_seq] = SL500_SEQ; -// dsp_info(line2_14,3); - dsp_info("Send line 2 to laser",3); + dsp_info(line2_14,3); Serial.println(""); Serial.print("Linx500SL --> Line 2 : "); for (int i = 0; i <= 13; i++) { diff --git a/Laser_Test/LinxCL60.ino b/Laser_Test/LinxCL60.ino new file mode 100644 index 0000000..38264af --- /dev/null +++ b/Laser_Test/LinxCL60.ino @@ -0,0 +1,28 @@ + + +void CL60_generate_code() +{ + char const_setvars[] = "SetVars"; + char const_line1[] = ";Regel1;"; + char const_line2[] = ";Regel2;"; + char const_end[] = {0x0D,0x0A,0}; + + Scroll_Line(line1_14, 14, 0); + Scroll_Line(line2_14, 14, 1); + + Serial.println(""); + Serial.print("Linx CL30/CL60 --> Line 1 : "); + Serial.println(line1_14); + Serial.print("Linx CL30/CL60 --> Line 2 : "); + Serial.println(line2_14); + + MySerial1.print(const_setvars); + MySerial1.print(const_line1); + MySerial1.print(line1_14); + MySerial1.print(const_line2); + MySerial1.print(line2_14); + MySerial1.print(const_end); + + dsp_info(line1_14,2); + dsp_info(line2_14,3); +} diff --git a/Laser_Test/Linx_Inktjet.ino b/Laser_Test/Linx_Inktjet.ino new file mode 100644 index 0000000..304a43f --- /dev/null +++ b/Laser_Test/Linx_Inktjet.ino @@ -0,0 +1,61 @@ +#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(""); +} diff --git a/Laser_Test/MundiScan2000.ino b/Laser_Test/MundiScan2000.ino new file mode 100644 index 0000000..cca4633 --- /dev/null +++ b/Laser_Test/MundiScan2000.ino @@ -0,0 +1,78 @@ +#define mundiscan_pos_txt 4 + +byte MundiScan_CRC[] = {0x00, 0x00}; +byte MundiScan_EOT = 0x04; + + +void MundiScan_generate_code() +{ + + + char line1[60] = {0x02, 0x45, 0x0E, 0x00}; + char line2[60] = {0x02, 0x45, 0x0E, 0x01}; + + Scroll_Line(line1_14, 14, 0); + dsp_info(line1_14,2); + Serial.println(""); + Serial.print("MundiSan 2000 --> Line 1 : "); + for (int i = 0; i <= 13; i++) { + line1[mundiscan_pos_txt + i] = line1_14[i]; + Serial.write(line1_14[i]); + } + + MundiScan_Checksum(line1, 1, pos_txt + 14); + line1[mundiscan_pos_txt + 14] = MundiScan_CRC[0]; + line1[mundiscan_pos_txt + 14 + 1] = MundiScan_CRC[1]; + line1[mundiscan_pos_txt + 14 + 2] = MundiScan_EOT; + + for (int i = 0; i <= (mundiscan_pos_txt + 14 + 3); i++) { + MySerial1.write(line1[i]); + } + + delay(1000); + + Scroll_Line(line2_14, 14, 0); + dsp_info(line2_14,3); + Serial.println(""); + Serial.print("MundiSan 2000 --> Line 2 : "); + for (int i = 0; i <= 13; i++) { + line2[mundiscan_pos_txt + i] = line2_14[i]; + Serial.write(line2_14[i]); + } + + MundiScan_Checksum(line2, 1, pos_txt + 14); + line2[mundiscan_pos_txt + 14] = MundiScan_CRC[0]; + line2[mundiscan_pos_txt + 14 + 1] = MundiScan_CRC[1]; + line2[mundiscan_pos_txt + 14 + 2] = MundiScan_EOT; + + for (int i = 0; i <= (mundiscan_pos_txt + 14 + 3); i++) { + MySerial1.write(line2[i]); + } + + + +} + + +void MundiScan_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++) { + val_crc = val_crc + cmd_line[i]; + } + + Serial.println(""); + Serial.print("Checksum : CRC = "); + Serial.print(val_crc, HEX); + + MundiScan_CRC[0] = val_crc % 256; + MundiScan_CRC[1] = val_crc / 256; + + Serial.print (" CRC[0] = "); + Serial.print(val_crc % 256, HEX); + Serial.print (" CRC[1] = "); + Serial.print(val_crc / 256, HEX); + Serial.println(""); +}