OpenWire (library)
   HOME

TheInfoList



OR:

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 the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
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 materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
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, originally developed by Borland and owned by Embarcadero Technologies (a subsidiary of Idera), for writing programs in the C++ programming language currently targeting Windows (bo ...
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 Laboratory Virtual Instrument Engineering Workbench (LabVIEW) is a system-design platform and development environment for a visual programming language from National Instruments. The graphical language is named "G"; not to be confused with G-co ...
,
Agilent VEE Agilent Technologies, Inc. is an American life sciences company that provides instruments, software, services, and consumables for the entire laboratory workflow. Its global headquarters is located in Santa Clara, California. Agilent was establi ...
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 offers t ...
. 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 or C++Builder, using Object Pascal or C++ to build cross platform applications for Windows, macOS, iOS, and Android. A 3rd par ...
(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 for information in computer systems. The term globally unique identifier (GUID) is also used. When generated according to the standard methods, UUIDs are, for practical purposes, uni ...
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 Thread safety is a computer programming concept applicable to multi-threaded code. Thread-safe code only manipulates shared data structures in a manner that ensures that all threads behave properly and fulfill their design specifications without uni ...
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 or C++Builder, using Object Pascal or C++ to build cross platform applications for Windows, macOS, iOS, and Android. A 3rd par ...
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