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.
Public projects
Open source projects released in the wild
-
ADG canvas
A non-interactive cairo canvas based on cairo specifically designed for generating 2D mechanical drawings. More details can be found on its own dedicated page.
-
SilverStripe extensions
A collection of modules, themes, style enhancements for SilverStripe. The main ones 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.
-
NtdIsp
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 for LabVIEW
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. It also includes a quite crude implementation of the DSP-402 profile for handling motor drives in velocity and/or in position mode.
This project has been formally abandoned because we do not plan to use LabVIEW again.
-
GTK+2 panel
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.
As the GTK project is hitting version 4, this project heavily deprecated.
-
NtD automation libraries
A collection of experimental GtkWidget (the ntd-widgets subproject) and GObject classes (the ntd-data subproject) shared among some eNTiDi project. It 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 project has been superseded by an internally used library that is too specific to be released in the wild.