added null points in charts
Former-commit-id: 5d9a57b107ed55133634aa7549b57efe30ba5e2e
This commit is contained in:
parent
5f28b017f7
commit
46728b4768
5 changed files with 54 additions and 19 deletions
|
|
@ -18,7 +18,6 @@
|
||||||
<classpathentry kind="lib" path="external/marytts-5.1.2/lib/voice-cmu-slt-hsmm-5.1.2.jar"/>
|
<classpathentry kind="lib" path="external/marytts-5.1.2/lib/voice-cmu-slt-hsmm-5.1.2.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/Ab.jar"/>
|
<classpathentry kind="lib" path="lib/Ab.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/commons-math3-3.5.jar"/>
|
<classpathentry kind="lib" path="lib/commons-math3-3.5.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/javaFlacEncoder-0.3.1.jar"/>
|
|
||||||
<classpathentry kind="lib" path="lib/jSerialComm-1.3.4.jar"/>
|
<classpathentry kind="lib" path="lib/jSerialComm-1.3.4.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/marytts-client-5.1.2-jar-with-dependencies.jar"/>
|
<classpathentry kind="lib" path="lib/marytts-client-5.1.2-jar-with-dependencies.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/marytts-runtime-5.1.2-jar-with-dependencies.jar"/>
|
<classpathentry kind="lib" path="lib/marytts-runtime-5.1.2-jar-with-dependencies.jar"/>
|
||||||
|
|
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1 +1,2 @@
|
||||||
/build/
|
/build/
|
||||||
|
/lib/Zutil.jar
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
eclipse.preferences.version=1
|
|
||||||
encoding//lib/sphinx4-5prealpha-src/sphinx4-core/src/main/java=UTF-8
|
|
||||||
encoding//lib/sphinx4-5prealpha-src/sphinx4-core/src/main/java/edu/cmu/sphinx/alignment/SimpleTokenizer.java=UTF-8
|
|
||||||
|
|
@ -23,25 +23,45 @@ public class PCOverviewHttpPage implements HttpPage {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ArrayList<PowerData> minDataList = HalContext.db.exec(
|
ArrayList<PowerData> minDataList = HalContext.db.exec(
|
||||||
"SELECT user.username as username, sensor_data_aggr.timestamp_start as timestamp, sensor_data_aggr.data as data "
|
"SELECT user.username as username, "
|
||||||
|
+ "sensor_data_aggr.timestamp_start as timestamp_start, "
|
||||||
|
+ "sensor_data_aggr.timestamp_end as timestamp_end , "
|
||||||
|
+ "sensor_data_aggr.data as data, "
|
||||||
|
+ "sensor_data_aggr.confidence as confidence, "
|
||||||
|
+ DataAggregatorDaemon.FIVE_MINUTES_IN_MS + " as period_length"
|
||||||
+ "FROM sensor_data_aggr, user, sensor "
|
+ "FROM sensor_data_aggr, user, sensor "
|
||||||
+ "WHERE sensor.id = sensor_data_aggr.sensor_id "
|
+ "WHERE sensor.id = sensor_data_aggr.sensor_id "
|
||||||
+ "AND user.id = sensor.user_id "
|
+ "AND user.id = sensor.user_id "
|
||||||
+ "AND timestamp_end-timestamp_start == " + (DataAggregatorDaemon.FIVE_MINUTES_IN_MS-1),
|
+ "AND timestamp_end-timestamp_start == " + (DataAggregatorDaemon.FIVE_MINUTES_IN_MS-1)
|
||||||
|
+ "AND timestamp_start > " + (System.currentTimeMillis() - DataAggregatorDaemon.DAY_IN_MS)
|
||||||
|
+ "ORDER BY timestamp_start ASC",
|
||||||
new SQLPowerDataBuilder());
|
new SQLPowerDataBuilder());
|
||||||
ArrayList<PowerData> hourDataList = HalContext.db.exec(
|
ArrayList<PowerData> hourDataList = HalContext.db.exec(
|
||||||
"SELECT user.username as username, sensor_data_aggr.timestamp_start as timestamp, sensor_data_aggr.data as data "
|
"SELECT user.username as username, "
|
||||||
|
+ "sensor_data_aggr.timestamp_start as timestamp_start, "
|
||||||
|
+ "sensor_data_aggr.timestamp_end as timestamp_end , "
|
||||||
|
+ "sensor_data_aggr.data as data, "
|
||||||
|
+ "sensor_data_aggr.confidence as confidence, "
|
||||||
|
+ DataAggregatorDaemon.HOUR_IN_MS + " as period_length"
|
||||||
+ "FROM sensor_data_aggr, user, sensor "
|
+ "FROM sensor_data_aggr, user, sensor "
|
||||||
+ "WHERE sensor.id = sensor_data_aggr.sensor_id "
|
+ "WHERE sensor.id = sensor_data_aggr.sensor_id "
|
||||||
+ "AND user.id = sensor.user_id "
|
+ "AND user.id = sensor.user_id "
|
||||||
+ "AND timestamp_end-timestamp_start == " + (DataAggregatorDaemon.HOUR_IN_MS-1),
|
+ "AND timestamp_end-timestamp_start == " + (DataAggregatorDaemon.HOUR_IN_MS-1)
|
||||||
|
+ "AND timestamp_start > " + (System.currentTimeMillis() - 3*DataAggregatorDaemon.DAY_IN_MS)
|
||||||
|
+ "ORDER BY timestamp_start ASC",
|
||||||
new SQLPowerDataBuilder());
|
new SQLPowerDataBuilder());
|
||||||
ArrayList<PowerData> dayDataList = HalContext.db.exec(
|
ArrayList<PowerData> dayDataList = HalContext.db.exec(
|
||||||
"SELECT user.username as username, sensor_data_aggr.timestamp_start as timestamp, sensor_data_aggr.data as data "
|
"SELECT user.username as username, "
|
||||||
|
+ "sensor_data_aggr.timestamp_start as timestamp_start, "
|
||||||
|
+ "sensor_data_aggr.timestamp_end as timestamp_end , "
|
||||||
|
+ "sensor_data_aggr.data as data, "
|
||||||
|
+ "sensor_data_aggr.confidence as confidence, "
|
||||||
|
+ DataAggregatorDaemon.DAY_IN_MS + " as period_length"
|
||||||
+ "FROM sensor_data_aggr, user, sensor "
|
+ "FROM sensor_data_aggr, user, sensor "
|
||||||
+ "WHERE sensor.id = sensor_data_aggr.sensor_id "
|
+ "WHERE sensor.id = sensor_data_aggr.sensor_id "
|
||||||
+ "AND user.id = sensor.user_id "
|
+ "AND user.id = sensor.user_id "
|
||||||
+ "AND timestamp_end-timestamp_start == " + (DataAggregatorDaemon.DAY_IN_MS-1),
|
+ "AND timestamp_end-timestamp_start == " + (DataAggregatorDaemon.DAY_IN_MS-1)
|
||||||
|
+ "ORDER BY timestamp_start ASC",
|
||||||
new SQLPowerDataBuilder());
|
new SQLPowerDataBuilder());
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -60,9 +80,9 @@ public class PCOverviewHttpPage implements HttpPage {
|
||||||
|
|
||||||
public static class PowerData{
|
public static class PowerData{
|
||||||
long timestamp;
|
long timestamp;
|
||||||
int data;
|
String data;
|
||||||
String username;
|
String username;
|
||||||
public PowerData(long time, int data, String uname) {
|
public PowerData(long time, String data, String uname) {
|
||||||
this.timestamp = time;
|
this.timestamp = time;
|
||||||
this.data = data;
|
this.data = data;
|
||||||
this.username = uname;
|
this.username = uname;
|
||||||
|
|
@ -73,8 +93,26 @@ public class PCOverviewHttpPage implements HttpPage {
|
||||||
@Override
|
@Override
|
||||||
public ArrayList<PowerData> handleQueryResult(Statement stmt, ResultSet result) throws SQLException {
|
public ArrayList<PowerData> handleQueryResult(Statement stmt, ResultSet result) throws SQLException {
|
||||||
ArrayList<PowerData> list = new ArrayList<>();
|
ArrayList<PowerData> list = new ArrayList<>();
|
||||||
|
long previousTimestampEnd = -1;
|
||||||
while(result.next()){
|
while(result.next()){
|
||||||
list.add(new PowerData(result.getLong("timestamp"), result.getInt("data"), result.getString("username")));
|
|
||||||
|
long timestampStart = result.getLong("timestamp_start");
|
||||||
|
long timestampEnd = result.getLong("timestamp_end");
|
||||||
|
long periodLength = result.getLong("period_length");
|
||||||
|
int data = result.getInt("data");
|
||||||
|
String username = result.getString("username");
|
||||||
|
float confidence = result.getFloat("confidence");
|
||||||
|
|
||||||
|
//add null data point to list if one or more periods of data is missing before this
|
||||||
|
if(previousTimestampEnd != -1 && timestampStart-previousTimestampEnd > periodLength){
|
||||||
|
list.add(new PowerData(previousTimestampEnd+1, "undefined", username));
|
||||||
|
}
|
||||||
|
|
||||||
|
//add this data point to list
|
||||||
|
list.add(new PowerData(timestampStart, data/1000+"", username));
|
||||||
|
|
||||||
|
//update previous end timestamp
|
||||||
|
previousTimestampEnd = timestampEnd;
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,19 +22,19 @@
|
||||||
chartData("min-power-chart",
|
chartData("min-power-chart",
|
||||||
[
|
[
|
||||||
{{#minData}}
|
{{#minData}}
|
||||||
{ y: {{.timestamp}}, {{.username}}: {{.data}}/1000 },
|
{ y: {{.timestamp}}, {{.username}}: {{.data}} },
|
||||||
{{/minData}}
|
{{/minData}}
|
||||||
{ y: Date.now() },
|
{ y: Date.now() },
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
chartData("hour-power-chart",
|
chartData("hour-power-chart",
|
||||||
[{{#hourData}}
|
[{{#hourData}}
|
||||||
{ y: {{.timestamp}}, {{.username}}: {{.data}}/1000 },
|
{ y: {{.timestamp}}, {{.username}}: {{.data}} },
|
||||||
{{/hourData}}]
|
{{/hourData}}]
|
||||||
);
|
);
|
||||||
chartData("day-power-chart",
|
chartData("day-power-chart",
|
||||||
[{{#dayData}}
|
[{{#dayData}}
|
||||||
{ y: {{.timestamp}}, {{.username}}: {{.data}}/1000 },
|
{ y: {{.timestamp}}, {{.username}}: {{.data}} },
|
||||||
{{/dayData}}]
|
{{/dayData}}]
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue