First commit
This commit is contained in:
parent
099185796f
commit
f22cdf2321
86
pom.xml
Normal file
86
pom.xml
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>com.emkatsom</groupId>
|
||||||
|
<artifactId>EasyHarvestLog</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<packaging>war</packaging>
|
||||||
|
|
||||||
|
<name>EasyHarvestLog</name>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.httpcomponents</groupId>
|
||||||
|
<artifactId>httpclient</artifactId>
|
||||||
|
<version>4.2.5</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.code.gson</groupId>
|
||||||
|
<artifactId>gson</artifactId>
|
||||||
|
<version>2.3.1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax</groupId>
|
||||||
|
<artifactId>javaee-web-api</artifactId>
|
||||||
|
<version>7.0</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<version>2.3.2</version>
|
||||||
|
<configuration>
|
||||||
|
<source>1.6</source>
|
||||||
|
<target>1.6</target>
|
||||||
|
<compilerArguments>
|
||||||
|
<endorseddirs>${endorsed.dir}</endorseddirs>
|
||||||
|
</compilerArguments>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
|
<version>2.1.1</version>
|
||||||
|
<configuration>
|
||||||
|
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-dependency-plugin</artifactId>
|
||||||
|
<version>2.1</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>validate</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>${endorsed.dir}</outputDirectory>
|
||||||
|
<silent>true</silent>
|
||||||
|
<artifactItems>
|
||||||
|
<artifactItem>
|
||||||
|
<groupId>javax</groupId>
|
||||||
|
<artifactId>javaee-endorsed-api</artifactId>
|
||||||
|
<version>6.0</version>
|
||||||
|
<type>jar</type>
|
||||||
|
</artifactItem>
|
||||||
|
</artifactItems>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
24
src/main/java/com/emkatsom/logcat/Globals.java
Normal file
24
src/main/java/com/emkatsom/logcat/Globals.java
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package com.emkatsom.logcat;
|
||||||
|
|
||||||
|
public class Globals {
|
||||||
|
|
||||||
|
public static String raw_data = "raw";
|
||||||
|
public static String orientation_data = "orientation";
|
||||||
|
public static String location_data = "location";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PC
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
public static String server_url = "http://localhost:8084/Server/webresources/tasks";
|
||||||
|
public static String db_path = "C:/EasyHarvestLog";
|
||||||
|
/**/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HOST
|
||||||
|
*/
|
||||||
|
/**/
|
||||||
|
public static String server_url = "http://83.212.109.118:8080/Server/webresources/tasks";
|
||||||
|
public static String db_path = "/var/lib/tomcat6/webapps/db";
|
||||||
|
/**/
|
||||||
|
}
|
2
src/main/webapp/META-INF/context.xml
Normal file
2
src/main/webapp/META-INF/context.xml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Context antiJARLocking="true" path="/LogCat"/>
|
35
src/main/webapp/index.jsp
Normal file
35
src/main/webapp/index.jsp
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<%@page import="com.emkatsom.logcat.*"%>
|
||||||
|
<%@page language="java" %>
|
||||||
|
|
||||||
|
<%@page contentType="text/html" pageEncoding="UTF-8"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
<title>LogCat</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>LogCat</h1>
|
||||||
|
<h2></h2>
|
||||||
|
<form action="./view.jsp">
|
||||||
|
.../tasks/
|
||||||
|
<input name="id" required="required" type="text" placeholder="id"/>
|
||||||
|
/getdata
|
||||||
|
<select name="type">
|
||||||
|
<option value="<%=Globals.raw_data%>" selected><%=Globals.raw_data%></option>
|
||||||
|
<option value="<%=Globals.orientation_data%>"><%=Globals.orientation_data%></option>
|
||||||
|
<option value="<%=Globals.location_data%>"><%=Globals.location_data%></option>
|
||||||
|
</select>
|
||||||
|
<!--
|
||||||
|
<br>
|
||||||
|
<input name="download" type="checkbox"><label>Download</label>
|
||||||
|
<br>
|
||||||
|
<input name="delete" type="checkbox"><label>Delete</label>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
-->
|
||||||
|
<input type="submit" value="OK">
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
285
src/main/webapp/view.jsp
Normal file
285
src/main/webapp/view.jsp
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
<%@page import="com.emkatsom.logcat.*"%>
|
||||||
|
|
||||||
|
<%@page import="java.io.*"%>
|
||||||
|
<%@page import="java.util.*"%>
|
||||||
|
|
||||||
|
<%@page import="com.google.gson.*"%>
|
||||||
|
|
||||||
|
<%@page import="org.apache.http.client.methods.HttpGet"%>
|
||||||
|
<%@page import="org.apache.http.client.HttpClient"%>
|
||||||
|
<%@page import="org.apache.http.HttpResponse"%>
|
||||||
|
<%@page import="org.apache.http.impl.client.DefaultHttpClient"%>
|
||||||
|
|
||||||
|
<%@page language="java" %>
|
||||||
|
|
||||||
|
<%@page contentType="text/html" pageEncoding="UTF-8"%>
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
*{ padding: 0px; margin: 0px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
|
||||||
|
body, html { height: 100%; width: 100%; }
|
||||||
|
|
||||||
|
ol {
|
||||||
|
padding: 10px 100px 10px 35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#data {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#map {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
|
||||||
|
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
|
||||||
|
<%
|
||||||
|
String TAG = "LogCat: ";
|
||||||
|
|
||||||
|
String id = request.getParameter("id");
|
||||||
|
String download = request.getParameter("download");
|
||||||
|
String delete = request.getParameter("delete");
|
||||||
|
String type = request.getParameter("type");
|
||||||
|
%>
|
||||||
|
<title>View - <%=id%> - LogCat</title>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function () {
|
||||||
|
refresh();
|
||||||
|
});
|
||||||
|
function refresh() {
|
||||||
|
setTimeout(function () {
|
||||||
|
var id = getRequestParameter('id');
|
||||||
|
var type = getRequestParameter('type');
|
||||||
|
try {
|
||||||
|
$('#content').load('view.jsp?id=' + id + '&type=' + type + ' #content', update());
|
||||||
|
// alert(id + " and " + type);
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
$('#content').load('view.jsp?id=' + id + '&type=' + type + ' #content');
|
||||||
|
}
|
||||||
|
refresh();
|
||||||
|
}, 3000);
|
||||||
|
}
|
||||||
|
function getRequestParameter(sParam) {
|
||||||
|
var sPageURL = window.location.search.substring(1);
|
||||||
|
var sURLVariables = sPageURL.split('&');
|
||||||
|
for (var i = 0; i < sURLVariables.length; i++) {
|
||||||
|
var sParameterName = sURLVariables[i].split('=');
|
||||||
|
if (sParameterName[0] == sParam) {
|
||||||
|
return sParameterName[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<form id="form" action="./index.jsp">
|
||||||
|
<input type="submit" value="BACK">
|
||||||
|
</form>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<%
|
||||||
|
String html = "";
|
||||||
|
String dataUrl = Globals.server_url + "/" + id + "/getdata";
|
||||||
|
|
||||||
|
HttpClient httpClient = new DefaultHttpClient();
|
||||||
|
HttpResponse httpResponse = null;
|
||||||
|
|
||||||
|
List<Object> data = new ArrayList<Object>();
|
||||||
|
|
||||||
|
InputStream in = null;
|
||||||
|
try {
|
||||||
|
HttpGet httpGet = new HttpGet(dataUrl);
|
||||||
|
httpResponse = httpClient.execute(httpGet);
|
||||||
|
in = httpResponse.getEntity().getContent();
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(TAG + e.getMessage());
|
||||||
|
html = "<ol>" + "Oops!" + "" + "</ol>";
|
||||||
|
out.println(html);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**/
|
||||||
|
// FileOutputStream outputStream = new FileOutputStream(new File(Globals.db_path + "/" + id + ".dat"));
|
||||||
|
// int read = 0;
|
||||||
|
// byte[] bytes = new byte[1024];
|
||||||
|
// while ((read = in.read(bytes)) != -1) {
|
||||||
|
// outputStream.write(bytes, 0, read);
|
||||||
|
// }
|
||||||
|
// outputStream.close();
|
||||||
|
/**/
|
||||||
|
|
||||||
|
ObjectInputStream ois;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// ois = new ObjectInputStream(new FileInputStream(Globals.db_path + "/" + id + ".dat"));
|
||||||
|
|
||||||
|
ois = new ObjectInputStream(in);
|
||||||
|
data = (List<Object>) ois.readObject();
|
||||||
|
|
||||||
|
ois.close();
|
||||||
|
in.close();
|
||||||
|
|
||||||
|
// new File(Globals.db_path + "/" + id + ".dat").delete();
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println(TAG + e.getMessage());
|
||||||
|
// html = "<ol>" + "Empty." + "" + "</ol>";
|
||||||
|
out.println(html);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Globals.raw_data.equals(type)) {
|
||||||
|
html = "<ol>";
|
||||||
|
for (Object o : data) {
|
||||||
|
Map m = (Map) o;
|
||||||
|
|
||||||
|
html += "<li>"
|
||||||
|
+ new Date((Long) m.get("timestamp") / 1000000L).toString() + ""
|
||||||
|
+ " task[" + m.get("task") + "]"
|
||||||
|
+ "@" + m.get("device") + ":"
|
||||||
|
+ " " + m.get("sensor") + ""
|
||||||
|
+ "" + Arrays.toString((double[]) m.get("values")) + ""
|
||||||
|
+ "</li>";
|
||||||
|
}
|
||||||
|
if (data.isEmpty()) {
|
||||||
|
html += "Empty.";
|
||||||
|
}
|
||||||
|
html += "</ol>";
|
||||||
|
out.println(html);
|
||||||
|
} else if (Globals.orientation_data.equals(type)) {
|
||||||
|
html = "<ol>";
|
||||||
|
for (Object o : data) {
|
||||||
|
Map m = (Map) o;
|
||||||
|
|
||||||
|
double[] values = (double[]) m.get("values");
|
||||||
|
double x = values[0];
|
||||||
|
double y = values[1];
|
||||||
|
double z = values[2];
|
||||||
|
|
||||||
|
html += "<li>"
|
||||||
|
//+ m.get("timestamp") + ""
|
||||||
|
+ new Date(Long.valueOf(m.get("timestamp").toString()) / 1000000L).toString() + ""
|
||||||
|
+ " task[" + m.get("task") + "]"
|
||||||
|
+ "@" + m.get("device") + ":";
|
||||||
|
|
||||||
|
if (x > 9 && y > 0 && y < 1 && z > 0 && z < 1) {
|
||||||
|
html += " LEFT";
|
||||||
|
} else if (x < -9 && y > 0 && y < 1 && z > 0 && z < 1) {
|
||||||
|
html += " RIGHT";
|
||||||
|
} else if (z > 9.5) {
|
||||||
|
html += " UP";
|
||||||
|
} else if (z < -9.5) {
|
||||||
|
html += " DOWN";
|
||||||
|
}
|
||||||
|
|
||||||
|
html += "</li>";
|
||||||
|
}
|
||||||
|
if (data.isEmpty()) {
|
||||||
|
html += "Empty.";
|
||||||
|
}
|
||||||
|
html += "</ol>";
|
||||||
|
out.println(html);
|
||||||
|
} else if (Globals.location_data.equals(type)) {
|
||||||
|
List<Object[]> list = new ArrayList<Object[]>();
|
||||||
|
|
||||||
|
for (Object o : data) {
|
||||||
|
Map m = (Map) o;
|
||||||
|
|
||||||
|
double[] loc = (double[]) m.get("values");
|
||||||
|
Object[] info = {
|
||||||
|
"<div style=\"text-align: center;\";>"
|
||||||
|
+ new Date(Long.valueOf(m.get("timestamp").toString()) / 1000000L).toString() + "<br>"
|
||||||
|
+ " task[" + m.get("task") + "]" + "@" + m.get("device") + "<br>"
|
||||||
|
+ "" + Arrays.toString((double[]) m.get("values"))
|
||||||
|
+ "</div>",
|
||||||
|
loc[0],
|
||||||
|
loc[1]
|
||||||
|
};
|
||||||
|
|
||||||
|
list.add(info);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Gson gson = new Gson();
|
||||||
|
|
||||||
|
out.print("<div id=\"data\" hidden>" + gson.toJson(list) + "</div>");
|
||||||
|
%>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="map"></div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
var map;
|
||||||
|
|
||||||
|
init();
|
||||||
|
|
||||||
|
var infowindow = new google.maps.InfoWindow();
|
||||||
|
|
||||||
|
var latlngbounds = new google.maps.LatLngBounds();
|
||||||
|
|
||||||
|
var loc_len = 0;
|
||||||
|
|
||||||
|
update();
|
||||||
|
|
||||||
|
function update() {
|
||||||
|
var data = document.getElementById('data').innerHTML;
|
||||||
|
var locations = JSON.parse(data);
|
||||||
|
|
||||||
|
var marker, i;
|
||||||
|
for (i = 0; i < locations.length; i++) {
|
||||||
|
marker = new google.maps.Marker({
|
||||||
|
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
|
||||||
|
map: map
|
||||||
|
});
|
||||||
|
|
||||||
|
google.maps.event.addListener(marker, 'click', (function (marker, i) {
|
||||||
|
return function () {
|
||||||
|
infowindow.setContent(locations[i][0]);
|
||||||
|
infowindow.open(map, marker);
|
||||||
|
}
|
||||||
|
})(marker, i));
|
||||||
|
|
||||||
|
latlngbounds.extend(marker.position);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (loc_len !== locations.length) {
|
||||||
|
|
||||||
|
map.fitBounds(latlngbounds);
|
||||||
|
loc_len = locations.length;
|
||||||
|
|
||||||
|
if (loc_len === 0) {
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
map = new google.maps.Map(document.getElementById('map'), {
|
||||||
|
zoom: 2,
|
||||||
|
center: {lat: 0, lng: 0}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<%
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("off".equals(download)
|
||||||
|
&& "off".equals(delete)) {
|
||||||
|
} else if ("on".equals(download)
|
||||||
|
&& "off".equals(delete)) {
|
||||||
|
} else if ("on".equals(download)
|
||||||
|
&& "on".equals(delete)) {
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
%>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user