FIX: comment is now @doc compatible

This commit is contained in:
Christos Choutouridis 2020-04-15 16:00:43 +03:00
parent 0b8c2c574c
commit d1f0fe3c47
6 changed files with 87 additions and 74 deletions

View File

@ -19,13 +19,13 @@ import ithakimodem.*;
* a convenient and common API for all the session functionalities * a convenient and common API for all the session functionalities
*/ */
class Com { class Com {
static final int SPEED_DEFAULT = 48000; /**< default communication speed [bps] */ static final int SPEED_DEFAULT = 48000; /** default communication speed [bps] */
static final int TIMEOUT_DEFAULT = 2000; /**< default timeout values [sec] */ static final int TIMEOUT_DEFAULT = 2000; /** default timeout values [sec] */
static final String URL_DEFAULT = "ithaki"; /**< Default destination. Ithaki of-course */ static final String URL_DEFAULT = "ithaki"; /** Default destination. Ithaki of-course */
private Modem modem_; /**< Ref to Modem */ private Modem modem_; /** Ref to Modem */
private int speed_; /**< Communication speed [bps] */ private int speed_; /** Communication speed [bps] */
private int timeout_; /**< communication timeout [sec] */ private int timeout_; /** communication timeout [sec] */
/** /**
* Basic constructor * Basic constructor
@ -146,14 +146,15 @@ class Com {
data.size = _copy (data.response, begin); data.size = _copy (data.response, begin);
have_begin = true; have_begin = true;
} }
} while (ch != -1 && } while (
(!have_begin || ch != -1 && (
( (bin || (detect (data.response, "\r\n\n\n".getBytes(), data.size) == -1)) !have_begin || (
&& (bin || (detect (data.response, "NO CARRIER".getBytes(), data.size) == -1)) (bin || (detect (data.response, "\r\n\n\n".getBytes(), data.size) == -1))
&& (detect (data.response, end, data.size) == -1) && (bin || (detect (data.response, "NO CARRIER".getBytes(), data.size) == -1))
) && (detect (data.response, end, data.size) == -1)
) )
); )
);
/*^ /*^
* We loop until: * We loop until:
* 1) server returns -1 * 1) server returns -1
@ -229,11 +230,11 @@ class Com {
* Class to represent client-server transaction data * Class to represent client-server transaction data
*/ */
class Transaction { class Transaction {
byte[] code; /**< request code from client */ byte[] code; /** request code from client */
byte[] response; /**< response data from server */ byte[] response; /** response data from server */
long departure; /**< request time */ long departure; /** request time */
long arrival; /**< response time */ long arrival; /** response time */
int size; /**< size of response data in bytes */ int size; /** size of response data in bytes */
/** /**
* Basic constructor * Basic constructor

View File

@ -12,16 +12,16 @@ package net.hoo2.auth.vmodem;
* Class to used for the echo sequence * Class to used for the echo sequence
*/ */
class Echo { class Echo {
static final int ECHO_DURATION_DEFAULT = 240; /**< Default duration for the sequence */ static final int ECHO_DURATION_DEFAULT = 240; /** Default duration for the sequence */
static final int ECHO_BUFFER_SIZE = 256; /**< Echo buffer size */ static final int ECHO_BUFFER_SIZE = 256; /** Echo buffer size */
static final String ECHO_BEGIN = "PSTART"; /**< Begin pattern of the response */ static final String ECHO_BEGIN = "PSTART"; /** Begin pattern of the response */
static final String ECHO_END = "PSTOP"; /**< End pattern of the response */ static final String ECHO_END = "PSTOP"; /** End pattern of the response */
private Com com_; /**< Reference to communication module */ private Com com_; /** Reference to communication module */
private Log log_; /**< Reference to logging module */ private Log log_; /** Reference to logging module */
private Transaction transaction_; /**< A transaction object to used as a buffer for all requests */ private Transaction transaction_; /** A transaction object to used as a buffer for all requests */
private int duration_; /**< The desired duration for the session */ private int duration_; /** The desired duration for the session */
private byte[] code_; /**< The desired code for the session */ private byte[] code_; /** The desired code for the session */
/** /**
* Basic constructor * Basic constructor

View File

@ -17,28 +17,28 @@ import java.util.Arrays;
* Class to used for the GPS session * Class to used for the GPS session
*/ */
class GPS { class GPS {
static final int GPS_BUFFER_SIZE = 256; /**< GPS trace buffer size */ static final int GPS_BUFFER_SIZE = 256; /** GPS trace buffer size */
static final String GPS_BEGIN = "START ITHAKI GPS TRACKING"; /**< starting pattern */ static final String GPS_BEGIN = "START ITHAKI GPS TRACKING"; /** starting pattern */
static final String GPS_END = "STOP ITHAKI GPS TRACKING"; /**< ending pattern */ static final String GPS_END = "STOP ITHAKI GPS TRACKING"; /** ending pattern */
static final int GPS_USE_TRACK = 1; /**< Which track to use (given) */ static final int GPS_USE_TRACK = 1; /** Which track to use (given) */
static final String GPS_TRACK_PREFIX = "R="; /**< GPS command track request prefix */ static final String GPS_TRACK_PREFIX = "R="; /** GPS command track request prefix */
static final String GPS_IMAGE_PREFIX = "T="; /**< GPS command image request prefix */ static final String GPS_IMAGE_PREFIX = "T="; /** GPS command image request prefix */
static final int GPS_MAX_POINTS = 9; /**< Maximum points (given) */ static final int GPS_MAX_POINTS = 9; /** Maximum points (given) */
static final int GPS_COORDINATES_SIZE = 6; /**< Coordinates size */ static final int GPS_COORDINATES_SIZE = 6; /** Coordinates size */
static final int GPS_LATITUDE_BEGIN = 17; /**< The latitude sequence string position */ static final int GPS_LATITUDE_BEGIN = 17; /** The latitude sequence string position */
static final int GPS_LATITUDE_END = 28; /**< The end of latitude sequence string position */ static final int GPS_LATITUDE_END = 28; /** The end of latitude sequence string position */
static final int GPS_LONGITUDE_BEGIN= 29; /**< The longitude sequence string position */ static final int GPS_LONGITUDE_BEGIN= 29; /** The longitude sequence string position */
static final int GPS_LONGITUDE_END = 41; /**< The end of longitude sequence string position */ static final int GPS_LONGITUDE_END = 41; /** The end of longitude sequence string position */
private Com com_; /**< Reference to communication module */ private Com com_; /** Reference to communication module */
private Log log_; /**< Reference to logging module */ private Log log_; /** Reference to logging module */
private Transaction transaction_; /**< A transaction object to used as a buffer for all requests */ private Transaction transaction_; /** A transaction object to used as a buffer for all requests */
private byte[] code_; /**< The desired code for the session */ private byte[] code_; /** The desired code for the session */
private int start_; /**< Starting point [sec] */ private int start_; /** Starting point [sec] */
private int duration_; /**< Duration of requested trace */ private int duration_; /** Duration of requested trace */
private int points_; /**< Number of points to fetch from the above trace */ private int points_; /** Number of points to fetch from the above trace */
private byte[] coordinates_; /**< Coordinates buffer */ private byte[] coordinates_; /** Coordinates buffer */
/** /**
* Basic constructor * Basic constructor

View File

@ -17,16 +17,16 @@ import java.io.*;
* Class to used for the error free and non error free image requests * Class to used for the error free and non error free image requests
*/ */
class Image { class Image {
static final int IMAGE_BUFFER_SIZE = 256*1024; /**< image buffer size */ static final int IMAGE_BUFFER_SIZE = 256*1024; /** image buffer size */
static final byte[] IMAGE_BEGIN = {(byte)0xFF, (byte)0xD8}; /**< jpeg image begin pattern */ static final byte[] IMAGE_BEGIN = {(byte)0xFF, (byte)0xD8}; /** jpeg image begin pattern */
static final byte[] IMAGE_END = {(byte)0xFF, (byte)0xD9}; /**< jpeg image end pattern */ static final byte[] IMAGE_END = {(byte)0xFF, (byte)0xD9}; /** jpeg image end pattern */
private Com com_; /**< Reference to communication module */ private Com com_; /** Reference to communication module */
private Log log_; /**< Reference to logging module */ private Log log_; /** Reference to logging module */
private Transaction transaction_; /**< A transaction object to used as a buffer for all requests */ private Transaction transaction_; /** A transaction object to used as a buffer for all requests */
private String filename_; /**< The filename to store */ private String filename_; /** The filename to store */
private int items_; /**< how many images to fetch */ private int items_; /** how many images to fetch */
private byte[] code_; /**< The image request code for the virtual lab */ private byte[] code_; /** The image request code for the virtual lab */
/** /**
* Basic constructor * Basic constructor

View File

@ -19,9 +19,9 @@ import java.io.PrintWriter;
*/ */
class Log { class Log {
private String logfile_; /**< The log file name */ private String logfile_; /** The log file name */
private boolean verbose_; /**< The desired verbosity (for the console)*/ private boolean verbose_; /** The desired verbosity (for the console)*/
private PrintWriter writer_; /**< A buffered writer to use for streaming */ private PrintWriter writer_; /** A buffered writer to use for streaming */
/** /**
* Basic constructor * Basic constructor

View File

@ -3,6 +3,14 @@
* @brief * @brief
* Contain the Main class for the project VirtualModem * Contain the Main class for the project VirtualModem
* *
* Usage examples:
* ==========================
* java -jar ./VirtualModem.jar -v -l Exxxx-$(date +%F-%T).log -e Exxxx 600
* java -jar ./VirtualModem.jar -v -l Qxxx-Rxxxx-$(date +%F-%T).log -a Qxxxx Rxxxx 600
* java -jar ./VirtualModem.jar -v -l Pxxxx_600_80_8p-$(date +%F-%T).log -p Pxxxx 600 80 8 P1124-$(date +%F-%T)
* java -jar ./VirtualModem.jar -v -l Mxxxx-$(date +%F-%T).log -g Mxxxx Mxxxx-$(date +%F-%T) 2
* java -jar ./VirtualModem.jar -v -l Gxxxx-$(date +%F-%T).log -g Gxxxx Gxxxx-$(date +%F-%T) 2
*
* @author Christos Choutouridis AEM:8997 * @author Christos Choutouridis AEM:8997
* @email cchoutou@ece.auth.gr * @email cchoutou@ece.auth.gr
*/ */
@ -10,7 +18,7 @@ package net.hoo2.auth.vmodem;
/** @name imports */ /** @name imports */
/** @{ */ /** @{ */
import org.apache.commons.cli.*; /**< command line utility */ import org.apache.commons.cli.*; /** command line utility */
/** @} */ /** @} */
@ -20,19 +28,19 @@ import org.apache.commons.cli.*; /**< command line utility */
* @brief This is the main control class of the program. * @brief This is the main control class of the program.
* *
* This class includes the main function which read the user input * This class includes the main function which read the user input
* and create the apropriate object for the requested sequence to * and create the appropriate object for the requested sequence to
* retrieve data. * retrieve data.
*/ */
public class VirtualModem { public class VirtualModem {
/** @name Data */ /** @name Data */
/** @{ */ /** @{ */
CommandLine line; /**< Command line for the argument list */ CommandLine line; /** Command line for the argument list */
CommandLineParser parser; /**< Parser for the argument list */ CommandLineParser parser; /** Parser for the argument list */
Options options; /**< Option configuration container */ Options options; /** Option configuration container */
HelpFormatter formatter; /**< An extra helper for -h */ HelpFormatter formatter; /** An extra helper for -h */
Com com; /**< Reference to basic configuration module */ Com com; /** Reference to basic configuration module */
Log log; /**< Reference to basig logging module */ Log log; /** Reference to basic logging module */
/** @} */ /** @} */
/** /**
@ -198,12 +206,16 @@ public class VirtualModem {
} }
else if (line.hasOption("gps")) { else if (line.hasOption("gps")) {
byte[] code = line.getOptionValues("gps")[0].getBytes(); byte[] code = line.getOptionValues("gps")[0].getBytes();
GPS g = new GPS (com, log, code, GPS g = new GPS (
Integer.valueOf(line.getOptionValues("gps")[1]), com, log, code,
Integer.valueOf(line.getOptionValues("gps")[2]), Integer.valueOf(line.getOptionValues("gps")[1]),
Integer.valueOf(line.getOptionValues("gps")[3])); Integer.valueOf(line.getOptionValues("gps")[2]),
Image im = new Image (com, log, null, Integer.valueOf(line.getOptionValues("gps")[3])
line.getOptionValues("gps")[4], 1); );
Image im = new Image (
com, log, null,
line.getOptionValues("gps")[4], 1
);
if (com.open()) { if (com.open()) {
g.caption(); g.caption();
im.code(g.run().getBytes()); im.code(g.run().getBytes());