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 } }