#34 Implement basic metrics for now

closed
None
2020-09-16
2020-06-27
aliazzz
No

For now, we do not use anything except the basic metrics we can sooner "complete" Payload encode/ decode by throwing not implemented for all of the Metric members we don't use (template, etc)

Create a sample FB_SparkplugBoolMetric, which contains some storage to play around with this idea.

With basic metrics is ment: basetype variables, no "advanced" metrics or historical things
Whatever happens, the TimeStamp is mandatory and implemented.

As TimeStamp we take the current time as read from the controller. If an interested user has a controller which does not contain an RTC, we will work with that user to come up with an alternative. For now though, it is not supported.

Discussion

  • i-campbell

    i-campbell - 2020-06-28

    So I think simple decode will need:
    .Decode()
    .GetTimestamp()
    .GetSeq()
    .GetFirstMetric(name => , datatype => , timestamp => , valueString => , valueLreal => , valueReal=> , valueVarInt => , HasNext => )
    .GetNextMetric(name => , datatype => , timestamp => , valueString => , valueLreal => , valueReal=> , valueVarInt => , HasNext => )

    It is up to EoN_Node to decide:
    Which (if any) of my SparkplugValues does this metric belong to?
    Is this metric writeable?
    What to do with the seq?
    what to do with the timestamps?

     
  • i-campbell

    i-campbell - 2020-06-28
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -5,6 +5,5 @@
     With basic  metrics is ment: basetype variables, no "advanced" metrics or historical things
     Whatever happens, the TimeStamp is mandatory and implemented.
    
    -As TimeStamp we take the current time as read from the controller. If the controller does not contain an RTC, that is just "schade" and we will not fix that, as it is a hardware issue.
    +As TimeStamp we take the current time as read from the controller. If an interested user has a controller which does not contain an RTC, we will work with that user to come up with an alternative.  For now though, it is not supported.
    
    -
    
     
  • i-campbell

    i-campbell - 2020-06-28
    • Status: open --> accepted
     
  • i-campbell

    i-campbell - 2020-07-24

    NDEATH is an exception which does not require a Payload.seq
    So the Initialize must include HasSeq : BOOL;

     
  • i-campbell

    i-campbell - 2020-09-16
    • status: accepted --> closed
     
  • i-campbell

    i-campbell - 2020-09-16
    • Milestone: MVP EoN --> 1.0.0.0: basic protobufs
     

Log in to post a comment.