Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
sdk:sdk [2018/09/18 08:44]
juraschek [The Language]
sdk:sdk [2024/01/11 09:08]
dodenhoeft [SDK API Functions]
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 ") {
Line 25: Line 25:
 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 133: Line 133:
 ==== GPS ==== ==== GPS ====
   * [[sdk:​gps-udp-broadcast|Broadcast selected GPS NMEA data to different UDP ports]]   * [[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]]   * [[sdk::​hex2serial|Write non ASCII String to the Serial Port]]
Line 150: Line 152:
   * [[sdk::​mqtt_simple_status|Send Router Status Informations to an MQTT Broker]]   * [[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_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 ==== ==== Wifi / WLAN ====
   * [[sdk::​wifimodechanger|Change Wifi Mode based on SSID]]   * [[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]]
Line 166: 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 182: 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|