The Galil Control plugin controls a Galil Motion Controller while providing deep configuration over initialization, polling, publishing, and how data is rendered in the interface. Initialization and shutdown procedures manage controller start and end states. Global operations which compose any number of Galil commands may be composed and exposed for access in the menu.
Polling configuration allows for defining what information should be periodically fetched from the controller and displayed in a configurable format on the interface. Custom command sections can also be configured for easy access, while a general command line is provided for full control. Furthermore, this plugin has configurable publishing so that other plugins may use the data collected from the controller in real-time. All commands sent are logged so that all interaction with the controllers can be later analyzed.
User Interface
The Galil Control Interface provides control over all configured motion controllers.
Configuration Example
1
2
3
4
5
6
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
38
39
42
43
44
45
46
{
"options":{
"address":"COM4",
"simulationMode":true,
"operations":[],
"logger":{
}
},
"panel":{
"open":true,
"state":"Standard",
"transparency":0,
"title":"@VAR{instanceName}",
"titleBarVisible":true,
"showMenuBar":false,
"showToolBar":false,
"makeActive":false,
"bringToFront":false,
"minimizable":true,
"resizable":true,
"closeable":true,
"closeWhenDone":true,
"center":false,
"position":{
},
"size":{
}
},
"channel":{
"SendBreakTimeout":1000,
"WaitOnBreakTimeout":-1,
Enter to Rename, ⇧Enter to Preview
Plugin Defaults
0
0
0
Configuration Details
Filter:Search in:
ROOTobject
This top level object holds all configuration information for this plugin.
Required:true
Default:(not specified; see any element defaults within)
optionsobject
Configuration options specific to this plugin. Note that variables and expressions are generally allowed in this section.
Required:true
Default:(not specified; see any element defaults within)
options.addressstring
The address of the Galil motion controller.
Required:true
Default:"COM4"
options.simulationModeboolean
Whether to run in simulation mode.
Required:true
Default:true
options.operationsarray
An array of plot objects which define plot properties and data.
Defines the logging (data and errors) for this plugin. Note that a LOG variable space is provided here, as well as the VAR variable space. Available variables are: @LOG{LOGGERNAME}, @LOG{TIMESTAMP}, @LOG{LOGMESSAGE}, @LOG{ERRORMESSAGE}, and @VAR{instanceName} are available variables. note: @LOG{LOGGERNAME} is equal to the @VAR{instanceName} here.
Required:true
Default:(not specified; see any element defaults within)
options.logger.Enableboolean
Whether to enable the logger.
Required:true
Default:true
options.logger.LogFolderstring
The folder in which to write log files.
Required:true
Default:"\\JADE_LOGS\\@VAR{instanceName}"
options.logger.FileNameFormatstring
The filename to use when creating log files. Note: if the filesize limit is reached new files will be created with enumerated suffixes such as: MyLogFile-1.txt, MyLogFile-2.txt, etc.
Required:true
Default:"@VAR{instanceName}-@LOG{TIMESTAMP}.log"
options.logger.ErrorsOnlyboolean
Whether to log only errors.
Required:true
Default:true
options.logger.DiskThrashPeriodinteger
The period in milliseconds with which to flush the file buffer to ensure it's committed to the hard drive. Note: This is a performance consideration to prevent writing to disk too frequently.
Required:true
Default:1000
options.logger.FileSizeLimitinteger
The file size at which to create new files.
Required:true
Default:1000000
options.logger.StartLogFormatstring
The initial string to put into the log file when opened for the first time.
The transparency of the window. 0 = opaque, 100 = invisible.
Required:true
Default:0
panel.titlestring
The title of the plugin window when it runs. Note that the variable 'instanceName' is provided here in a VAR variable container.
Required:true
Default:"@VAR{instanceName}"
panel.titleBarVisibleboolean
Whether the window title bar is visible.
Required:true
Default:true
panel.showMenuBarboolean
Whether the menu bar is visible.
Required:true
Default:false
panel.showToolBarboolean
Whether the toolbar is visible.
Required:true
Default:false
panel.makeActiveboolean
Whether the window becomes active when opened.
Required:true
Default:false
panel.bringToFrontboolean
Whether the window is brought to the front / top of other windows when opened.
Required:true
Default:false
panel.minimizableboolean
Whether the window is minimizable.
Required:true
Default:true
panel.resizableboolean
Whether the window is resizable.
Required:true
Default:true
panel.closeableboolean
Whether the window is closeable.
Required:true
Default:true
panel.closeWhenDoneboolean
Whether to close the window when complete.
Required:true
Default:true
panel.centerboolean
Whether to center the window when opened. Note: this property overrides the 'position' property.
Required:true
Default:false
panel.positionobject
The position of the window when opened the first time.
Required:true
Default:(not specified; see any element defaults within)
panel.position.topinteger
The vertical position of the window in pixels from the top edge of the viewport. Note: this property is overriden by the 'center' property.
Required:true
Default:100
panel.position.leftinteger
The horizontal position of the window in pixels from the left edge of the viewport. Note: this property is overriden by the 'center' property.
Required:true
Default:100
panel.sizeobject
The size of the window when opened the first time.
Required:false
Default:(not specified; see any element defaults within)
panel.size.widthinteger
The width of the window in pixels. -1 means use the default width for the panel. Note that depending on panel features exposed, there may be a limit to how small a panel can become.
Required:true
Default:-1
panel.size.heightinteger
The height of the window in pixels. -1 means use the default height for the panel. Note that depending on panel features exposed, there may be a limit to how small a panel can become.
Required:true
Default:-1
channelobject
The communication channel definition used by this plugin. Note: this section rarely needs modifications. In many cases, the underlying plugin implementation depends on at least some of these settings having the values below. Consult with a JADE expert before making changes to this section if you are unfamiliar with the implications of changes to this section.
Required:true
Default:(not specified; see any element defaults within)
channel.SendBreakTimeoutinteger
The timeout duration in milliseconds to wait for sending messages.
Required:true
Default:1000
channel.WaitOnBreakTimeoutinteger
The timeout duration in milliseconds to wait for receiving messages. Note: -1 means wait indefinitely or until shutdown is signalled.
Required:true
Default:-1
channel.WaitOnShutdownTimeoutinteger
The timeout duration in milliseconds to wait for shutdown acknowledgment.
Required:true
Default:2000
channel.ThrowTimeoutErrorsboolean
Whether to throw timeout errors vs simply returning a boolean indicating whether a timeout occurred.
Required:true
Default:false
channel.ThrowShutdownUnacknowledgedErrorsboolean
Whether to throw 'shutdown unacknowledged' errors.
Required:true
Default:true
channel.QueueSizeinteger
The size of the underlying communication queue in bytes. Note: -1 means unbounded (i.e. grow as needed with available memory).
Required:true
Default:-1
channel.SendBreakEnqueueTypeenum (string)
The enqueue strategy employed on the underlying queue for standard messages.
Whether to flush the queue upon waiting for new messages (i.e. whether to clear the queue and wait for the next 'new' message; this has the effect of removing old messages and waiting for the next message.
Required:true
Default:false
channel.FlushQueueAfterBreakingboolean
Whether to flush the queue after receiving a new message (i.e. whether to handle the next message coming in the queue and then flush; this has the effect of handling the oldest message (if it exsits) or the next message before flushing the queue.