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
sdk:sdk [2018/09/18 08:44]
juraschek [The Language]
sdk:sdk [2024/02/22 14:44] (current)
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 ") {
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]]
   * [[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 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|