package it.angelic.soulissclient;
import android.util.Log;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Random;
public class Constants {
public static final String TAG = "SoulissApp";
public static final int WATCH_ONLY_ID = 2;
public static final int PHONE_ONLY_ID = 3;
public static final int BOTH_ID = 4;
public static final String BOTH_PATH = "/both";
public static final String WATCH_ONLY_PATH = "/watch-only";
public static final String KEY_NOTIFICATION_ID = "notification-id";
public static final String ACTION_DISMISS
= "com.example.android.wearable.synchronizednotifications.DISMISS";
public static final String CUSTOM_INTENT_SOULISS_RAWDATA = "it.angelic.soulissclient.RAW_MACACO_DATA";
public static final String CUSTOM_INTENT_SOULISS_TIMEOUT = "it.angelic.soulissclient.RAW_TIMEOUT";
public static final String ACTION_OPEN_SOULISS = "it.angelic.soulissclient.OPEN_SOULISSAPP";
public static final String ACTION_SEND_COMMAND = "it.angelic.soulissclient.SEND_COMMAND";
public static final int SEC_IN_A_MIN = 60;
public static final int MSEC_IN_A_SEC = 1000;
public static final int MIN_IN_A_HOUR = 60;
public static final int MAX_USER_IDX = 0x64;
public static final int MAX_NODE_IDX = 0xFE;
public static final int MAX_HEALTH = 255;
public static final int ICON_REQUEST = 1;
public static final float[] roundedCorners = new float[]{5, 5, 5, 5, 5, 5, 5, 5};
public static final int sdkVersionNumber = Integer.valueOf(android.os.Build.VERSION.SDK_INT);
public static final SimpleDateFormat hourFormat = new SimpleDateFormat("HH:mm:ss", Locale.US);
public static final SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
public static final int TAG_INSERT_POINT = 1;
public static final String SOULISS_CONFIGURATIONS_KEY = "configArray";
public static final int AUTOCOMPLETE_THRESHOLD = 2;
public static final String EXTERNAL_EXP_FOLDER = "//Souliss";
public static final String DEMO_PUBLIC_IP = "79.1.194.142";
public static final String DEMO_LOCAL_IP = "10.14.10.77";
public static final int MY_PERMISSIONS_RECORD_AUDIO = 17;
public static final int MY_PERMISSIONS_ACCESS_COARSE_LOCATION = 18;
public static final int MY_PERMISSIONS_WRITE_EXTERNAL_STORAGE = 19;
public static final int MY_PERMISSIONS_READ_EXT_STORAGE = 56;//by asfodel
//public static SimpleDateFormat yearFormat = new SimpleDateFormat("yyyyMMdd");
public static final long POSITION_UPDATE_INTERVAL = 10 * 1000;//5 seconds
public static final long POSITION_UPDATE_MIN_DIST = 25;
public static final int GUI_UPDATE_INTERVAL = 5000;
public static final int VOICE_REQUEST_OK = 9876;
public static final int COMMAND_TIMED = 0;
// Interpretati come Calendar
public static final int COMMAND_COMEBACK_CODE = 1;
public static final int COMMAND_GOAWAY_CODE = 2;
public static final int COMMAND_TRIGGERED = 3;
//public static final int CHECK_STATUS_PAUSE_MSEC = 250;
//public static final long TEXT_SIZE_TITLE_OFFSET = 10;
public static final int COMMAND_SINGLE = 4;
//public static final int COMMAND_MASSIVE = 5;
// Interpretati come Calendar
public static final short COMMAND_FAKE_SCENE = -2;
public static final short MASSIVE_NODE_ID = -1;
public static final int CONNECTION_NONE = -1;
//Souliss Data Intent
public static final String CUSTOM_INTENT = "it.angelic.soulissclient.GOT_DATA";
static final String ACTION_SEND_SOULISS_COMMAND = "it.angelic.soulissclient.WEAR_VOICE_COMMAND";
static final int NOTIFICATION_ID = 3113;
private static final String[] ROM = {"X\u0305", "V\u0305", "M", "D", "C", "L", "X", "V", "I"};
private static final int MAX = 10000; // value of R[0], must be a power of 10
private static final int[][] DIGITS = {
{}, {0}, {0, 0}, {0, 0, 0}, {0, 1}, {1},
{1, 0}, {1, 0, 0}, {1, 0, 0, 0}, {0, 2}};
public static DecimalFormat twoDecimalFormat = new DecimalFormat("#.##");
public static DecimalFormat gpsDecimalFormat = new DecimalFormat("#.######");
public static final int POSITION_DEADZONE_METERS = 27;
public static Random random = new Random(new Date().getTime());
/**
* Utility per numeri Romani
*
* @param number
* @return
*/
public static String int2roman(int number) {
if (number < 0 || number >= MAX * 4) throw new IllegalArgumentException(
"int2roman: " + number + " is not between 0 and " + (MAX * 4 - 1));
if (number == 0) return "O";
StringBuilder sb = new StringBuilder();
int i = 0, m = MAX;
while (number > 0) {
int[] d = DIGITS[number / m];
for (int n : d) sb.append(ROM[i - n]);
number %= m;
m /= 10;
i += 2;
}
return sb.toString();
}
public static class Typicals {
public static final String TAG = "SoulissApp:Typicals";
/**
* @author Ale
*/
@Override
public String toString() {
StringBuilder ret = new StringBuilder();
Field[] consts = getClass().getDeclaredFields();
for (Field aConst : consts) {
if ((aConst.getModifiers() & (Modifier.FINAL | Modifier.STATIC)) != 0) {
try {
ret.append(aConst.getName());
ret.append(" = ");
ret.append(aConst.get(null)).append("<br/>");
} catch (Exception e) {
Log.e(it.angelic.soulissclient.Constants.TAG, "Can't build parameter's list" + e);
}
}
}
return ret.toString();
}
/**
* /** // Defines for Typicals C LIBRARY
* <p/>
* #define Souliss_T31 31 // Temperature control #define Souliss_T41 41 //
* Anti-theft integration (Main) #define Souliss_T42 42 // Anti-theft
* integration (Peer)
*/
public static final short Souliss_T_empty = 0;
public static final short Souliss_T_related = 0xFF;
// Defines for Typicals
public static final short Souliss_T11 = 0x11;
public static final short Souliss_T12 = 0x12;
public static final short Souliss_T13 = 0x13;
public static final short Souliss_T14 = 0x14;
public static final short Souliss_T15_RGB = 0x15;// RGB Light
public static final short Souliss_T16 = 0x16;
public static final short Souliss_T18 = 0x18;
public static final short Souliss_T19 = 0x19;
public static final short Souliss_T1A = 0x1A;
public static final short Souliss_T21 = 0x21;// Motorized devices with limit
// switches
public static final short Souliss_T22 = 0x22;// Motorized devices with limit
// switches and middle
// position
public static final short Souliss_T31 = 0x31;//HEATING
public static final short Souliss_T32_IrCom_AirCon = 0x32;
public static final short Souliss_T42_Antitheft_Group = 0x40; // Anti-theft
// group
// (used w/
// massive
// commands)
public static final short Souliss_T41_Antitheft_Main = 0x41; // Anti-theft
// integration
// (Main)
public static final short Souliss_T42_Antitheft_Peer = 0x42; // Anti-theft
// integration
// (Peer)
public static final short Souliss_T43_Antitheft_LocalPeer = 0x43;
/*
* Souliss_Logic_T52 - Temperature measure (-20, +50) °C Souliss_Logic_T53 -
* Humidity measure (0, 100) % Souliss_Logic_T54 - Light Sensor (0, 40) kLux
* Souliss_Logic_T55 - Voltage (0, 400) V Souliss_Logic_T56 - Current (0,
* 25) A Souliss_Logic_T57 - Power (0, 6500) W Souliss_Logic_T58 - Pressure
* measure (0, 1500) hPa
*/
public static final short Souliss_T51 = 0x51;
public static final short Souliss_T52_TemperatureSensor = 0x52;
public static final short Souliss_T53_HumiditySensor = 0x53;
public static final short Souliss_T54_LuxSensor = 0x54;
public static final short Souliss_T55_VoltageSensor = 0x55;
public static final short Souliss_T56_CurrentSensor = 0x56;
public static final short Souliss_T57_PowerSensor = 0x57;
public static final short Souliss_T58_PressureSensor = 0x58;
public static final short Souliss_T61 = 0x61; // Generic
public static final short Souliss_T62 = 0x62; // Temperature measure (-20, +50) °C
public static final short Souliss_T63 = 0x63; // Humidity measure (0, 100) %
public static final short Souliss_T64 = 0x64; // Light Sensor (0, 40) kLux
public static final short Souliss_T65 = 0x65; // Voltage (0, 400) V
public static final short Souliss_T66 = 0x66; // Current (0, 25) A
public static final short Souliss_T67 = 0x67; // Power (0, 6500) W
public static final short Souliss_T68 = 0x68; // Pressure measure (0, 1500) hPa
// customized (remote) AirCon commands
public static final int Souliss_T_IrCom_AirCon_Pow_On = 0x8FFE;
// #define Souliss_T3n_AirCon_OnCmd 0xF0
// #define Souliss_T3n_AirCon_OffCmd 0xFC
// #define Souliss_T3n_AirCon_RstCmd 0x00
// #define Souliss_T3n_AirCon_Normal 0x71
// #define Souliss_T3n_AirCon_Eco 0x01
// #define Souliss_T3n_AirCon_Turbo 0x11
public static final int Souliss_T_IrCom_AirCon_Pow_Auto_20 = 0x8FFD;
public static final int Souliss_T_IrCom_AirCon_Pow_Auto_24 = 0x8FFE;
public static final int Souliss_T_IrCom_AirCon_Pow_Cool_18 = 0x807B;
public static final int Souliss_T_IrCom_AirCon_Pow_Cool_22 = 0x8079;
public static final int Souliss_T_IrCom_AirCon_Pow_Cool_26 = 0x807A;
public static final int Souliss_T_IrCom_AirCon_Pow_Fan = 0x8733;
public static final int Souliss_T_IrCom_AirCon_Pow_Dry = 0x87BE;
public static final int Souliss_T_IrCom_AirCon_Pow_Off = 0x70FE;
public static final short Souliss_T_IrCom_AirCon_temp_16C = 0xF;
// Souliss Aircon Temperature
public static final short Souliss_T_IrCom_AirCon_temp_17C = 0x7;
public static final short Souliss_T_IrCom_AirCon_temp_18C = 0xB;
public static final short Souliss_T_IrCom_AirCon_temp_19C = 0x3;
public static final short Souliss_T_IrCom_AirCon_temp_20C = 0xD;
public static final short Souliss_T_IrCom_AirCon_temp_21C = 0x5;
public static final short Souliss_T_IrCom_AirCon_temp_22C = 0x9;
public static final short Souliss_T_IrCom_AirCon_temp_23C = 0x1;
public static final short Souliss_T_IrCom_AirCon_temp_24C = 0xE;
public static final short Souliss_T_IrCom_AirCon_temp_25C = 0x6;
public static final short Souliss_T_IrCom_AirCon_temp_26C = 0xA;
public static final short Souliss_T_IrCom_AirCon_temp_27C = 0x2;
public static final short Souliss_T_IrCom_AirCon_temp_28C = 0xC;
public static final short Souliss_T_IrCom_AirCon_temp_29C = 0x4;
public static final short Souliss_T_IrCom_AirCon_temp_30C = 0x8;
public static final short Souliss_T_IrCom_AirCon_Fun_Auto = 0xF;
// Souliss conditioner Function
public static final short Souliss_T_IrCom_AirCon_Fun_Dry = 0xB;
public static final short Souliss_T_IrCom_AirCon_Fun_Fan = 0x3;
public static final short Souliss_T_IrCom_AirCon_Fun_Heat = 0xD;
public static final short Souliss_T_IrCom_AirCon_Fun_Cool = 0x7;
public static final short Souliss_T_IrCom_AirCon_Fan_Auto = 0x7;
// #define Souliss_T3n_AirCon_Opt1 0x2D
// #define Souliss_T3n_AirCon_Opt2 0x77
public static final short Souliss_T_IrCom_AirCon_Fan_High = 0x2;
public static final short Souliss_T_IrCom_AirCon_Fan_Medium = 0x6;
public static final short Souliss_T_IrCom_AirCon_Fan_Low = 0x5;
// optional switches. May be used to toggle
// custom aircon functions as air deflector, ionizer, turbomode, etc.
public static final short Souliss_T_IrCom_AirCon_Opt1 = 0x2D;
public static final short Souliss_T_IrCom_AirCon_Opt2 = 0x77;
public static final short Souliss_T_IrCom_AirCon_Reset = 0x00;
// General defines for T1n
public static final short Souliss_T1n_ToogleCmd = 0x01;
public static final short Souliss_T1n_OnCmd = 0x02;
public static final short Souliss_T1n_OffCmd = 0x04;
public static final short Souliss_T1n_AutoCmd = 0x08;
public static final short Souliss_T1n_Timed = 0x30;
public static final short Souliss_T1n_RstCmd = 0x00;
public static final short Souliss_T1n_OnCoil = 0x01;
public static final short Souliss_T1n_OffCoil = 0x00;
public static final short Souliss_T1n_OnCoil_Auto = 0xF1;
public static final short Souliss_T1n_OffCoil_Auto = 0xF0;
public static final short Souliss_T1n_Set = 0x22; // Set a state
public static final short Souliss_T1n_BrightUp = 0x10; // Increase Light
public static final short Souliss_T1n_BrightDown = 0x20; // Decrease Light
public static final short Souliss_T1n_Flash = 0x21; // Flash Light
public static final short Souliss_T1n_OnFeedback = 0x23;
public static final short Souliss_T1n_OffFeedback = 0x24;
public static final long Souliss_T16_Red = 0x22FF0000; // Set a state
public static final long Souliss_T16_Green = 0x2200FF00;
public static final long Souliss_T16_Blue = 0x220000FF;
public static final long Souliss_T18_Pulse = 0xA1;
public static final short Souliss_T19_Min = 0x2255; // 85 Dec, un terzo
public static final short Souliss_T19_Med = 0x22AA; // 170 Dec
public static final short Souliss_T19_Max = 0x22FF; // Set a state
/*
* IR RGB Typical
*/
public static final short Souliss_T1n_RGB_OnCmd = 0x1;
public static final short Souliss_T1n_RGB_OffCmd = 0x9;
// Souliss RGB main colours
public static final short Souliss_T1n_RGB_R = 0x2;
public static final short Souliss_T1n_RGB_G = 0x3;
public static final short Souliss_T1n_RGB_B = 0x4;
public static final short Souliss_T1n_RGB_W = 0x5;
// Souliss RGB Controls
public static final short Souliss_T_IrCom_RGB_bright_up = 0x6;
public static final short Souliss_T_IrCom_RGB_bright_down = 0x7;
// MODES;
public static final short Souliss_T_IrCom_RGB_mode_flash = 0xA1;
public static final short Souliss_T_IrCom_RGB_mode_strobe = 0xA2;
public static final short Souliss_T_IrCom_RGB_mode_fade = 0xA3;
public static final short Souliss_T_IrCom_RGB_mode_smooth = 0xA4;
public static final short Souliss_T1n_RGB_R2 = 0xB1;
public static final short Souliss_T1n_RGB_R3 = 0xB2;
public static final short Souliss_T1n_RGB_R4 = 0xB3;
public static final short Souliss_T1n_RGB_R5 = 0xB4;
public static final short Souliss_T1n_RGB_G2 = 0xC1;
public static final short Souliss_T1n_RGB_G3 = 0xC2;
public static final short Souliss_T1n_RGB_G4 = 0xC3;
public static final short Souliss_T1n_RGB_G5 = 0xC4;
public static final short Souliss_T1n_RGB_B2 = 0xD1;
public static final short Souliss_T1n_RGB_B3 = 0xD2;
public static final short Souliss_T1n_RGB_B4 = 0xD3;
public static final short Souliss_T1n_RGB_B5 = 0xD4;
public static final short Souliss_T1n_RGB_RstCmd = 0x00;
// Defines for Typical 2n
public static final short Souliss_T2n_CloseCmd = 0x01;
public static final short Souliss_T2n_OpenCmd = 0x02;
public static final short Souliss_T2n_StopCmd = 0x04;
public static final short Souliss_T2n_ToogleCmd = 0x08;
public static final short Souliss_T2n_RstCmd = 0x00;
public static final short Souliss_T2n_Timer_Val = 0x1F;
public static final short Souliss_T2n_Timer_Off = 0x10;
public static final short Souliss_T2n_LimSwitch_Close = 0x08;
public static final short Souliss_T2n_LimSwitch_Open = 0x10;
public static final short Souliss_T2n_NoLimSwitch = 0x20;
public static final short Souliss_T2n_Coil_Close = 0x01;
public static final short Souliss_T2n_Coil_Open = 0x02;
public static final short Souliss_T2n_Coil_Stop = 0x03;
public static final short Souliss_T2n_Coil_Off = 0x00;
// General defines for T3n
public static final short Souliss_T3n_IncSetPoint = 0x01;
public static final short Souliss_T3n_DecSetPoint = 0x02;
public static final short Souliss_T3n_AsMeasured = 0x03;
public static final short Souliss_T3n_Cooling = 0x04;
public static final short Souliss_T3n_Heating = 0x05;
public static final short Souliss_T3n_FanOff = 0x06;
public static final short Souliss_T3n_FanLow = 0x07;
public static final short Souliss_T3n_FanMed = 0x08;
public static final short Souliss_T3n_FanHigh = 0x09;
public static final short Souliss_T3n_FanAuto = 0x0A;
public static final short Souliss_T3n_FanManual = 0x0B;
public static final short Souliss_T3n_Set = 0x0C;
public static final short Souliss_T3n_ShutOff = 0x0D;
// General defines for T4n
public static final short Souliss_T4n_Alarm = 0x01; // Alarm Condition
// Detected (Input)
public static final short Souliss_T4n_RstCmd = 0x00;
public static final short Souliss_T4n_ReArm = 0x03; // Silence and Arm
// Command
public static final short Souliss_T4n_NotArmed = 0x04; // Anti-theft not
// Armed Command
public static final short Souliss_T4n_Armed = 0x05; // Anti-theft Armed
// Command
public static final short Souliss_T4n_Antitheft = 0x01; // Anti-theft Armed
// Feedback
public static final short Souliss_T4n_NoAntitheft = 0x00; // Anti-theft not
// Armed
// Feedback
public static final short Souliss_T4n_InAlarm = 0x03; // Anti-theft in Alarm
public static final short Souliss_RstCmd = 0x00;
public static final short Souliss_NOTTRIGGED = 0x00;
public static final short Souliss_TRIGGED = 0x01;
}
/**
* Network constants
*
* @author Ale
*/
public static class Net {
public static final String TAG = "SoulissApp";
public static final int DEFAULT_SOULISS_PORT = 230;
public static final int SERVERPORT = 23000;
public static final int WEB_SERVER_PORT = 8080;
public static final String BROADCASTADDR = "255.255.255.255";
public static final byte Souliss_UDP_function_force = 51;
public static final byte Souliss_UDP_function_force_massive = 52;
public static final byte Souliss_UDP_function_subscribe = 0x21;
public static final byte Souliss_UDP_function_poll = 0x27;
public static final byte Souliss_UDP_function_poll_resp = 0x37;
public static final byte Souliss_UDP_function_subscribe_resp = 0x31;
public static final byte Souliss_UDP_function_subscribe_data = 0x15;
public static final byte Souliss_UDP_function_typreq = 0x22;
public static final byte Souliss_UDP_function_typreq_resp = 0x32;
public static final byte Souliss_UDP_function_healthReq = 0x25;
public static final byte Souliss_UDP_function_health_resp = 0x35;
public static final byte Souliss_UDP_function_ping = 0x8;
public static final byte Souliss_UDP_function_ping_resp = 0x18;
public static final byte Souliss_UDP_function_broadcast_configure = 0x2D;
public static final byte Souliss_UDP_function_broadcast_configure_wifissid = 0x2E;
public static final byte Souliss_UDP_function_broadcast_configure_wifipass = 0x2F;
//public static final byte Souliss_UDP_function_notify_err = 0x83;
public static final byte Souliss_UDP_function_ping_bcast = 0x28;
public static final byte Souliss_UDP_function_ping_bcast_resp = 0x38;
public static final int Souliss_UDP_function_db_struct = 0x26;
public static final int Souliss_UDP_function_db_struct_resp = 0x36;
public static final Byte[] PING_PAYLOAD = {Souliss_UDP_function_ping, 0, 0, 0, 0};
public static final Byte[] PING_BCAST_PAYLOAD = {Souliss_UDP_function_ping_bcast, 0, 0, 0, 0};
public static final Byte[] DBSTRUCT_PAYLOAD = {Souliss_UDP_function_db_struct, 0, 0, 0, 0};
//WEBSERVER
public static final String PREF_SERVER_PORT = "prefServerPort";
}
}