21 Feb, 1997 D. Kerstien/LANL edd/dm Release Notes ==================== See the OPI manual at http://www.atdiv.lanl.gov/doc/epics/OPI/opintro.book.html for more thorough information. Version 2.4 =========== Conversions Available for Monitors: ---------------------------------- A new feature was added for monitor objects (text update, bar, meter, indicator.) The current implementation supports functionality identical to that of the EPICS "calc record" with only one input. The field "conversion" is used to configure the conversion in edd. Since this capability is intended to be extended to support user-defined functions at a later date, one must currently indicate that the "calc" is to be used by using the term "dmCalcIn". The character "A" is used to represent the value of the channel to which the object refers ("channel to control or monitor"). An example is: dmCalcIn = A*PI*2.0 When running dm, the value of the channel would be converted according to the expression and displayed accordingly. The addition of the "units" field allows one to modify the units displayed to correctly correspond to the converted value. (As usual, one must select the "append" option on the "units modifier" filed to display units.) Note that the expression defining the calculation must not contain spaces. It is also intended that this functionality will be provided for controllers in the future. (Although the conversion related fields appear on the "modify" page for controllers, the feature is not yet implemented.) To do this, both input expression ("dmCalcIn") and an output expression ("dmCalcOut") would have to be defined. FYI, the "conversion params" field was provided to define the parameters to the user-defined function mentioned above and is currently not used. Changes to Text Entry: ---------------------- The text_entry controller was modified to accept hexadecimal input. If the first two characters in the string are "0x" or "0X", the string will be interpreted as hexadecimal and translated accordingly. Text Handling: ------------- A bug was fixed that caused exponential and engineering formats to be handled incorrectly. This was fixed. Changes to Valuator: --------------------- The valuator (slider) was modified to respond to arrow keys (left, right, up, down.) Left and down arrow keys decrement the current value by the current decrement amount, while right and up arrow keys increment the current value. (Note: the increment/decrement can be configured in edd for an instance of a valuator. Otherwise, a default is used.) Filename Selection Controller: ------------------------------ A new controller was added, the filename_select controller. It was designed mainly for writing pathnames (dir name and file name) to stringout records. This controller is similar to a menu since it displays a string representing the current value of the channel. If MB1 (left mouse button) is pressed, a Motif file selection dialog is presented to modify the directory name and pathname. In edd, two fields are provided to select the default directory name and search pattern to use when invoking the file selection dialog. They are, respectively, "path name" and "selection pattern". Dynamic Graphics: ----------------- A bug existed that caused color-rule-based dynamic graphical objects to pop to the front when the color rule changed even though the objects should have been occluded by other objects. This was fixed. Version 2.3 =========== Dm Motif startup widget: ------------------------ There is now a startup Motif widget for dm that includes pulldown menus. Those currently implemented are "File->Open Display" which will work for the initial display only at this time, and "Options->Printer Selection" which allows one to change printer name, or to select "Print to File" and specify the filename for printing a postscript file. (The print options popup may also be invoked from the main display menu in dm -exit, print, etc.- or from the new "print options" or "print display" controller objects described below.) Note: at this time, it is not possible to specify macro substitution strings for a display if the "File->Open Display" menu item is used to bring up the first display. Note: In order to build edd and dm, you'll need X11R5 and Motif 1.2 (or later.) Scalable fonts: --------------- Scalable Fonts are available in this version in sizes 6-24, 35, 45, 55, 65, 75, 85, and 95. Scalable fonts are currently included as a compile time option. To use them, the Makefile.Unix in rti, gizmo, util, and edd must use -DSCALABLE_FONTS. This is done in the Makefiles for version 2.3. If you don't want to use scalable fonts, you must remove this define. Otherwise, scalable fonts will replace the existing fonts used in both edd and dm. Since loading scalable fonts takes longer, a new program called preload_fonts has been added. If you run this program, edd and/or dm will start up much faster. Note: if you have been running edd/dm on your XServer, you must restart the server before switching to scalable fonts. This is because edd/dm are optimized to avoid loading their fonts if edd/dm fonts have already been loaded, i.e. if edd/dm have already run and loaded the fonts. Print Button, Print Options Button ---------------------------------- Two new controller objects were introduced in edd/dm, the "print display" and "print options" controllers. In dm, the objects appear as buttons (like the "kill display" button). When the "print display" button is pushed using the left mouse button (MB1), the display will be printed to the printer currently specified (or to the filename specified if "Print to File" has been selected) using the "Print Options" popup widget. If the print button is pushed using the right mouse button (MB3), the "Print Options" popup will appear for configuring print-related information. When the "print options" button is pressed using either the left or right mouse button, the "print options" popup will appear for configuring print- related information. The printer name may be entered as text or selected from a menu in the popup. A filename may also be specified and, if "Print to File" is selected, selecting "Print" from the dm menu or a "print display" button will cause the display to be output to a postscript file of that name instead of being sent to a printer. (Note: the filename entered will have a ".ps" suffix automatically appended to denote the fact that it is a postscript file.) The menu of choices for the printer selection is taken from an environment variable, EPICS_PR_LIST, which the user may set. If this variable is not set, PSPRINTER will be used as the default. To set EPICS_PR_LIST:(separators are colons as used in path): setenv EPICS_PR_LIST "printer1:printer2:printer3" Precision Override: ------------------- The field "precision" has been added to edd's "modify attributes" menu so that a default precision may be set up for use in creating objects. This precision is used in text updates, valuators, and indicators, allowing one to override the precision defined for a channel in the database. The default is -1 which means no override. Any positive number will be used as the precision value. Related Displays and Execute Scripts: ------------------------------------- Related display and execute script controller objects have been modified to allow 24 choices (the previous number was 8). It was discovered that double-clicking on related displays caused dm to crash. This bug was fixed. The implementation was done to provide 3-D borders on both related displays and execute scripts. Related displays and execute scripts using a "label" instead of displaying the value of the last one selected will now have the default selection be the first menu item instead of the last one selected. This affects MB1 operation and taking the default with MB3. Self-kill feature on related displays: -------------------------------------- If a related display with a macro substitution string used the self-kill feature (causes the parent display to be killed when the related display is called up), it would cause dm to die. This release contains a bug fix for that problem. Dl to Adl and Adl to Dl Conversions: ------------------------------------ Conversion programs were put in place to support conversions needed for changes in display list format between edd/dm versions. Adl2dl is used to make a .dl file for the current version from a .adl file in the current version. Dldump is used to create an .adl file in the current version from a .dl file in that version. These files eliminate the need to convert each file manually using edd. Depending on the magnitude of the changes in the display list format, a conversion script may also be required. Example of conversion from 2.2 to 2.3. 1. If you don't have .adl files for your 2.2 edd/dm: run 2.2 version of "dldump" to produce them. (This, of course, didn't exist for 2.2, but the next steps will actually work.) 2. After building 2.3, run a 2.2_to_2.3 conversion script if necessary to modify the layout of the adl file. 3. If you use an "external color palette" this file must be converted first. Run 2.3 version of adl2dl to make 2.3 color palette .dl file. If this file is not in the same directory as the other .adl files, you must have a link to the "color palette" directory before converting the other files. (At this time, the adl2dl program will crash if the color palette file is not found.) 4. Run 2.3 version of adl2dl to make 2.3 .dl files from the .adl files. A script "adls2dls" has been written to automate the adl2dl conversions. If you're using a color palette and your color palette file is not in the same directory as other files, convert the color palette file first as described in step 3, but no link is needed. Then run adls2dls as follows: adls2dls -cmap / *.adl This will convert all adl files in the current working directory correctly. If your color file is in the same directory as other adl files, run adls2dls: adls2dls *.adl This will convert all adl files in the current working directory, including the color map, correctly. (In this case step 3 is unnecessary.) Additions to valuator functionality ___________________________________ The increment/decrement value, the send mode (motion or release) and the gain of a valuator to be used in dm can now be configured in edd. The options in the valuator property sheet allow the changes and dm creates the valuator as specified. Changes can still be made when running the display with the valuator just as before. The defaults in the property sheets are the same as the defaults for the valuators were previously, so they will behave as before unless you make a change. Changes to Macro Replacement ____________________________ There is no longer a limit on the number of macro replacements (it was previously 8.) The macro replacements defined in edd are limited, however, by the maximum number of characters allowed in the text_entry (currently 256.) This also fixes an earlier bug was encountered when trying to use the maximum number of macro replacements. Toggle Button _____________ The toggle button added in 2.2.2 had a bug that caused the color to be wrong in some cases. This was fixed. Changes to Valuator ___________________ Previously, the "label" option was not supported for valuators. The default ("None") caused the valuator to appear with its high and low display limits (HOPR and LOPR if not configured). There are now two options supported: "None" or "Outline" will produce a valuator without the aforementioned limits. "Limits" or "Channel" will produce one with those limits, i.e., it will appear as before. To provide upward compatibility, the conversion filter (eddCvrtTo2.3) will change the valuator label option to "Limits" and it will appear as before. New DM Icon ___________ Dm now has a custom icon (done by Dave Wetherholt at TJNAF--thanks, Dave!) Version 2.2.2 ============= This release contains changes to the text_entry gizmo. It introduces the "toggle button" controller and the "byte widget" monitor. Also new are the addition of Motif "file selection dialogs" as an alternative to selecting files. In addition, a chan name popup is available for the first time in this release. A brief description of the changes is included. See the OPI manual for more thorough information. Note: In order to build edd and dm, you'll need X11R5 and Motif 1.2 (or later.) Toggle button: ------------- The "toggle" function has been implemented in a new controller object, the "toggle button". When MB1 (left button) is pressed and released inside the "toggle button" object, the current value is toggled, i.e., if the value is currently 1, it becomes 0 and vice verse. If the database channel specified is not of the "enum" type, the object will indicate that it has an invalid db type. The user may specify strings for the zero and one states. If not specified, those found in the database will be used. When this object is used to refer to a mbbi or mbbo, the first two states will be used (0 and 1) along with the corresponding strings (unless the strings are specified in edd.) Text_entry changes: ------------------- The text_entry now requires an explicit "enter" (CR) to cause the entered value to be sent. The new default behavior when the mouse leaves the text_entry box is to replace the edited text with the currently set value of the object. The default behavior resulting from the mouse leaving the text_entry can be modifed in the user's .Xdefaults file by setting the variable Dm.teTimeout to anything greater than 0.0. For example, if you include the line Dm.teTimeout 1.0 in ~/.Xdefaults, the user may move the mouse outside the text_entry object and the edited text will remain as edited with the appearance of edited text. One can then cut/copy text elsewhere and paste into the text_entry object before entering using "CR". If one wishes to force the the current value of the object to replace the edited text (i.e, do the same thing as the default loss of focus behavior) "cancel" (described below )can be used to do so. This facility is also available in edd using Edd.teTimeout 1.0 In a future release, the teTimeout value specified may actually be used to specify a "timeout". In this case the edited text will remain as edited for the duration of the timeout at which time it will be replaced by the current value of the object. In addition, there is now a "cancel" selection on the text_entry menu. If selected, "cancel" causes the current edited text to be replaced by the last value that was actually entered (and therefore, sent). Note that this is the same as the default behavior when the mouse leaves the text_entry box. Another new option adds the ability to have the text_entry text updated whenever it receives a new value. Previously, updates would not happen as long as the mouse was inside the text_entry object. The default behavior remains as such. To add the update facility in dm, add the line Dm.teUpdate True (Note that the default is False.) The last change involves selection of text in the text_entry object. Previously, the middle button was used to complete text selection. The user must now press Shift and Mouse Button 1 simultaneously to end selection. This change implemented to provide compatibility with Motif. File Selection Dialog Popup: ---------------------------- In edd, when a user selects "load display", a Motif file selection dialog popup is now used for selecting the file to be loaded. The user may still autoload a specified file as before by typing: edd In dm, if the filename is omitted when invoking dm, the Motif file selection dialog popup will allow the user to select the file he/she wishes to load. The popup will not appear if the user specifies the filename when invoking dm as: dm Chan Name Popup: ---------------- The chan name popup may be used to display the name of a database channel. By moving the mouse to an active object (controller, monitor, or dynamic graphic object) and pressing Shift and MB2 simultaneously, the user will invoke a chan name popup. This popup contains the name of the channel to which the value of the object refers. The chan name is highlighted and preselected and may be pasted into other applications including xterms and Motif text widgets using the standard paste operation defined for these objects. Note: editing the object currently does not change the channel to which the value of the object refers. Byte Widget: ------------- The byte widtet provides the ability to view the value of an object as a series of 1 to 32 bits. Each bit is displayed as a visible rectangle if the bit value is "1" and will not be visible if the value is "0". The number of bits to display is configured in edd by specifying the starting and ending bit. As with other monitors, it may be configured to display either in a vertical or horizontal fashion. For more information, see the OPI manual.