OpenWire (library)

Last updated
OpenWire
Developer(s) Boian Mitov
Initial releaseAugust 31, 2001;22 years ago (2001-08-31)
Stable release
8.0.0.100 / December 6, 2023;3 months ago (2023-12-06)
Written in Delphi
Operating system Windows, Android, macOS, iOS, Linux
Platform
Size 712 MB
Type Libraries
License Free and open-source, requires attribution [1]
Website www.openwire.org

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]

Contents

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.[ citation needed ]

Pins

Pins form the connections between the components. OpenWire defines 4 types of pins:

Pin Lists

Pin lists can contain and group pins. OpenWire defines 2 types of pin lists:

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.

DateVersionSignificant changes
August 31, 20011.2Official release.
September 4, 20011.3Small fixes.
November 21, 20011.4Minor changes.
February 16, 20021.5Improved multiple data type per pin support.
February 23, 20021.6Delphi 6.0 Support.
April 14, 20021.7C++ Builder 6.0 Support.
May 9, 20021.8Improved and cleanup release.
April 13, 20032.0Added StatePin and dispatchers support.
May 15, 20032.1Maintenance release.
August 27, 20032.2Maintenance release.
January 3, 20042.3Complex data type added.
December 2, 20042.4Added multithreading support. Delphi 2005 support.
June 22, 20052.5Improved Multithreading.
February 22, 20062.6Minor improvements.
January 4, 20073.0Added support for add on editors(Graphical).
October 25, 20073.1Fixed loading from Frames.
March 14, 20094.0Added Format Converters. Added Lazarus support for Windows, and Linux.
September 23, 20094.3Added Delphi and C++ Builder 2010 support.
May 7, 20104.5Added TOWMultiSinkPins.
September 2, 20115.0Added Delphi and C++ Builder XE, XE2 and FireMonkey support. 64 bit compatible.
October 1, 20115.0.1Maintenance release.
October 11, 20125.0.3Added Delphi and C++ Builder XE3 support. Added initial MAC support.
June 12, 20136.0Added 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, 20147.0Added Delphi and C++ Builder XE5 and XE6 support.

Dropped support for versions older than Delphi and C++ Builder XE3.

Added Android support.

November 13, 20147.5Added 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.

April 12, 20157.6Added Delphi and C++ Builder XE8, and XE8 support

Dropped support for versions older than Delphi and C++ Builder XE4.

October 26, 20157.7Added Delphi and C++ Builder 10 Seattle support
May 1, 20167.8Added Delphi and C++ Builder 10.1 Berlin support
December 21, 20187.8.2Added Delphi and C++ Builder 10.2 support
April 28, 20218.0.0Added Delphi and C++ Builder 10.3 and 10.4 support
October 11, 20218.0.0.36Added Delphi and C++ Builder 11.0 Alexandria support
December 6, 20238.0.0.100Added Delphi and C++ Builder 12.0 Athens support

Future development

A graphical OpenWire editor is under development. The latest version of the editor is available from the OpenWire Homepage.

Related Research Articles

<span class="mw-page-title-main">USB</span> Standard for computer data connections

Universal Serial Bus (USB) is an industry standard that allows data exchange and delivery of power between many various types of electronics. It specifies its architecture, in particular its physical interface, and communication protocols for data transfer and power delivery to and from hosts, such as personal computers, to and from peripheral devices, e.g. displays, keyboards, and mass storage devices, and to and from intermediate hubs, which multiply the number of a host's ports.

<span class="mw-page-title-main">Electrical connector</span> Device used to join electrical conductors

Components of an electrical circuit are electrically connected if an electric current can run between them through an electrical conductor. An electrical connector is an electromechanical device used to create an electrical connection between parts of an electrical circuit, or between different electrical circuits, thereby joining them into a larger circuit.

C++Builder is a rapid application development (RAD) environment for developing software in the C++ programming language. Originally developed by Borland, as of 2009 it is owned by Embarcadero Technologies, a subsidiary of Idera. C++Builder can compile apps for Windows, iOS, macOS, and Android. It includes tools that allow drag-and-drop visual development, making programming easier by incorporating a WYSIWYG graphical user interface builder.

The Visual Component Library (VCL) is a visual component-based object-oriented framework for developing the user interface of Microsoft Windows applications. It is written in Object Pascal.

Serial Peripheral Interface (SPI) is a de facto standard for synchronous serial communication, used primarily in embedded systems for short-distance wired communication between integrated circuits.

<span class="mw-page-title-main">Delphi (software)</span> General-purpose programming language and a software product

Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, currently developed and maintained by Embarcadero Technologies.

<span class="mw-page-title-main">1-Wire</span> Device communications bus system

1-Wire is a wired half-duplex serial bus designed by Dallas Semiconductor that provides low-speed (16.3 kbit/s) data communication and supply voltage over a single conductor.

<span class="mw-page-title-main">VGA connector</span> 15-pin video connector

The Video Graphics Array (VGA) connector is a standard connector used for computer video output. Originating with the 1987 IBM PS/2 and its VGA graphics system, the 15-pin connector went on to become ubiquitous on PCs, as well as many monitors, projectors and high-definition television sets.

JTAG is an industry standard for verifying designs and testing printed circuit boards after manufacture.

Borland Kylix is a compiler and integrated development environment (IDE) formerly sold by Borland, but later discontinued. It is a Linux software development environment based on Borland Delphi and Borland C++ Builder, which runs under Microsoft Windows. Continuing Delphi's classical Greek theme, Kylix is the name for an ancient Greek drinking cup. The closest supported equivalent to Kylix is the free Lazarus IDE package, designed to be code-compatible with Delphi. As of 2010 the project has been resurrected in the form of Delphi cross compiler for Mac and Linux, as shown in the Embarcadero's Delphi and C++ Builder roadmap. As of September 2011 with Kylix discontinued the framework for cross-platform development by Embarcadero is FireMonkey.

<span class="mw-page-title-main">Graphical user interface builder</span> Software development tool

A graphical user interface builder, also known as GUI designer or sometimes RAD IDE, is a software development tool that simplifies the creation of GUIs by allowing the designer to arrange graphical control elements using a drag-and-drop WYSIWYG editor. Without a GUI builder, a GUI must be built by manually specifying each widget's parameters in the source code, with no visual feedback until the program is run. Such tools are usually called the term RAD IDE.

<span class="mw-page-title-main">Lazarus (software)</span> Free cross-platform integrated development environment for Free Pascal

Lazarus is a free, cross-platform, integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal compiler. Its goal is to provide an easy-to-use development environment for programmers developing with the Object Pascal language, which is as close as possible to Delphi.

Open collector, open drain, open emitter, and open source refer to integrated circuit (IC) output pin configurations that process the IC's internal function through a transistor with an exposed terminal that is internally unconnected. One of the IC's internal high or low voltage rails typically connects to another terminal of that transistor. When the transistor is off, the output is internally disconnected from any internal power rail, a state called "high-impedance" (Hi-Z). Open outputs configurations thus differ from push–pull outputs, which use a pair of transistors to output a specific voltage or current.

<span class="mw-page-title-main">Oxygene (programming language)</span> Object Pascal-based programming language

Oxygene is a programming language developed by RemObjects Software for Microsoft's Common Language Infrastructure, the Java Platform and Cocoa. Oxygene is based on Delphi's Object Pascal, but also has influences from C#, Eiffel, Java, F# and other languages.

<span class="mw-page-title-main">Teechart</span>

TeeChart is a charting library for programmers, developed and managed by Steema Software of Girona, Catalonia, Spain. It is available as commercial and non-commercial software. TeeChart has been included in most Delphi and C++Builder products since 1997, and TeeChart Standard currently is part of Embarcadero RAD Studio 12 Athens. TeeChart Pro version is a commercial product that offers shareware releases for all of its formats, TeeChart. Lite for .NET is a free charting component for the Microsoft Visual Studio .NET community and TeeChart for PHP is an open-source library for PHP environments. The TeeChart Charting Library offers charts, maps and gauges in versions for Delphi VCL/FMX, ActiveX, C# for Microsoft Visual Studio .NET, Java and PHP. Full source code has always been available for all versions except the ActiveX version. TeeChart's user interface is translated into 38 languages.

<span class="mw-page-title-main">FireMonkey</span>

FireMonkey is a cross-platform GUI framework developed by Embarcadero Technologies for use in Delphi, C++Builder or Python, using Object Pascal, C++ or Python to build cross platform applications for Windows, macOS, iOS, and Android. A 3rd party library, FMX Linux, enables the building of FireMonkey applications on Linux.

<span class="mw-page-title-main">USB-C</span> 24-pin USB connector system

USB-C, or USB Type-C, is a 24-pin connector that supersedes previous USB connectors and can carry audio, video and other data, e.g., to drive multiple displays or to store a backup to an external drive. It can also provide and receive power, such as powering a laptop or a mobile phone. It is applied not only by USB technology, but also by other protocols, including Thunderbolt, PCIe, HDMI, DisplayPort, and others. It is extensible to support future standards.

This page details the history of the programming language and software product Delphi.

References

  1. "Mitov Software - OpenWire". Mitov.com. Retrieved 2016-08-16.
  2. 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.