Post by hermsen on Ticket #102: Paylaod: refactor discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Last updated: 2021-08-10
Post by i-campbell on Ticket #131: Device: DDEATH or DBIRTH sometimes skipped discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
labels: Bug --> status: open --> closed
Last updated: 2021-08-10
Post by aliazzz on Ticket #21: Payload Structure -> Metric Structure -> ... discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
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)
Upped to personal branch v0.0.0.28
Last updated: 2021-08-10
Post by aliazzz on Ticket #18: SVN: use 'standard' cforge folder structure discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Last updated: 2021-08-10
Post by aliazzz on Ticket #1: Create Introductionpage discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
The introduction page has been revised to mention Namespaces, Payload's and Metrics.
Last updated: 2021-08-10
Post by aliazzz on Ticket #28: FB_Payload.ClaimNextFree* should initialize for you discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Okay, after thinking the architecture over I have got a solution which should ease the effort for developers while giving the freedom to arrange stuff in the 'background'. To achieve this, FB_Payload can be encapsulated into a new FB (a wrapper around it). This wrapper FB then provides enough 'space' to initialise and implement the encapsulated FB and also expose simplified interfaces (methods/properties) to the developer. On top of this you might consider splitting the core of FB_Payload into several FB's which provide only the encoding and decoding etc etc, this solution might be better maintainable and testable I guess.. What do you think? Let's share thoughts on this? FB_Payload (wrapper) FB_Payload_Core(s) // single Core FB or several core FB's
Last updated: 2021-08-10
Post by aliazzz on Ticket #1: Create Introductionpage discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
status: open --> accepted
Last updated: 2021-08-10
Post by hermsen on Ticket #82: EoN: SparkplugSimple.Notify requires handshake discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Fixed in v0.9.9.0
Last updated: 2021-08-10
Post by i-campbell on Ticket #130: PrimaryHost: Itterator discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
labels: PrimaryHost --> status: open --> closed
Last updated: 2021-08-10
Post by i-campbell on Ticket #95: Versions: Downgrade to 3.5.14.0 discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
status: open --> pending
Last updated: 2021-08-10
Post by i-campbell on Ticket #62: Sparkplug Birth Death Sequence: Should it MOD 256? discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
status: closed --> open
Last updated: 2021-08-10
Post by i-campbell on Ticket #42: Devicetree (Json) discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
status: open --> closed
Last updated: 2021-08-10
Post by hermsen on Ticket #135: Project Homepage: Update guides discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Description has changed: Diff: --- old +++ new @@ -3,4 +3,4 @@ [ ] [Set up Test Server](https://forge.codesys.com/prj/mqttsparkplugb/home/Set%20up%20test%20system/) - rename to setup a test system with Ignition Primary Host Add the following guides: -[X] setting up a test environment with a co⚡e primary host +[x] setting up a test environment with a co⚡e primary host
Last updated: 2021-08-10
Post by aliazzz on Ticket #12: Embedded some resources discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Description has changed: Diff: --- old +++ new @@ -9,10 +9,11 @@ to it I use +~~~ example.py sparkplug_b.py sparkplug_b_pb2.py - +~~~ To base my first FB_EoN_Node implementation on. Please do not remove those files until finalisation of the library Thank you
Last updated: 2021-08-10
Post by i-campbell on Ticket #11: FB_Payload discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Description has changed: Diff: --- old +++ new @@ -1,41 +1,76 @@ Initial Implementation of FB_Payload: -Will support a statically generate array for decoding and encoding the following. -Payload.metrics[].name -Payload.metrics[].alias -Payload.metrics[].timestamp -Payload.metrics[].datatype -Payload.metrics[].is_historical -Payload.metrics[].is_transient -Payload.metrics[].is_null -Payload.metrics[].metadata.is_multi_part -Payload.metrics[].metadata.content_type -Payload.metrics[].metadata.size -Payload.metrics[].metadata.seq -Payload.metrics[].metadata.file_name -Payload.metrics[].metadata.file_type -Payload.metrics[].metadata.md5 -Payload.metrics[].metadata.description -Payload.metrics[].properties.keys[] -Payload.metrics[].properties.values[].type -Payload.metrics[].properties.values[].is_null -Payload.metrics[].properties.values[].int_value -Payload.metrics[].properties.values[].long_value -Payload.metrics[].properties.values[].float_value -Payload.metrics[].properties.values[].double_value -Payload.metrics[].properties.values[].boolean_value -Payload.metrics[].properties.values[].string_value -Payload.metrics[].int_value -Payload.metrics[].long_value -Payload.metrics[].float_value -Payload.metrics[].double_value -Payload.metrics[].boolean_value -Payload.metrics[].string_value -Payload.metrics[].bytes_value -Payload.seq -Payload.uuid -The following will not be allowed implemented, and will set .xEncodeError or .xDecodeError if you try to use them: -Payload.metrics[].template_value -Payload.metrics[].dataset_value -Payload.metrics[].properties.values[].propertyset_value -Payload.metrics[].properties.values[].propertysets_value +User Project will manage pools of each of the elements of arrays. +FB_EoNNode will first generate a structure using the Initialize, Set and Add methods, and secondly Encode the FB_Payload when it wants to send a payload. +FB_EoNNode will first Decode the FB_Payload, then use the Get and Read methods to determine the structure. + +Progress (Implemented, not tested): +Get Set Encode Decode +[x] [x] [x] [x] Payload.timestamp +[ ] [x] [ ] [ ] Payload.metrics[].name +[ ] [x] [ ] [ ] Payload.metrics[].alias +[ ] [x] [ ] [ ] Payload.metrics[].timestamp +[ ] [x] [ ] [ ] Payload.metrics[].datatype +[ ] [x] [ ] [ ] Payload.metrics[].is_historical +[ ] [x] [ ] [ ] Payload.metrics[].is_transient +[ ] [x] [ ] [ ] Payload.metrics[].is_null +[ ] [x] [ ] [ ] Payload.metrics[].metadata.is_multi_part +[ ] [x] [ ] [ ] Payload.metrics[].metadata.content_type +[ ] [x] [ ] [ ] Payload.metrics[].metadata.size +[ ] [x] [ ] [ ] Payload.metrics[].metadata.seq +[ ] [x] [ ] [ ] Payload.metrics[].metadata.file_name +[ ] [x] [ ] [ ] Payload.metrics[].metadata.file_type +[ ] [x] [ ] [ ] Payload.metrics[].metadata.md5 +[ ] [x] [ ] [ ] Payload.metrics[].metadata.description +Payload.metrics[].metadata.extensions[] //none +[ ] [x] [ ] [ ] Payload.metrics[].properties.keys[] +[ ] [ ] [ ] [ ] Payload.metrics[].properties.values[].type +[ ] [ ] [ ] [ ] Payload.metrics[].properties.values[].is_null +[ ] [ ] [ ] [ ] Payload.metrics[].properties.values[].int_value +[ ] [ ] [ ] [ ] Payload.metrics[].properties.values[].long_value +[ ] [ ] [ ] [ ] Payload.metrics[].properties.values[].float_value +[ ] [ ] [ ] [ ] Payload.metrics[].properties.values[].double_value +[ ] [ ] [ ] [ ] Payload.metrics[].properties.values[].boolean_value +[ ] [ ] [ ] [ ] Payload.metrics[].properties.values[].string_value +[ ] [ ] [ ] [ ] Payload.metrics[].properties.values[].propertyset_value. //(RECURSIVE PROPERTIES) +[ ] [ ] [ ] [ ] Payload.metrics[].properties.values[].propertysets_value.propertyset[]. //(RECURSIVE PROPERTIES) +[ ] [ ] [ ] [ ] Payload.metrics[].properties.values[].extension_value //none +[ ] [ ] [ ] [ ] Payload.metrics[].properties.extensions[] //none +[ ] [x] [ ] [ ] Payload.metrics[].int_value +[ ] [x] [ ] [ ] Payload.metrics[].long_value +[ ] [x] [ ] [ ] Payload.metrics[].float_value +[ ] [x] [ ] [ ] Payload.metrics[].double_value +[ ] [x] [ ] [ ] Payload.metrics[].boolean_value +[ ] [x] [ ] [ ] Payload.metrics[].string_value +[ ] [x] [ ] [ ] Payload.metrics[].bytes_value +[ ] [x] [ ] [ ] Payload.metrics[].dataset_value.num_of_columns +[ ] [x] [ ] [ ] Payload.metrics[].dataset_value.columns[] +[ ] [x] [ ] [ ] Payload.metrics[].dataset_value.types[] +[ ] [x] [ ] [ ] Payload.metrics[].dataset_value.rows[].elements[].int_value +[ ] [x] [ ] [ ] Payload.metrics[].dataset_value.rows[].elements[].long_value +[ ] [x] [ ] [ ] Payload.metrics[].dataset_value.rows[].elements[].float_value +[ ] [x] [ ] [ ] Payload.metrics[].dataset_value.rows[].elements[].double_value +[ ] [x] [ ] [ ] Payload.metrics[].dataset_value.rows[].elements[].boolean_value +[ ] [x] [ ] [ ] Payload.metrics[].dataset_value.rows[].elements[].string_value +Payload.metrics[].dataset_value.rows[].elements[].extension_value //none +Payload.metrics[].dataset_value.rows[].extensions[] //none +Payload.metrics[].dataset_value.extensions[] //none +[ ] [x] [ ] [ ] Payload.metrics[].template_value.version +[ ] [x] [ ] [ ] Payload.metrics[].template_value.metrics[]. //(RECURSIVE Metrics) +[ ] [ ] [ ] [ ] Payload.metrics[].template_value.parameters[].name +[ ] [ ] [ ] [ ] Payload.metrics[].template_value.parameters[].type +[ ] [ ] [ ] [ ] Payload.metrics[].template_value.parameters[].int_value +[ ] [ ] [ ] [ ] Payload.metrics[].template_value.parameters[].long_value +[ ] [ ] [ ] [ ] Payload.metrics[].template_value.parameters[].float_value +[ ] [ ] [ ] [ ] Payload.metrics[].template_value.parameters[].double_value +[ ] [ ] [ ] [ ] Payload.metrics[].template_value.parameters[].boolean_value +[ ] [ ] [ ] [ ] Payload.metrics[].template_value.parameters[].string_value +Payload.metrics[].template_value.parameters[].extension_value //none +[ ] [x] [ ] [ ] Payload.metrics[].template_value.template_ref +[ ] [x] [ ] [ ] Payload.metrics[].template_value.is_definition +Payload.metrics[].template_value.extensions[] //none +Payload.metrics[].extension_value.extensions[] //none +[x] [x] [x] [x] Payload.seq +[x] [x] [x] [x] Payload.uuid +[x] [x] [x] [x] Payload.body +Payload.extensions[] //none The following is not intended to be implemented: extensions
Last updated: 2021-08-10
Post by aliazzz on Ticket #50: FB_MQTT: false calculation of _LastwillMessageSize discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
fixed
Last updated: 2021-08-10
Post by aliazzz on Ticket #2: clone Cirrus Logic Git Repo discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
status: closed --> open
Last updated: 2021-08-10
Post by i-campbell on Ticket #39: FB_SparkplugB_SimpleEncoder discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
GetEoNNBirthCertificate Line 4: Here you give the FB_Payload a seq of zero, but you should either: reset the _seqNum to zero, then call GetSeqNum() reset the _seqNum to one, and leave the call as is.
Last updated: 2021-08-10
Post by aliazzz on Ticket #62: Sparkplug Birth Death Sequence: Should it MOD 256? discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Reflecting on this ticket: The spec only explains the seqnum counting. Ps, I implemented BDSeq according to the python example (= MOD 256)
Last updated: 2021-08-10
Post by aliazzz on Ticket #24: FB_MQTT_PubSub discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
As far as I can oversee this ticket can be closed because the FB is 99% finished
Last updated: 2021-08-10
Post by hermsen on Ticket #93: Refining the state machine(s) discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Fixed in 1.1.0.13 in personal branch => merge with trunk
Last updated: 2021-08-10
Post by i-campbell on Ticket #23: Architecture discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Milestone: MVP EoN --> 1.0.0.0: EoN
Last updated: 2021-08-10
Post by i-campbell on Ticket #1: Create Introductionpage discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
Milestone: SFP: Example --> 2.0.0.0: Example
Last updated: 2021-08-10
Post by hermsen on Ticket #115: Every type of Node will have it's seperate log (bonus kudos) discussion
co⚡e: Sparkplug™ MQTT edge and host
tickets
(Post)
status: open --> accepted
Last updated: 2021-08-10