This GUI will allow to create dynamic macro for general use.
Consist of two frames. Device and attribute selection (left) and macro table and controls (left).
Device and attribute selection
User can select group of devices which should be used for macro by clicking on group box on top. There can be multiple groups for ie. "all motor axis", "sensors", ... There is also "reload button" which will reload all device attributes. This action should be performed after all devices loads it's configuration. This will be automatized in the future.
Immediately after group was selected you will see list of devices. Attributes are rolled out from left to right and allows user to add them into macro by double click on Attribute or Function. If user double click on device, its debug window is shown (all device attributes and functions are exposed to the user in this window). If mouse is hovered over attribute, it's actual value will be shown.
To move attribute into the macro table, user can either double click on the attribute or use button.
button is used to set attribute value as a variable value for row in the macro. For example, you want to set frequency of all motors to current frequency of axis one. You can add frequency attribute of all axis into the macro table and set value as a axis one frequency attribute.
Macro table and controls
All macro controls are situated on the right side of window.
Top menu consists of six buttons:
- button will add new macro. User will be asked to enter name of the macro.
- button will remove selected macro. User will be asked to agree.
- button will start current macro from the beginning.
- button will start macro from selected row until end.
- button will pause macro at any time and will resume macro execution.
- button will stop currently running macro.
There is a list of actively opened macros under top menu. Each Tab has it's own macro table. This table consists of rows. Each row represents one macro step. There are few options for each row:
- Device ID is device identificator.
- Attribute / Function is identificator of device attribute which will be used for current macro step.
- Value will be set for current attribute in the time of macro step execution. It's shown in device attribute units. Units cannot be changed at this time. If value should be other device attribute it looks like this:
- Wait it's time in seconds. Next step will be delayed by this time.
- Opt. (Options). Currently there are two options:
- Chaining or parallel execution. This button has three states. no chain, chained and chain end:
Execute first step, then 2 and 3 in parallel and step 4.
Execute first step, then 2 and 3 in parallel, then 4 and 5 in parallel.
- Absolute "A" or relative "R" value:
Move to absolute position 11000000nm, then move relative by 500nm, then relative by -500nm and to absolute position -11000000nm.
Each selected macro table can be manipulated by buttons in the right panel. User can change position or remove multiple selected row or change color of these rows.
- button will change color of multiple selected rows. It will ask user which color in palette dialog and change background of this rows:
- button will move selected rows on top
- button will move selected rows by one row up
- X button will remove selected rows
- button will move selected rows by one row down
- button will move selected rows to the bottom
There are four buttons in the bottom:
- Reset, which will remove all macro steps from current macro table
- Save current macro, which will save only currently selected macro
- Save all, which will save all opened macros into macro set
- Load, which will load saved macro or macro set