opcua-modeler icon indicating copy to clipboard operation
opcua-modeler copied to clipboard

Master Plan

Open oroulet opened this issue 9 years ago • 19 comments

Work in progress, feel free to fix and/or comments every steps/module here is checked when it is roughly implemented. polishing will come later

0.1

  • [x] initial UI taken from UA client
  • [x] actions to add nodes
  • [x] Improve, add missing icons
  • [x] save dialog windows sizes and better default size
  • [x] Implement namespace editor on top left (simle treeview showing NamespaceArray node with add and remove namespaces actions)
  • [x] import xml
  • [x] save xml
  • [x] Use another font/color to clearly differentiate added nodes that will be exported
  • [x] keep track of all added nodes (need small modifications of python.opcua)
  • [x] finish UI shown when adding nodes, must be possible to specify node type and values for variables. Other attributes will be specified in Attribute editor
  • [x] finish Attribute editor, currently it only show attributes, apart from Value. Should use
  • [x] Copy/past actions to copy nodes and attributes when mass creating nodes

0.2

  • [x] Fix export of lists
  • [x] Fix export of ExtensionObjects
  • [x] remember last used values when adding nodes since users probably add many nodes of same types (to discuss)
  • [x] release to pip
  • [x] enable column resizing of qt views
  • [x] add support for designing methods
  • [x] Value attribute doesn't need to show server/source timestamps

0.3

  • [x] UI for reference node sets (xml files like https://opcfoundation.org/UA/schemas/DI/1.00/Opc.Ua.Di.NodeSet2.xml)
  • [x] Check if all attributes are really exported and implement missing ones
  • [x] Correctly handle export and import of namespaces
  • [x] start work on UI for methods

0.4

  • [x] never crash UI
  • [x ] polish
  • [x] better editor for extension objects
  • [x] better editor/viewer for arrays
  • [x] Do not use dialogs in namespace editor and allow for editing
  • [x] use other servers internally for example open62541. that should be easy
  • [x] more adaptive contextual menu

0.5

  • [x] Implement reference editor
  • [x] Use our own (minimal) file format uamodel to keep reference to external nodesets...

0.5.5

  • [x] better UI for methods
  • [x] Find a smart way to allow user to create their own custom ua structures (extensionobjects) (Important!!!)

0.6

  • [ ] do not close dialogs before node is created so users can retry before crashing
  • [ ] recent files menu
  • [ ] open tree to last used node after opening file
  • [ ] Edit methods

later:

  • [ ] restrict custom namespace to one? (uamodeler does it)
  • [ ] disable creating node in ns 0?
  • [ ] Instantiate Action (Maybe)
  • [ ] Cut Action (Maybe)
  • [ ] allow to modify node id and update links/references when changing nodeid of a node (maybe)
  • [ ] Display dialog to set namespace and maybe nodeid creation strategy and type when copying/instantiating nodes

oroulet avatar Jul 31 '16 07:07 oroulet

To avoid double work, I will take the 'save xml' task. I've already started it, but I don't have enough to start a PR yet. I'll try to get an initial PR to the opcua server this week.

zerox1212 avatar Aug 01 '16 14:08 zerox1212

@zerox1212 yes I let you have a look at that xml stuff. make a pr to python-opcua asap so other can comment early work.

And yes good idea to say who is working on what. I will polish the dialog to select a node and work on the attribute editor. Next is to correctly show nodes to export

oroulet avatar Aug 01 '16 16:08 oroulet

See this PR. https://github.com/FreeOpcUa/python-opcua/pull/270

zerox1212 avatar Aug 03 '16 16:08 zerox1212

Does version 0.1 of the GUI support building methods?

zerox1212 avatar Aug 15 '16 14:08 zerox1212

Make it and it will :-) No you should wait for 0.1, so that the basis works

But please write it in master plan so we do not forget it

oroulet avatar Aug 15 '16 14:08 oroulet

@zerox1212 sounds crazy but it is now usable. Can you have a look and report? you need to clone uamodeler and uawidgets repository and make a link

oroulet avatar Aug 17 '16 19:08 oroulet

I will grab the master and take a look. Thanks.

zerox1212 avatar Aug 18 '16 12:08 zerox1212

Wow, it looks pretty good.

So far I see a few small issues. Some of the table columns can't be resized which is a bit annoying. Also, when you add a new variable, what does "auto data type" do?

I also found a bug where if you have a variable/property and you click in the ValueRank field the app crashes. Actually there are a few things in the attribute editor that cause it to crash.

zerox1212 avatar Aug 18 '16 12:08 zerox1212

Can you write the issues in master plan? No need to open bug request for all small things for now. Yes the column resizing is an issue, I do not know how to fix it... If you know qt you can try.. Probably a settings of the treeview

On Thu, Aug 18, 2016, 14:52 Andrew [email protected] wrote:

Wow, it looks pretty good.

So far I see a few small issues. Some of the table columns can't be resized which is a bit annoying. Also, when you add a new variable, what does "auto data type" do?

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/FreeOpcUa/opcua-modeler/issues/3#issuecomment-240713372, or mute the thread https://github.com/notifications/unsubscribe-auth/ACcfzojB0TaIV6zZymVj7fX0zDTKa_IOks5qhFVzgaJpZM4JY-gu .

oroulet avatar Aug 18 '16 14:08 oroulet

I updated the plan. I did not know I could edit that.

zerox1212 avatar Aug 18 '16 15:08 zerox1212

@maljac Can you test the modeler with some of the more complicated model designs? I need help understanding what the XML should look like. At the moment XML export will probably not work on some configurations because of this.

zerox1212 avatar Aug 18 '16 15:08 zerox1212

I have not looked at this in a while. What is the status of exporting methods? Turns out I now need the ability to build some simple methods in my model.

zerox1212 avatar Sep 29 '16 20:09 zerox1212

Method are exported correctly. But we should add a GUI to add automatically arguments

oroulet avatar Oct 01 '16 10:10 oroulet

When we change a custom type, such as an object type, all instances of that type should update to reflect the changes in the type.

zerox1212 avatar Oct 03 '16 17:10 zerox1212

@zerox1212 I do not think so. expensive and very error prone. better let people write code

oroulet avatar Oct 03 '16 18:10 oroulet

UAModeler is not this way. If I have an instance of an object type in my model, and I add a new property to that object type, my instance automatically gets the new property.

If you have an address space with 500 instances of ObjectyType A, and you add a property to that type you will have to manually update all your instances. This would force you to do all your ObjectTypes first, and if you ever had to adjust it later it would be a major pain.

zerox1212 avatar Oct 03 '16 21:10 zerox1212

But the other way around if someone modify base object, should we change the entire address space? That is going to be crazy expensive...

And if someone really has 500 instances, they really should make type in xml then instantiate programmatically.

oroulet avatar Oct 04 '16 05:10 oroulet

Is creating custom Enumeration types (EnumStrings) with values possible? UaModeler has EnumValues -section where you can add Acending/Mask/Gaps type of EnumValues. Values are visible (like under ExceptionDeviationFormat) but not editable, even under own custom type.

jarkko-hautakorpi avatar Aug 06 '19 12:08 jarkko-hautakorpi

You can just copy an existing one.

oroulet avatar Aug 07 '19 20:08 oroulet