|
@@ -118,21 +118,6 @@ public class DataSenderService extends Service {
|
|
|
private VentiAPI mVentiAPI = null;
|
|
|
private VentiControl mVentiControl;
|
|
|
public Ventilation mVentilation = new Ventilation();
|
|
|
- private VentilData mVentilData = null;
|
|
|
-
|
|
|
- private class VentilData {
|
|
|
- DataClasses.Venti VentilStatus;
|
|
|
- int Type; // 현산,LH,후드
|
|
|
- int[] TimerTable;
|
|
|
-
|
|
|
- public VentilData(int nType) {
|
|
|
- VentilStatus = new DataClasses.Venti();
|
|
|
- Type = nType;
|
|
|
- if (Type == API_Menu.SubMenuCtrl.ChangAir_LH) TimerTable = new int[]{0, 30, 60, 90};
|
|
|
- else TimerTable = new int[]{0, 10, 20, 30, 60, 120, 180, 240};
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
public static class Ventilation {
|
|
|
/**
|
|
|
* ON/OFF 상태
|
|
@@ -230,11 +215,6 @@ public class DataSenderService extends Service {
|
|
|
private Sdb_LivingRoomLightAPI mSdb_LivingRoomLightAPI; // 거실 조명
|
|
|
private SdbAPI mSdbAPI; // 각방 조명/콘센트
|
|
|
|
|
|
- //센서 저장 값
|
|
|
- boolean bIn_Motion = false;
|
|
|
- boolean bOut_Motion = false;
|
|
|
- boolean bMagnetic_Motion = false;
|
|
|
-
|
|
|
// 에너지 미터
|
|
|
public EMeter mEMeter = null;
|
|
|
|
|
@@ -253,21 +233,6 @@ public class DataSenderService extends Service {
|
|
|
public boolean[] ConMode = new boolean[]{false, false, false, false};
|
|
|
}
|
|
|
|
|
|
- // 에너지 미터의 조명/콘센트 값을 저장한다.
|
|
|
- public SDBEMInfo mSDBEMInfo = null;
|
|
|
-
|
|
|
- public class SDBEMInfo {
|
|
|
- int nEachRoomCnt = 6;
|
|
|
- public SpaceInfo LivingRoom;
|
|
|
- public SpaceInfo[] EachRoom = new SpaceInfo[nEachRoomCnt];
|
|
|
-
|
|
|
- public SDBEMInfo() {
|
|
|
- LivingRoom = new SpaceInfo();
|
|
|
- for (int i = 0; i < nEachRoomCnt; i++)
|
|
|
- EachRoom[i] = new SpaceInfo();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
public class SpaceInfo {
|
|
|
public boolean[] Light_bOnOff = new boolean[]{false, false, false, false, false, false};
|
|
|
public byte[] Light_hDim = new byte[]{(byte) 0x0A, (byte) 0x0A, (byte) 0x0A, (byte) 0x0A, (byte) 0x0A, (byte) 0x0A};
|
|
@@ -286,9 +251,6 @@ public class DataSenderService extends Service {
|
|
|
public DataSenderService() {
|
|
|
}
|
|
|
|
|
|
- public static final String INTENT_ACTION = "com.icontrols.service.data.IDataSenderService";
|
|
|
- private static final int MSG_WORK = 1;
|
|
|
-
|
|
|
@Override
|
|
|
public IBinder onBind(Intent intent) {
|
|
|
return null;
|
|
@@ -954,8 +916,6 @@ public class DataSenderService extends Service {
|
|
|
return mHeatingControl.ctrlDeviceUnitStatus(RoomIdx, DeiveMode, 0);
|
|
|
}
|
|
|
|
|
|
- private WpadSound mSound;
|
|
|
-
|
|
|
private int setOnOff_BadRoom_EnergyMeter(int index) {
|
|
|
boolean OnOff = false;
|
|
|
for (int i = 0; i < mKnxData.BadRoom_EnergyMeter[index].Info.LightCount; i++) {
|
|
@@ -970,8 +930,6 @@ public class DataSenderService extends Service {
|
|
|
}
|
|
|
}
|
|
|
int ret = mKnxAPI.SetLightOnOff((byte) (index), define.DEVICE_ALL_OR_NOTHING, OnOff);
|
|
|
- //if (ret >= 0) mSound.Play(WpadSound.SND.effect.TOUCH_LATCHED);
|
|
|
- //else mSound.Play(WpadSound.SND.effect.TOUCH_UNLATCHED);
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -989,8 +947,6 @@ public class DataSenderService extends Service {
|
|
|
}
|
|
|
}
|
|
|
int ret = mKnxAPI.SetLightSwitchOnOff((byte) (index), define.DEVICE_ALL_OR_NOTHING, OnOff);
|
|
|
- //if (ret >= 0) mSound.Play(WpadSound.SND.effect.TOUCH_LATCHED);
|
|
|
- //else mSound.Play(WpadSound.SND.effect.TOUCH_UNLATCHED);
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -1042,8 +998,6 @@ public class DataSenderService extends Service {
|
|
|
Log.e(TAG, "[Device_LightOnOff] - Error (" + ret + ") ErrorCode = " + mKnxAPI.ErrorCode.ErrStr());
|
|
|
}
|
|
|
}
|
|
|
- //if (ret >= 0) mSound.Play(WpadSound.SND.effect.TOUCH_LATCHED);
|
|
|
- //else mSound.Play(WpadSound.SND.effect.TOUCH_UNLATCHED);
|
|
|
} catch (RuntimeException re) {
|
|
|
LogUtil.errorLogInfo("", TAG, re);
|
|
|
ret = JSON.ERROR.RuntimeException;
|
|
@@ -1115,8 +1069,6 @@ public class DataSenderService extends Service {
|
|
|
Log.e(TAG, "[Device_LightOnOff] - Error (" + ret + ") ErrorCode = " + mKnxAPI.ErrorCode.ErrStr());
|
|
|
}
|
|
|
}
|
|
|
- //if (ret >= 0) mSound.Play(WpadSound.SND.effect.TOUCH_LATCHED);
|
|
|
- //else mSound.Play(WpadSound.SND.effect.TOUCH_UNLATCHED);
|
|
|
} catch (RuntimeException re) {
|
|
|
LogUtil.errorLogInfo("", TAG, re);
|
|
|
ret = JSON.ERROR.RuntimeException;
|
|
@@ -2235,7 +2187,6 @@ public class DataSenderService extends Service {
|
|
|
//handler.sendEmptyMessage(MSG_WORK);
|
|
|
super.onCreate();
|
|
|
mContext = this;
|
|
|
- this.mSound = new WpadSound(this);
|
|
|
// 3.1. mWallPadAPI 생성
|
|
|
int OPERATION_MODE = Common.MODE;
|
|
|
if (OPERATION_MODE == Common.MODE_NOMAL) {
|
|
@@ -2257,7 +2208,6 @@ public class DataSenderService extends Service {
|
|
|
|
|
|
registerEventAlarmBr();
|
|
|
mKnxData = new Data_KnxLiv();
|
|
|
- mSDBEMInfo = new SDBEMInfo();
|
|
|
deviceApiLoad();
|
|
|
setIPInfo();
|
|
|
thread = new ServerThread();
|
|
@@ -2307,7 +2257,7 @@ public class DataSenderService extends Service {
|
|
|
// KNX 분전반
|
|
|
mKnxAPI = mWallPadAPI.Get_KnxController();
|
|
|
if (mKnxAPI != null) {
|
|
|
- mLightControl = new LightControl(mKnxAPI, mContext);
|
|
|
+ mLightControl = new LightControl(mKnxAPI);
|
|
|
mKnxAPI.Refresh(KnxAPI.DEVICE_INDEX.ALL, (byte) define.DEVICE_ALL_OR_NOTHING);
|
|
|
// 4. Data Copy
|
|
|
mKnxData.MasterController = mKnxAPI.data.MasterController;
|
|
@@ -2373,7 +2323,7 @@ public class DataSenderService extends Service {
|
|
|
if (retVentil != null && retVentil[0] == 1) {
|
|
|
mVentiAPI = mWallPadAPI.Get_VentiController();
|
|
|
if (mVentiAPI != null) {
|
|
|
- mVentiControl = new VentiControl(mVentiAPI, mContext);
|
|
|
+ mVentiControl = new VentiControl(mVentiAPI);
|
|
|
mVentiAPI.Refresh(false);
|
|
|
// 3. Data Copy
|
|
|
//mVentilData.VentilStatus = mVentiAPI.data;
|
|
@@ -2386,7 +2336,7 @@ public class DataSenderService extends Service {
|
|
|
mHeatingV2API = mWallPadAPI.Get_HeatingV2Controller();
|
|
|
|
|
|
if (mHeatingV2API != null) {
|
|
|
- mHeatingControl = new HeatingControl(mHeatingV2API, mContext);
|
|
|
+ mHeatingControl = new HeatingControl(mHeatingV2API);
|
|
|
mHeatingV2API.Refresh(HeatingV2API.REFRESH_IDX.ALL, false);
|
|
|
int roomCount = mHeatingV2API.data.Device.info.RoomCount;
|
|
|
}
|
|
@@ -2421,89 +2371,6 @@ public class DataSenderService extends Service {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void saveChangedEnergyMeterStatus() {
|
|
|
- try {
|
|
|
- for (int i = 0; i < mEnergyMeterAPI.data.RoomCnt; i++) {
|
|
|
- // 각 에너지미터에 대한 조명 갯수
|
|
|
- for (int j = 0; j < mEnergyMeterAPI.data.Em.eachRoom[i].LightCnt; j++) {
|
|
|
- mSDBEMInfo.EachRoom[i].Light_bOnOff[j] = mEnergyMeterAPI.data.Em.eachRoom[i].LightOnOff[j];
|
|
|
- }
|
|
|
- Log.d(TAG, "mEnergyMeterAPI.data.Em.EachRoom[i].ConCnt : " + mEnergyMeterAPI.data.Em.eachRoom[i].ConCnt);
|
|
|
- // 각 에너지미터에 대한 콘센트 갯수
|
|
|
- int concentCount = mEnergyMeterAPI.data.Em.eachRoom[i].ConCnt;
|
|
|
-
|
|
|
- // 상시 콘센트는 상태를 저장하지 않기 때문에 에러..
|
|
|
- // 상시 콘센트는 제어되지 않으므로 3번에 대한건 처러 하지 않는다.
|
|
|
- if (mEnergyMeterAPI.data.Em.eachRoom[i].ConCnt >= 3) {
|
|
|
- concentCount = 2;
|
|
|
- }
|
|
|
-
|
|
|
- for (int j = 0; j < concentCount; j++) {
|
|
|
- mEMeter.eachRoom[i].concentStatus[j] = mEnergyMeterAPI.data.Em.eachRoom[i].ConOnOff[j];
|
|
|
- mEMeter.eachRoom[i].ConMode[j] = mEnergyMeterAPI.data.Em.eachRoom[i].ConMode;
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- Log.e(TAG, "[Exception] saveChangedEnergyMeterStatus()");
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void saveChangedSdbStatus_EachOutlet() {
|
|
|
- try {
|
|
|
- for (int i = 0; i < mSdbAPI.data.BadRoom_Em_Count; i++) {
|
|
|
- mSdbAPI.Refresh(SdbAPI.DEVICE_INDEX.ENERGY_METER, (byte) i);
|
|
|
- for (int j = 0; j < mSdbAPI.data.BadRoom_EnergyMeter[i].Info.ConcentCount; j++) {
|
|
|
- // 각방 EM 콘센트 상태 업데이트
|
|
|
- mSDBEMInfo.EachRoom[i].Outlet_hOnOff[j] = mSdbAPI.data.BadRoom_EnergyMeter[i].Data.Concent[j].Data.CutOffConcent.Status;
|
|
|
- mSDBEMInfo.EachRoom[i].Outlet_hCutoff[j] = mSdbAPI.data.BadRoom_EnergyMeter[i].Data.Concent[j].Data.CutOffConcent.Mode;
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- Log.e(TAG, "[Exception] saveChangedSdbStatus_EachOutlet()");
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void saveChangedSdbStatus_LivingOutlet() {
|
|
|
- try {
|
|
|
- mSdbAPI.Refresh(SdbAPI.DEVICE_INDEX.ENERGY_METER, EM_INDEX_LIVING);
|
|
|
- for (int i = 0; i < mSdbAPI.data.LivingRoom_EnergyMeter.Info.ConcentCount; i++) {
|
|
|
- // 거실 EM 콘센트 상태 업데이트
|
|
|
- mSDBEMInfo.LivingRoom.Outlet_hOnOff[i] = mSdbAPI.data.LivingRoom_EnergyMeter.Data.Concent[i].Data.CutOffConcent.Status;
|
|
|
- mSDBEMInfo.LivingRoom.Outlet_hCutoff[i] = mSdbAPI.data.LivingRoom_EnergyMeter.Data.Concent[i].Data.CutOffConcent.Mode;
|
|
|
- }
|
|
|
- for (int i = 0; i < mSdbAPI.data.LivingRoom_EnergyMeter.Info.LightCount; i++) {
|
|
|
- // 거실 EM 콘센트 상태 업데이트
|
|
|
- mSDBEMInfo.LivingRoom.Light_hDim[i] = mSdbAPI.data.LivingRoom_EnergyMeter.Data.LedLight[i].Data.Dimming;
|
|
|
- mSDBEMInfo.LivingRoom.Light_hColor[i] = mSdbAPI.data.LivingRoom_EnergyMeter.Data.LedLight[i].Data.Color;
|
|
|
- mSDBEMInfo.LivingRoom.Light_bOnOff[i] = mSdbAPI.data.LivingRoom_EnergyMeter.Data.LedLight[i].Data.OnOff;
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- Log.e(TAG, "[Exception] saveChangedSdbStatus_LivingOutlet()");
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void saveChangedSdbStatus_EachLight() {
|
|
|
- try {
|
|
|
- for (int i = 0; i < mSdbAPI.data.BadRoom_Em_Count; i++) {
|
|
|
- mSdbAPI.Refresh(SdbAPI.DEVICE_INDEX.ENERGY_METER, (byte) i);
|
|
|
- for (int j = 0; j < mSdbAPI.data.BadRoom_EnergyMeter[i].Info.LightCount; j++) {
|
|
|
- // 조명상태 업데이트
|
|
|
- mSDBEMInfo.EachRoom[i].Light_bOnOff[j] = mSdbAPI.data.BadRoom_EnergyMeter[i].Data.LedLight[j].Data.OnOff;
|
|
|
- mSDBEMInfo.EachRoom[i].Light_hDim[j] = mSdbAPI.data.BadRoom_EnergyMeter[i].Data.LedLight[j].Data.Dimming;
|
|
|
- mSDBEMInfo.EachRoom[i].Light_hColor[j] = mSdbAPI.data.BadRoom_EnergyMeter[i].Data.LedLight[j].Data.Color;
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- Log.e(TAG, "[Exception] saveChangedSdbStatus_EachLight()");
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
/*
|
|
|
* 환기 제어기기의 상태를 비교하여 데이터 수집 연동 서버로 전송한다.
|
|
|
* 변경된 상태는 백업한다.
|
|
@@ -2525,16 +2392,6 @@ public class DataSenderService extends Service {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- * 조명 제어기기의 상태를 비교하여 데이터 수집 연동 서버로 전송한다.
|
|
|
- * 변경된 상태는 백업한다.
|
|
|
- */
|
|
|
- /**
|
|
|
- * 거실에너지미터 INDEX
|
|
|
- */
|
|
|
- public static byte EM_INDEX_LIVING = (byte) 14;
|
|
|
- long before;
|
|
|
- boolean bSending = true;
|
|
|
|
|
|
public void checkChangedSdb(boolean bForce) {
|
|
|
try {
|
|
@@ -2545,11 +2402,6 @@ public class DataSenderService extends Service {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- * 난방 제어기기의 상태를 비교하여 데이터 수집 연동 서버로 전송한다.
|
|
|
- * 변경된 상태는 백업한다.
|
|
|
- */
|
|
|
-
|
|
|
/**
|
|
|
* 운전상태 정의
|
|
|
*/
|
|
@@ -2638,46 +2490,6 @@ public class DataSenderService extends Service {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- * 에너지미터의 조명과 콘센트의 상태를 비교하여 변경되었으면 데이터 수집 연동 서버로 메세지를 전송한다.
|
|
|
- * 변경된 상태는 백업한다.
|
|
|
- */
|
|
|
-
|
|
|
- /**
|
|
|
- * 디바이스 API 를 Load 한다.
|
|
|
- *
|
|
|
- * @param wpapi - 생성시 전달받은 WallPadAPI
|
|
|
- * @return (int) - >=0 : 성공, <0 : 실패
|
|
|
- */
|
|
|
- private int loadRealtimemeterAPI(WallPadAPI wpapi) {
|
|
|
- Log.i(TAG, "[loadRealtimemeterAPI] - Start");
|
|
|
-
|
|
|
- // 2. wpapi Check
|
|
|
- if (wpapi == null) {
|
|
|
- Log.e(TAG, "[loadRealtimemeterAPI] - wpapi is null");
|
|
|
- return -2;
|
|
|
- }
|
|
|
-
|
|
|
- // 3. Load API
|
|
|
- Log.i(TAG, "[loadRealtimemeterAPI] - Step1 : RemoteMeter API Load...");
|
|
|
- try {
|
|
|
- mRealTimeMeterAPI = wpapi.Get_RealTimeMeterController();
|
|
|
- } catch (Exception e) {
|
|
|
- Log.e(TAG, "[loadRealtimemeterAPI] - [Exception Error] wpapi.Get_RealTimeMeterController");
|
|
|
- e.printStackTrace();
|
|
|
- return -100;
|
|
|
- }
|
|
|
-
|
|
|
- if (mRealTimeMeterAPI == null) {
|
|
|
- Log.e(TAG, "[loadRealtimemeterAPI] - mRealTimeMeterAPI is null");
|
|
|
- return -4;
|
|
|
- }
|
|
|
-
|
|
|
- Log.i(TAG, "[loadRealtimemeterAPI] - OK");
|
|
|
-
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 제어기 상태를 가져온다.
|
|
|
*
|