---------------------------------------------------- Precision MicroControl Corp. Motion Control API - Version 4.5.0 $Id: ReadMe.txt 1042 2020-12-01 01:05:40Z brian $ ---------------------------------------------------- Revision History ================= Version 4.5.1 ------------- New features - Experimental support for UDP connections to Ethernet controllers Bug Fixes - Fixed problem with Ethernet controller not recognizing all available axes in some cases Version 4.5.0 ------------- New features - Version 4.5.0 of the MCAPI is cryptographically signed for Windws version 7, 8, 8.1, and 10. If you need support for an older version of Windows please see MCAPI 4.4.1 or earlier. - Several legacy controller (ISA bus) support files have been removed from the Windows installer (they have not been supported on Windows since Windows 2000). - The window position save/restore code for several of the support apps and sample programs has been made multi-monitor aware. - The following motion controller firmware versions are included in this release: MultiFlex PCI: 4.8g DCX-PCI300: 3.2a DCX-PCI100: 1.0a Bug Fixes - Fix for MCGetOperatingMode() not alsways correctly reporting Contour and Gain modes (bug #100257) - Fix for a problem building the Linux driver on kernel version 3.10 (bug #100278) - Fix for a problem building the Linux driver on kernel version 4.0+ (bug #100279) - Fix for a deprecated constant in Linux driver on newer kernel versions (bug #100280) - Fix for Linux build problem introduced by changes to GCC in version 4.9.0, the standard C macros __DATE__ and __TIME__ will generate an error and the error has to be explicitly disabled (bug #100281). Version 4.4.1 ------------- New features - Performance improvements for the MFX-ETH controller - Added a separate .NET assembly for 64-bit code (previous assembly was 32-bit only). - Added separate x86 and x64 build options to the C# demo program. By default the 64-bit executable will be installed on 64-bit versions of Windows. - .NET assemblies code siging reverted back from Authenticode to Strong Name whichis better suited to an assembly and avoids potentially slow online certificate check. - Updated Linux package with support for latest /proc file system support in the device driver (kernel 3.11 and later). - Changed Linux driver install to make backups of mcapi.conf, network.conf, and the driver start/stop script if a previous version was installed (preserves local modifications). - The following motion controller firmware versions are included in this release: MultiFlex PCI: 4.8g DCX-PCI300: 3.2a DCX-PCI100: 1.0a Bug Fixes - Fixes to several typos in the MCAPI 4.1.0 and 4.3.0 dynamic loading code (mcapi_dl.h and mcapi_dl.cpp). - Fixes to several bugs related to ASCII command parsing for the MFX-ETH controller. - Fixed bug in WinControl where the CTRL-B character was not being properly sent to the controller (CTRL-B enters single step mode). - Quieted several warnings under GCC. - A bug in MCTranslateErrorEx() in 64-bit builds where it would always return the error string "Unknown Error" has been fixed (bug #100244). Version 4.4.0 ------------- New features - Added support for Windows 8 and 8.1 (bug #100235) - The C++ dynamic linking code now returns different error codes for DLL not found (usually means MCAPI is not installed) and function not found (usually means installed version of MCAPI is too old for application) so programs can respond accordingly (bug #100201). - Added a new header file, mccl_cnc.h, with the CNC mnemonics used by the MultiFlex PCI/ETH and DCX-PCI300 controllers - Added support for the CNC MCCL mnemonics to the MultiFlex PCI/ETH and DCX-PCI300 configuration DLLs so that MCSpy will correctly decode/display. - Added MCDecodeStatus() support for the user controllable status bits on the MultiFlex PCI and ETH - Cutting and pasting text within the WinControl window has been improved - The following motion controller firmware versions are included in this release: MultiFlex PCI: 4.8g DCX-PCI300: 3.2a DCX-PCI100: 1.0a Bug Fixes - A problem with correctly reading the auxiliary status word on MultiFex controllers open in ASCII mode has been fixed (bug #100213). - Fixed a bug with hex mode display in MCSpy when debugging an application open in ASCII mode (bug #100214) - Fixed a bug with in MCSpy that caused it to not correctly remember the display warnings and hex mode settings (bug #100217) - The file associations for MCCL macro files to WinControl were broken in 64-bit installs (bug #100234), fixed now. - A bug in the max line length detection code used by MCDLG_DownloadFile() for MFX-ETH controllers has been fixed (#100238). - Fixed a bug with MCDLG_DownloadFile() not correctly handling continued lines on the MFX-ETH (#100237). - Fixed a bug with MCDLG_DownloadFile() not correctly handling escape characters in quoted strings (#100239). Version 4.3.0 ------------- New features - Added new low-level functions to allow aplication control of semaphores - pmclock() / pmcUnlock(), do a command and reply in a single atomic sequence pmccmdrpyex(), and do varaiable lookups safely pmcvarlookup() (bug #100194). - Improved the semaphore handling in the potentially slow MCIs... functions (e.g. MCIsStopped) so that other threads can run when these functions are called with a non-zero timeout. - Improved performance of device driver under 32-bit versions of Windows (problem introduced in ver 4.2.0). - The following motion controller firmware versions are included in this release: MultiFlex PCI: 4.8g DCX-PCI300: 3.2a DCX-PCI100: 1.0a Bug Fixes - Fixed a bug in MCSpy where the hex mode display was corrupted (bug #100184). - Corrected errors in the linux documentation for MCSetVectorVelocity() (bug #100198). - Controllers opened in ASCII mode when the controller had been left in hexadecimal display mode would crash the MCAPI, controllers opened in ASCII mode are now forced to decimal mode (bug #100202). - Installer bugs with 64-bit versions of Windows have been fixed (bugs #100134, and #100197). - Fixes for linux kenerl changes so that installer builds under recent Fedora and Ubuntu distros - Fixed a problem with MCEnableCompare() not correctly disabling the compare operation when count was set to -1 (bug #100190). - Fixed a problem with 32-bit code crashing on Windows 7 64-bit. Version 4.2.0 ------------- New features - Improved support for Windows 7, including 64-bit versions - Improved crash support for developers - easier now to exit frem and restart crashed motion apps - Improved ASCII download performance for the MultiFlex Ethernet controller - Added a timestamp (bug #100056) to MCSpy and enhanced color coding of output - Lots of internal improvements - The following motion controller firmware versions are included in this release: MultiFlex PCI: 4.8a DCX-PCI300: 3.2a DCX-PCI100: 1.0a Bug Fixes - Fixed a bug in the demo programs where cycling a motor with short fast moves can cause the cycle mode to stop (bug #100177). - A problem with multi-threaded support that could lead to corruption has been fixed (bug #100174). Version 4.1.2 ------------- New features - None - The following motion controller firmware versions are included in this release: MultiFlex PCI: 4.7a DCX-PCI300: 3.2a DCX-PCI100: 1.0a Bug Fixes - A work-around for a problem with a race condition in the MultiFlex ASCII interface firmware on the controller has been implemented. The race condition can result in erroneous reply values when using using the ASCII interface (bug #100175). This work around should fix any firmware version. Version 4.1.1 ------------- New features - 64-bit device driver is now digitally signed to allow it to install under Windows Vista 64-bit editions (bug #100095). - Windows pci-bus device driver improvements to allow it to handle PnP rebalance resources requests more gracefully. - For OEMs who install the MCAPI being invoking the MCAPI setup in silent mode from within their installation the MCAPI will now do a minimal install of all the drivers and DLLs that are needed but no programs, samples, or help files (bug #100173). The end user can re-run the MCAPI installer at any time to add these features if desired. - The following motion controller firmware versions are included in this release: MultiFlex PCI: 4.7a DCX-PCI300: 3.2a DCX-PCI100: 1.0a Bug Fixes - Fix for possible data corruption when a multi-threaded application is talking to multiple controllers using the same interface type - ASCII or binary (bug #100174). - A problem on windows where an application that closes a handle and then re-opens a handle to the same controller would get garbage data for some API functions has been fixed (bug #100168). - Addressed a problem where invalid handles could cause a program crash instead of a properly handled error (bug #100165). - Lot's of improvements in communications reliability with the MultiFlex ETH, including detection of dropped connections (e.g. cable pulled). - A bug that prevented connecting to the ethernet controller from a 64-bit app running on a 64-bit version of Windows has been fixed. You will need to remove any previous ethernet controllers using the control panel applet and then re-add them using the control panel applet (bug #100166). - Documentation for MCGetJogConfigEx(), MCSetJogConfigEx(), and MCJOGEX were left out of the Windows online Reference (bug #100162). - Problems with typeface breakage in the Windows online reference guide were corrected (bug #10061). - An issue with the Visual Studio compiler generating a C4076 warning when using the dynamic linking code for the MCAPI DLL has been fixed (bug #100143). - Fixed a problem with opening multiple controllers under Linux. - Fixed a problem with semaphore handling under linux. Version 4.1.0 ------------- New features - Support added for the MultiFlex Ethernet controller. - Added support for strobe output mode for the output compare function. - The old VB.NET sample and headers have been removed. This code has been marked as obsolete ever since the release of the MCAPI .NET Assembly (which supports all .NET languages). If you need the old source you can download an older MCAPI or contact PMC (bug #100142). - The following motion controller firmware versions are included in this release: MultiFlex PCI: 4.5a DCX-PCI300: 3.2a DCX-PCI100: 1.0a Version 4.0.5 ------------- New features - The following motion controller firmware versions are included in this release: MultiFlex: 4.5a DCX-PCI300: 3.2a DCX-PCI100: 1.0a Bug Fixes - In release 4.0.4 we started installing a copy of the MCAPI .NET assembly to the global assembly cache to make it easier to distribute .NET programs that use the MCAPI assembly. Unfortunately, for non-.NET users (the vast majority) the installer would fail if the .NET runtime was not installed. Rather than force users to install .NET we have stopped installing to the global assembly cache. The MCAPI .NET assembly is still installed to the examples directory and you are free to distribute with your application (bug #100132). - Fixed problem with broken right-click context menus for MCCL files (bug #100133). Known Issues - During testing of the previous 4.0.4 release a bug in earlier 4.0.x versions of the device driver was found. This bug can sesult in a "blue-screen" during upgrade installs of the Motion Control API on Windows. If you get a blue-screen simply re-start the PC and re-run the MCAPI 4.0.5 setup, you should be fine. If you still have problems you can go to the Windows driver folder (typically C:\Windows\SYSTEM32\Drivers) and delete mcapi.sys. Reboot and run setup again. - If you have problems uninstalling the Motion Control API on 64-bit versions of Windows go to the Windows control panel, select "Add or Remove Programs" and remove from there. We have seen a problem uninstalling on some machines by re-running SETUP.EXE. - Status interrupts are not supported in this release under 64-bit versions of Windows, nor are they supported in Linux. - Unlike Windows, MCAPI handles should not be shared among threads in Linux. This is limitation of the Linux getpid() function. Simply open a separate handle for each thread. Version 4.0.4 ------------- New features - The .NET assembly is now a signed, strong name assembly (rfe #100099). - The .NET assembly is now installed to the global assembly cache instead of being left in the "Motion Control" folders under "Program Files" (rfe #100115). - Added support to the .NET assembly for MCEnableInterrupts() and updated online help (rfe #100123). - A test program, apitest, has been added to the Linux tarball to provide users with a more thorough way of validating the MCAPI build on their system (rfe #100126). - The following motion controller firmware versions are included in this release: MultiFlex: 4.5a DCX-PCI300: 3.2a DCX-PCI100: 1.0a Bug Fixes - Added a missing gain field to the .NET FilterEx structure (bug #100122). - An error in the error return code from MCWaitForIndex() has been fixed (bug #100111). - A problem with MCGetDigitalIOEx() causing applications to hang or act erratically has been fixed (bug #100112). - The EnableDigitalIO() method in the .NET assembly was mis-named (the 'MC' prefix was not removed), this has been corrected (bug #100124). - The serial port driver was not correctly closing the serial port when the API handle was closed (bug #100108). - Changes to the Linux kernel beginning with version 2.6.19 broke the mcapi device driver, the sources have been changed to build correctly on old or new kernel version (bug #100117). - A problem with WinCtl double spacing lines when communicating with a DCX-PCI controller is fixed (bug #100094). - Clean up of un-necessary code in CWDemo (bug #100098). - Fixed a bug in the Windows device driver that could cause a blue screen of death during an upgrade install (#100127). - Fixed bug of MultiFlex I/O configuration not working (bug #100128). Known Issues - During testing of the 4.0.4 release a bug in earlier 4.0.x versions of the device driver was found. This bug can sesult in a "blue-screen" during upgrade installs of the Motion Control API on Windows. If you get a blue-screen simply re-start the PC and re-run the MCAPI 4.0.4 setup, you should be fine. If you still have problems you can go to the Windows driver folder (typically C:\Windows\SYSTEM32\Drivers) and delete mcapi.sys. Reboot and run setup again. - If you have problems uninstalling the Motion Control API on 64-bit versions of Windows go to the Windows control panel, select "Add or Remove Programs" and remove from there. We have seen a problem uninstalling on some machines by re-running SETUP.EXE. - Status interrupts are not supported in this release under 64-bit versions of Windows, nor are they supported in Linux. - Unlike Windows, MCAPI handles should not be shared among threads in Linux. This is limitation of the Linux getpid() function. Simply open a separate handle for each thread. Version 4.0.3 ------------- New features - The linux driver makefile now supports building the kernel module for any installed kernel, previously it would only build for the currently running kernel (rfe #100079). See the file INSTALL for details. - Upgraded MultiFlex PCI firmware to version 4.5a (rfe #100084). - A QUIT command has been added to the Linux dcxctrl utility so that the user can use EXIT or QUIT to exit the utility (rfe #100092). - The following motion controller firmware versions are included in this release: MultiFlex: 4.5a **NEW** DCX-PCI300: 3.2a DCX-PCI100: 1.0a Bug Fixes - Fixed problem of MCGetFilterConfigEx() (and older MCGetFilterConfig()) not reporting Low Speed mode correctly (bug #100076). - Fixed problem where multiple pathways to hand position deadband and delay at target could result in inconsistent operation (bug #100081). - Extended timeout period in Windows device driver for downloading of firmware to PCI bus controllers. This fixes a rare problem on heavily loaded industrial PCs/ - Fixed problem with the hyperlink in the standard about box used by the MCAPI components that would cause it to fail to respond when clicked on by the user (bug #100061). The hyperlink is now underlined to make it stand out better (rfe #100089). - Fixed problem of Borland C++ Builder not reporting correct VERSION INFO in its About Box, changed recommended way of calling MCDLG_AboutBox() from Borland C++ Builder apps (bug #100088). - A problem with the OPEN command in the Linux dcxctrl utility would cause it to seg fault if there was no currently open controller, this has been fixed (bug #100083). - During testing a memory leak was found in the MCCLose() function under Windows (a critical section wasn't getting deleted) this has been fixed (bug #100093). Known Issues - If you have problems uninstalling the Motion Control API on 64-bit versions of Windows go to the Windows control panel, select "Add or Remove Programs" and remove from there. We have seen a problem uninstalling on some machines by re-running SETUP.EXE. - Status interrupts are not supported in this release under 64-bit versions of Windows, nor are they supported in Linux. - Unlike Windows, MCAPI handles should not be shared among threads in Linux. This is limitation of the Linux getpid() function. Simply open a separate handle for each thread. Version 4.0.2 ------------- New features - A preliminary version of html-based documentation has been included for Linux users in this release. Linux users will need to have the doxygen utility installed (available pre-packaged for most distros) and should run the following command in the mcapi library folder: $doxygen doxygen.conf This is a work in progress, but is already fairly complete. Eventually this is intended to be used as online help on all platforms. - MultiFlex firmware upgraded to version 4.3a (rfe #100063). - Tweaks to the installer to allow installation on beta versions of Windows Vista. Vista is still in beta and we can will only limited support at this time, that said MCAPI does install and run on the current Vista beta with only minor cosmetic glitches. - The following motion controller firmware versions are included in this release: MultiFlex: 4.3a DCX-PCI300: 3.2a DCX-PCI100: 1.0a Note that if you are upgrading from a previous version of MCAPI your controller firmware will not automatically be upgraded. Upgraders can doownload the new firmware from the PMC website and install it with the Flash Wizard. Bug Fixes - A performance enhancement to version 4.0.0 broke the automatic setting of the capture buffer size on the MultiFlex, DCX-PCI300, and DCX-PCI100 - this in turn broke the servo tuning application (bug #100054). - The Output Offset (00) mnemonic was missing from the ASCII command tables of the MultiFlex and DCX-PCI300, this mainly impacted the command display window of MCSpy (bug #100057). - The Windows device driver event log code now includes additional useful address information in the data portion of the event, in response to bug #100055. Known Issues - If you have problems uninstalling the Motion Control API on 64-bit versions of Windows got to the Windows control panel, select "Add or Remove Programs" and remove from there. We have seen a problem uninstalling on some machines by re-running SETUP.EXE. - Status interrupts are not supported in this release under 64-bit versions of Windows, nor are they supported in Linux. Version 4.0.1 ------------- Bug Fixes - A problem with the manifest file that prevented the 64-bit version of the Joystick demo program from running has been fixed (#100030). - Internal changes to the memory access functions were made to provide better usability for OEMs (#100022 and #100026). - Fix about box in title in CWdemo so it's consistent across 32-bit and 64-bit builds (bug #100029). - Information was added to the MCSpy help warning Windows XP 64-bit users that they must use the 64-bit version of MCSpy to debug 64-bit applications, and the 32-bit version of MCSpy to debug 32-bit applications (bug #100038). - MCSpy (64-bit) shortcut was not being installed in the Motion Control API menu on 64-bit systems (bug #100031). - 64-bit installs should include the 32-bit version of MCSpy so users can Spy on 32-bit apps (bug #100032). - Test code was left in the Abort Button method for the C# Demo, breaking the abort processing (bug #100027). - C/C++ Demo programs were missing the Visual Studio 2005 project files and 64-bit manifests, preventing the user from building the 64-bit versions of these files (bugs #100040 and #100041). - Console demo was missing windows make files which were added to support 64-bit builds (bug #100042). - Control Panel Applet was not using XP theme on 64-bit installations (bug #100034). - Updated Control Panel Applet online help (#100035). - For Linux builds the MCAPI version number from the configure.in is now used by all the child Makefile.am files, manual changing of this value in the makefiles is no longer required (#100043). - A problem with stale configuration data corrupting the MultiFlex model configuration in certain rare OEM settings has been corrected (#100048). - Surrounded some Microsoft specific pragmas so Linux builds with older versions of GCC don't generate warnings (#100044, #100045, and #100046). Known Issues - If you have problems uninstalling the Motion Control API on 64-bit versions of Windows got to the Windows control panel, select "Add or Remove Programs" and remove from there. We have seen a problem uninstalling on some machines by re-running SETUP.EXE. - Status interrupts are not supported in this release under 64-bit versions of Windows, nor are they supported in Linux. Known Issues - If you have problems uninstalling the Motion Control API on 64-bit versions of Windows got to the Windows control panel, select "Add or Remove Programs" and remove from there. We have seen a problem uninstalling on some machines by re-running SETUP.EXE. - Status interrupts are not supported in this release under 64-bit versions of Windows, nor are they supported in Linux. Version 4.0.0 ------------- New Features - Support for 64-bit versions of Windows and Linux is included in this release. Note that status interrupts are NOT supported on 64-bit Windows in this release. - Support for .NET has been added via the assembly McapiNet.DLL. .NET 2.0 and Visual Studio 2005 are required to use this assembly. See the included C# demo program for details. - A C# demo program has been added. It uses the new McapiNet.DLL .NET assembly for MCAPI. - The MCDLG library is now automatically initialized when it is loaded, therefore it is no longer necessary to call MCDLG_Initialize() before using the library. The MCDLG_Initialize() function call has been left in the DLL to support old code that expects to be able to call it (it now does nothing). - The internal error handling of the MCAPI has been completely re-worked, resulting in more consistent and usable error reporting. - The internal display logic of WinControl has been reworked to speed up text display, especially on older PCs. - Added MCGetDigitalIOEx(), can read back digital I/O status from 32 channels at once, or one at a time like MCGetDigitalIO() (BR #121). - The C/C++ dynamic linking source code for the MCAPI and MCDLG libraries (mcapi_dl.h/mcapi_dl.cpp and mcdlg_dl.h/mcdlg_dl.cpp) has been reworked so that they may also be used on Linux (BR #124). - Internally MCAPI now handles functions that require more than one MCCL command, such as reading values from controller memory, more efficiently. The result is an approximate 10% speed boost for these functions. - The Linux startup script now backgrounds the firmware loading task, allowing systems to boot much faster. - Linux driver support has been tweaked to support Suse distros out of the box, similar to existing support for Fedora Core. - Added a man page for dcxctrl under Linux. - The following motion controller firmware versions are included in this release: MultiFlex: 4.2a DCX-PCI300: 3.2a DCX-PCI100: 1.0a Note that if you are upgrading from a previous version of MCAPI your controller firmware will not automatically be upgraded. Upgraders can doownload the new firmware from the PMC website and install it with the Flash Wizard. Bug Fixes - A bug in pmcrpy() caused MCSpy to incorrectly display the packets read in from the controller (packets were decoded as ASCII packets, not binary) - A new Linux makefile has been written for the Linux console app that should allow the sample to be built more reliably on a wider range of Linux configurations (BR #125). - A an MCSpy problem decoding binary commands where one of the commands had a string argument (subsequent commands were incorrectly decoded) has been fixed (Bug #100001). - The Linux startup script was not starting firmware correctly if more than one controller was installed, dcxctrl was missing a "--board #" option. - A problem with initialization of DCX-PCI controllers in fast PCs running Linux has been fixed. - The Linux MCAPI build wasn't creating unique semphores for each controller, this has been fixed (Bug #100002). - Changes to the controller device I/O should make the linux port of MCAPI more stable and reliable. Known Issues - If you have problems uninstalling the Motion Control API on 64-bit versions of Windows got to the Windows control panel, select "Add or Remove Programs" and remove from there. We have seen a problem uninstalling on some machines by re-running SETUP.EXE. - Status interrupts are not supported in this release under 64-bit versions of Windows, nor are they supported in Linux. Version 3.5.2 ------------- New Features - Configuration DLLs now check to see if the controller firmware reports the recording memory size and uses that value if present, otherwise they fall back to the default value. This allow the MCAPI to support firmware enhancements to the recording memory without requiring an MCAPI change. Bug Fixes - Fixed Delphi (pascal) prototypes for MCGetRegister() and MCSetRegister() Version 3.5.1 ------------- New Features - Modified pmcgetramex() and pmcputramex() to move data 4 bytes at a time as much as possible, greatly speeds up transfers over external buses (such as ethernet). Previously both functions moved data one byte at a time. - Build is from shared Windows/Linux source tree, Linux package to be co-released at the same time Bug Fixes - Fixed Delphi (pascal) prototypes for pmccmdex() amd pmcrpyex() (BR #119) - Fixed MCPanel's (control panel applet) configuration handling for the optional TCP/IP interface driver (was conflicting with other experimental drivers). Version 3.5.0 ------------- New Features - Many of the new features in this release require firmware version 2.8a or higher for the MultiFlex controllers. If you do a fresh install (no previous MCAPI) the new firmware will be installed for you. If you upgrade a previous install the installer will NOT automatically upgrade your firmware. Upgraders should obtain the firmware update from the PMC website (www.pmccorp.com) and upgrade their firmware using Flash Wizard. - Added functions MCGetVelocityOverride()/MCSetVelocityOverride() to allow easy access to the velocity override parameter without use the MCCONTOUR structure. - Added fields to the MCFILTEREX structure to support the Output Deadband (OB) and Output Offset (OO) commands (BR #69, #70). - Added fields to the MCFILTEREX structure to support the Position Deadband (DB) and Delay At Target (DT) commands. - the new parameters/commands mentioned above have been incorporated into the servo/stepper dialog boxes and into the save/restore axis settings functions - The header and source files used for dynamic linking have been renamed to mcapi_dl.h, mcapi_dl.cpp, mcdlg_dl.h, and mcdlg_dl.h to allow them to more easily co-exist with the standard headers. - The joystick demo program now uses dynamic linking and demonstrates how to dynamically link a C/C++ program to the Motion Control API. Dynamic linking allows for runtime detection of the library, version specific fallbacks, and makes it easy to create apps that are backwards compatible with earlier releases of the MCAPI. - The scaling dialog of the Motion Dialogs library now accepts the MCDLG_CHECKACTIVE flag and will not allow scaling changes if this flag is specified and the the axis is enabled (scaling should only be changed with the motor off). - The MCDLG_RestoreAxis() function can now check to see if a motor is enabled and skip initialization if it is. This functionality is invoked by including the flag MCDLG_CHECKACTIVE when calling MCDLG_RestoreAxis() and is recommended. - Improved performance of WinCtl when downloading files. - The CWDemo, CWDemo_Int, BCBDemo, PasDemo, VBDemo, and VBDemo.net demo programs no blank the follwoing error display when operating with open loop stepper motors (which have no following error) - The demo programs that supported saving and restoring the motor parameters to the MCAPI.INI file have a new menu option to load the parameters from the INI file once (The current option sets a flag and reloads the parameters every time the program starts) Bug Fixes - Two header files, plot.h and plotconfig.h, were missing from the joystick demo source code (BR #117). - The online help description for MCDLG_DownloadFile() did not specify that the handle to this function has to be opened in ASCII mode (BR #110). - A potential buffer over-run bug when downloading firmware to a controller has been fixed (BR #116). - A bug in the MCGetCount() function when querying capture count is fixed (BR #118) - Cleaned up a number of typos in the online help samples. Version 3.4.2 ------------- New Features - The installer will now automatically upgrade a previous MCAPI install (version 3.0 or later), it no longer requires you to uninstall the previous version first. Note that if you are upgrading from MCAPI version 2.23 or earlier you should still uninstall the earlier API, remove the motion controller from your PC, and then follow the new installation instructions for your OS (below). Bug Fixes - Occasionally if the only controller in a system was removed the Motion Control Panel applet would still show it as installed after a reboot, this has been fixed (BR #106). - Changed the Motion Control Panel "Remove" button so it is only enabled for non-pcbus interfaced controllers on all operating systems except NT4, everyone but NT4 now uses Windows plug-and-play for pc-bus installs and removals, not the control panel applet (BR #107). - Fixed occasional problem with low-level driver and status interrupts that would cause first interrupt to return corrupted values (BR #108). - Return type for MCEnableInterrupt() in MCAPI32.BAS was missing (BR #109). - Added warning to MCDLG_DownloadFile() online help that this function requires an ASCII handle (BR #110). - Modified MCEnableCompare() to accept any numeric parameter instead of just one or zero - in some compare modes it needsd to accept a value that was equal to the number of points in the compare buffer (BR #112). - Fixed MCGetCount() to correctly return compare count (BR #113). - Corrected MCConfigureCompare() to properly reset the compare prior to writting new compare parameters (BR #114). - Updated capture and compare online help to reflect bug fixes (above). - Numerous small bug fixes to the VB.NET sample and header files, see file comments for specifics. Version 3.4.1 ------------- New Features - MCSpy now color codes control characters (new lines, carriage returns, etc.) when capturing data in ASCII mode. This allows the user to discern a true control character such as a line feed (\n) from the string "\n". This change makes it easier to verify that all MCCL comand lines end with a proper carriage return (\r) or line feed (\n) character (BR #93). - The MCOEM32.DLL DLL has been eliminated for default configurations and is now only needed if an OEM has provided special configuration settings. This will make it easier for OEMs to manage the MCOEM32 DLL (BR #98). Bug Fixes - The descriptions for pmcputs() / pmcgets() have been updated in the MCAPI Reference online help (BR #92). - Fixed a bug in the code that converted MCCL opcodes to ASCII that caused Opcodes greater than 295 to be incorrectly decoded. This bug caused a rare problem (mnemonics affected are rarely used and mostly impacted the MCSpy utility) (BR #94). - The learn button in the joystick demo program was not adding markers to the plot window like the joystick button #1 does, it has been fixed (BR #95). - There was a problem in version 3.4.0 getting the DC2 to work with WinControl in some cases. This has been fixed (BR #96). - A bug in the low-level device driver for Windows NT4 could cause the driver to appear to load correclty but fail to allow communications with the controller, this has been fixed (BR #97). - A bug in the low-level driver for NT4 that prevented proper operation with the DC2-PC controller was fixed (BR #99). - Fixed a problem under Windows NT4 where the driver was not getting put into auto start mode following a successful controller configuration. This made it impossible for any user without administrator priveleges to start a MCAPI application (BR #100). - Corrected a configuration problem under NT4 where an ISA-Bus controller configured at a non-default address would have its address reset to the default when opened by the Motion Control control panel applet (BR #101). - A problem with calling MCReset() when both ASCII mode and Binary mode handles are open (the MCAPI would lock up) has been fixed (BR #102). - On Windows NT4 you recent versions of the MCAPI have required you to re-boot after configuring a new controller. This has been fixed and the re-boot is no longer required (BR #103). - Fixed a bug where the MCAPI was reporting too many available general purpose analog output channels on the MFX-PCI. The MFX-PCI includes the servo control analog outputs in its channel count, the MCAPI now subtracts the servo outputs from the total to arrive at the number of general purpose outputs (BR #104). - In the Joystick demo program the front panel display button for the Y-Axis was changing the X-Axis description Version 3.4.0 ------------- New Features - MCSpy now uses dynamic linking to allow it to work on older versions of the MCAPI (may be used on systems with MCAPI version 2.20 or later). - The joystick demo program has an improved interface with easier access to display settings and better graphics. - The C-Language dynamic linking files have been re-worked to make them provide additional compile-time diagnostic information and to work better with MFC / ATL / WTL programs. - The C-Language header files have been enhanced to better support LabWindows/CVI programming. - Separate semaphores for the ASCII and the Binary interface are now used by MCAPI to improve performance of applications that use multiple controller interfaces (BR #9). - The Pos and Status utilities now use dynamic linking and will work with versions of the MCAPI as old as 3.0.0. - The Pos utility can now display data from multiple controllers at once and also offers multi-column display modes (1, 2, or 4 columns). - Added support for position recording "recording interval" and "delay" commands to the DCX-AT200, requires latest DCX-AT200 firmware (BR #83). - A new sample program for the Visual Basic .NET language has been added, as have Visual Basic .NET include files MCAPI32.VB and MCDLG32.VB The new sample may be found in the Sources\VBDemo.NET folder in the MCAPI installation folder. - A new sample program for the Borland C++ Builder development platform has been added, the new sample may be found in the Sources\BCBDemo folder in the MCAPI installation folder. - The MCAXISCONGFIG and MCPARAMEX structures have been extended with additional system configuration fields. - An extended version of the get and set analog functions - MCGetAnalogEx() and MCSetANalogEx() - have been added to make it easier for Visual Basic programs to work with analog inputs and outputs (BR #72). - The function MCEnableEncoderFault() was added to support the encoder fault detection feature of the Multiflex controllers (BR #74). - The function MCgetVelocityActual() was added to support the reading of the instantaneous actual velocity of an axis (BR #82). - Extended version of pmcgetram() and pmcputram() (pmcgetramex()/pmcputramex()) were added to allow access to the full 32-bit address space of newer motion controllers. Bug Fixes - Fixed a bug in Windows 98/ME where removing a motion controller from the device manager could lead to a Blue Screen of Death - BSOD (BR #86). - Fixed bug introduced into the JoyDemo program in release 3.3.0 where for controllers other than the MFX-PCI1000 the displays would remain blank. Changing the error checking to use the return value of the MCGetStatusEx() call fixes the problem (BR #79). - A bug in the low-level MCAPI routines that could cause a large reply to be truncated has been fixed (affects all controller models except the DC2), this is only a problem for programs that use the low-level interface (BR #85). Version 3.3.0 ------------- New Features - Added support for MFX-PCI 1000-series Motion Controllers. - Improvements to firmware loading of PCI controllers during Windows 98/ME. startup (now similar to Windows NT/2000/XP), MCSTART.EXE no longer required. - All controllers (except RS232 and GPIB) now installed via the Windows Add New Hardware on Plug-and-Play versions of Windows (everything but NT4). - Added additional Visual Basic samples to online help (BR #37-#41). - The MCSpy Utility (helpful for debugging motion control programs) is now included with the MCAPI (installed with the development component). - New functions MCGetStatusEx() and MCDecodeStatusEx() to provide support for the new status word layout on the DC4-PCI6xx. These functions are backward compatible with existing controllers. Also added status word constants MC_STAT_PRI_ENC_FAULT, MC_STAT_AUX_ENC_FAULT, MC_STAT_LOOK_AUX_IDX, and MC_STAT_AUX_IDX_FND. - Added MCEnableInterrupts() for status word interrupts on MFX-PCI. Bug Fixes - Fixed problem with functions that use extended commands (BR #15). - Added additional precision to values stored by MCDLG_SaveAxes() so that very small values are saved correctly (BR #23). - The Output Deadband mnemonic was incorrectly specified in the MCCL.H file for DCX series controllers - was OD, now correct as OB (BR #29). - Fix for problem with endless loop in select controller dialog on PasDemo (BR #31). - Fixed error message reporting in VBDemo during select controller dialog where no error code was being shown (BR #32). - Fixed error message formatting in PasDemo (BR #33). - Updated MCAPI reporting of MC360 stepper rates to match current product specs (MC362 was already current). - Fixed prototype for MCWaitForIndex() in VB and Delphi headers, online help (BR #35). - Fixed online help formatting (missing tabs) of MCDLG_ControllerInfo() and MCDLG_SelectController() (BR #30). - Typo's corrected in the online help C/C++ Digital I/O Sample (BR #55). - Typo's corrected in the online help C/C++ Capture Data Sample (BR #56). Version 3.2.1 ------------- New Features - Web link added to About Box of sample programs (BR #8). Bug Fixes - Phase selection box in stepper setup dialog (MCDLG_ConfigureAxis()) is now enabled for MC360 steppers in closed loop mode (BR #1). - Missing prototype for MCSetTorque() has been added to MCAPI.BAS (BR #3). - Error in prototype for MCGetCaptureData() corrected in MCAPI.BAS (BR #4). Version 3.2.0 ------------- New Features - Support for MC302 (dual servo) and MC362 (dual stepper) modules. - Support added for setting commutation parameters on the MC320 module. - New Status panel utility provides full graphical decoding of the status word on any axis. - Added functions MCEdgeArm(), MCIsEdgefound(), and MCIsIndexfound() to help simplify homing of steppers and servos. - Closed loop stepper support on DCX-PCI300 and DCX-AT300, including functions to set/get module input mode (MCGetModuleInputMode() / MCGetModuleInputMode()). - The MCDLG_ConfigureAxis() function supports closed-loop stepper parameters. - MCDLG_RestoreAxis() and MCDLG_SaveAxis() now include the integral option and input mode parameters, as well as closed-loop stepper parameters. - Support in API and MCDLG for integral option setting on advanced controllers. - PasDemo and VBDemo are now identical in feature and operation to the CWDemo sample. The ability to select a controller and auto-initialize a motor's settings was added to PasDemo and VBDemo. - CWDemo, VBDemo, and PasDemo now only set an axis to Position Mode if they can't verify the axis is already in Position Mode (uses new MCGetOperatingMode() function), making them more useful (fewer unintended consequences) when other motion programs are running. Bug Fixes - MCIndexArm() support was fixed for the DCX-PCI100 and DCX-PC100 controllers. - An error in MCIsDigitalFilter() when called with the axis number set to MC_ALL_AXES has been corrected. - An error in the definition of the MCParamEx data structure in MCAPI32.BAS has been corrected (the CanChangeRates field had been incorrectly omitted). - MCDLG_RestoreAxis() will return an error (MCERR_NOT_FOUND) if data for the specified axis cannot be found. Version 3.1.0 ------------- New Features - Support for the PCI-Bus DCX-PCI100 added. - Improved multi-threading support for multiple controllers, provides better throughput in a multi-threaded / multi-controller applications. - Support for the invert limits flag on the DCX-PC100 (ISA-Bus) added. - Added support functions for the Digital Filter mode of MC300 series servo modules. - Added functions for the high speed capture and compare modes of MC3xx series modules. - CWdemo and WinCtl will now restore controller settings if Auto-Initialize is selected and a Reset is performed (using the menu option). Bug Fixes - Further improvements to the DCX-PCI300 firmware download under Windows 98. - Improved handling of the DCX-PCI reset to ensure reset has completed before programs may proceed. - Improved handling of legacy bus controllers under Windows 98 (DCX-AT, DCX-PC). - Many corrections and editions to Online Help, improved formatting. Version 3.0.2 ------------- New Features - Improved support for the DCX-PCI300 under Windows 98 / Windows Me. - MCAPI driver now logs any errors to MCAPI.LOG (located in the \Windows folder) under Windows 98 / Windows Me. It continues to log errors in the Event Log for Windows NT/2000. - The Installation Program now allows you to install the MCAPI for all users under Windows NT/2000. Bug Fixes - MCBlockEnd() was returning MCERR_CONTROLLER when it should have been returning MCERR_NOERROR. - The new controller wizard would fail to run on Windows NT 4 if that had not had an updated copy of Internet Explorer installed. Version 3.0.1 ------------- New Features - Full support for Windows 98, Windows Me, Windows NT, and Windows 2000. - Startup menu group program MCStart auto-starts PCI cards under Windows 98. Bug Fixes - DCX-PCI300 configuration info was incorrectly reporting the on-board analog input channels as four, should have been zero (fixed). - Control Panel works correctly under all platforms. Version 3.0.0 ------------- New Features - This version provides support, including Plug and Play, for the new PCI-Bus DCX-PCI300 controller. - A new extended version of MCGetConfiguration() - MCGetConfigurationEx() provides more complete controller configuration information. - A function to report static motor axis configuration - MCGetAxisConfiguration() has been added. - Extended versions of the controller/module description functions have been added to the Motion Dialog package. - The LED window from the Motion Dialog package has improved drawing code and should work better with non-standard (i.e. custom) color schemes. - Supports Windows NT4/2000/XP (current beta). - This version supports the Plug and Play DCX-PCI300 controller. - CWDemo's auto-display precision calculation has been improved and will now detect scaling changes without having to restart the program. - WinControl supports dragging and dropping of command files. - The command line interface of WinControl has been improved and can display auto-started command files as they are being processed. - Support for 16-bit programming and Windows 3.1 has been dropped - those users should continue to use version 2.23.