Marcus Tomlinson in Development / Components & Libraries
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.
Features:
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.
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 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
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 2.0.68.172
... 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 6.14.8.0
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
Delphi, C++Builder and Lazarus component library for direct access to Oracle. Free download of Oracle Data Access Components 11.1
UniDAC provides cross-database access for Delphi, C++Builder, Lazarus. Free download of Universal Data Access Components 8.1
Open Source XMPP (Jabber) client library for instant messaging and presence. Free download of Smack for Mac OS X 4.3.4
The first usage analytics solution purpose-built for distributed software.. Free download of Revulytics Usage Intelligence, Mac ObjC 5.5
3D face motion capture SDK with webcam or phone for augmented reality apps. Free download of SentiMask SDK Trial 2.0.193121