|
@@ -93,6 +93,7 @@ import java.io.InputStream;
|
|
|
import java.io.InputStreamReader;
|
|
|
import java.net.ServerSocket;
|
|
|
import java.net.Socket;
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
@@ -3428,7 +3429,22 @@ public class iMapServer extends Service {
|
|
|
imapsvrlog( "Socket read end accept </imap>\n"+strRcvMSG);
|
|
|
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
|
|
DocumentBuilder builder = factory.newDocumentBuilder();
|
|
|
- InputStream istream = new ByteArrayInputStream(strRcvMSG.getBytes());
|
|
|
+
|
|
|
+ //jglee - 2024.11.07 여기서 utf-16 체크하기
|
|
|
+ boolean isutf16 = strRcvMSG.toLowerCase().contains("utf-16");
|
|
|
+ byte[] inputdata = null;
|
|
|
+ if(isutf16)
|
|
|
+ {
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
|
|
+ inputdata = strRcvMSG.getBytes(StandardCharsets.UTF_16);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ inputdata = strRcvMSG.getBytes();
|
|
|
+ }
|
|
|
+
|
|
|
+ InputStream istream = new ByteArrayInputStream(inputdata);
|
|
|
doc = builder.parse(istream);
|
|
|
Element elelist = doc.getDocumentElement();
|
|
|
NodeList items = elelist.getElementsByTagName("service");
|
|
@@ -3635,7 +3651,7 @@ public class iMapServer extends Service {
|
|
|
}
|
|
|
else if (cmd.equalsIgnoreCase("remote_access_livinglight")) {
|
|
|
if (ModelType == MODEL_TYPE.IHN_1020GL || ModelType == MODEL_TYPE.IHN_1010GL || ModelType == MODEL_TYPE.IHN_1010GL_I
|
|
|
- || ModelType == Version.MODEL_TYPE.IHN_1010GL_I_2443 || ModelType == Version.MODEL_TYPE.IHN_1010GL_I_6410) {
|
|
|
+ || ModelType == MODEL_TYPE.IHN_1010GL_I_2443 || ModelType == MODEL_TYPE.IHN_1010GL_I_6410) {
|
|
|
retXML = iCMDProc_I_LightControl(doc);
|
|
|
}
|
|
|
else {
|
|
@@ -3643,13 +3659,13 @@ public class iMapServer extends Service {
|
|
|
}
|
|
|
}
|
|
|
else if (cmd.equalsIgnoreCase("remote_access_electric")) {
|
|
|
- if (ModelType == Version.MODEL_TYPE.IHN_D101 || ModelType == Version.MODEL_TYPE.IHN_D101_I
|
|
|
- || ModelType == Version.MODEL_TYPE.IHN_D101K || ModelType == Version.MODEL_TYPE.IHN_D101K_I
|
|
|
+ if (ModelType == MODEL_TYPE.IHN_D101 || ModelType == MODEL_TYPE.IHN_D101_I
|
|
|
+ || ModelType == MODEL_TYPE.IHN_D101K || ModelType == MODEL_TYPE.IHN_D101K_I
|
|
|
|| ModelType == MODEL_TYPE.IHN_D101_I_OCF) {
|
|
|
retXML = iCMDProcSDPConcentControl(doc);
|
|
|
}
|
|
|
else if (ModelType == MODEL_TYPE.IHN_1020GL || ModelType == MODEL_TYPE.IHN_1010GL || ModelType == MODEL_TYPE.IHN_1010GL_I
|
|
|
- || ModelType == Version.MODEL_TYPE.IHN_1010GL_I_2443 || ModelType == Version.MODEL_TYPE.IHN_1010GL_I_6410) {
|
|
|
+ || ModelType == MODEL_TYPE.IHN_1010GL_I_2443 || ModelType == MODEL_TYPE.IHN_1010GL_I_6410) {
|
|
|
retXML = iCMDProcEnergyMeterConcentControl(doc);
|
|
|
}
|
|
|
else {
|
|
@@ -3673,7 +3689,7 @@ public class iMapServer extends Service {
|
|
|
}
|
|
|
else if (cmd.equalsIgnoreCase("remote_access_light")) {
|
|
|
if (ModelType == MODEL_TYPE.IHN_1020GL || ModelType == MODEL_TYPE.IHN_1010GL || ModelType == MODEL_TYPE.IHN_1010GL_I
|
|
|
- || Version.getModelType() == Version.MODEL_TYPE.IHN_1010GL_I_2443 || Version.getModelType() == Version.MODEL_TYPE.IHN_1010GL_I_6410) {
|
|
|
+ || Version.getModelType() == MODEL_TYPE.IHN_1010GL_I_2443 || Version.getModelType() == MODEL_TYPE.IHN_1010GL_I_6410) {
|
|
|
WallpadDeviceSet devSet = new WallpadDeviceSet(getApplicationContext());
|
|
|
nEnergyProductionUse = devSet.Get_Energy_Devices_Info(); //에너지 제품군
|
|
|
devSet.closeDB();
|
|
@@ -3745,8 +3761,8 @@ public class iMapServer extends Service {
|
|
|
retXML = iCMDProcOnePass(elelist);
|
|
|
}
|
|
|
else if( cmd.equalsIgnoreCase("remote_entire_access_light_control")) {
|
|
|
- if (Version.getModelType() == Version.MODEL_TYPE.IHN_D101 || Version.getModelType() == Version.MODEL_TYPE.IHN_D101_I
|
|
|
- || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K || Version.getModelType() == Version.MODEL_TYPE.IHN_D101K_I
|
|
|
+ if (Version.getModelType() == MODEL_TYPE.IHN_D101 || Version.getModelType() == MODEL_TYPE.IHN_D101_I
|
|
|
+ || Version.getModelType() == MODEL_TYPE.IHN_D101K || Version.getModelType() == MODEL_TYPE.IHN_D101K_I
|
|
|
|| Version.getModelType() == MODEL_TYPE.IHN_D101_I_OCF) {
|
|
|
retXML = iCMDProcEntireLightControl(doc); // 전체 조명 제어
|
|
|
}
|
|
@@ -3903,7 +3919,23 @@ public class iMapServer extends Service {
|
|
|
imapsvrlog( "Socket read end accept </imap>\n"+strRcvMSG);
|
|
|
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
|
|
DocumentBuilder builder = factory.newDocumentBuilder();
|
|
|
- InputStream istream = new ByteArrayInputStream(strRcvMSG.getBytes());
|
|
|
+
|
|
|
+ //jglee - 2024.10.17 utf-16도 지원하도록 수정
|
|
|
+ //여기서 utf-16 체크하기
|
|
|
+ boolean isutf16 = strRcvMSG.toLowerCase().contains("utf-16");
|
|
|
+ byte[] inputdata = null;
|
|
|
+ if(isutf16)
|
|
|
+ {
|
|
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
|
|
+ inputdata = strRcvMSG.getBytes(StandardCharsets.UTF_16);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ inputdata = strRcvMSG.getBytes();
|
|
|
+ }
|
|
|
+
|
|
|
+ InputStream istream = new ByteArrayInputStream(inputdata);
|
|
|
doc = builder.parse(istream);
|
|
|
Element elelist = doc.getDocumentElement();
|
|
|
NodeList items = elelist.getElementsByTagName("service");
|