opcua-modeler
opcua-modeler copied to clipboard
Master Plan
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
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 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
See this PR. https://github.com/FreeOpcUa/python-opcua/pull/270
Does version 0.1 of the GUI support building methods?
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
@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
I will grab the master and take a look. Thanks.
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.
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 .
I updated the plan. I did not know I could edit that.
@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.
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.
Method are exported correctly. But we should add a GUI to add automatically arguments
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 I do not think so. expensive and very error prone. better let people write code
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.
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.
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.
You can just copy an existing one.