package com.sunvote.udptransfer;
import android.os.Environment;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
/**
* Created by Elvis on 2017/8/8.
* Email:Eluis@psunsky.com
* Description: 配置类
*/
public class Config {
/**
*
4001 PC 收数据
4002 Android 收数据
*/
public String serverIP = "" ;//192.168.0.181
public int serverUDPPort = 40001 ;
public int localUDPPort = 40002 ;
public String VERSION_CODE = "1.0.0.0";
private boolean canChangerServer = false;
public void setCanChangerServer(boolean canChangerServer) {
this.canChangerServer = canChangerServer;
}
public boolean isCanChangerServer() {
return canChangerServer;
}
public void saveInfo(){
File file =new File(Environment.getExternalStorageDirectory().getPath() + "/sunvote/serverip.txt");
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(file);
fileWriter.write(serverIP);
fileWriter.flush();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(fileWriter != null){
try {
fileWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
/**
* 当基站经过CHECK_ON_LINE_TIME时间后,变为离线模式
* 在此设置
*/
public long CHECK_ON_LINE_TIME = 10 * 1000 ;
/**
* 重复发送消息间隔时间
*/
public long REPEAT_INVERVAL_TIME = 2 * 1000 ;
private Config(){}
private static Config instance = new Config();
public static Config getInstance(){return instance;}
public int keepAliveInterval = 0;
public int networkConnectionTimeout = 0;
public void setSenseMode(SenseMode mode)
{
switch(mode)
{
case MODE_3S:
{
keepAliveInterval = 3000;// 3s
networkConnectionTimeout = 3000 * 3 + 1000;// 10s
break;
}
case MODE_10S:
keepAliveInterval = 10000;// 10s
networkConnectionTimeout = 10000 * 2 + 1000;// 21s
break;
case MODE_30S:
keepAliveInterval = 30000;// 30s
networkConnectionTimeout = 30000 * 2 + 1000;// 61s
break;
case MODE_60S:
keepAliveInterval = 60000;// 60s
networkConnectionTimeout = 60000 * 2 + 1000;// 121s
break;
case MODE_120S:
keepAliveInterval = 120000;// 120s
networkConnectionTimeout = 120000 * 2 + 1000;// 241s
break;
}
}
public enum SenseMode
{
/**
* 此模式下:
* * KeepAlive心跳问隔为3秒;
* * 10秒后未收到服务端心跳反馈即认为连接已断开(相当于连续3 个心跳间隔后仍未收到服务端反馈)。
*/
MODE_3S,
/**
* 此模式下:
* * KeepAlive心跳问隔为10秒;
* * 21秒后未收到服务端心跳反馈即认为连接已断开(相当于连续2 个心跳间隔后仍未收到服务端反馈)。
*/
MODE_10S,
/**
* 此模式下:
* * KeepAlive心跳问隔为30秒;
* * 61秒后未收到服务端心跳反馈即认为连接已断开(相当于连续2 个心跳间隔后仍未收到服务端反馈)。
*/
MODE_30S,
/**
* 此模式下:
* * KeepAlive心跳问隔为60秒;
* * 121秒后未收到服务端心跳反馈即认为连接已断开(相当于连续2 个心跳间隔后仍未收到服务端反馈)。
*/
MODE_60S,
/**
* 此模式下:
* * KeepAlive心跳问隔为120秒;
* * 241秒后未收到服务端心跳反馈即认为连接已断开(相当于连续2 个心跳间隔后仍未收到服务端反馈)。
*/
MODE_120S
}
}