OpenWire (library)
OpenWire is an open-source dataflow programming library that extends the functionality of Embarcadero Delphi and C++ Builder by providing pin type component properties. The properties can be connected to each other. The connections can be used to deliver data or state information between the pins, simulating the functionality of LabVIEW, Agilent VEE and Simulink. OpenWire is available for Visual Component Library (VCL) and FireMonkey (FMX).[2]
OpenWire graphical editor installed in Delphi XE3 | |
Developer(s) | Boian Mitov |
---|---|
Initial release | August 31, 2001 |
Stable release | 7.5
/ November 13, 2014 |
Written in | Delphi programming language |
Operating system | Windows, Android, and OSX |
Platform |
|
Size | 40 MB |
Type | Libraries |
License | Free and open-source, requires attribution[1] |
Website | www |
History
The project started in 1997 as an attempt for visual design of text parsers. Later it was used for designing signal processing libraries, and was expanded to support any data type.
Pins
Pins form the connections between the components. OpenWire defines 4 types of pins:
SourcePin
usually provides data. Can connect to one or moreSinkPins
and to oneStatePin
.SinkPin
usually receives data. Can be connected to oneSourcePin
.MultiSinkPin
usually receives data. Can be connected to one or moreSourcePin
.StatePin
usually is used to share state between components. Can be connected to one or moreStatePins
orSinkPins
, and to oneSourcePin
.
Pin Lists
Pin lists can contain and group pins. OpenWire defines 2 types of pin lists:
PinList
contains pins but is not responsible to create or destroy them.PinListOwner
contains pins and is responsible to create or destroy them.
Data Types
Two pins in OpenWire can connect and exchange data only if they support compatible data types. Each pin can support one or more data types. The data types are distinguished by GUID unique for each data type.
Format Converters
The latest version of OpenWire supports automatic data conversion. If two pins can't connect directly due to incompatible data types, a data format converter can be used automatically to convert the data between the pins. The developers can create and register format converters associated with different data types.
Multi-threading
OpenWire is designed as thread-safe and well suited for multi-threading VCL and FireMonkey component development.
Version history
The following is a rough outline of product release information.
Date | Version | Significant changes |
---|---|---|
August 31, 2001 | 1.2 | Official release. |
September 4, 2001 | 1.3 | Small fixes. |
November 21, 2001 | 1.4 | Minor changes. |
February 16, 2002 | 1.5 | Improved multiple data type per pin support. |
February 23, 2002 | 1.6 | Delphi 6.0 Support. |
April 14, 2002 | 1.7 | C++ Builder 6.0 Support. |
May 9, 2002 | 1.8 | Improved and cleanup release. |
April 13, 2003 | 2.0 | Added StatePin and dispatchers support. |
May 15, 2003 | 2.1 | Maintenance release. |
August 27, 2003 | 2.2 | Maintenance release. |
January 3, 2004 | 2.3 | Complex data type added. |
December 2, 2004 | 2.4 | Added multithreading support. Delphi 2005 support. |
June 22, 2005 | 2.5 | Improved Multithreading. |
February 22, 2006 | 2.6 | Minor improvements. |
January 4, 2007 | 3.0 | Added support for add on editors(Graphical). |
October 25, 2007 | 3.1 | Fixed loading from Frames. |
March 14, 2009 | 4.0 | Added Format Converters. Added Lazarus support for Windows, and Linux. |
September 23, 2009 | 4.3 | Added Delphi and C++ Builder 2010 support. |
May 7, 2010 | 4.5 | Added TOWMultiSinkPins. |
September 2, 2011 | 5.0 | Added Delphi and C++ Builder XE, XE2 and FireMonkey support. 64 bit compatible. |
October 1, 2011 | 5.0.1 | Maintenance release. |
October 11, 2012 | 5.0.3 | Added Delphi and C++ Builder XE3 support. Added initial MAC support. |
June 12, 2013 | 6.0 | Added Delphi and C++ Builder XE4 support.
Dropped support for versions older than Delphi and C++ Builder XE2. Dropped Lazarus support due to lack of language features. |
April 13, 2014 | 7.0 | Added Delphi and C++ Builder XE5 and XE6 support.
Dropped support for versions older than Delphi and C++ Builder XE3. Added Android support. |
November 13, 2014 | 7.5 | Added Delphi and C++ Builder XE7 support.
Dropped support for versions older than Delphi and C++ Builder XE4. Redesigned to use the new free Mitov.Runtime library which significantly reduces the code. |
Future development
A graphical OpenWire editor is under development. The latest version of the editor is available from the OpenWire Homepage.
References
- "Mitov Software - OpenWire". Mitov.com. Retrieved 2016-08-16.
- Admin on (2014-04-23). "Rapid Codeless Application Development Using OpenWire In Delphi XE6 Firemonkey On Android And OSX | Delphi XE5 XE6 XE7 XE8 10 Seattle Berlin Firemonkey, Delphi Android, Delphi IOS". Fmxexpress.com. Retrieved 2016-08-16.