Remote control – the easy way
netpp (network property protocol) simplifies the development of remote control or measurement applications significantly. Originally, it was introduced as slim abstraction layer for register based protocols (which are still fully supported). It has grown into a softwarel library which allows rapid and robust development of device control applications. Devices are described using an XML dialect using a graphical editor. You, as the user start top-bottom: You define first what the device should do – the functional way. Then you connect it to the hardware.
This description is then compiled into software, hardware and documentation.
For example, parameters such as register bits or commands are specified as ‹Properties› and are mapped to the corresponding hardware entity. So you can for instance map an i2c register into an abstract property called ‹Temperature›.
Functionally, you then address an outdoor IoT thermometer like:
t = outdoor.Temperature.get()
XML editing
The XML editing can happen according to a graphical scheme, as shown above. We recommend to use the XML Mind XML Editor (XXE) with integrated XSD schema validation.
Work flow
- Define funktionality («Properties»)
- Write handler code in C (getter/setter)
- Run «make»
- Test and iterate through (1)
- Generate documentation and reference manual sections
Using simple intrinsic mechanisms for revision control, software, hardware and documentation are kept in sync. No more mistakes in developer team communication!
Reference applications
- Supply of various device classes with one single uniform firmware and remote control client
- Hardware definition of ASIC/FPGA registers and C driver source (see also IP cores)
- Hardware-Co-Simulation (model in the loop)
- Smart Sensors (IoT), netpp on FPGA
- New: Eval-Kit netpp node with various analog backend option for scaleable network based real time measurement
Industrial reference projects
- Medical diagnostics: image acquisition
- Multi channel audio control and processing
- Bulk firmware programming for mass production
- Smart sensors for safety relevant power grid optimizations
- Highly scaleable process control / test & measurement (>100 slaves)
Details
The netpp slave library code is very compact. Besides startup code (crt0.o) and hardware drivers no excessive program logic is required for a bare metal remote control OS.
Examples for ‹-Os› optimized code:
Architecture | Size |
---|---|
avr8 | 24kB |
ARM v5 thumb | 22kB |
ZPU (FPGA SoC) | 19kB |
msp430 | 17kB |
Resources
- Download eval distribution: [ quick start instructions ]
Make sure to install Python 2.7 first: [ Python 2.7.13 release for win32 ]
[sdm_download id=»1349″ fancy=»1″] - netpp HOWTO: [sdm_download id=»1350″ fancy=»1″]
- API reference OpenSource v0.3x [ HTML ]
- Misc information: [ Further netpp notes and updates ]