|
About OpenWire
OpenWire is a free open source library. The library allows writing advanced VCL components for rapid codeless application development. The components developed with the library allow creation of complex applications with zero lines of program code.
Donate to the OpenWire project
OpenWire is free open source project. The product is result of many years of development. If you like the technology, and are willing to help us continue working on it, you can donate using the link bellow: Here is an image that visualizes OpenWire properties. In this case this is a fully functional Video processing applications with user interface and file selection dialog, written with zero lines of code. That is correct the buttons, CheckBoxes, LEDs, the VideoPlayer, the filters and displays handle everithing over OpenWire connections. There is no code whatsoever involved in implementing the application!
This is a very simple application that took less than 1 minute to create and run! It is not the best example of user interface, but demonstrates the power of the OpenWire technology, and the easy of use.
The open wire graphical editor is under development. The work was placed on hold few times already, but has never completely stopped. Now after the introduction of a good set of OpenWire based libraries, the editor becomes even more important, and is expected to be released as a product in 2006. Recently it has been updated to integrate with BDS 2006 and D2007.
Now you can download a Pre-release Technology Preview of the editor here!
Here are some snapshots of the OpenWire editor:
Here is a brief description of the current OpenWire version. The full documentation is available as a word document.
The purpose of the OpenWire project is to introduce unified easy way to transfer data among different VCL/CLX components. This is very similar to the way the products as LabView and HP VEE work. As example to have a sine wave generator which streams out to a chart and to a filter, and then the filter streams into another chart and a file logger, as well as to a serial communication sending the data to another system.
OpenWire is FREE Open Source project.
OpenWire uses streams in order to transfer the data. Each stream is a connection between one output and one or multiple inputs.
- Each component can have one or more inputs and/or outputs.
- Each Input or Output is called Pin. I.E. there are IputPins and OutputPins.
- Each OutputPin can stream specific format data to compatible format InputPins.
- Each type of data has its own data specification.
The data specification is a unique data type identification. As example the integer data type has one type of data specification and the String data has a different one. A OutputPin can be specified as being able to stream one or many types of data. As example an OutputPin which sends file names, streams data which is at the same time streaming and file name. Any InputPin accepting strings will be able to accept this type of data, and any Pin accepting file names will be able to accept it too.
- Each Pin is a property cloned from TOWPin.
- The InputPin is inherited from TOWPin and the are called TOWSinkPin.
- The OutputPin is inherited from TOWPin and the are called TOWSourcePin.
- The InputPin and OutputPin are responsible for implementing one or many stream specific inerface(s). The interface has a unique GUID specified for that type of stream.
- The InputPin and OutputPin have data specification which describes what type of data types (interfaces) it can accept (connect to).
- The data specification for a certain data type contains in the TPinType object.
- The TPinType contains one or more entries of type TGUID.
- The TGUID is used to determine the type of data - it’s in fact the GUID of the interface being able to connect to that type of data.
There is a handshaking mechanism involved during the connection of 2 Pins. Only compatible data type Pins can be connected. Otherwise the connection is rejected. There are property editors which are allowing you to connect the Pins. You can connect 2 Pins at run time as well.
OpenWire 2.x adds StatePins. StatePins can be connected together by creating hidden objects named StateDispatchers(States). The StatePins share one and the same state. If a the state of one of the StatePins changes all the connected StatePins are changing to the same state. StatePins can be connected to one SourcePin, and/or to multiple SinkPins.
The following products are developed with OpenWire and are free for non commercial purposes:

For more information:
|