DIAdem Idea Exchange

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

We use scripts extensively to automate many tasks in a consistent manner, so we back these scripts up in a version control system to track changes and revert back to a know version if issues arise.

 

However, because we also use Diadem dialogs we need to create SUD files to house not only the menus but also the scripts that can be built into them. These SUD files are binary in nature and cannot be compared in the version control system, which is primarily a text based tool, and because the fileformat is unknown any differences at the binary level are not easily understood.

 

My idea is to have a tool that can parse a SUD file to extract the script associated with each dialog and export that script to a VBS file in a programmatic manner, such that multiple VBS files can be created quickly instead of having to open each SUD file and its many dialogs and then capturing the scripts. The benefit this brings is that there will now be the ability to track script differences in any text diff tool of your choice, it would not address any changes of a graphical nature within the SUD file, but that is not the motivation for this idea.

Currently the predefined function keys only allow you to execute an entire .vbs file.  How about adding the ability to define a single procedure within a script file to be executed?

In tabbed environments (web browsers, dev environments, etc.) reordering my tabs helps me keep things organized and improves my workflow.  I'd like to have the ability to reorder the tabs in the script editor.

The script editor needs the ability to comment or uncomment an entire block of text at once, similar to what is present in the Dialog Editor and most other script editors.

During script development I'm finding I often want to run little one-off scripts to get some insight into the environment at that particular point in time.  Stuff like...

 

LogFileWrite(ItemInfoGet("MyGlobal"))

 or maybe iterating through a collection to see what it contains.

 

Currently I have to open a new script window, type up my script, and execute it.  This gets to be a headache as I have several temporary script windows open each with a different command I want to use.  It would be nice to have a script console tab available in the watch window where I could type in the commands and have them execute immediately.  Alternatively, an option to highlight a section of a script and execute only that section would allow me to bunch all my commands into a single temporary window.

Hi

 

I have create an Element List filtering some channels of a group

 

Dim mSyncLst, iGrp
Set iGrp = Data.Root.ActiveChannelGroup
Set mSyncLst = Data.GetChannels(iGrp.Name & "/ABC*") 'List With Several Channels

 

I would like to add to the mSyncLst the channels containing DEF. e.g. Data.GetChannels(iGrp.Name & "/DEF*"), which also contains several channels. Using the method Add mSyncLst, only allows to append one channel each time.

 

Thank you

Diadem currently has a copy function for curves within the user interface, as shown below: 

 

 

true.png

 

However, there is no copy function within the scripting api. This means to duplicate a curve programmatically multiple functions. one for each of the properties in the curve, need to be called as shown below: 

 

Dim oMyReportObj, oMyNew2DCurve,

Set oMyReportObj = Report.ActiveSheet.Objects.Item(1)

Set oMyNew2DCurve = oMyReportObj.Curves2D.Add(e2DShapeLine, oMyReportObj.Curves2D.Item(oMyReportObj.Curves2D.Count).Name &"_copy")
oMyNew2DCurve.Shape.XChannel.Reference = oMyReportObj.Curves2D.Item(oMyReportObj.Curves2D.Count-1).Shape.XChannel.Reference
oMyNew2DCurve.Shape.YChannel.Reference = oMyReportObj.Curves2D.Item(oMyReportObj.Curves2D.Count-1).Shape.YChannel.Reference
oMyNew2DCurve.Shape.Settings.Line.Width = eLineWidth0100

...

 

It would be far easier if there were a call to copy a curve directly: 

 

Dim oMyReportObj, oMyNew2DCurve,

Set oMyReportObj = Report.ActiveSheet.Objects.Item(1)

Set oMyNew2DCurve = oMyReportObj.Curves2D.Copy(1)

 

 

 

DIAdem should have intellisense work throughout all script file.

So the DIAdem script editor -- which is a nice editor, don't get me wrong 😉 -- has the option to set bookmarks to ease navigation within a lengthy script. I like to use these, but I would like them even more if there were an option to carry them over to the next time I launch DIAdem to work on the script, possibly to mark where I left off, or to enable me to jump right back into the fray, as it were.

 

Has this been requested before, and if no, what is the likelyhood of this making it into a future version?

 

Thanks in advance and best regards

Leo

Would it be possible to take the next step in automation and use the .Net framework for scripting functionality?

In the DIAdem interface, there are menubar buttons available that allow the user to "Save ___ As...", whether it's a script, SUD, layout, etc.  In the script editor, there is also a "Save All" button that saves all of the opened scripts.  However, 9 times out of 10 I just want to save the current layout/script/whatever.  It would be great to have a standard "Save" button either in addition to or in place of the "Save As..." button in the menubar.

 

(Yes, I know I can use the keyboard shortcut "Ctrl+S" or click "File --> Save" but these options are not as readily apparent as the "Save As..." or "Save All" icons, so I find myself clicking one of those and then having to click several more times just to get out of it...when all I wanted was a one-click save.)

 

An added benefit would be (like in the Script editor), if the file has not changed then the "Save" icon could be grayed out.  That way the user would know that the current state of the current script/layout/etc was saved to disk.

Lately there has been a need by many individuals to shift data for one reason or another.  Possibly the data was collected without using a trigger to synch everything or just collected with an inevitable delay.

 

Would R&D look into a function that could mark two points in a customer's data and then align/shift the data so a comparison may be done of one data set against another?

 

Thanks!

What about an extended grouping feature like the recently implemented collapsing/expanding possibility for subs or functions? I would like to see it extended to loops, case structures or just arbitrary chunks of script to make longer scripts clearer and easier accessible.

Rather than asking for a change to the "Repeat Marker" to plot all the points (we'd prefer "Repeat Marker" in DIAdem VIEW to be "Every N Points" where N = 1 rather than "Up to N Points" where N = 100), I think it would be great if we could have a configurable DIAdem default set of VIEW items that could be saved via usercommand, script, or a file configuration so we could conveniently spread it to our users.

This could include colors, points and/or lines, "Repeat Markers" configuration, line width/size/fill.

 

The "Repeat Markers" option is the most important to us because we have had users in the past who didn't realize that they were only seeing 100 points of their data, which can be a very bad thing (for example if you've turned off curve color and are looking for outliers in 150 points of data).  On the other hand, I can understand not wanting to plot 2 billion points on a graph, hence the ability for an administrative body (or individual users) to configure the graph defaults.

 

-Josh

Hi,

 

I´d like to know how many people would like to see structured error and warning handling in dataplugins.

 

Just having the ErrorRaise method doesn´t suit my needs of get some detailed informations when just a warning would be sufficient.

 

How about having a RaiseWarning method?

 

and

 

a kind of UI to query the datafinder of files and paths where warnings and erros occur

 

br,

thomas

Let argument in object.GetReference(argument) method should be optional and as default set ExtendChnName

  In this case calling of function should look like Call ChnSmooth(oMyChannel.GetReference,oMyChannel.GetReference,10,“maxNumber“)

 

Also include in Channel object even required properties (description, unit, max, min, length, etc.). This should be equivalent to oMyChannel.Properties(NameOrIndex).Value

It should be possible to save .SUD dialogs for previous version so you could open Diadem 2010 Dialogs in Diadem 11.1

I was fiddling with some DIADem Scripts and manage to crash DIADem twice, unfortunatly my VIEW, REPORTS and SCRIPTS weren't auto-saved.

 

That is kinda bad, so please add an autosave option.

 

Ton

I often create custom reports that have a box drawn "FreeFrame" with a text box "FreeText" inside. In some cases, I put too many characters in the text box and it breaks the bounds of the box. It is difficult to predict the size of the text box unless you use a font like courier. I would like the property of size added to the report text box.

 

  • The use case is update the text box with the text.
  •  Check the rendered text box size.
  • Adjust font size if the box exceeds the size of the surrounding box.

Simplify how to create a DataPlugin. I should be able to define a binary layout like a telemetry stream and directly assign channels.

 

For example, A new GUI would be created. I define the telemetry stream which has three floating point numbers then an integer, repeat. Assign channel names Volts, Amps, Power Out, and Setting. Perhaps set the built-in properties. Press a button the plug in is automatically created.