Troi Serial Plug-in Release Notes

Below you can find the version history, with an overview of what has been changed in the current and previous versions of Troi Serial Plug-in.

Troi Serial Plug-in 8.0 (for FileMaker 16 to 2023) (July 17, 2023)

Improved compatibility
  • Tested and made compatible with Claris FileMaker Pro 2023 (FileMaker Pro 20.1.2)
  • Tested and made compatible with Claris FileMaker Pro 19 up to Claris FileMaker Pro 19.6.3.
  • Tested and made compatible with Claris Pro 40.2.1.
  • Tested and made compatible with macOS 13 (Ventura).
  • Tested and made compatible with Windows 11, including Windows 11 version 22H2 (September 20, 2022).
New functionality and improvements
  • Added new Serial_GetUSBInfo function. A serial port can be implemented as virtual port on top of a USB port. When this is the case this function returns information about the USB port hardware, like the USB vendor ID, vendor name, USB Product name and USB Serial number. To get a single item as a result you can use these switches:
    • -USBVendorName
    • -USBProductName
    • -USBSerialNumber
    • -USBVendorID
    • -USBProductID
  • Improved the Serial_SetDirectInsert function: the plug-in now also can insert data where the filename parameter contains a period in the name and the (.fmp12) extension was not included (Note that the FileMaker function "Get(Filename)" will not include the extension).
    For example if the filename parameter given is "Collector1.0" the plug-in now adds the .fmp12 extension, resulting in "Collector1.0.fmp12".
  • Improved script triggering when data is received: the plug-in now also triggers scripts where the filename parameter contains a period in the name and the (.fmp12) extension was not included (the FileMaker function "Get(Filename)" will not include the extension).
    For example if the filename parameter given is "Terminal1.0" the plug-in now adds the .fmp12 extension, resulting in "Terminal1.0.fmp12".
  • (macOS) Fixed a problem on macOS 12 (Monterey) and FileMaker Pro 19.4, where the plug-in would not show the plug-in icon in the flash dialog.
Improved Security
  • Improved the code in several places and made it more secure.
  • (macOS) Modernized the code and removed dependency on legacy Carbon code in several places.
Startup Registration Log
  • Improved the EasyInstallTroiPlugins.fmp12 example file (v1.8.6): added a script which adds the Startup Registration Log to the log field. This will get a text log of the startup registration process of the plug-in.
  • Added an example script "Get Startup Registration Log of the plug-in" to Version.fmp12, which gets the text log of the startup registration of the plug-in.
  • Added switch "-GetStartupRegistrationLog" to the Serial_Version function. This will return a text log of the plug-in's registration process at startup time of FileMaker Pro. When you have problems registering the plug-in, you can see if the payment certificate was found and if a valid registration code was found.
Other changes and bug fixes
  • IMPORTANT The minimum supported OS versions are macOS 10.14 (Mojave) and Windows 10.
  • (macOS) Fixed a bug in the Serial_AsciiValueToText function when using the switch
    -Encoding=ASCII_Windows. The plug-in no longer crashes when you use values that are undefined for this encoding. The undefined values for this encoding (see Windows-1252 codepage wiki) are 0x81, 0x8D, 0x8F, 0x90 and 0x9D (decimal: 129, 141, 143, 144 and 157). For compatibility with the plug-in running on Windows these values will now be added with the same values as a Unicode character.
  • Fixed several other bugs, modernized the code in several places and made further improvements.

Troi Serial Plug-in 7.0.2 (for FileMaker 16 to 19) (October 18, 2021)

  • Fixed a bug in the Receive Serial Data script step and the Serial_Receive function, when using the
    switch "-ConvertBytesToNumbers": for bytes with Unicode codes higher than 127 the numeric value is now correctly returned.
  • (macOS) Fixed a bug that prevented the plug-in from loading in FileMaker Pro 16 (installing it would result in error code 1550).
  • Tested and made compatible with Windows 11.
  • Tested and made compatible with Windows 10 version 21H1 (May 2021 Update).
  • Tested and made compatible with Claris FileMaker Pro 19, up to and including FileMaker Pro 19.3.

Troi Serial Plug-in 7.0.1 (for FileMaker 16 to 19) (May 16, 2021)

  • (macOS) The macOS plug-in is now properly code signed.

Troi Serial Plug-in 7.0 (for FileMaker 16 to 19) (May 5, 2021)

Improved compatibility
  • Tested and made compatible with Claris FileMaker Pro 19, up to and including FileMaker Pro 19.2.
  • Tested and made compatible with macOS 11.0 (Big Sur).
  • Tested and made compatible with Windows 10 version 20H2 (October 2020 Update) and Windows 10 version 2004 (May 2020 Update).
New function and functionality
  • Added new Serial_DelayMilliSeconds function, which will wait for the specified number of milliseconds.
  • (macOS) Prepared the plug-in for Apple Silicon: made the plug-in a universal binary by adding code for the arm64 architecture of macOS.
  • Added new switch to the Serial_SetDirectInsert function: -ConvertBytesToNumbers. When data is directly inserted into the database all received bytes are first converted to their numeric value. The plug-in will for example insert "65 66 67 ", which would be Unicode "ABC". Note that each number is followed by a space, as separator, also after the last number.
  • (macOS) If the plug-in can't load a bundle at start-up, the plug-in will now write a detailed error to the system.log. See the Console.app in this case (search for FileMaker in the system.log).
  • (macOS) Improved compatibility when running FileMaker Pro 19 in dark mode, the flash dialog is now more visible.
  • Improved the EasyInstallTroiPlugins.fmp12 example file: updated the plug-in install scripts to be compatible with Apple Silicon. These scripts now also give more detailed instructions.
  • Small cosmetic improvement of the Regifunc.fmp12 example.
Other changes and bugfixes
  • Fixed a memory leak in the Receive Serial Data script step and the Serial_Receive function.
  • IMPORTANT The minimum supported FileMaker version is now FileMaker Pro 16. Also the minimum supported macOS version is now OS X 10.12 (Sierra), and Windows 8. You can keep using v6.0 for older versions of FileMaker Pro, Windows or Mac OS X.
  • Fixed several bugs, modernized the code in several places and made further improvements.

Version 6.0 (for FileMaker 14 to 18) September 4, 2019)

  • Tested and made compatible with FileMaker Pro 18 and FileMaker Pro 17.0.7.
  • Improved the Open Serial Port script step and the Serial_Open function. You can now specify a match string as an optional parameter. In that case the plug-in will wait to trigger a script until the incoming data contains the match string.
  • Added an extra Switches parameter to the Receive Serial Data script step, allowing to specify advanced switches.
  • Improved the Terminal.fmp12 example file, it is now optimized for FileMaker Pro 16 to 18: it uses external script steps and demonstrates the more advanced features of Troi Serial Plug-in 6. Also enhanced the user interface, for example you can now specify the text size of the terminal text.
  • Updated the code base, the plug-in now uses more modern C++ libraries.
  • (macOS) Improved reliability of loading the Cocoa code bundle when updating a plug-in with the "Install Plug-in File" script step.
  • (macOS) Improved the Open Serial Port script step and the Serial_Open function: when reopening the port existing data still in the buffer of the operating system is now flushed. This prevents receiving stale data.
  Miscellaneous improvements
  • Renamed the "Set Serial Dispatch Script" step to Set Serial Trigger Script.
  • Fixed a possible crash when shutting down the plug-in or disabling it in the preferences. This crash could sometimes occur if you had several serial ports still open when stopping FileMaker Pro.
  • (macOS) Fixed a potential memory leak in the Open Serial Port script step and the Serial_Open function.
  • (macOS) Improved the Serial_Open function: when a serial port is in use the plug-in now returns the expected error code $$-97 (portInUse) instead of $$16.
  • Fixed a possible crash in the Receive Serial Data script step with the parameter Encoding set to UTF-8: when receiving data which contains an invalid UTF-8 character sequence the plug-in no longer crashes, but will now indicate the invalid UTF-8 characters with the string <INVALID UTF8>.
  • Modernized the Regifunc.fmp12 file, it now demonstrates the cross-platform plug-in registration process.
  • Updated the EasyInstallTroiPlugins.fmp12 file.

Version 5.6 (for FileMaker 14 to 17) (download package of February 19, 2019)

  • (Windows) Windows 7 is still supported, contrary to what earlier release notes stated.
  • Fixed small typos in the readme file.
  • Updated the example file EasyInstallTroiPlugins.fmp12 to v1.7.2
  • NOTE The included plug-ins themselves have not changed and are still version 5.6.

Version 5.6 (for FileMaker 14 to 17) (January 16, 2019)

  • IMPORTANT (macOS only) The minimum supported FileMaker version is now FileMaker Pro 14. Also the minimum supported Mac OS version is now OS X 10.9 (Mavericks). You can keep using v5.5 for older versions of FileMaker Pro or Mac OS X.
  • (macOS) Prepared the plug-in for notarization: the plug-in can now be added to a runtime, to create a hardened FileMaker runtime app which can be notarized by Apple. Notarization gives users more confidence as the runtime has been checked by Apple for malicious components.
  • (macOS) The plug-in no longer has the 32-bit code included.

Version 5.5 (for FileMaker 13 to 17) (August 6, 2018)

  • Tested and made compatible with FileMaker Pro 17.
  • Rewrote the low level serial code of the plug-in.
  • You can now directly insert incoming serial data into your database, with the new Serial_SetDirectInsert function. The data is inserted in the background (without any script triggering). You can specify a match string (for example a return character), so the data is inserted only when the match string is encountered (for example a complete line).
  • Added switch "-GetLastMatch" to the Serial_SetDirectInsert function. When you add this switch only the last matching data is directly added to the database (based on the match string). This will provide you with the most current data from the serial port.
  • Added new Set Serial Direct Insert script step, which can also add incoming serial data into your database. With the checkbox "Get Last Match" only the last matching data is directly added to the database (based on the match string).
  • Added new Measure Temperature.fmp12 example, which can directly insert data from temperature sensors. It uses a serial connection with an Arduino micro computer.
  • The plug-in now indicates if an external script step is compatible with a product. The step is shown in grey if it is incompatible for that product (for example for iOS) in the script editing pane (center) and the script steps pane (right).
  • (macOS) The minimum supported Mac OS X version is now 10.8.
  • (Windows) The minimum supported Windows version is now Windows 8.

Version 5.0.1 (for FileMaker 12 to 16) (January 17, 2018)

  • Fixed a problem with Serial_SetDispatchScript: you can now use a different wait string for each port.
  • Added switch to Serial_Debug function "-UseTextAllBytes0To255": you can use this in combination with the switch "-TestTriggerScript". The plug-in will trigger a script with as test data all the bytes from 0 to 255.
  • Improved the Debug.fmp12 example file, it now shows how to use the "-UseTextAllBytes0To255" and "-ConvertBytesToNumbers" switches. Also made other improvements in this example file.
  • Improved the Terminal.fmp12 example file, it now shows how to use the "-ConvertBytesToNumbers" switch when receiving data.
  • (macOS) Fixed a compilation problem with code signing and extended attributes in macOS 10.12 (Sierra).
  • (Windows) Added code signing to the plug-in for Windows.
  • The plug-in now indicates if an external script step is compatible with a product. The step is shown in grey if it is incompatible for that product (for example iOS) in the script editing pane (center) and the script steps pane (right).
  • Improved the log text when running FileMaker Server: more information is added to the log.
  • Improved the log text when running FileMaker Server: after an unsuccessful attempt to register the log now adds the (incorrect) register text used.

Version 5.0 (for FileMaker 12 to 16) (May 25, 2017)

New functionality
  • Tested and made compatible with FileMaker Pro 16.
  • Added new Serial_GetPortInfo function, which can get information about a serial port. You can also get the status of the port to see if the port is open or closed.
Extra features when running FileMaker Pro 16
  • The Serial Plug-in adds multiple script steps when running FileMaker Pro 16. You can select these script steps in the script steps pane in Script Workspace, or you can begin typing the script step name, then choose the script step from the list that appears. The script steps significantly expand the possible actions you can perform with FileMaker Pro. The following 9 script steps are added:
    NOTE Only steps that perform an action have been added as a script step. Functions that just return information (like for example Serial_GetPortNames) are only available as an external function.
  • Added new example file SimpleSerial-for-FMP16.fmp12, which demonstrates how to use the new external script steps of FileMaker Pro 16.
  • Added support for online help for the functions and script steps of the plug-in. You can now easily get online help from the Troi website, by clicking the Help button (the small question mark button) next to the function description in the functions pane or the script step description in the script steps pane.
Miscellaneous
  • Several bug fixes and further improvements.
  • Made various minor changes to the example files to better work with FileMaker Pro 16.
  • Updated the code by adding improved namespace handling to make the plug-in more robust.

Version 4.5.1 (for FileMaker 12 to 15) (March 2, 2017)

  • Updated the code in several places and added improved namespace handling to make the plug-in more robust.
  • Fixed a bug in the Serial_Receive function, where in some cases not all data would be returned directly.
  • (Mac OS X) Improved export of symbols of the compiled plug-in: now only the symbols that are required are exported.
  • (Mac OS X, 32-bit only) Fixed a possible interference with other plug-ins, during the registration phase.
  • Updated debug example file and made several small improvements to the example files.

Version 4.5 (for FileMaker 12 to 15) (June 2, 2016)

  • Tested and made compatible with FileMaker Pro 15.
  • Tested and improved compatibility with Windows 10 and OS X 10.11 (El Capitan).
  • Added new switch to Serial_Receive function: -Encoding=BytesOnly. This will store all received bytes to the same byte values (Unicode 0 to 255).
  • Added new switch to Serial_Receive function: -ConvertBytesToNumbers. This switch will directly convert all received bytes to their numeric value. The function will for example return "65 66 67 ", which would be Unicode "ABC". Note that each number is followed by a space, as separator, including after the last number.
  • Added description and type-ahead information for all functions of the plug-in. This extra function description will be shown in FileMaker Pro 15 in the Specify Calculation dialog box when you type a function name and also as a text popup in the functions pane on the right.
    The type-ahead information is used by the auto complete functionality of FileMaker Pro 15. In the calculation pane of the Specify Calculation dialog box you can type a letter or two of the function name and instantly see a list of matching function names. For example when you type "op", the auto complete functionality will suggest the Serial_Open function. You can also type a function name in the functions pane on the right: for example if you type "rece" you will see all the functions with receive in the name, like Serial_Receive.
  • Improved the multi-threading behavior of the plug-in when running in FileMaker Pro 15.
  • Improved the example file EasyInstallTroiPlugins.fmp12, to provide more help when an installation error occurs.
  • Fixed several bugs, rewrote and modernized the code in several places and made further improvements.
  • Updated the User Guide and the Overview.fmp12 file.

Version 4.0 (for FileMaker 12, 13 and 14) (May 12th, 2015)

  • Tested and made compatible with FileMaker Pro 12, 13 and 14.
  • Added support for 64-bit architecture with FileMaker Pro 14: On OS X the 32-bit and 64-bit version is a single universal plug-in and on Windows there are 2 plug-ins: Troi_Serial.fmx (for 32-bit) and Troi_Serial.fmx64 (for 64-bit).
  • Improved the example file EasyInstallTroiPlugins.fmp12, to support the 64-bit version of FileMaker Pro 14.
  • Fixed a problem in the Simple Serial.fmp12, Weigh.fmp12 and Terminal.fmp12 example files: The close script no longer halts if no Serial Plug-in is found.
  • Added new switch -GetRegistrationState to the Serial_Version function: this switch allows you to check if the plug-in is currently registered.
  • Updated Version example to show the use of -GetRegistrationState.
  • Rewrote the code in several areas and made it more future proof.
  • (Mac OS X) Added code signing to the plug-in, also compatible with the new Mavericks version of code signing.
  • IMPORTANT This plug-in drops support for Windows XP (the plug-in will no longer load on XP). On Mac OS X the minimum supported system is now Mac OS X 10.6.8 (the plug-in will not load on 10.5 and earlier).
  • NOTE The User Guide has not yet been updated, and is still for version 3.2. We expect to provide an updated version soon.

Version 3.2.0.1 for FileMaker Pro 8 to 13 (April 11th, 2015)

  • Updated all example files. They now use variables to make the scripts more portable.
    NOTE you need FileMaker Pro 8.0 or later to use the example files. Troi Serial Plug-in itself is still at version 3.2.

Version 3.2 for FileMaker Pro 7 to 11 (March 27th, 2012)

  • Tested and made compatible with FileMaker Pro 11.
  • Optimized the plug-in when running under Mac OS X 10.6 (Snow Leopard).
  • Added new switch to Serial_Version function: -UnregisterPlugin. This will remove the registration data. The plug-in will be in a unregistered state after this. See the "Temporary Register Serial Plug-in" script in the file RegiFunc.fp7 for an example use.
  • Fixed a missing script in the Terminal.fp7 example file.
  • Corrected the path of logs files in the document filemaker-server-side-plug-ins.htm.
  • Made small change to the bundle (on Mac OS X) and FileVersion resource (on Windows) so it now reflects the correct version number.
  • Updated incorrect text in All Serial Examples.fp7

Version 3.1.1 for FileMaker Pro 7 to 10 (June 22nd, 2009)

  • (Windows) Fixed a bug in the Serial_Send function, where an error code of $$14007 could be returned.
  • Fixed a missing Perform script step in the SimpleSerial.fp7 example.
  • Fixed a button with a missing script step in the SimpleSerial.fp7 example.

Version 3.1 for FileMaker Pro 7 to 10 (March 10th, 2009)

  • Made compatible with FileMaker Pro 10.
  • Fixed a syntax error in the MultiPorts.fp7 example file.
  • Added the plug-in's version number to the description in FileMaker's preference pane.
  • Added new Serial_VersionAutoUpdate function. The Serial_VersionAutoUpdate function is part of an emerging standard for FileMaker plug-ins of third party vendors of plug-ins. The version number is returned in the format aabbccdd where every letter represents a digit of the level, so versions can be easily compared.
  • Fixed a bug in the Serial_SetDispatchScript function, where it would not work when you specified a portname.
  • Fixed typo in the documentation of Serial_SetDispatchScript (extra ;)
  • Troi Serial plug-in is now compatible to run under FileMaker Server (server side)! The plug-in now creates log files when running under FileMaker Server to make troubleshooting installing easier and and provides feedback regarding errors and registration status. Also note that you might need a special Server/WebEngine license to use this plug-in on FileMaker Server. See our web site for details.

Version 3.0.2 for FileMaker Pro 7, 8 and 8.5 (March 26th, 2007)

  • (Windows) fixed a bug in where opening COM ports with names COM5 or higher would result in an $$2 error.
  • Improved Barcode.fp7 example file.
  • Fixed a bug in the Serial_DataWasReceived function, where it would return $$-50.

Version 3.0.1 for FileMaker Pro 7, 8 and 8.5 (October 16th, 2006)

  • Significantly improved speed of triggering scripts when data comes in.
  • Fixed a bug when using the waitstring parameter in Serial_SetDispatchScript.
  • Improved triggering when a script is already running:
    • If a script is already running: the plug-in will pause the current running script, run the trigger script and then automatically pick up the original script where it left off.
    • If a script is paused: the plug-in will pause the current running script, run the trigger script. When the trigger script is finished, the original script is still paused.
    If you want different behaviour: add a Halt or Pause/Resume step in your trigger script.
  • Added "-ResumeWhenScriptPaused" switch to Serial_Open function: this changes the behaviour of the trigger script: if another script is already running and is paused, the paused script will now resume after the trigger script is finished.
  • Added final version of user guide.
  • Improved All Serial Examples.fp7, so that for for Debug.fp7 the correct script "Open File" is called.
  • Improved several example files and removed remaining old style function calls.
  • Changed incorrect function name Serial_AsciiValueToTxt in documentation. It is now correctly referred as Serial_AsciiValueToText. (Note the extra e in Text at the end).

Version 3.0b1 BETA for FileMaker Pro 7, 8 and 8.5 (October 3rd, 2006)

  • Made compatible with FileMaker Pro 8.5.
  • (Mac OS X) Converted to Universal plug-in which runs natively on PowerPC and Intel Macs.
  • Added new Serial_TextToAsciiValue function, which converts a text to the ASCII values.
  • (Windows) The Serial_GetPortNames function now detects all existing serial ports, instead of always returning with COM1...COM4.

2.6 for FileMaker Pro 6 (October 2nd, 2006)

  • Prepared for 3.0 registration.

2.5.0.1 (March 13th, 2003)

  • Improved the Terminal.fp5 example file.

2.5 (July 8th, 2002)

  • Added a Serial-Debug function, which helps you to troubleshoot setting up a serial port. It can beep when data arrives and test the triggering of the dispatch script.
  • Added a Serial-SetSetting function. With this function you can specify a different way to trigger scripts, where Active X is not available.
  • Added a switch -GetLastMatch in Serial-Receive, which will return the last matchstring received.
  • Added a Serial-Reinitialize function, which you can use when new or different serial ports are added dynamically, for example if you plug-in a USB-To-Serial adapter.
  • Added functions to change the separator between parameters. This is useful for Japanese systems, where portnames contain the pipe characters.
  • Fixed a bug on Mac OS, where flow control would not be set properly. This happened with the switch flowControl=DtrDsr, flowControl=DtrDsr=RtsCts and the advanced versions of these.
  • Fixed a bug where not all data would be returned when multiple matchstrings where received.
  • Updated the user guide and added Barcode and other examples.

2.2 (October 30th, 2001)

  • Tested with FileMaker 5.5 and ported to Mac OS X. The Mac version of the plug-in is now a so called 'Super Fat' plug-in that will run on Mac OS 8, 9 and Mac OS X. On Mac OS X the file "Troi Serial X extension" is required in the FileMaker Extensions folder.
  • Added possibility to trigger different scripts for each port.
  • Added extra example files.

2.0 (October 13th, 1999)

  • Made compatible with FileMaker Pro 5.0.
  • Added Active X support for Script Triggering.
  • Added Apple event support for Script Triggering.
  • Added Control function, which can Temporary suspend the data stream. (Ideal for continuous devices).
  • Added Wait for string function, which can wait for a specific character before triggering.

1.0 (February 23rd, 1999)

  • Added Serial-ToASCII function, which takes one or more numbers and converts them to their ASCII characters.
  • Fixed a bug on Mac OS machines, which caused parameters to parse incorrectly. For example with the Serial-open command, settings parameters like "-baud=1200" would not to be interpreted right, causing to default it to 9600 baud.