Hy,Milo OPC UA Server mit Historical Data Access
Ich bin neu in milo (und OPC-UA) und versuchen, eine OPC-UA-Server mit Historical Data Access zu implementieren. Ich habe das aktuelle Milo-Server-Beispiel erneut verwendet und einen Verlaufsknoten erstellt. Auf diesem Knoten kann ich (mit dem Prosys OPC UA Client) die leere Historie abfragen. Ich weiß, dass ich die Persistenz der History-Knoten selbst implementieren muss. So weit, so gut - aber ich konnte keine Informationen über die Geschichte lesen Anfrage und wie man die Antwort zurückgeben. Genauer gesagt, wie die HistoryData
zu einem HistoryReadResult
@Override
public void historyRead(HistoryReadContext context, HistoryReadDetails readDetails, TimestampsToReturn timestamps,
List<HistoryReadValueId> readValueIds)
{
List<HistoryReadResult> results = Lists.newArrayListWithCapacity(readValueIds.size());
for (HistoryReadValueId readValueId : readValueIds){
//return 3 historical entries
DataValue v1 = new DataValue(new Variant(new Double(1)), StatusCode.GOOD, new DateTime(Date.from(Instant.now().minus(1, ChronoUnit.MINUTES))));
DataValue v2 = new DataValue(new Variant(new Double(2)), StatusCode.GOOD, new DateTime(Date.from(Instant.now().minus(2, ChronoUnit.MINUTES))));
DataValue v3 = new DataValue(new Variant(new Double(3)), StatusCode.GOOD, new DateTime(Date.from(Instant.now().minus(3, ChronoUnit.MINUTES))));
HistoryData data = new HistoryData(new DataValue[] {v1,v2,v3});
//???
HistoryReadResult result = new HistoryReadResult(StatusCode.GOOD, ByteString.NULL_VALUE, ???);
results.add(result);
}
context.complete(results);
}