Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.83 KB | None | 0 0
  1. package diktya1_9096;
  2.  
  3. import ithakimodem.Modem;
  4. import java.io.File;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7. import java.io.PrintWriter;
  8. import java.lang.System;
  9.  
  10. public class virtualModem {
  11.     public static void main(String[] param) throws IOException {
  12.         (new virtualModem()).demo();
  13.     }
  14.  
  15.     public void demo() throws IOException {
  16.         int k;
  17.         Modem modem;
  18.         modem = new Modem();
  19.         modem.setSpeed(80000);
  20.         modem.setTimeout(2000);
  21.         modem.open("ithaki");
  22.  
  23.         byte[] echoPackets = "E6101\r".getBytes();
  24.         byte[] errorFreeImage = "M3554 \r".getBytes();
  25.         byte[] errorImage = "G1367\r".getBytes();
  26.         byte[] gps = "P0238R=1000199\r".getBytes();
  27.         byte[] ack = "Q9057\r".getBytes();
  28.         byte[] nack = "R1432\r".getBytes();
  29.  
  30.         PrintWriter writer = new PrintWriter("echo.txt", "UTF-8");
  31.  
  32.         FileOutputStream ErrorFreeImage = new FileOutputStream("Ε1.jpg");
  33.         FileOutputStream ErrorImage = new FileOutputStream("Ε2.jpg");
  34.  
  35.         for (;;) {
  36.             try {
  37.                 k = modem.read();
  38.                 if (k == -1)
  39.                     break;
  40.                 System.out.print((char) k);
  41.             } catch (Exception x) {
  42.                 break;
  43.             }
  44.         }
  45.         // NOTE : Break endless loop by catching sequence "\r\n\n\n".
  46.         // NOTE : Stop program execution when "NO CARRIER" is detected.
  47.         // NOTE : A time-out option will enhance program behavior.
  48.         // NOTE : Continue with further Java code.
  49.         // NOTE : Enjoy :)
  50.  
  51.         EchoPackets(echoPackets, modem);
  52.         writer.println((int) EchoPackets(echoPackets, modem));
  53.         writer.close();
  54.  
  55.         Image(errorFreeImage, modem, ErrorFreeImage);
  56.         ErrorFreeImage.close();
  57.  
  58.         Image(errorImage, modem, ErrorImage);
  59.         ErrorImage.close();
  60.  
  61.         GPS(gps, modem);
  62.         System.out.println("DONE!");
  63.  
  64.         modem.close();
  65.     }
  66.  
  67. //Συνάρτηση για echo Packets
  68.     public long EchoPackets(byte[] echo, Modem modem1) {
  69.         long startTime = System.currentTimeMillis();
  70.         modem1.write(echo);
  71.         for (int i = 0; i < 35; i++) {
  72.             try {
  73.  
  74.                 int k = modem1.read();
  75.  
  76.                 if (k == -1) {
  77.                     break;
  78.  
  79.                 }
  80.  
  81.                 System.out.print((char) k);
  82.             } catch (Exception x) {
  83.  
  84.                 break;
  85.  
  86.             }
  87.  
  88.         }
  89.         System.out.println(" ");
  90.         long endTime = System.currentTimeMillis();
  91.         long responseTime = endTime - startTime;
  92.         return responseTime;
  93.     }
  94.  
  95.     // Συνάρτηση για Images
  96.     public void Image(byte[] im, Modem modem2, FileOutputStream imageFile) throws IOException {
  97.         modem2.write(im);
  98.  
  99.         int firstByte = 0;
  100.         int secondByte = 0;
  101.         while (1 != 0) {
  102.             firstByte = secondByte;
  103.             secondByte = modem2.read();
  104.             if (firstByte == 255 && secondByte == 216) {
  105.                 imageFile.write(firstByte);
  106.                 imageFile.write(secondByte);
  107.                 break;
  108.  
  109.             }
  110.  
  111.         }
  112.  
  113.         while (1 != 0) {
  114.             try {
  115.  
  116.                 if (firstByte == 255 && secondByte == 217) {
  117.                     imageFile.write((byte) secondByte);
  118.                     break;
  119.                 }
  120.                 firstByte = secondByte;
  121.                 secondByte = modem2.read();
  122.                 imageFile.write((byte) secondByte);
  123.             } catch (Exception x) {
  124.                 break;
  125.             }
  126.  
  127.         }
  128.  
  129.         imageFile.close();
  130.     }
  131.  
  132.     public void GPS(byte[] gps1, Modem modem3) {
  133.         modem3.write(gps1);
  134.         int gpsTraces[][] = new int[99][80];
  135.         int long_lat[][] = new int[99][17];
  136.         int k = 0;// Στο k θα αποθηκεύονται τα Bytes που στέλνονται από τον Server Ithaki
  137.         int i = -1;// Δείκτης γραμμών του πίνακα ιχνών
  138.         int j = 0;// Δείκτης στηλών του πίνακα ιχνών
  139. //Εκτύπωση μηνύματος εκκίνησης
  140.         for (int c = 0; c < 27; c++) {
  141.             try {
  142.  
  143.                 if (k == -1)
  144.                     break;
  145.                 System.out.print((char) modem3.read());
  146.             } catch (Exception x) {
  147.                 break;
  148.             }
  149.         }
  150. //Εκτύπωση ιχνών
  151.         for (;;)
  152.             try {
  153.  
  154.                 k = modem3.read();
  155.  
  156.                 if (k == -1) {
  157.                     break;
  158.                 }
  159.  
  160.                 if (k == 36) {
  161.                     i++;
  162.                     j = 0;
  163.                 }
  164.  
  165.                 gpsTraces[i][j] = k;// Αποθήκευση ιχνών στον πίνακα
  166.                 if (i == 99) {
  167.                     break;
  168.                 }
  169.                 System.out.print((char) gpsTraces[i][j]);
  170.  
  171.             } catch (Exception x) {
  172.                 break;
  173.             }
  174.         // Δημιουργία πίνακα με γεωγραφικά μήκη και πλάτη.
  175.  
  176.         for (int m = 0; m < 99; m++) {
  177.             int l = 0;
  178.             for (int n = 18; n < 27; n++) {
  179.                 if (n != 22) {
  180.                     long_lat[m][l] = (gpsTraces[m][n] - 48);
  181.                     l++;
  182.                 } else {
  183.                     continue;
  184.                 }
  185.             }
  186.  
  187.             for (int a = 30; a < 40; a++) {
  188.                 if (a != 35) {
  189.                     long_lat[m][l] = (gpsTraces[m][a] - 48);
  190.                     l++;
  191.                 } else {
  192.                     continue;
  193.                 }
  194.             }
  195.  
  196.         }
  197.  
  198.         for (int cc = 0; cc < 17; cc++) {
  199.             System.out.print((char) gpsTraces[22][45]);
  200.         }
  201.  
  202.     }
  203. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement