PMM Software Specification | CloseX |
PARKER MOTION MANAGER
SOFTWARE SPECIFICATION
DATE: March 1, 2019
AUTHOR: Ronn Sokol
Document: Parker motion manager Software specification
Table of Contents
Build (Debug configuration) 25
Build (Release configuration) 26
AdvanceDriveMotorControl.cs. 42
DriveMotorStepperControl.cs. 45
ServoGainsMasterControl.cs. 55
Configuration Source Controls. 56
ConfigurationSourceControl.cs. 56
HardwareLimitSetupDialog.cs. 57
SoftwareLimitSetupDialog.cs. 61
ProgramEditorDefinesControl.cs. 65
ProgramEditorProgramControl.cs. 66
TerminalEmulatorControl.cs. 68
TerminalEmulatorWindowPanel.cs. 69
TerminalEmulatorCustomButtonDialog.cs. 69
PParamParameterPickerForm.cs. 79
Parker Motion Manager(PMM) is a code-development tool that assists the user of ACR7000 Controller family products in programming, debugging and commissioning their application.
There are currently 13 projects that make up the PMM solution:
The ComACRServer project contains a COM based COMAcrServer application, a type library, and a file to provide mapping of ACR p-Parameters to detailed information needed to create binary commands.
The application runs in its own instance and primarily acts as a gateway to communicate with the individual devices. The Parker.PMM.ACR and the Parker.PMM.Communication projects are C# wrappers around the C++ ComACRServer project.
The COMAcrServer application starts up automatically and runs in its own instance outside of PMM. This project is maintained completely outside of PMM and is located in the ACRView codebase @ svn://emn015f03/ACRView/branches/6.4.2/Source/ComACRServer.
The ACRView ComACRServer is currently released at version 6.4.2.1011. Minor bug fixes have been made to the ComACRServer that is included with PMM. Current release version for PMM 1.0 is 6.4.2.1015.
JIRA PMM-335 [Uninstall] Uninstalling PMM makes COMACRServer unavailable for ACR-View.
This was resolved by not allowing PMM to remove the ComACRServer when PMM is uninstalled since it is shared between ACRView and PMM.
Unlike the other projects in this solution the KClass is written primarily in C++.
Although it appears that this project contains a bunch of HTML files this is not the case. These '.htm' files are actually hybrid meta files used solely by KConfig to generate the system code for download to the respective devices. Please refer to the following developer manual for more detailed information about the architecture and functions of the KClass.
KJ Code (KClass) - Programmers Guide.docx
PMM is used to configure devices. Its data, such as the default values, min, max, precision, descriptions, etc. are database driven. That is, this particular information is not stored statically in the PMM application itself, but is retreived from various MS Access databases installed along-side the application. Having the aforementioned data residing in an external database makes it more dynamic and much easier to maintain not necessarily requiring a developer to make changes.
//-------------------------------------------------------------------------------------------------------------
/// <summary>
/// Retrieves a static datatable consisting of all the 'Supported Controller' data from the database.
/// </summary>
//-------------------------------------------------------------------------------------------------------------
internal static DataTable RetrieveSupportedControllersDataTable()
{
const string cmdText = "SELECT * FROM [Controller] WHERE IsSupported=true;" ;
return ParkerDBManager.GetDataTable(cmdText);
}
˄ Result Set (4 items) |
||||
ControllerId |
ControllerName |
ControllerType |
AxisCount |
IsSupported |
1 |
ACR71T |
internal stepper |
1 |
True |
2 |
ACR72T |
internal stepper |
2 |
True |
3 |
ACR73T |
internal stepper |
3 |
True |
4 |
ACR74T |
internal stepper |
4 |
True |
10 |
As the name implies, the ParkerDBManager.GetDataTable method returns a DataTable object containing the rows of data returned from the database (the default database in this example), based on the specified command text.
The following is an example of using the ParkerDBManager.ExecuteCommand method:
//--------------------------------------------------------------------------------------------------------
/// <summary>
/// Retrieves a static list containing the names of all the motors from the 'Parker Servo Motor' database.
/// </summary>
/// <returns></returns>
//--------------------------------------------------------------------------------------------------------
internal static List<string>RetrieveListOfMotorNames()
{
var motors = new List<string>();
const string cmdText = "SELECT DISTINCT MotorSeriesName FROM [ACRServoMotors]" ;
using (OleDbCommand command = ParkerDBManager.ExecuteCommand(cmdText, DbName.PARKER_SERVO_MOTOR))
{
using (OleDbDataReader reader = command.ExecuteReader( CommandBehavior.Default))
{
while (reader != null &&reader.Read())
motors.Add(reader["MotorSeriesName"].ToString());
}
}
return motors;
}
˄List<String>(16 items) |
404LXR |
406LXR |
412LXR |
BE |
J |
K |
MPE |
MPJ |
MPP |
MPR |
MSR |
MX |
N |
SE |
SM |
Trilogy |
This ParkerDBManager.ExecuteCommand method returns a OleDbCommand object. Subsequently performing the ExecuteReader method on that object returns a OleDbDataReader object which in turn provides the data used to fill in this example, a list of strings.
Parker.UnitTesting (like Parker.Common) is another project available to all Parker applications. The assembly created from this project provides several wrappers around standard unit test methods.
The 'MyAssert' class provides overrides to several standard System.Diagnostic.Assert methods, one for example, being the ability to send the resultant values of a test to the standard output stream and at the same time, to an optional log file.
Note that several projects have a related 'Unit Tests' project named similar to that project. As its name implies these 'Test' projects contain a set of unit tests which can be run manually one at a time or automatically all at once to test the various methods and /or controls inside that project.
Following is an example of a unit tests project created specifically the for Parker.PMM.UI project:
These projects contain the unit tests for asserting that the code in this application is working as expected. It breaks down the functionality of the application into discrete testable behaviors (i.e., 'unit tests") because they are tested as individual units.
Following is an example test class template:
[TestClass]
public class CommonTests
{
//.............................................................................................................
#region Private Fields &Properties
private static TestHelper _testHelper;
#endregion
//.............................................................................................................
#region Additional test attributes
//-------------------------------------------------------------------------------------------------------------
/// <summary>
/// Gets or sets the test context which provides information about and functionality for the current test run.
/// </summary>
//-------------------------------------------------------------------------------------------------------------
public TestContext TestContext { get; set; }
//-------------------------------------------------------------------------------------------------------------
/// <summary>
/// Method which runs before the first test in the class gets run.
/// </summary>
/// <param name="testContext">The test context.</param>
//-------------------------------------------------------------------------------------------------------------
[ClassInitialize]
public static void MyClassInitialize(TestContext testContext)
{
_testHelper = new TestHelper(testContext);
}
//-------------------------------------------------------------------------------------------------------------
/// <summary>
/// Method which runs after all tests in the class have run.
/// </summary>
//-------------------------------------------------------------------------------------------------------------
[ClassCleanup]
public static void MyClassCleanup()
{
_testHelper.ClassCleanup();
}
//-------------------------------------------------------------------------------------------------------------
/// <summary>
/// Method which runs before each test gets run.
/// </summary>
//-------------------------------------------------------------------------------------------------------------
[TestInitialize]
public void MyTestInitialize()
{
_testHelper.TestInitialize(TestContext);
}
//-------------------------------------------------------------------------------------------------------------
/// <summary>
/// Method which runs after each test has run.
/// </summary>
//-------------------------------------------------------------------------------------------------------------
[TestCleanup]
public void MyTestCleanup()
{
_testHelper.TestCleanup();
}
#endregion
//.............................................................................................................
#region Actual Tests
//-------------------------------------------------------------------------------------------------------------
/// <summary>
/// A test to write an error to the event log.
/// </summary>
//-------------------------------------------------------------------------------------------------------------
[TestMethod]
[Description( "A test to write an error to the event log." )]
public void Test_WriteErrorToEventLog()
{
Program .WriteErrorToEventLog(0, "This is a test" );
}
//-------------------------------------------------------------------------------------------------------------
/// <summary>
/// A test to display a list of all the form names that can be made visible as a treeview node.
/// </summary>
//-------------------------------------------------------------------------------------------------------------
[TestMethod]
[Description( " A test to display a list of each node and its corresponding text when displayed in the tree view ." )]
public void Test_TreeViewNodeManager_NodeText()
{
List<TestUtils.NameValuePair<string>> result = TestUtils.GetConstants<string>(typeof(
TreeViewNodeManager.NodeText));
MyAssert.IsNotNull(result);
foreach (TestUtils.NameValuePair<string> r in result)
Console.WriteLine(@"{0}: ""{1}""", r.Name, r.Value);
}
To create a new set of unit tests for a particular project/class simply make a copy of the previous class template and substitute in your own 'Actual Tests' (i.e., replace the individual test methods as shown above with those pertinent to the class you are creating the tests for).
The Description attribute prepended to the top of each TestMethod is used for displaying information about the particular test in the Test Results output, such as:
The Parker.PMM.ACR contains the classes used for serializing/deserializing of the data objects shared between the ACR Server and PMM. These objects are ultimately used for generating the system code.
The Parker.PMM.UI project is central to the PMM solution. It contains the PMM application '.exe' file which is first started up presenting a UI to the user.
The Program.cs static class is the initial class called upon to launch the application (i.e., open the MainForm).
It is responsible for:
Wiring up special thread and unhandled exceptions exception handling,
Setting the data directory as to where the databases are located.
Setting the runtime license key for the third party 'SciChart' dlls.
Showing the Splash Screen momentarily during start up.
Running the application.
Note that whenever the application is launched it checks the 'Options' (i.e., settings file) for a value indicating whether an upgrade of the user config file itself is required. If so, it performs the upgrade, resets the value indicating an upgrade is required, and then saves it.
In a nutshell, this class library provides encapsulated code for performing tasks common to all Parker projects and solutions.
Note: This project is explained in greater detail in a separate document.
The CodeEditor project is based primarily on code from a third party public domain source. The code in this project is ultimately used for creating an end-user control which is embedded into the PMM 'Programs' windows, Defines window, etc. providing user-friendly color-coded, auto-complete, macro support while editing code among many other capabilities.
The Parker.PMM.Communication project contains the classes used for communicating with the various devices. It serves as a go-between between PMM and ACRView.
There are currently four databases in version 1 of PMM. More will be added in the future as PMM begins to support additional motors.
This project is used in conjunction with several SiChart dlls, and provides the oscilliscope functionality used in the PMM UI.
Unlike most of the other projects which use WinForms for GUI display purposes, this project utilizes XAML (eXtended Application xML) as the underlying codebase.
The following represents a typical 'Project Properties' window for a project. (In this example the 'Parker.Common.Database' project is shown) with the 'Application' tab selected:
For the most part, all tabs for all projects in the PMM Solution, other than the 'Application' tab, contain the same information.
Notice in the 'Application' tab, the highlighted information in the 'Assembly name' and 'Default namespace' fields. (The text located in the 'Assembly name' and 'Default namespace' fields will vary according to which project this information is being displayed for).
'Target framework' for all projects is always '.NET Framework 4.6'.
'Output type' is always 'Class Library' except for the Parker.PMM.UI project which is 'Windows.Application'.
The 'Platform target' for all projects is always 'x86'.
The 'Output path' (Target Path) for all projects is always 'S:\Parker\PMM\bin'
Every project has a Properties folder containing at a minimum the following two files:
These two files are used for setting the file attributes of the assembly shown when displaying the properties of a given file - whether from Windows Explorer or from within the PMM application itself.
All projects in the PMM solution utilize a link to the aformentioned class in order to provide a common set of assembly information.
The following example is from the Parker.PMM.Database project:
Whereas the following is from the Parker.PMM.Communication project:
MenuBar
ToolBar
There are several classes which control the state of the various menu items and toolbar items.
AboutBoxDialog control in Studio Designer mode:
AboutBoxDialog control in PMM Runtime mode:
The title, version, and copyright data are loaded dynamically into this control by reading it from the assembly itself.
Other than in the file properties window, this is the only place that shows the full version number. That is, the version number along with the build number combined.
BaseMessageDialog control in Studio Designer mode:
This message dialog serves as a base control and is inherited by other dialog boxes such as the DisconnectDialog, DownloadDialog, DownloadOSDialog, FinishMessageDialog, and UploadingDialog, among others
DisconnectDialog control in Studio Designer mode:
DownloadDialog control in Studio Designer mode:
DownloadOSDialog control in Studio Designer mode:
DownloadProjectDialog control in Studio Designer mode:
DownloadProjectDialog control in PMM Runtime mode:
FinishMessageDialog control in Studio Designer mode:
NewProjectDialog control in Studio Designer mode:
NewProjectDialog control in PMM Runtime mode:
The first field 'Name' contains the unique name of the project. PMM will attempt to generate this unique project name when the dialog is opened by taking the current or previous project name and appending a number to the end.
The 'Location' field is loaded with the default project path, but can be manually overwritten or by clicking the 'Browse' button which will show a File Dialog. This path will then become the default path for future projects.
The 'IP Address' field must contain a valid IP Address. (i.e., following the pattern XXX.XXX.XXX.XXX)
The 'Controller' dropdown listbox is loaded with names obtained from the database.
Should the user click the 'Create Project From Device' checkbox, the 'Controller' dropdown listbox immediately becomes disabled. When the user subsequently clicks the 'OK' button, PMM will attempt to connect to the device located at the specified IP Address and upload the information from that device essentially creating the newly specified project.
OptionsDialog control in Studio Designer mode:
OptionsDialog control in PMM Runtime mode:
These values are referred to throughout the PMM application. The values themselves are stored in an xml configuration file located in the user's %AppData% folder.
For example:
'C:\Users\rs69287\AppData\Local\Parker_Hannifin_Corp\Parker.PMM.UI.exe_Url_yaebmr5xkvlfqc0xikb0sb0m13oc1nze\1.0.0.9999\user.config'
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<userSettings>
<Parker.PMM.UI.Properties.Settings>
<setting name="CloseStartPage" serializeAs="String">
<value>True</value>
</setting>
<setting name="ControllerName" serializeAs="String">
<value>ACR74T</value>
</setting>
<setting name="ControllerIpAddress"serializeAs="String">
<value>192.168.100.1</value>
</setting>
<setting name="LastProject" serializeAs="String">
<value>C:\Users\rs69287\Documents\Parker Hannifin\Parker Motion Manager\Projects\Test Drive Status Panel 4.pprj</value>
</setting>
<setting name="LoadLastProject" serializeAs="String">
<value>False</value>
</setting>
<setting name="ProjectsFolder" serializeAs="String">
<value>C:\Users\rs69287\Documents\Parker Hannifin\Parker Motion Manager\Projects</value>
</setting>
<setting name="MessagesDataViewSort"serializeAs="String">
<value>DateAndTime ASC</value>
</setting>
<setting name="ShowSplashScreen"serializeAs="String">
<value>True</value>
</setting>
<setting name="ShowStartPageOnStartUp"serializeAs="String">
<value>True</value>
</setting>
<setting name="ShowToolTips" serializeAs="String">
<value>True</value>
</setting>
<setting name="IsUpgradeRequired"serializeAs="String">
<value>False</value>
</setting>
<setting name="IsDebugOn" serializeAs="String">
<value>False</value>
</setting>
</Parker.PMM.UI.Properties.Settings>
</userSettings>
</configuration>
RunProgramDialog control in Studio Designer mode:
RunProgramDialog control in PMM Runtime mode:
RunProgramDialog control in PMM Runtime mode with 'Program(s)' combobox expanded:
By default, the Controller combobox contains the name of the current Controller in the model (if there is more than one then it will be based on which is Controller is active at the time in the tree view control) and the 'Program(s)' combobox will contain the name of the current (active) Program window. The user can select another program to run instead should they choose to do so, or they can run 'All Programs'.
SplashDialog control in Studio Designer mode:
This window is displayed momentarily each time during application startup although this default behavior can be turned off using the Options dialog.
UploadingDialog control in Studio Designer mode:
UploadProjectDialog control in Studio Designer mode:
UploadProjectDialog control in PMM Runtime mode:
This dialog is used to customize an upload.
The 'Controller' combobox contains the name the active controller in the current project.
All checkboxes are checkmarked by default when an upload is requested and with no 'Program' window being currently active. Should a 'Program' window be active then only 'Upload Program(s)' is checkmarked and the currently active 'Program' number is preselected in the corresponding combobox.
UploadProjectDialog control in PMM Runtime mode with 'Program(s)' combobox expanded:
The controls that follow this category all inherit from the base ChangeNotifyControl.cs class.
This control inherits from System.Windows.Forms.UserControl. It serves as a base control containing many common properties and methods which many other controls in this project (such as the ones that immediately follow in this documentation) inherit from.
ChangeNotifyControl control in Studio Designer mode:
AdvanceDriveMotorControl control in Studio Designer mode:
AxesControl control in Studio Designer mode:
The AxesControl contains a grid containing one row corresponding to each axis in the current project.
All the cells in the grid are editable except for cells of the 'Axis' column
AxesControl dock window in PMM Runtime mode:
ConnectControl control in Studio Designer mode:
By default, all fields on this control except for the 'IP Address' are initially disabled.
Once a valid IP address is entered and the 'Connect' button is clicked, a 'busy' gif becomes visible while an attempt is made to connect to the device located at the specified IP Address. If the connection is successful, the Project Information and Controller Information data fields are filled out with information extracted from the drive. The 'Connect' button text is changed to 'Disconnect' and the 'IP Address' field is disabled.
If the Controller at the specified IP Address does not match with the controller in this project, the Controller field is shown in red.
ConnectControl dock window in PMM Runtime mode:
Clicking the 'Disconnect' button will disconnect from the device resetting the control to its default values.
DriveMotorStepperControl control in Studio Designer mode:
DriveMotorStepperControl dock window in PMM Runtime mode:
By default, the control is opened with the 'Motor Series' set to 'ECLM' and the 'Motor Size/Winding' set to 'S082F' (which is indicated as the default in the database).
DriveMotorStepperControl dock window in PMM Runtime mode (with Motor Size/Winding expanded):
Changing the selected values in the 'Motor Series' combobox and/or the 'Motor Size/Winding' combobox changes the values displayed in the other fields on the form.
Setting the 'Motor Series' to 'Other' hides the 'Motor Size/Winding' combobox as well as the 'Feedback Encoder Resolution' field.
Note all numeric fields on this form cannot be left empty and have an implicit or explicitly defined min and max value which are read from the database.
FaultControl control in Studio Designer mode:
FaultControl dock window in PMM Runtime mode:
Clicking the dropdown arrow button associated with the 'Positive Limit', 'Negative Limit', or 'Home Limit' cell displays the available choices:
Clicking the checkbox associated with 'Positive Limit Input Type' , 'Negative Limit Input Type', 'Home Limit Input Type' cell toggles its value from 'Normally Open' to 'Normally Closed' and vice versa.
FeedbackControl control in Studio Designer mode:
By default all controls that make up this control are disabled and all controls except those in the group associated with 'Set Up Position Feedback' are set to invisible. Only the 'Set Up Position Feedback' checkbox is initially enabled:
FeedbackControl dock window in PMM Runtime mode:
FinishControl control in Studio Designer mode:
FinishControl dock window in PMM Runtime mode:
MasterControl control in Studio Designer mode:
MasterControl dock window in PMM Runtime mode:
MemoryControl control in Studio Designer mode:
MemoryControl dock window in PMM Runtime mode:
MiscTuningControl control in Studio Designer mode:
ScalingControl control
:
ScalingControl dock window in PMM Runtime mode:
When the user clicks anywhere inside the 'Specify Transmission' groupbox, that groupbox and the 'Transmission View' groupbox both become hilighted and the image correponding to the 'Transmission' combobox selection is displayed.
Similarly when the user clicks anywhere inside the 'Specify Reducer' groupbox, that groupbox and the 'Reducer View' groupbox becomes hilighted and the image correponding to the 'Reducer combobox selection is displayed.
The images are stored in the project as individual resources such as 'sr_belt.jpg', as 'sr_chain.jpg', as 'sr_gearbox.jpg', as 'st_conveyor.jpg', as 'st_leadscrew.jpg', etc.
In most all cases, the 'Scaling Factor' field is disabled except when selecting 'None' for both the 'Transmission' and 'Reducer' comboboxes, which enables the 'Scaling Factor' field making it available for user modification.
ServoGainsControl control in Studio Designer mode:
ServoGainsMasterControl control in Studio Designer mode:
ConfigurationSourceControl control in Studio Designer mode:
HardwareLimitSetupDialog control in Studio Designer mode:
This dialog is opened when the 'Setup' button of the 'Hardware Limits' group of the 'JogHomeLimits' control is clicked.
HomeControl control in Studio Designer mode:
This control is embedded in the 'Home' tab of the 'JogHomeLimitsControl'.
The 'Home Setup' button opens the 'HomeSetupDialog'.
HomeSetupDialog control in Studio Designer mode:
JogControl control in Studio Designer mode:
This control is embedded in the 'Jog' tab of the 'JogHomeLimitsControl'.
The 'Jog Positive' button
The 'Jog Negative button
The 'Jog Setup' button opens the 'JogSetupDialog'.
JogHomeLimitsControl control in Studio Designer mode:
The 'Setup' button in the 'Hardware Limits' group opens the 'HardwareLimitSetupDialog'.
The 'Setup' button in the 'Software Limits' group opens the 'SoftwareLimitSetupDialog'.
The 'Setup' button in the 'Position Error' group opens the 'MaxErrorSetupDialog.
The 'Enable Drive' button sends commands via the communications class to the device to enable the drive and then proceeds to download the jog setup.
The 'Disable Drive' button sends commands via the communications class to the device to disable the drive.
The 'EPL' group and all its controls are currently hidden.
JogSetupDialog control in Studio Designer mode:
This dialog is opened when the 'Jog Setup' button in the 'Jog' tab of the 'JogControl' which is embedded in the 'JogHomeLimits' control is clicked.
SoftwareLimitSetupDialog control in Studio Designer mode:
This dialog is opened when the 'Setup' button in the 'Software Limits' group of the 'JogHomeLimits' control is clicked.
MaxErrorSetupDialog control in Studio Designer mode:
This dialog is opened when the 'Setup' button in the 'Position Error' group of the 'JogHomeLimits' control is clicked.
OsUpdateControl dock window in PMM Runtime mode:
All buttons on this control are disabled by default.
When connected to a device, all the buttons become enabled and the controller information is populated with corresponding data obtained from the device.
The 'Disable All Drives' button sends a command to the device to disable the drive connected to each axes in the model.
The 'Halt All AcroBasic Programs' button sends a command to to the device to halt all programs currrently running.
The 'Update OS' button opens the 'DownloadOSDialog' which is used to actually perform the download to the device after the user is prompted to confirm.
This control is the base control containing functionality inherited by the 'ProgramEditorDefinesControl' and the 'ProgramEditorProgramControl'.
BaseCodeEditorControl control in Studio Designer mode:
Every PMM project contains one 'ProgramEditorDefinesControl' control (i.e. a 'Defines' window) and a total of fifteen 'ProgramEditorProgramControl' controls (i.e., 'Program 00', 'Program01', ... 'Program14' windows).
ProgramEditorProgramControl in Studio Designer mode:
When a 'ProgramEditorProgramControl' is first opened, text such as that shown above (in this case corresponding to 'Program 0'), is automatically placed into the control. The user is able to begin editing the text at that time and only then does the project dirty flag actually get set.
Note: The user does not need to save the project to begin a download and/or run the edited program on the drive.
Right-clicking inside a base editor control window displays a context menu:
Items in this context menu are enabled according to certain conditions such as whether there is currently any text selected.
Clicking inside the Base Editor control window also affects the toolbar state:
The items affected (in the order they appear on the toolbar), are:
Print, Undo, Redo, Cut, Copy, Paste, Find, Indent, Undent, Comment, Uncomment, Bookmark, Next Bookmark, Prev Bookmark, Delete Bookmarks.
For items to be enabled requires there to be text in the control. Several items require text to be selected for it to be enabled.The 'Paste' item requires there to be text on the clipboard. Undo and Redo require that data pertaining to this control be presently in the undo buffer.
ProgramEditorDefinesControl control in Studio Designer mode:
ProgramEditorDefinesControl dock window in PMM Runtime mode:
ProgramEditorProgramControl control in Studio Designer mode:
ProgramEditorProgramControl dock window in PMM Runtime mode:
SystemCodeControl control in Studio Designer mode:
SystemCodeControl dock window in PMM Runtime mode:
TerminalEmulatorControl control in Studio Designer mode:
This control is created from a combination of the controls (i.e., TerminalEmulatorButtonPanel and TerminalEmulatorWindowPanel) which follow in this documentation.
TerminalEmulatorButtonPanel .cs
TerminalEmulatorButtonPanel control in Studio Designer mode:
The TerminalEmulatorWindowPanel control in Studio Designer mode:
The TerminalEmulatorCustomButtonDialog control in Studio Designer mode:
The TerminalEmulatorCustomButtonDialog control in PMM Runtime mode:
Terminal Emulator dock window in PMM Runtime mode:
BitStatusControl control in Studio Designer mode:
BitStatusControl dock window in PMM Runtime mode:
The combination of the two or three combobox selections together represent a 'P' value which is displayed as a non-editable label to the far-right of the comboboxes.
DriveStatusControl control in Studio Designer mode:
DriveStatusControl dock window in PMM Runtime mode:
The indicator controls are dynamically added to the DriveStatstusControl according to the number of axis in the current model. Hovering the mouse over the individual indicator controls displays the 'bit number' in tooltip fashion representing that particular indicator on the device.
When disconnected from a device, the controls all show up as disabled (i.e., in gray).
When connected to a device, the controls are continuously updated to show up in different colors (i.e, green, red, or yellow) representing the current state of a particular bit on the device
MotionStatusControl control in Studio Designer mode:
MotionStatusControl dock window in PMM Runtime mode:
When this control is first loaded in Runtime mode, the indicator controls are dynamically added to three areas of the MotionStatstusControl according to the number of axis in the current model.
When connected to a device, the controls are continuously updated to show up in different colors representing the current state of a particular bit on the device
Hovering the mouse over an individual indicator control displays the bit number in tooltip fashion representing that particular state on the device.
The two buttons at the bottom left of the control send corresponding commands to the the device.
NumericStatusControl control in Studio Designer mode:
NumericStatusControl dock window in PMM Runtime mode:
Selecting values from the individual comboboxes beginning with the left-most combobox changes the values of the comboboxes immediately to their right as well as the information shown in the four columns of the grid.
Oscilloscope1 dock window in PMM Runtime mode:
MotionForm dialog control displayed in PMM Runtime mode:
This dialog is displayed when the 'Motion' button on the 'Oscilloscope' dock window is clicked.
SamplingForm dialog control displayed in PMM Runtime mode (with 'PC-Based Sampling'):
This dialog is displayed when the 'Sampling' button on the 'Oscilloscope' dock window is clicked.
SamplingForm dialog control displayed in PMM Runtime mode (with 'Onboard Sampling'):
This dialog is displayed when the 'Sampling' button on the 'Oscilloscope' dock window is clicked, then the 'Onboard Sampling' radiobutton on this form is clicked.
BitParameterPickerForm dialog control in PMM Runtime mode:
This dialog is displayed when the 'Sampling' button on the 'Oscilloscope' dock window is clicked, then the 'Onboard Sampling' radiobutton on the 'Sampling' form is clicked, then the '' browse button located beside the 'Trigger Source' field on this form is clicked.
Note: All the 'Parameter Picker' controls have a ParamPickerInfo object (see below) passed in as an argument. This is used to set the selected value of each combobox as well as the selected item in the gridview control.
//----------------------------------------------------------------------------------------------------------------------------
/// <summary>
/// Parameter Picker Information.
/// </summary>
//----------------------------------------------------------------------------------------------------------------------------
[Serializable]
public class ParamPickerInfo
{
public string Cat1 { get; set; }
public string Cat2 { get; set; }
public string Cat3 { get; set; }
public int RowIndex { get; set; }
public string ParamItem { get; set; }
public string ParamDesc { get; set; }
public string ParamName { get; set; }
public string Encoder { get; set; }
public bool Channel { get; set; }
public int VerticalScrollPos { get; set; }
public int UpdownPos { get; set; }
public double ScalingFactor { get; set; }
public double UnitsPerDiv { get; set; }
public string Units { get; set; }
[XmlElement(ElementName = "PMM_UID")]
public string UID { get; set; }
}
PParamParameterPickerForm dialog control displayed in PMM Runtime mode:
Displayed when the '' (Parameter Picker) button located beside the first field of any of the four 'Channel' groupboxes on the 'Oscilloscope' dock window is clicked.
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
| Project | | Spec. | Copy |
| Resources | Version | Vers. | Local | Path
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
kclass
..........................................................................................................................................................................
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
Parker.Common S:\Parker\PMM\bin\Parker.Common.dll
..........................................................................................................................................................................
ICSharpCode.SharpZipLib 0.86.0.518 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\Parker.Common\External\ICSharpCode.SharpZipLib.dll
LINQPad 1.0.0.0 Y:\ParkerMotionManager_nonGov\trunk\Source\Parker.Common\Dump\LINQPad.exe
mscorlib 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
System 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll
System.Core 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
System.Data 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Data.dll
System.Drawing 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Drawing.dll
System.Management 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Management.dll
System.Windows.Forms 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Windows.Forms.dll
System.Xml 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xml.dll
Telerik.WinControls 2018.1.220.40 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\RCWF\2018.1.220.40\Telerik.WinControls.dll
Telerik.WinControls.GridView 2018.1.220.40 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\RCWF\2018.1.220.40\Telerik.WinControls.GridView.dll
Telerik.WinControls.UI 2018.1.220.40 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\RCWF\2018.1.220.40\Telerik.WinControls.UI.dll
WindowsBase 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\WindowsBase.dll
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
Parker.Common.UnitTests S:\Parker\PMM\bin\Parker.Common.UnitTests.dll
..........................................................................................................................................................................
Microsoft.VisualStudio.QualityTools.UnitTestF... 10.0.0.0 [X] %ProgramFiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools
mscorlib 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
Parker.Common <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.Common.dll
Parker.UnitTesting <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.UnitTesting.dll
System 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll
System.Core 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
System.Data 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Data.dll
System.Drawing 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Drawing.dll
System.Windows.Forms 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Windows.Forms.dll
System.Xml 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xml.dll
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
Parker.PMM.ACR S:\Parker\PMM\bin\Parker.PMM.ACR.dll
..........................................................................................................................................................................
mscorlib 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
System 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll
System.Core 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
System.Xml 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xml.dll
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
Parker.PMM.CodeEditor S:\Parker\PMM\bin\Parker.PMM.CodeEditor.dll
..........................................................................................................................................................................
mscorlib 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
System 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll
System.Core 4.0.0.0 %ProgramFiles(x86)%\reference assemblies\microsoft\framework\.netframework\v4.6\system.core.dll
System.Data 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Data.dll
System.Design 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Design.dll
System.Drawing 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Drawing.dll
System.Windows.Forms 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Windows.Forms.dll
System.XML 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xml.dll
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
Parker.PMM.Communication S:\Parker\PMM\bin\Parker.PMM.Communication.dll
..........................................................................................................................................................................
Interop.ComACRServerLib 1.0.0.0 [X] S:\Temp\PMM\Parker.PMM.Comunication\obj\x86\Debug\Interop.ComACRServerLib.dll
mscorlib 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
System 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll
System.Core 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
WindowsBase 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\WindowsBase.dll
+---------------------------------------------------+----------------+-------+-------+----------------------------------------------------------------------------------------- Parker.PMM.Communication.UnitTests S:\Parker\PMM\bin\Parker.PMM.Communication.UnitTests.dll
..........................................................................................................................................................................
Microsoft.VisualStudio.QualityTools.UnitTestF... 10.0.0.0 [X] %ProgramFiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools
mscorlib 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
Parker.PMM.Communication <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.PMM.Communication.dll
Parker.UnitTesting <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.UnitTesting.dll
System 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll
System.Core 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
System.Data 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Data.dll
System.Xml 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xml.dll
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
Parker.PMM.Database S:\Parker\PMM\bin\Parker.PMM.Database.dll
..........................................................................................................................................................................
mscorlib 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
System 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll
System.Core 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
System.Data 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Data.dll
WindowsBase 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\WindowsBase.dll
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
Parker.PMM.Database.UnitTests S:\Parker\PMM\bin\Parker.PMM.Database.UnitTests.dll
..........................................................................................................................................................................
Microsoft.VisualStudio.QualityTools.UnitTestF... 10.0.0.0 [X] %ProgramFiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools
mscorlib 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
Parker.PMM.Database <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.PMM.Database.dll
Parker.PMM.UI <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.PMM.UI.exe
Parker.UnitTesting <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.UnitTesting.dll
System 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll
System.Core 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
System.Data 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Data.dll
System.Windows.Forms 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Windows.Forms.dll
System.Xml 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xml.dll
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
Parker.PMM.Osciloscope S:\Parker\PMM\bin\Parker.PMM.Osciloscope.dll
..........................................................................................................................................................................
mscorlib 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
PresentationCore 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\PresentationCore.dll
PresentationFramework 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\PresentationFramework.dll
SciChart.Charting 5.1.0.11299 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\net45\SciChart.Charting.dll
SciChart.Core 5.1.0.11299 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\net45\SciChart.Core.dll
SciChart.Data 5.1.0.11299 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\net45\SciChart.Data.dll
SciChart.Drawing 5.1.0.11299 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\net45\SciChart.Drawing.dll
System 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll
System.Core 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
System.Windows.Forms 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Windows.Forms.dll
System.Xaml 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xaml.dll
System.Xml 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xml.dll
System.Xml.Linq 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xml.Linq.dll
WindowsBase 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\WindowsBase.dll
+---------------------------------------------------+----------------+-------+-------+----------------------------------------------------------------------------------------- Parker.PMM.UI S:\Parker\PMM\bin\Parker.PMM.UI.exe
..........................................................................................................................................................................
Microsoft.CSharp 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\Microsoft.CSharp.dll
mscorlib 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
Parker.Common 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.Common.dll
Parker.PMM.ACR <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.PMM.ACR.dll
Parker.PMM.CodeEditor <P> 2.16.23.0 [X] S:\Parker\PMM\bin\Parker.PMM.CodeEditor.dll
Parker.PMM.Communication <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.PMM.Communication.dll
Parker.PMM.Database <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.PMM.Database.dll
Parker.PMM.Osciloscope <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.PMM.Osciloscope.dll
PresentationCore 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\PresentationCore.dll
PresentationFramework 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\PresentationFramework.dll
SciChart.Charting 5.1.0.11299 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\net45\SciChart.Charting.dll
SciChart.Core 5.1.0.11299 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\net45\SciChart.Core.dll
SciChart.Data 5.1.0.11299 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\net45\SciChart.Data.dll
SciChart.Drawing 5.1.0.11299 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\net45\SciChart.Drawing.dll
System 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll
System.Core 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
System.Data 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Data.dll
System.Data.DataSetExtensions 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Data.DataSetExtensions.dll
System.Drawing 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Drawing.dll
System.Management 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Management.dll
System.Windows.Forms 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Windows.Forms.dll
System.Xaml 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xaml.dll
System.Xml 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xml.dll
System.Xml.Linq 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xml.Linq.dll
Telerik.WinControls 2018.1.220.40 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\RCWF\2018.1.220.40\Telerik.WinControls.dll
Telerik.WinControls.GridView 2018.1.220.40 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\RCWF\2018.1.220.40\Telerik.WinControls.GridView.dll
Telerik.WinControls.RadDock 2018.1.220.40 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\RCWF\2018.1.220.40\Telerik.WinControls.RadDock.dll
Telerik.WinControls.Themes.VisualStudio2012Light 2018.1.220.40 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\RCWF\2018.1.220.40\Telerik.WinControls.Themes.VisualStudio2012Light.dll
Telerik.WinControls.UI 2018.1.220.40 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\RCWF\2018.1.220.40\Telerik.WinControls.UI.dll
Telerik.WinControls.UI.Design 2018.1.220.40 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\RCWF\2018.1.220.40\Telerik.WinControls.UI.Design.dll
TelerikCommon 2018.1.220.40 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\lib\RCWF\2018.1.220.40\TelerikCommon.dll
UIAutomationProvider 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\UIAutomationProvider.dll
WindowsBase 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\WindowsBase.dll
WindowsFormsIntegration 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\WindowsFormsIntegration.dll
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
Parker.PMM.UI.UnitTests S:\Parker\PMM\bin\Parker.PMM.UI.UnitTests.dll
..........................................................................................................................................................................
Microsoft.VisualStudio.QualityTools.UnitTestF... 10.0.0.0 [X] %ProgramFiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools
mscorlib 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
Parker.Common <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.Common.dll
Parker.PMM.ACR <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.PMM.ACR.dll
Parker.PMM.UI <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.PMM.UI.exe
Parker.UnitTesting <P> 1.0.0.9999 [X] S:\Parker\PMM\bin\Parker.UnitTesting.dll
System 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll
System.Core 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
System.Data 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Data.dll
System.Drawing 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Drawing.dll
System.Windows.Forms 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Windows.Forms.dll
System.Xml 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xml.dll
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
Parker.UnitTesting S:\Parker\PMM\bin\Parker.UnitTesting.dll
..........................................................................................................................................................................
LINQPad 1.0.0.0 [X] Y:\ParkerMotionManager_nonGov\trunk\Source\Parker.UnitTesting\Dump\LINQPad.exe
Microsoft.VisualStudio.QualityTools.UnitTestF... 10.0.0.0 [X] [X] %ProgramFiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
mscorlib 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll
System 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll
System.Core 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
System.Data 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Data.dll
System.Xml 4.0.0.0 %ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Xml.dll
+---------------------------------------------------+----------------+-------+-------+-----------------------------------------------------------------------------------------
*** For optimal printing use: 8pt mono-spaced font; landscape mode; no line wrap...
Many of the projects in the PMM solution reference other projects inside this solution as well as a standard set of Microsoft system dlls and .Net dlls.
Projects in this solution rely heavily on two externally licensed, third party dynamic link libraries (dlls) :
Telerik controls provide some of the base application window
functionality such as the main docking window, menubar, and toolbar controls.
And
SciChart controls are used primarily to display Oscilliscope data.