Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

basic pubsub #826

Draft
wants to merge 33 commits into
base: master
Choose a base branch
from
Draft

basic pubsub #826

wants to merge 33 commits into from

Conversation

schroeder-
Copy link
Contributor

First of this pr is just a preview, to gather feedback about the api design. Pubsub is really complex and a lot of things are not implemented or handled correctly.

Points of interests are examples/pubsub/publisher_simple.py and examples/pubsub/publisher_simple.py.
Running both examples creates an publishing server on port 4840 with a folder "PublisherDemoNodes" with variables. This variables are send via uadp-udp, to the subscriber. On port 4841 the subscriber server has a folder "PublisherDemoNodes" where the variables revived via pubsub are mirrored. You can now change the variables on the publisher (Port 4840) and the values will be mirrored on the subscriber.

TODO

  • add a lot more test after api is finalized.
  • add tests against open62541 for interop testing.
  • refresh information model.
  • provide more methods to modify pubsub elements.

implemented features

Messagetypes:

  • Uadp (Binary)
  • Json

Transportlayer

  • UDP
  • Ethernet
  • Mqtt
  • Ampq

Informationmodel

  • readonly Informationmodel
  • import/export via UABinaryFile
  • add methods to modify informationmodel

asyncua/pubsub/connection.py Outdated Show resolved Hide resolved
asyncua/pubsub/connection.py Outdated Show resolved Hide resolved
examples/pubsub/subscriber_standalone.py Outdated Show resolved Hide resolved
examples/pubsub/subscriber_standalone.py Outdated Show resolved Hide resolved
examples/pubsub/subscriber_standalone.py Outdated Show resolved Hide resolved
examples/pubsub/subscriber_standalone.py Show resolved Hide resolved
@schroeder- schroeder- marked this pull request as draft April 10, 2022 13:05
@schroeder- schroeder- changed the title [WIP] basic pubsub basic pubsub Apr 10, 2022
@schroeder-
Copy link
Contributor Author

So took me sometime to address the api changes.

@schroeder- schroeder- reopened this May 8, 2022
schroeder- and others added 21 commits May 8, 2022 12:26
- mirror change from mypy
- ignore mypy errors
  - better to fix issues step by step
get_origin, get_args already defined
* Previously a client could not read values with bad status.
* This functionality can be toggled on and off.
* Added tests.

Fixes FreeOpcUa#856
prevents unsupported identity tokens to create a session
MinimumSamplingInterval is from Type Duration/Double so a float. Correct xmlparser.
Comparing 1.04.7 and 1.04.11 failed, use compare list instead of str compare.
schroeder- and others added 11 commits May 9, 2022 22:14
Allow fields in structs that are subtype of a class.
- DataSetFieldFlags is only from type UInt16 instead of UInt32
- Default Optionset to UInt32 instead of Int32
- Fix mypy
- Fix other errors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants