6.7. SERVICES
6.7.1. SDK
NetModule AG routers are shipping with a Software Development Kit (SDK) which offers a simple and
fast way to implement customer-specific functions and applications. It consists of:
1. An SDK host which defines the runtime environment (a so-called sandbox), that is, controlling
access to system resources (such as memory, storage and CPU) and, by doing so, catering for
the right scalability
2. An interpreter language called arena, a light-weight scripting language optimized for embedded
systems, which uses a syntax similar to ANSI-C but adds support for exceptions, automatic
memory management and runtime polymorphism on top of that
3. A NetModule AG-specific Application Programming Interface (API), which ships with a compre-
hensive set of functions for accessing hardware interfaces (e.g. digital IO ports, GPS, external
storage media, serial ports) but also for retrieving system status parameters, sending E-Mail or
SMS messages or simply just to configure the router
Anyone, reasonably experienced in the C language, will find an environment that is easy to dig in.
However, feel free to contact us via support@netmodule.com and we will happily support you in finding
a programming solution to your specific problem.
The Language
The arena scripting language offers a broad range of POSIX functions (like printf or open) and
provides, together with tailor-made API functions, a simple platform for implementing any sort of appli-
cations to interconnect your favourite device or service with the router.
Here comes a short example:
/* We are going to eavesd rop on the first serial port
* and turn on lights via a digital I/ O output port ,
* other wise we 'd have to send a short mes sage .
*/
f o r ( a ttempt s = 0; attem pts < 3; a ttempt s ++) {
if ( nb_serial_re a d (" serial0 " ) == " Knock Knock ! " ) {
nb_serial_wr i t e (" serial0 " , " Who 's there ?") ;
if ( nb_serial_re a d (" serial0 " ) == " Santa " ) {
printf (" Hurray !\n " ) ;
nb_di o_set ( " out1 " , 1);
}
}
}
nb_sm s _send ( " +12345 6789 " , " No prese nts this year :( ")
A set of example scripts can be downloaded directly from the router, you can find a list of them in
the appendix. The manual which can be obtained from the NetModule AG support web page gives a
detailed introduction of the language, including a description of all available functions.
NB1601 130 User Manual for NRSW version 4.8.0.103