NBB-800
User Manual for NRSW version 4.5.0.100
5.7. SERVICES
5.7.1. SDK
NetModule 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-specific Application Programming Interface (API), which ships with a comprehen-
sive 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
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 eavesdrop on the first serial port
* and turn on lights via a digital I/O output port ,
* otherwise we 'd have to send a short message .
*/
for
( attempts = 0; attempts < 3; at+) {
if
( nb_serial_read (
" serial0 "
) ==
" Knock Knock !"
) {
nb_serial_write (
" serial0 "
,
" Who 's there ?"
);
if
( nb_serial_read (
" serial0 "
) ==
" Santa "
) {
printf (
" Hurray !\n"
);
nb_dio_set (
" out1 "
, 1);
}
}
}
nb_sms_send (
" +123456789 "
,
"No presents 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
gives a detailed
introduction of the language, including a description of all available functions.
113