Post by aliazzz on Ticket #39: FB_SparkplugB_SimpleEncoder discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Description has changed: Diff: --- old +++ new @@ -10,7 +10,7 @@ * [x] Node Data * [x] Device Death Certificate * [x] Device Birth Certificate -* [ ] Device Data +* [x] Device Data Pass a list of every All Metrics Which Will Ever Reported on during this "Lifetime". (1)
Last updated: 2021-08-10
Post by i-campbell on Ticket #80: MQTT: Not resubscribing discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Milestone: 3.0.0.0: High Availability --> 1.0.0.0: EoN
Last updated: 2021-08-10
Post by aliazzz on Ticket #55: How do we Implement #PublishInterval / PublishRate? discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Description has changed: Diff: --- old +++ new @@ -3,6 +3,7 @@ So we cannot publish "updates" any faster then each 5s. This means the publish rate is a kind of "sample-rate" per signal change: + * 5000 means 1 signal change per interval of 5 seconds is sent, * 100 means 1 signal change per interval of 100mec is sent, * 10000 means 1 signal change per interval of 10 seconds is sent.
Last updated: 2021-08-10
Post by hermsen on Ticket #102: Paylaod: refactor discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
labels: Payload, Improvement --> status: open --> closed
Last updated: 2021-08-10
Post by i-campbell on Ticket #45: FB_SimplePayloadEncoder: all unit tests all return a 37KB payload, even the small ones discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
This is a unit test setup error. Every unit-test uses the same instance of FB_SparkPlugB_SimpleEncoder. They use a case statement to perform parts of the tests on different scans. so for example: 1. Test_EncoderWithSimpleMetricBool will on the first scan Init the encoder and add metric 2. Test_EncoderWithList will on the second scan Init the encoder and add metrics 3. Then Test_EncoderWithSimpleMetricBool will on the second scan Encode From this, it can be seen that the encoding at 3 has nothing to do with the metrics added at 1 (because in the mean time, some other unit test has Init and added metrics. Possible solution: Every unit test has its own Encoder and own metrics. If we want to test "does it encode a second time?" then a specific and segregated test for that should be given.
Last updated: 2021-08-10
Post by hermsen on Ticket #16: Implement SparkPlugB Device discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Description has changed: Diff: --- old +++ new @@ -13,6 +13,7 @@ - The EoN can iterate through the connected FB_Devices via a list and sends all relevant Data to Primary SCADA + * [x] v1.1.x.x solution implements the basis for a List of Devices -* [ ] V1.4.x.x solution sends all Device Data too +* [x] V1.3.x.x solution allows for multple devices and DDATA * [ ] V1.7.x.x solution can receive, digest and follow up DCMD's
Last updated: 2021-08-10
Post by hermsen on Ticket #105: Lowering Device CPU consumption discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Publishing of Certificates / DATA is now done in a "non-blocking" fashion. However, payload encoding and decoding is still done in a REPEAT UNTIL LOOP during the Entry Step of each publishing state. Though this technically is equal to a blocking statement, Encoding / Decoding is most likely always finished in 1 scan since Google Protobuf encoding/decoding is finished very quickly. If in a future release or during "in the wild" testing pahse this seems to be an issue's, we will separate this further but for now it should suffice.
Last updated: 2021-08-10
Post by aliazzz on Ticket #23: Architecture discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Description has changed: Diff: --- old +++ new @@ -1,10 +1,12 @@ -FB_EoN_Node +FB_EoN_Node // Represents a Sparkplug Edge of Network Node and is responsible for publishing Node and +// Device metrics (thus integration without separate devices is possible) encapsulates -FB_MQTT_PubSub +FB_MQTT_PubSub // MQTT Client & Publisher +FB_Payload // Responsible for payload blob encoding and decoding +FB_Sparkplug // Responsible for the Sparkplug B Topics & Messages -FB_Payload +Optional +FB_Device // Represents a Sparkplug Device. Responsible for publishing Device Metrics -FB_SparkplugB -
Last updated: 2021-08-10
Post by ferraraf on Ticket #106: AWS IoT Core Support discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
I already have a certificate on my device, I generated it with the "Security Agent" no problem and had it connected to AWS Broker before, the bit am not sure about its the parameters with the client, so the Client ID (thing Name) and the hCert. AWS version : AWSclient(xEnable := True, uiKeepAlive := 20, sClientId := 'thingName', sHostName := 'xxxxxxxxxxxxxxxxx-ats.iot.eu-west-1.amazonaws.com', uiPort := 8883, wsWillTopic := "thingName/lastWill", pbWillMessage := ADR(lastWillMessage), uiWillMessageSize := udiLWTlength, eLasrWillQoS, xError := , xBusy := , eError := , xConnectedToBroker => ConnectionEstablished); SparkPlugB client : Client(ServerUrl := 'xxxxxxxxxxxxxxxxx-ats.iot.eu-west-1.amazonaws.com'//as above ServerPort := 8883, KeepAlive := 20, CleanSession := CleanSession, Username := '', //leave Blank? Password := '', //leave blank? useTLS := TRUE, //Should be TRUE hCert := hCert, // leave blank if already installed with Security Agent? GroupId := 'xxx', NodeId := 'xxx', DeviceName := 'xxx', publishPeriod := 3000, ConnectionState => ConnectionState, .......... Kind regards
Last updated: 2021-08-10
Post by hermsen on Ticket #105: Lowering Device CPU consumption discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
This requires a change in the code as the sending of a message now happens 'atomically' in a single method. This now has got to be split into some setup and feedback part. Fortunately the FB has been built to accommodate your suggested strategy. So, the setup is done in a state Entry, and the feedback is checked during the continuous part of the state.
Last updated: 2021-08-10
Post by hermsen on Ticket #94: (Bd)SeqNum flow control issue's discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
V1.10.0.11 has resolved the issue completely.
Last updated: 2021-08-10
Post by hermsen on Ticket #109: Move DCMD from EoN to Device discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
status: accepted --> pending
Last updated: 2021-08-10
Post by hermsen on Ticket #80: MQTT: Not resubscribing discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
status: pending --> closed
Last updated: 2021-08-10
Post by i-campbell on Ticket #16: Implement SparkPlugB Device discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Description has changed: Diff: --- old +++ new @@ -6,3 +6,16 @@ * Application nodes can look only at devices they are interested in (for example a HMI node that only wants data for the page it is on) Workaround: until this is implemented, all Metrics that would have been put in a device, can be published instead as EoN Node Metrics + +Ideas for implementation: +FB_Device + - based on FB_EoN + - every FB_Device has its own Publisher + - every FB_Device has its own Subscriber + - every FB_Device has its own AllMetricsList + - shared connection with the EoN. i.e. there is only one connection + +an ARRAY [*] of FB_Device will be passed by the user to FB_EoN + +"not enough subscribers" error too, for MQTT.MQTTParam.g_udiMaxPublishersAndSubscribers +This is not yet needed, as we are generally under the default value of 20 publishers or subscribers. MQTT.MQTTPublisher might already return an error. status: closed --> open Milestone: SFP: Device --> 2.0.0.0: Device
Last updated: 2021-08-10
Post by i-campbell on Ticket #21: Payload Structure -> Metric Structure -> ... discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Payload has LinkedList of PayloadMetric PayloadMetric has propertyset, which is a linked list of keys + a linked list of values. Maybe key+propertysetvalue pair? propertysetvalue has propertyset, which is a linked list of keys + a linked list of values. Maybe key+propertysetvalue pair? propertysetvalue has linked list of propertyset PayloadMetric has dataset, which is a linked list of cloumns + linked list of types + linked list of Rows. Rows are a linked list of elements. Metrics has a template, which has a linked list of Metrics + linked list of parameters FB_Payload has pool of metrics + pool of keys+pool of propertysetvalues + pool of propertysets + pool of columns + pool of datasettypes + pool of rows + pool of elements + pool of parameters Extends LinkedListElementBase METHOD FB_reinit : BOOL VAR_INPUT END_VAR UpdateElement(itfElement := THIS^);
Last updated: 2021-08-10
Post by hermsen on Ticket #102: Paylaod: refactor discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Rehashing: 2 types of data representation; 1) FB_Metric: The metric that resides in a payload, ie what has been transmitted on the wire, 2) FB_Template: The representation of the data in the metric, ie every bit of information about the metric. These two objects should form the basis for FB_PayloadMetric and FB_PayloadTemplate. FB_Metric will encapsulate (composition) a private FB_PayloadMetric instance which will be passed to the FB_EoN encoder and FB_EoN decoder. This idea is to the extended with the other Payload objects, so FB_Template encapsulate a private FB_PayloadTemplate instance, etc.
Last updated: 2021-08-10
Post by i-campbell on Ticket #8: SCADA: ability to save structures found online to offline project discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Milestone: 999 Backlog --> 9.9.9.9: Backlog
Last updated: 2021-08-10
Post by hermsen on Ticket #16: Implement SparkPlugB Device discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Description has changed: Diff: --- old +++ new @@ -10,10 +10,9 @@ - shares the connection with the EoN i.e. there is only one connection, - The user ties an arbitrary number of Devices to the EoN, - Implements the same dynamic arrays of Sparkplug values as EoN, - - The EoN can iterate through the connected FB_Devices via a list and sends all relevant Data to Primary SCADA + - The EoN can iterate through the connected FB_Devices via a list and sends all relevant - - +Data to Primary SCADA * [x] v1.1.x.x solution implements the basis for a List of Devices * [ ] V1.4.x.x solution sends all Device Data too * [ ] V1.7.x.x solution can receive, digest and follow up DCMD's
Last updated: 2021-08-10
Post by aliazzz on Ticket #39: FB_SparkplugB_SimpleEncoder discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
status: pending --> closed
Last updated: 2021-08-10
Post by hermsen on Ticket #108: TLS: use the new TLSContext to allow verification of the server certificate discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
labels: Improvement, Major --> status: accepted --> closed
Last updated: 2021-08-10
Post by aliazzz on Ticket #41: Add SparkplugB.T_DateTime ALIAS for ULINT discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
status: pending --> closed
Last updated: 2021-08-10
Post by i-campbell on Ticket #47: list.removecomponents: it uses a while loop that causes headaches discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
We should use this on the List FB, so that you cannot assign a list to a list. eg: List1 := List2; {attribute 'no_assign'} When you do assign a list to a list, both lists think they own the same objects, but they don't, and that's all kinds of mess.
Last updated: 2021-08-10
Post by i-campbell on Ticket #27: Visibility Control of Objects discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Milestone: 999 Backlog --> 9.9.9.9: Backlog
Last updated: 2021-08-10
Post by i-campbell on Ticket #73: EoN: Testing IIoT Host Node does not like it when it doesn't see a NDEATH discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
assigned_to: i-campbell
Last updated: 2021-08-10
Post by i-campbell on Ticket #11: FB_Payload discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Milestone: FFP: Protobufs full --> 2.0.0.0: Protobufs full
Last updated: 2021-08-10