Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions nhaystack-rt/src/nhaystack/server/SpaceManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
import javax.baja.driver.BDeviceNetwork;
import javax.baja.driver.point.BPointDeviceExt;
import javax.baja.history.BHistoryConfig;
import javax.baja.history.BHistoryId;
import javax.baja.history.BHistorySummary;
import javax.baja.history.BIHistory;
import javax.baja.history.HistorySpaceConnection;
import javax.baja.history.ext.BHistoryExt;
import javax.baja.naming.BOrd;
Expand Down Expand Up @@ -291,6 +294,21 @@ BHistoryExt lookupHistoryExt(BControlPoint point)
return null;
}

BHistorySummary lookupHistorySummary(BHistoryId historyId)
{
try (HistorySpaceConnection conn = service.getHistoryDb().getConnection(null))
{
BIHistory history = conn.getHistory(historyId);

if(history == null)
return null;

BHistorySummary summary = conn.getSummary(history);

return summary;
}
}

/**
* Return whether this history is visible to the outside world.
*/
Expand Down
30 changes: 30 additions & 0 deletions nhaystack-rt/src/nhaystack/server/TagManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import javax.baja.history.BEnumTrendRecord;
import javax.baja.history.BHistoryConfig;
import javax.baja.history.BHistoryId;
import javax.baja.history.BHistorySummary;
import javax.baja.history.BIHistory;
import javax.baja.history.BNumericTrendRecord;
import javax.baja.history.BStringTrendRecord;
Expand Down Expand Up @@ -67,6 +68,7 @@
import nhaystack.util.SlotUtil;
import org.projecthaystack.HBool;
import org.projecthaystack.HCoord;
import org.projecthaystack.HDateTime;
import org.projecthaystack.HDict;
import org.projecthaystack.HDictBuilder;
import org.projecthaystack.HGrid;
Expand Down Expand Up @@ -708,6 +710,8 @@ HDict createHistoryTags(BHistoryConfig cfg)
}
}

addHistorySummaryTags(cfg, hdb);

// add custom tags
hdb.add(server.createCustomTags(cfg));

Expand Down Expand Up @@ -893,6 +897,8 @@ private void createPointTags(
if (historyExt instanceof BCovHistoryExt)
hdb.add("hisInterpolate", "cov");
}

addHistorySummaryTags(cfg, hdb);
}

// cur, writable
Expand Down Expand Up @@ -944,6 +950,27 @@ private void createPointTags(
addSiteEquipTags(point, hdb, tags);
}

private void addHistorySummaryTags(BHistoryConfig cfg, HDictBuilder hdb)
{
BHistorySummary summary = spaceMgr.lookupHistorySummary(cfg.getId());
if(summary != null)
{
int recordCount = summary.getRecordCount();
if(recordCount > 0)
{
hdb.add("hisSize", recordCount);

HTimeZone tz = server.fromBajaTimeZone(cfg.getTimeZone());

HDateTime hisStart = HDateTime.make(summary.getFirstTimestamp().getMillis(), tz);
HDateTime hisEnd = HDateTime.make(summary.getLastTimestamp().getMillis(), tz);

hdb.add("hisStart", hisStart);
hdb.add("hisEnd", hisEnd);
}
}
}

private static String axStatus(BStatus status)
{
if (status.isOk()) return "ok";
Expand Down Expand Up @@ -1407,7 +1434,10 @@ private static int getTrendRecordKind(Type trendRecType)
"enum",
"equip",
"his",
"hisEnd",
"hisInterpolate",
"hisSize",
"hisStart",
"id",
"kind",
"maxVal",
Expand Down