OpenWire is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
dataflow programming
In computer programming, dataflow programming is a programming paradigm that models a program as a directed graph of the data flowing between operations, thus implementing dataflow principles and architecture. Dataflow programming languages share ...
library
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
that extends the functionality of
Embarcadero Delphi
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 ...
and
C++ Builder
C++Builder is a rapid application development (RAD) environment for developing software in the C++ programming language. Originally developed by Borland, it is owned by Embarcadero Technologies, a subsidiary of Idera. C++Builder can compile ...
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
Simulink is a MATLAB-based graphical programming environment for modeling, simulating and analyzing multidomain dynamical systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offe ...
. OpenWire is available for
Visual Component Library
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.
History
The VCL was developed by Borland for use i ...
(VCL) and
FireMonkey
FireMonkey (abbreviated FMX) is a cross-platform GUI framework developed by Embarcadero Technologies for use in Delphi, C++Builder oPython using Object Pascal, C++ or Python to build cross-platform applications for Windows, macOS, iOS, and ...
(FMX).
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 more
SinkPins
and to one
StatePin
.
*
SinkPin
usually receives data. Can be connected to one
SourcePin
.
*
MultiSinkPin
usually receives data. Can be connected to one or more
SourcePin
.
*
StatePin
usually is used to share state between components. Can be connected to one or more
StatePins
or
SinkPins
, and to one
SourcePin
.
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
A Universally Unique Identifier (UUID) is a 128-bit label used to uniquely identify objects in computer systems. The term Globally Unique Identifier (GUID) is also used, mostly in Microsoft systems.
When generated according to the standard methods ...
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
FireMonkey (abbreviated FMX) is a cross-platform GUI framework developed by Embarcadero Technologies for use in Delphi, C++Builder oPython using Object Pascal, C++ or Python to build cross-platform applications for Windows, macOS, iOS, and ...
component development.
Version history
The following is a rough outline of product release information.
Future development
A graphical OpenWire editor is under development. The latest version of the editor is available from th
OpenWire Homepage
References
External links
*
*
{{Pascal programming language family
Free computer libraries
Free software programmed in Delphi
Pascal (programming language) libraries
Computer libraries
Pascal (programming language) software