Merge branch 'master' of https://its-gitlab.init.hs-owl.de/mo_b_l/aped_app
This commit is contained in:
commit
2a50b6f7c3
@ -1 +1 @@
|
|||||||
Subproject commit 594fc1ea61264673706a2e26120e3b4b95af4f2f
|
Subproject commit 2fddb6ae3ff3247f684c89c34d0d859b7b2076bc
|
@ -1,7 +1,5 @@
|
|||||||
package com.example.aped.communication;
|
package com.example.aped.communication;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.graphics.Color;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -21,6 +19,7 @@ import com.example.aped.MainActivity;
|
|||||||
import com.example.aped.R;
|
import com.example.aped.R;
|
||||||
import com.example.aped.utils.ExternalStorageHandler;
|
import com.example.aped.utils.ExternalStorageHandler;
|
||||||
|
|
||||||
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -112,7 +111,16 @@ public class Communicator {
|
|||||||
Request.Method.POST,
|
Request.Method.POST,
|
||||||
url,
|
url,
|
||||||
xmlFile,
|
xmlFile,
|
||||||
response -> System.out.println(response.toString()),
|
response -> {
|
||||||
|
try {
|
||||||
|
JSONObject jsonObject = new JSONObject(response.toString());
|
||||||
|
if (!jsonObject.getString("error").equals("")) {
|
||||||
|
makeToast(jsonObject.getString("error"));
|
||||||
|
}
|
||||||
|
} catch (JSONException e) {
|
||||||
|
Log.e("Communicator","JSON error on response during UPLOAD: " + e.getMessage());
|
||||||
|
}
|
||||||
|
},
|
||||||
error -> handleError(error, "UPLOAD XML")
|
error -> handleError(error, "UPLOAD XML")
|
||||||
);
|
);
|
||||||
requestQueue.add(request);
|
requestQueue.add(request);
|
||||||
|
@ -247,10 +247,14 @@ public class ConfigurationHandler implements IFAVORITES {
|
|||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
List<String> favoriteNamesString = new ArrayList<>();
|
||||||
|
for (String favoriteName : favoriteNames){
|
||||||
|
favoriteNamesString.add("\"" + favoriteName + "\"");
|
||||||
|
}
|
||||||
return "{\n"
|
return "{\n"
|
||||||
+ "\"address\":\"" + address + "\",\n"
|
+ "\t\"address\":\"" + address + "\",\n"
|
||||||
+ "\"port\":\"" + port + "\",\n"
|
+ "\t\"port\":\"" + port + "\",\n"
|
||||||
+ "\"favorites\":" + favoriteNames.toString() + "\n"
|
+ "\t\"favorites\":" + favoriteNamesString.toString() + "\n"
|
||||||
+ "}";
|
+ "}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,13 +11,6 @@ public interface IXML {
|
|||||||
*/
|
*/
|
||||||
List<String> getDeviceNames();
|
List<String> getDeviceNames();
|
||||||
|
|
||||||
/**
|
|
||||||
* reads the value info of a given device from the XML.
|
|
||||||
* @param deviceName the name of the relevant device
|
|
||||||
* @return the value info as a Dictionary
|
|
||||||
*/
|
|
||||||
Dictionary<String, Object> getValueInfo(String deviceName);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reads the port information of a given device from the XML.
|
* reads the port information of a given device from the XML.
|
||||||
* @param deviceName the name of the relevant device
|
* @param deviceName the name of the relevant device
|
||||||
|
@ -17,16 +17,6 @@ public class TestXML implements IXML {
|
|||||||
return returnList;
|
return returnList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public Dictionary<String, Object> getValueInfo(String deviceName) {
|
|
||||||
Dictionary<String, Object> returnDict = new Hashtable<>();
|
|
||||||
returnDict.put("type", "boolean");
|
|
||||||
returnDict.put("unit", "");
|
|
||||||
returnDict.put("Offset", 1.0);
|
|
||||||
returnDict.put("Factor", 1.0);
|
|
||||||
return returnDict;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Dictionary<String, Object> getPort(String deviceName) {
|
public Dictionary<String, Object> getPort(String deviceName) {
|
||||||
Dictionary<String, Object> returnDict = new Hashtable<>();
|
Dictionary<String, Object> returnDict = new Hashtable<>();
|
||||||
|
@ -70,52 +70,6 @@ public class XMLHandler implements IXML {
|
|||||||
return returnList;
|
return returnList;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* reads the value info from the XML file.
|
|
||||||
* @param deviceName the name of the relevant device
|
|
||||||
* @return the value info as a dictionary {'unit','type','Offset','Factor'}
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public Dictionary<String, Object> getValueInfo(final String deviceName) {
|
|
||||||
Dictionary<String, Object> returnDictionary = new Hashtable<>();
|
|
||||||
XPathFactory xPathFactory = XPathFactory.newInstance();
|
|
||||||
XPath xPath = xPathFactory.newXPath();
|
|
||||||
try {
|
|
||||||
XPathExpression xPathExpression = xPath.compile(
|
|
||||||
"//Device[@name='" + deviceName + "']/ValueInfo");
|
|
||||||
Element result = (Element) xPathExpression.evaluate(
|
|
||||||
root, XPathConstants.NODE);
|
|
||||||
returnDictionary.put("type", result.getAttribute("type"));
|
|
||||||
returnDictionary.put("unit", result.getAttribute("unit"));
|
|
||||||
NodeList childNodes = result.getChildNodes();
|
|
||||||
float offset = 0.0f;
|
|
||||||
float factor = 1.0f;
|
|
||||||
for (int i = 0; i < childNodes.getLength(); i++) {
|
|
||||||
switch (childNodes.item(i).getNodeName()) {
|
|
||||||
case "Offset":
|
|
||||||
offset = Float.parseFloat(childNodes.item(i)
|
|
||||||
.getTextContent());
|
|
||||||
break;
|
|
||||||
case "Factor":
|
|
||||||
factor = Float.parseFloat(childNodes.item(i)
|
|
||||||
.getTextContent());
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
returnDictionary.put("offset", offset);
|
|
||||||
returnDictionary.put("factor", factor);
|
|
||||||
} catch (XPathExpressionException e) {
|
|
||||||
Log.e(
|
|
||||||
"XMLHandler",
|
|
||||||
"the XPath for getting the value info has errors:"
|
|
||||||
+ e.getMessage()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return returnDictionary;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reads the port information from the XML file.
|
* reads the port information from the XML file.
|
||||||
* @param deviceName the name of the relevant device
|
* @param deviceName the name of the relevant device
|
||||||
@ -132,6 +86,7 @@ public class XMLHandler implements IXML {
|
|||||||
Element result = (Element) xPathExpression.evaluate(
|
Element result = (Element) xPathExpression.evaluate(
|
||||||
root, XPathConstants.NODE);
|
root, XPathConstants.NODE);
|
||||||
returnDictionary.put("protocol", result.getAttribute("protocol"));
|
returnDictionary.put("protocol", result.getAttribute("protocol"));
|
||||||
|
returnDictionary.put("frequency", result.getAttribute("frequency"));
|
||||||
NodeList childNodes = result.getChildNodes();
|
NodeList childNodes = result.getChildNodes();
|
||||||
List<String> pins = new ArrayList<>();
|
List<String> pins = new ArrayList<>();
|
||||||
for (int i = 0; i < childNodes.getLength(); i++) {
|
for (int i = 0; i < childNodes.getLength(); i++) {
|
||||||
|
@ -43,30 +43,6 @@ public class XMLHandlerUnitTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void TestInput_SimpleValueInfo(){
|
|
||||||
try{
|
|
||||||
XMLHandler xmlHandler = new XMLHandler(xmlFile);
|
|
||||||
Dictionary<String, Object> valueInfo = xmlHandler.getValueInfo("example");
|
|
||||||
assertEquals("{factor=1.0, type=boolean, unit=, offset=0.0}",valueInfo.toString());
|
|
||||||
}catch(IOException | ParserConfigurationException | SAXException e){
|
|
||||||
System.out.println("XMLHandler failed");
|
|
||||||
assert(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void TestInput_ComplexValueInfo(){
|
|
||||||
try{
|
|
||||||
XMLHandler xmlHandler = new XMLHandler(xmlFile);
|
|
||||||
Dictionary<String, Object> valueInfo = xmlHandler.getValueInfo("sensorarray");
|
|
||||||
assertEquals("{factor=2.5, type=int, unit=°C, offset=1.2}",valueInfo.toString());
|
|
||||||
}catch(IOException | ParserConfigurationException | SAXException e){
|
|
||||||
System.out.println("XMLHandler failed");
|
|
||||||
assert(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void TestInput_SimplePort(){
|
public void TestInput_SimplePort(){
|
||||||
try{
|
try{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user