DSPatch 6.03

Marcus Tomlinson in Development / Components & Libraries

User Rating: 3.0 (24 votes)

A circuit is comprised of a collection of interconnected components. Each component has 2 signal buses, on one end of the component there are input pins (input bus), and on the other end there are output pins (output bus). Components within the circuit are connected to each other via wires. Each wire carries a signal from one component’s output pin to another component’s input pin. A circuit can also comprise of interconnected circuits (E.g. ICs). In this case a circuit acts as a component within another circuit.

The nouns above are the classes we require in order to model our circuit in code. Each component will contain an array of input wires. Each wire contains references to the source component, the source output signal, and the destination input signal. The signal bus class will contain an array of signals. Lastly, the circuit class is derived from component and will contain an array of internal components.

The component class will have a Tick() method responsible for acquiring its next set of inputs from its input wires and populating the component’s input bus. To insure that these inputs are up-to-date, the dependent component first calls all of its input component’s Tick() methods –hence recursively called in all components going backward through the circuit. The acquired input bus is then passed into a pure virtual method: Process() -it is the responsibility of the (derived) component creator to implement this virtual function. The Process() method has 2 input parameters: the input bus and the output bus. This method’s purpose is to pull its required inputs out of the input bus, process these inputs, and populate the output bus with the results. These resultant outputs in the output bus are then acquired by dependent components via their Tick() functions.
Component input and output buses (signal count, string IDs etc.) will be configurable by derived component classes via protected base methods, whilst input wires to a component will be routable via public component class methods.
The component class will also have a Reset() method. For optimization as well as to avoid feedback deadlocks, a component needs to be aware of whether or not it has already ticked during a circuit traversal so that if called to Tick() again, it can ignore the call. The Reset() method informs the component that the last circuit traversal has completed and hence can execute the next Tick() request.


Automatic branch synchronization - The result of data diverging across parallel branches is guaranteed to arrive synchronized at a converging point.
Component plugins - Package components into plugins to be dynamically loaded into other host applications.
Cross-platform - DSPatch is built and tested daily on Linux, Mac and Windows. Here we see DSPatch running flawlessly on a BeagleBone!
Easy-to-use object-oriented API - DSPatch is modelled around real-world circuit entities and concepts, making code more readable and easy to understand.
Feedback loops - Create true closed-circuit systems by feeding resultant signals back into previous component inputs.
High performance parallel processing - Circuits use advanced multi-threaded scheduling to maximize dataflow efficiency across parallel branches.
High performance stream processing - Utilize multi-buffering in stream processing circuits to further boost dataflow efficiency.
Optimised signal transfers - Wherever possible, data between components is transferred via move rather than copy.
Run-time adaptive signal types - Component inputs can accept values of run-time varying types allowing you to create more flexible, multi-purpose component processes.
Run-time circuit wiring - Connect and disconnect wires on the fly whilst maintaining steady dataflow through the system.

File Size: 2.599609375 MB License: Open Source Price: FREE
Platform: Windows XP, Windows Vista, Windows Vista x64, Windows 7, Windows 7 x64, Windows 8, Windows 8 x64, Windows 10, Windows 10 x64
Downloads: Total: 122 | This Month: 27 Released: 2019-04-08
DSPatch Similar Software

Library .NET 18.7.5479.12252 fish    

Library .NET (Free Note Edition) is a personal notes and information management system. With it you can store all of your notes and information in an easy-to-use outline. It makes your data easier and convenient management, quicker and exact search , simpler and flexible backup, clearer and intuitive interface. .... Free download of Library .NET 18.7.5479.12252

Adobe XMP Library for ActionScript 1.0 Adobe Systems    

Adobe XMP Library for ActionScript consists of three parts, namely a data model, a parser and a serializer. The data model represents a set of XMP data in memory and offers an API to create or modify XMP properties. The parser that reads an XMP packet in RDF/XML format into the .... Free download of Adobe XMP Library for ActionScript 1.0

software pick   

ID3v2 Library 3delite     update

ID3v2 Library is a component for use in Win32 (9x/ME/2K/XP/Vista/W7) software. Reads and writes ID3v1 and ID3v2.3 ID3v2.4 Tags. Features: * Loading and saving of ID3v1, ID3v2.3 and ID3v2.4 Tags * Pure Delphi code, no external dependencies * Supports unsyncronisation * Supports compression/decompression of frames * Access directly all .... Free download of ID3v2 Library

software pick   

Wireless Communication Library .NET Lite Soft Service    

... the powerfull SDK (Software Development Kit) for software developers who want to add Bluetooth, IrDA and Serial ... set for using it with Borland Delphi, Borland Developer Studio, Microsoft Visual Studio .NET and Microsoft Visual C++. Use the Wireless Communication Library to develop application for communicate with any devices using .... Free download of Wireless Communication Library .NET Lite

software pick   

Generic Java Algebra Library 0.0.1 Alx Barker    

Generic Java Algebra Library is a collection that includes generic class definitions in GJ/Generic Java/JSR-014. It helps to outline algebraic structures such as Monoids, SemiGroups, Groups, Rings, Fields and various Domains. It is very useful for math development. Eases the work of mathematicains. .... Free download of Generic Java Algebra Library 0.0.1

software pick   
Popular Software in Development / Components & Libraries

Oracle Data Access Components 11.1 Devart     update

Delphi, C++Builder and Lazarus component library for direct access to Oracle. Free download of Oracle Data Access Components 11.1

Universal Data Access Components 8.1 Devart     update

UniDAC provides cross-database access for Delphi, C++Builder, Lazarus. Free download of Universal Data Access Components 8.1

Smack for Mac OS X 4.3.4 Jive Software     update

Open Source XMPP (Jabber) client library for instant messaging and presence. Free download of Smack for Mac OS X 4.3.4

Revulytics Usage Intelligence, Mac ObjC 5.5 Revulytics, Inc.     update

The first usage analytics solution purpose-built for distributed software.. Free download of Revulytics Usage Intelligence, Mac ObjC 5.5

SentiMask SDK Trial 2.0.193121 Neurotechnology     update

3D face motion capture SDK with webcam or phone for augmented reality apps. Free download of SentiMask SDK Trial 2.0.193121