package art.servers.sosserver.controller.musatel;
|
|
import java.util.StringTokenizer;
|
|
public class MusatelProtocol
|
{
|
public static final int ACK_DEM_USE = 0x81;
|
public static final int ACK_DEM_SER = 0x82;
|
public static final int ACK_ENV_ALA = 0x83;
|
public static final int ORD_FON_ON = 0x41;
|
public static final int ORD_FON_OFF = 0x42;
|
public static final int ORD_TON_ON = 0x43;
|
public static final int ORD_TON_OFF = 0x44;
|
public static final int ORD_TST_FON = 0x45;
|
public static final int ORD_TST_MAN = 0x46;
|
public static final int ORD_ESC_HOR = 0x47;
|
public static final int ORD_ESC_IO = 0x48;
|
public static final int ORD_LEC_IO = 0x49;
|
public static final int ORD_VOZ_ON = 0x4A;
|
public static final int ORD_VOZ_OFF = 0x4B;
|
public static final int ORD_ADJ_VOL = 0x4C;
|
public static final int ORD_POS_ATE = 0x4D;
|
public static final int DEM_USE = 0x21;
|
public static final int DEM_SER = 0x22;
|
public static final int ENV_ALA = 0x23;
|
public static final int ACK_FON_ON = 0x84;
|
public static final int ACK_FON_OFF = 0x85;
|
public static final int ACK_TON_ON = 0x86;
|
public static final int ACK_TON_OFF = 0x87;
|
public static final int RES_TST_FON = 0x88;
|
public static final int RES_TST_MAN = 0x89;
|
public static final int ACK_ESC_HOR = 0x8A;
|
public static final int ACK_ESC_IO = 0x8B;
|
public static final int ACK_LEC_IO = 0x8C;
|
public static final int ACK_VOZ_ON = 0x8D;
|
public static final int ACK_ADJ_VOL = 0x8E;
|
public static final int P_MAS = 0x90;
|
public static final int P_ESC = 0x91;
|
public static final int L_ESP = 0x51;
|
public static final int L_FON = 0x52;
|
public static final int T_LLA = 0x53;
|
public static final int T_COM = 0x54;
|
public static final int MEM_FUE_SER = 0x55;
|
public static final int MEM_LLA_ESP = 0x56;
|
public static final int TST_OK = 0x57;
|
public static final int TST_FAL = 0x58;
|
public static final int RES_POS_ATE = 0x0F;
|
public static final int ORD_MOD_ON = 0x4E;
|
public static final int ACK_MOD_ON = 0xA0;
|
public static final int ORD_MOD_OFF = 0x4F;
|
public static final int ACK_MOD_OFF = 0xA1;
|
public static final int ORD_REN_ON = 0x60;
|
public static final int ACK_VOZ_OFF = 0x92;
|
public static final int ACK_REN_ON = 0x93;
|
public static final int ORD_ADJ_ATE = 0xE0;
|
public static final int ACK_ADJ_ATE = 0xF0;
|
public static final int ORD_ADJ_ATS = 0xE1;
|
public static final int ACK_ADJ_ATS = 0xF1;
|
public static final int ORD_POS_ATS = 0xE2;
|
public static final int RES_POS_ATS = 0xF2;
|
public static final int ORD_CONF_PER = 0xE3;
|
public static final int ACK_CONF_PER = 0xF3;
|
public static final int ORD_PARTICULAR = 0xC3;
|
public static final int ASIGNAR_CC = 0xB4;
|
public static final int NACK = 0x15;
|
public static final int OTRO_CC_ASIGNADO = 0x10;
|
|
|
|
|
|
|
public static byte[] getIpArray (String ip) throws Exception
|
{
|
byte[] addr = new byte[4];
|
StringTokenizer strtok = new StringTokenizer(ip, ".");
|
String s0 = strtok.nextToken();
|
String s1 = strtok.nextToken();
|
String s2 = strtok.nextToken();
|
String s3 = strtok.nextToken();
|
addr[0] = (byte)Integer.parseInt(s0);
|
addr[1] = (byte)Integer.parseInt(s1);
|
addr[2] = (byte)Integer.parseInt(s2);
|
addr[3] = (byte)Integer.parseInt(s3);
|
return(addr);
|
}
|
|
|
|
|
|
|
/******************************************************************************
|
* Compilation: javac CRC16CCITT
|
* Reads in a sequence of bytes and prints out its 16 bit
|
* Cylcic Redundancy Check (CRC-CCIIT 0xFFFF).
|
* 1 + x + x^5 + x^12 + x^16 is irreducible polynomial.
|
* % java CRC16-CCITT 123456789
|
* CRC16-CCITT = 29b1
|
******************************************************************************/
|
|
|
public static int CRC(byte[] data)
|
{
|
int crc = 0xFFFF;
|
int polynomial = 0x1021;
|
|
// byte[] testBytes = "123456789".getBytes("ASCII");
|
|
for (byte b : data)
|
{
|
for (int i = 0; i < 8; i++)
|
{
|
boolean bit = ((b >> (7-i) & 1) == 1);
|
boolean c15 = ((crc >> 15 & 1) == 1);
|
crc <<= 1;
|
if (c15 ^ bit) crc ^= polynomial;
|
}
|
}
|
|
crc &= 0xffff;
|
return crc;
|
}
|
|
|
|
}
|