The development of an application is often based on previous works (either in form of library or framework) called dependencies, otherwise also a basic program would require an unacceptable amount of time. Over the years, the eNTiDi has developed a number of public libraries for different purposes, most of them based on the GTK+ library stack.
ADG canvas Go to the dedicated page
A non-interactive cairo canvas based on cairo specifically designed for generating 2D mechanical drawings. The project is one of the most complex so consult its dedicated page for technical details.
NtdIsp Go to the home page
ntdisp, short for eNTiDi's ISP (In-System Programming), is a system for programming LPC and STM32 and possibly others (not necessarily ARM based) embedded devices by using their native ISP protocol. The mode where this protocol is enabled is usually triggered at startup by short-circuiting a jumper or by pressing a reset button. It is sometimes referred to as ICP (In-Circuit programming) or ICSP (In-Circuit Serial Programming).
This project provides three different frontends:
- a GObject-based library (for developers);
- a command-line utility (for computer geeks);
- a GTK+3 frontend (for less geeky users).
CANopen library Go to the home page
A collection of LabVIEW VIs for easier interface with basic CANopen client operations such as SDO download, SDO upload and PDO messages. Helper VIs for arbitrary mapping of dictionary objects to specific PDOs are also implemented.
The project includes a quite crude implementation of the DSP 402 profile for handling motor drives in velocity and/or in position mode.
SilverStripe extensions Go to the home page
A collection of modules, themes, style enhancements for SilverStripe. The main projects are:
- SilverStripe ADG: a SilverStripe module that provides a web front-end to the adg-web.lua script included in the adg-lua project. It is used for dynamically generate a technical drawing in the demo page picking the data from the HTML form.
- SilverStripe AutoTOC: this is basically a SilverStripe 3 extension that can be applied on a DataObject to provide two additional tags: $Autotoc (containing the table of contents dynamically generated from the content of the current page) and $AugmentedContent (similar to $Content but augmented with anchors that adds proper destination targets to the links in $Autotoc).
- Silverstripe FeedReader: a module that implements a new page type (FeedReaderPage) that can access the data contained in an external RSS 2.0 or ATOM 1.0 feed. The feed format is automatically deduced from its content. The default template is compatible out of the box with the silverstrap theme but can be easily overriden by redefining the FeedReaderPage.ss file in your own theme.
- Silverstripe GtkDoc: a module that implements a new page type (Gtkdoc) that allows to import into the pages tree of your site a reference manual generated by gtk-doc. The gtk-doc page is a typical page and can contain arbitrary text: the reference manual will be shown as a tree of (virtual) pages under it.
- Silverstrap: a SilverStripe theme based on the Bootstrap front-end framework. It should work out of the box on basic sites, so you can drop it into your themes folder, enable it and check how your new site look.
- Silverstrap cerulean: an extension to Silverstrap that uses the Cerulean theme instead of plain Bootstrap.
GTK+2 panel Go to the home page
A panel heavily based on the GTK+2 stack. The primary target of this project is to provide a panel that reuses whatever available in the obvious way, such as subclassing GtkWidget instead of implementing applets (whatever they are) or by using a GtkBuilder file instead of defining a new format to customize the panel.
This NRSI (No Rocket Science Involved) approach gives some additional advantage for free, specifically you can use common tools in uncommon ways. For example you can embed a GtkHSV color wheel in your panel if you fill the need or put some shortcut icons in a GtkHandleBox, so you can drag them outside the panel window (this one is quite funny to see, not sure to use). But above all, the main advantage is you can use glade to design your own panel.
NtD libraries Go to the home page
A collection of experimental GtkWidget (the ntd-widgets subproject) and GObject classes (the ntd-data subproject) shared among some eNTiDi project.
The project grown up incrementally and gained features whenever needed. This means there is no general design, although a couple of serious efforts for arranging the whole system have been attempted during the years.
The objects are devided in two major subsets: ntd-data includes the stuff not related to the user interface (that library does not have any dependency on GTK+) while ntd-widgets is a collection of GTK+ related widgets. In the current form, the NtD libraries are developed in C, rewriting from scratch an older (and crappy) C++ library.