This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
sdk:sdk [2017/08/22 09:08] juraschek |
sdk:sdk [2024/02/22 14:44] juraschek ↷ Links adapted because of a move operation |
||
---|---|---|---|
Line 5: | Line 5: | ||
- A NetModule-specific Application Programming Interface (API), which ships with a comprehensive 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. | - A NetModule-specific Application Programming Interface (API), which ships with a comprehensive 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 [[router@support.netmodule.com]] and we will happily support you in finding a programming solution to your specific problem. | + | 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 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 applications to interconnect your favourite device or service with the router. | 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 applications to interconnect your favourite device or service with the router. | ||
Line 14: | Line 14: | ||
* otherwise we 'd have to send a short message . | * otherwise we 'd have to send a short message . | ||
*/ | */ | ||
- | for ( attempts = 0; attempts < 3; attempts ++) { | + | for ( attempts=0; attempts<3; attempts ++) { |
- | if ( nb_serial_read (" serial0 ") == " Knock Knock !") { | + | if ( nb_serial_read ("serial0") == "Knock Knock !") { |
- | nb_serial_write (" serial0 ", "Who 's there ?"); | + | nb_serial_write ("serial0", "Who 's there ?"); |
- | if ( nb_serial_read (" serial0 ") == " Santa ") { | + | if ( nb_serial_read ("serial0") == " Santa ") { |
printf (" Hurray !\n"); | printf (" Hurray !\n"); | ||
- | nb_dio_set (" out1 ", 1); | + | nb_dio_set ("out1", 1); |
} | } | ||
} | } | ||
} | } | ||
- | nb_sms_send (" +123456789 ", "No presents this year :(") | + | nb_sms_send ("+123456789", "No presents this year :(") |
</code> | </code> | ||
- | A set of example scripts can be downloaded directly from the router, you can find a list of them in the appendix. The [[ftp://share.netmodule.com/router/public/system-software/latest/NB_SDK_Arena_Manual.pdf|SDK language manual]] gives a detailed introduction of the language, including a description | + | A set of example scripts can be downloaded directly from the router, you can find a list of them in the appendix. The [[https://share.netmodule.com/public/system-software/4.8/4.8.0.102/NB_SDK_Arena_Manual_4.8.0.102.pdf|SDK language manual]] gives a detailed introduction of the language, including a description |
of all available functions. | of all available functions. | ||
Line 55: | Line 55: | ||
- Encode functions (coming soon) | - Encode functions (coming soon) | ||
- Other system-related functions | - Other system-related functions | ||
- | The [[ftp://share.netmodule.com/router/public/system-software/latest/NB_SDK_API_Manual.pdf|SDK API manual]] provides an overview but also explains all functions in detail. | + | The [[https://share.netmodule.com/public/system-software/4.8/4.8.0.102/NB_SDK_API_Manual_4.8.0.102.pdf|SDK API manual]] provides an overview but also explains all functions in detail. |
Please note that some functions require the corresponding services (e.g. E-Mail, SMS) to be properly configured prior to utilizing them in the SDK. Let us now pay some attention to the very powerful API function ''nb_status''. It can be used to query the router’s status values in the same manner as they can be shown with the CLI. It returns a structure of variables for a specific section (a list of available sections can be obtained by running ''cli status -h''). | Please note that some functions require the corresponding services (e.g. E-Mail, SMS) to be properly configured prior to utilizing them in the SDK. Let us now pay some attention to the very powerful API function ''nb_status''. It can be used to query the router’s status values in the same manner as they can be shown with the CLI. It returns a structure of variables for a specific section (a list of available sections can be obtained by running ''cli status -h''). | ||
Line 118: | Line 118: | ||
* [[sdk:set-default-route-based-on-current-ssid|Set fake default route dynamically based on SSID]] | * [[sdk:set-default-route-based-on-current-ssid|Set fake default route dynamically based on SSID]] | ||
* [[sdk:softwareupdate-on-change| Start softwareupdate if newer version is available]] | * [[sdk:softwareupdate-on-change| Start softwareupdate if newer version is available]] | ||
+ | * [[sdk:remote-configdownload | Request a unique remote config-file from a fileserver and delete it afterwards]] | ||
==== Status Parameters ==== | ==== Status Parameters ==== | ||
* [[sdk::connection-statistics|Connection Statistics]] | * [[sdk::connection-statistics|Connection Statistics]] | ||
Line 129: | Line 130: | ||
* [[sdk:alarm-via-voice| Create a Phonecall Alarm]] | * [[sdk:alarm-via-voice| Create a Phonecall Alarm]] | ||
* [[sdk:log-to-syslog| Log Status Values to Syslog]] | * [[sdk:log-to-syslog| Log Status Values to Syslog]] | ||
- | + | * [[sdk:wwan_switcher|Change WWAN Hotlink according to the Service Type]] | |
+ | ==== GPS ==== | ||
+ | * [[sdk:gps-udp-broadcast|Broadcast selected GPS NMEA data to different UDP ports]] | ||
+ | * [[sdk:gps-udp-client-GNSStoGPS|Send GNSS data to a remote UDP port in $GP instead of $GN format ]] | ||
==== Serial ==== | ==== Serial ==== | ||
* [[sdk:serial-point-to-multipoint|Serial Point to Multipoint]] | * [[sdk:serial-point-to-multipoint|Serial Point to Multipoint]] | ||
- | * [[sdk::gps2serial|Write the GPS NMEA Frames to the Serial Interface]] | + | * [[sdk::gps2serial|Write the GNSS NMEA Frames to the Serial Interface]] |
+ | * [[sdk::gps2serial-gnsstogps|Write the GNSS NMEA Frames to the Serial Interface converted to GPS]] | ||
* [[sdk::serialDatalogger|Read data from the serial port and write it to files in the flash]] | * [[sdk::serialDatalogger|Read data from the serial port and write it to files in the flash]] | ||
+ | * [[sdk::hex2serial|Write non ASCII String to the Serial Port]] | ||
==== HTTP ==== | ==== HTTP ==== | ||
* [[sdk::ftp2sms|Forward File Content of Files on FTP Server via SMS]] | * [[sdk::ftp2sms|Forward File Content of Files on FTP Server via SMS]] | ||
Line 141: | Line 148: | ||
* [[sdk::dio2modbusTCP|Access to the digital I/Os via Modbus TCP]] | * [[sdk::dio2modbusTCP|Access to the digital I/Os via Modbus TCP]] | ||
* [[sdk::ReadInputRegister-ModbusTCP-TempAlam|Read out a Modbus TCP Temperatur Sensor and send an alarm Email]] | * [[sdk::ReadInputRegister-ModbusTCP-TempAlam|Read out a Modbus TCP Temperatur Sensor and send an alarm Email]] | ||
+ | * [[sdk::ReadModbus-Janitza-UMG511|Read out a Janitza UMG511 via Modbus TCP]] | ||
+ | ==== MQTT ==== | ||
+ | * [[sdk::mqtt_simple_status|Send Router Status Informations to an MQTT Broker]] | ||
+ | * [[sdk::mqtt_advanced_status|Send Router Status Informations to an MQTT Broker - Advanced Version]] | ||
+ | * [[sdk::mqtt_dio| Publish changes of the Digitial In or Out Interfaces via MQTT]] | ||
+ | ==== Web Services ==== | ||
+ | * [[sdk::webservices_get|HTTP GET pass URL parameters/query strings]] | ||
+ | * [[sdk::webservices_post|HTTP POST pass URL parameters/query strings]] | ||
+ | * [[sdk::webservices_send_postion|send actual GNSS location via URL]] | ||
+ | ==== Wifi / WLAN ==== | ||
+ | * [[sdk::wifimodechanger|Change Wifi Mode based on SSID]] | ||
+ | * [[sdk::wifiprobingclients|Show probing WiFi clients]] | ||
==== Various ==== | ==== Various ==== | ||
* [[sdk:telnet-run-a-command-using-telnet|Run a command using Telnet]] | * [[sdk:telnet-run-a-command-using-telnet|Run a command using Telnet]] | ||
* [[sdk::tcp2sms| Sending SMS via TCP]] | * [[sdk::tcp2sms| Sending SMS via TCP]] | ||
- | * [[sdk::opcuaExample| Publish OPC-UA datas to the Web as JSON-Object also monitoring values]] | + | * [[internal:opcuaexample| Publish OPC-UA datas to the Web as JSON-Object also monitoring values]] |
Line 155: | Line 174: | ||
* [[sdk:ibis2ascii|Convert IBIS Telegrams to valid ASCII Strings (Umlaute)]] | * [[sdk:ibis2ascii|Convert IBIS Telegrams to valid ASCII Strings (Umlaute)]] | ||
* [[sdk:castInt2float|Cast two Modbus Register on to one float variable]] | * [[sdk:castInt2float|Cast two Modbus Register on to one float variable]] | ||
+ | * [[sdk:block-check-calculator|Calculate block check character]] | ||
Line 171: | Line 191: | ||
|[[sdk:scripts:gps-udp-client-compat|gps-udp-client-compat.txt]]| This script sends the local GPS NMEA stream (incl. serial/checksum) to a remote UDP server.| | |[[sdk:scripts:gps-udp-client-compat|gps-udp-client-compat.txt]]| This script sends the local GPS NMEA stream (incl. serial/checksum) to a remote UDP server.| | ||
|[[sdk:scripts:gps-udp-client|gps-udp-client.txt]]| This script sends the local GPS NMEA stream to a remote UDP server.| | |[[sdk:scripts:gps-udp-client|gps-udp-client.txt]]| This script sends the local GPS NMEA stream to a remote UDP server.| | ||
+ | |[[sdk:scripts:gps2serial-gnsstogps|gps2serial-gnsstogps.txt]]| This script sends the local GPS NMEA stream to the internal serial interface. t checks for the correct CR/LF end of line characters and convert messages $GN to $GP.| | ||
|[[sdk:scripts:gps-upd-client-compat|gps-upd-client-compat.txt]]| This script sends the local GPS NMEA stream to a remote UDP server (incl. device identity).| | |[[sdk:scripts:gps-upd-client-compat|gps-upd-client-compat.txt]]| This script sends the local GPS NMEA stream to a remote UDP server (incl. device identity).| | ||
|[[sdk:scripts:led|led.txt]]| This script can be used to set a LED| | |[[sdk:scripts:led|led.txt]]| This script can be used to set a LED| |