Product number and magic string added to file headers
diff --git a/IOT_App_Definitions.ttcn b/IOT_App_Definitions.ttcn
index 4ff2713..86e62bd 100644
--- a/IOT_App_Definitions.ttcn
+++ b/IOT_App_Definitions.ttcn
@@ -9,9 +9,9 @@
///////////////////////////////////////////////////////////////////////////////
// File: IOT_App_Definitions.ttcn
// Description:
-// Rev: R1A
-// Prodnr: LPA 108 661
-// Updated: 2017-09-01
+// Rev: <RnXnn>
+// Prodnr: CNL 113 909
+// Updated: 2020-02-06
// Contact: http://ttcn.ericsson.se
///////////////////////////////////////////////////////////////////////////////
diff --git a/IOT_App_Functions.ttcn b/IOT_App_Functions.ttcn
index d5e29ad..8ed8473 100644
--- a/IOT_App_Functions.ttcn
+++ b/IOT_App_Functions.ttcn
@@ -9,9 +9,9 @@
///////////////////////////////////////////////////////////////////////////////
// File: IOT_App_Functions.ttcn
// Description:
-// Rev: R1A
-// Prodnr: LPA 108 661
-// Updated: 2017-09-01
+// Rev: <RnXnn>
+// Prodnr: CNL 113 909
+// Updated: 2020-02-06
// Contact: http://ttcn.ericsson.se
///////////////////////////////////////////////////////////////////////////////
diff --git a/IOT_LGen_Definitions.ttcn b/IOT_LGen_Definitions.ttcn
index 823c167..422447b 100644
--- a/IOT_LGen_Definitions.ttcn
+++ b/IOT_LGen_Definitions.ttcn
@@ -9,9 +9,9 @@
///////////////////////////////////////////////////////////////////////////////
// File: IOT_LGen_Definitions.ttcn
// Description:
-// Rev: R1A
-// Prodnr: LPA 108 661
-// Updated: 2017-09-01
+// Rev: <RnXnn>
+// Prodnr: CNL 113 909
+// Updated: 2020-02-06
// Contact: http://ttcn.ericsson.se
///////////////////////////////////////////////////////////////////////////////
@@ -19,7 +19,7 @@
// Module: IOT_LGen_Definitions
//
// Purpose:
-// This module contains the definitions for RIoT's load generator component
+// This module contains the definitions for an IoT load generator component
//
// Detailed comments:
// RIoT is a load generator built on top of the TitanSim load generator framework. It is
diff --git a/IOT_LGen_Functions.ttcn b/IOT_LGen_Functions.ttcn
index b4514b4..bbea437 100644
--- a/IOT_LGen_Functions.ttcn
+++ b/IOT_LGen_Functions.ttcn
@@ -9,9 +9,9 @@
///////////////////////////////////////////////////////////////////////////////
// File: IOT_LGen_Functions.ttcn
// Description:
-// Rev: R1A
-// Prodnr: LPA 108 661
-// Updated: 2017-09-01
+// Rev: <RnXnn>
+// Prodnr: CNL 113 909
+// Updated: 2020-02-06
// Contact: http://ttcn.ericsson.se
///////////////////////////////////////////////////////////////////////////////
@@ -19,7 +19,7 @@
// Module: IOT_LGen_Functions
//
// Purpose:
-// This module contains the functions of RIoT's load generator component
+// This module contains the functions of an IoT load generator component
//
// See also:
// <IOT_LGen_Definitions>
diff --git a/IOT_LGen_Steps.ttcn b/IOT_LGen_Steps.ttcn
index 70f91a8..63b86db 100644
--- a/IOT_LGen_Steps.ttcn
+++ b/IOT_LGen_Steps.ttcn
@@ -9,9 +9,9 @@
///////////////////////////////////////////////////////////////////////////////
// File: IOT_LGen_Steps.ttcn
// Description:
-// Rev: R1A
-// Prodnr: LPA 108 661
-// Updated: 2017-09-01
+// Rev: <RnXnn>
+// Prodnr: CNL 113 909
+// Updated: 2020-02-06
// Contact: http://ttcn.ericsson.se
///////////////////////////////////////////////////////////////////////////////
@@ -19,7 +19,7 @@
// Module: IOT_LGen_Steps
//
// Purpose:
-// This module contains test step functions for RIoT's load generator component
+// This module contains test step functions for an IoT load generator component
//
// See also:
// <IOT_LGen_Definitions>
diff --git a/InfluxDB_Definitions.ttcn b/InfluxDB_Definitions.ttcn
index 4de849d..b5488f8 100644
--- a/InfluxDB_Definitions.ttcn
+++ b/InfluxDB_Definitions.ttcn
@@ -9,9 +9,9 @@
///////////////////////////////////////////////////////////////////////////////
// File: InfluxDB_Definitions.ttcn
// Description:
-// Rev: R1A
-// Prodnr: LPA 108 661
-// Updated: 2017-09-01
+// Rev: <RnXnn>
+// Prodnr: CNL 113 909
+// Updated: 2020-02-06
// Contact: http://ttcn.ericsson.se
///////////////////////////////////////////////////////////////////////////////
module InfluxDB_Definitions
@@ -19,9 +19,47 @@
import from IPL4asp_Types all;
import from IPL4asp_PortType all;
+ ///////////////////////////////////////////////////////////
+ // Module parameter: tsp_InfluxDB_debug
+ //
+ // Purpose:
+ // Enable/disable debug logging
+ //
+ // Type:
+ // *boolean*
+ //
+ // Default value:
+ // *false*
+ ///////////////////////////////////////////////////////////
modulepar boolean tsp_InfluxDB_debug := false;
- modulepar integer tsp_InfluxDB_client_basePort := 9000;
- modulepar float tsp_InfluxDB_reportPeriod := 3.0;
+
+ ///////////////////////////////////////////////////////////
+ // Module parameter: tsp_InfluxDB_client_basePort
+ //
+ // Purpose:
+ // Local port number used for the UDP connection with the InfluxDB
+ //
+ // Type:
+ // *integer*
+ //
+ // Default value:
+ // *9000*
+ ///////////////////////////////////////////////////////////
+ modulepar integer tsp_InfluxDB_client_basePort := 9000;
+
+ ///////////////////////////////////////////////////////////
+ // Module parameter: tsp_InfluxDB_reportPeriod
+ //
+ // Purpose:
+ // InfluxDB event handler reporting period
+ //
+ // Type:
+ // *float*
+ //
+ // Default value:
+ // *3.0*
+ ///////////////////////////////////////////////////////////
+ modulepar float tsp_InfluxDB_reportPeriod := 3.0;
type component InfluxDB_CT
{
diff --git a/InfluxDB_Functions.ttcn b/InfluxDB_Functions.ttcn
index 7a7f0a6..164f4f5 100644
--- a/InfluxDB_Functions.ttcn
+++ b/InfluxDB_Functions.ttcn
@@ -9,9 +9,9 @@
///////////////////////////////////////////////////////////////////////////////
// File: InfluxDB_Functions.ttcn
// Description:
-// Rev: R1A
-// Prodnr: LPA 108 661
-// Updated: 2017-09-01
+// Rev: <RnXnn>
+// Prodnr: CNL 113 909
+// Updated: 2020-02-06
// Contact: http://ttcn.ericsson.se
///////////////////////////////////////////////////////////////////////////////
module InfluxDB_Functions {
@@ -20,6 +20,18 @@
import from IPL4asp_Types all;
import from IPL4asp_PortType all;
+ ///////////////////////////////////////////////////////////
+ // Function: f_IOT_LGen_behavior
+ //
+ // Purpose:
+ // The main initialization function for the <InfluxDB_CT> component type
+ //
+ // Parameters:
+ // p_lgenIdx - *in* *integer* - the index of the component instance
+ //
+ // Related Type:
+ // <InfluxDB_CT>
+ ///////////////////////////////////////////////////////////
function f_InfluxDB_init(in integer p_lgenIdx := 0) runs on InfluxDB_CT
{
f_InlfuxDB_log_debug(log2str(%definitionId, " started"));
@@ -34,6 +46,18 @@
f_InlfuxDB_log_debug(log2str(%definitionId, " finished"));
}
+ ///////////////////////////////////////////////////////////
+ // Function: f_InfluxDB_connect
+ //
+ // Purpose:
+ // Setup the connection with the InfluxDB database
+ //
+ // Parameters:
+ //
+ //
+ // Related Type:
+ // <InfluxDB_CT>
+ ///////////////////////////////////////////////////////////
function f_InfluxDB_connect() runs on InfluxDB_CT
{
f_InlfuxDB_log_debug(log2str(%definitionId, " started"));
@@ -66,6 +90,18 @@
f_InlfuxDB_log_debug(log2str(%definitionId, " finished"));
}
+ ///////////////////////////////////////////////////////////
+ // Function: f_InfluxDB_send
+ //
+ // Purpose:
+ // Sends a report to the InfluxDB database
+ //
+ // Parameters:
+ // p_data - *in* <InfluxLineProtocol> - Report to send
+ //
+ // Related Type:
+ // <InfluxDB_CT>
+ ///////////////////////////////////////////////////////////
function f_InfluxDB_send(in InfluxLineProtocol p_data) runs on InfluxDB_CT
{
f_InfluxDB_encode(p_data, v_InfluxDB_msgToSend_encoded);
@@ -81,6 +117,19 @@
INFLUXDB_PCO.send(v_InfluxDB_sendAsp);
}
+ ///////////////////////////////////////////////////////////
+ // Function: f_InfluxDB_encode
+ //
+ // Purpose:
+ // Converts a report to charstring format
+ //
+ // Parameters:
+ // p_prot - *in* <InfluxLineProtocol>, Message to send
+ // p_encoded - *out* *charstring* - Output string
+ //
+ // Related Type:
+ //
+ ///////////////////////////////////////////////////////////
function f_InfluxDB_encode(in InfluxLineProtocol p_prot, out charstring p_encoded)
{
f_InlfuxDB_log_debug(log2str("influx encoding: ", p_prot));
@@ -101,32 +150,105 @@
f_InlfuxDB_log_debug(log2str("influx encoded: ", p_encoded));
}
+ ///////////////////////////////////////////////////////////
+ // Function: f_InfluxDB_setMeasurement
+ //
+ // Purpose:
+ // Sets the measurement field of an InfluxDB report
+ //
+ // Parameters:
+ // p_pdu - *inout* <InfluxLineProtocol>, Influx message
+ // p_measurement - *in* *charstring* - measurement value
+ //
+ // Related Type:
+ //
+ ///////////////////////////////////////////////////////////
function f_InfluxDB_setMeasurement(inout InfluxLineProtocol p_pdu, in charstring p_measurement)
{
p_pdu.measurement := p_measurement;
}
+ ///////////////////////////////////////////////////////////
+ // Function: f_InfluxDB_addTag
+ //
+ // Purpose:
+ // Adds a tag to the tag-list of an InfluxDB message
+ //
+ // Parameters:
+ // p_pdu - *inout* <InfluxLineProtocol>, Influx message
+ // p_tag - *in* <InfluxAttrValue> - tag value to be added
+ //
+ // Related Type:
+ //
+ ///////////////////////////////////////////////////////////
function f_InfluxDB_addTag(inout InfluxLineProtocol p_pdu, in InfluxAttrValue p_tag)
{
p_pdu.tagSet[sizeof(p_pdu.tagSet)] := p_tag;
}
+ ///////////////////////////////////////////////////////////
+ // Function: f_InfluxDB_addField
+ //
+ // Purpose:
+ // Adds a field to the field-list of an InfluxDB message
+ //
+ // Parameters:
+ // p_pdu - *inout* <InfluxLineProtocol>, Influx message
+ // p_field - *in* <InfluxAttrValue> - field value to be added
+ //
+ // Related Type:
+ //
+ ///////////////////////////////////////////////////////////
function f_InfluxDB_addField(inout InfluxLineProtocol p_pdu, in InfluxAttrValue p_field)
{
p_pdu.fieldSet[sizeof(p_pdu.fieldSet)] := p_field;
}
+ ///////////////////////////////////////////////////////////
+ // Function: f_InfluxDB_scheduleNextReport
+ //
+ // Purpose:
+ // Sets the target time of the next report
+ //
+ // Parameters:
+ //
+ // Related Type:
+ // <InfluxDB_CT>
+ ///////////////////////////////////////////////////////////
function f_InfluxDB_scheduleNextReport()
runs on InfluxDB_CT
{
v_InfluxDB_reportTimer.start(v_InfluxDB_ctx.reportPeriod);
}
+ ///////////////////////////////////////////////////////////
+ // Function: f_InlfuxDB_log_debug
+ //
+ // Purpose:
+ // If debug log is set, write the parameter to the log file
+ //
+ // Parameters:
+ // p_log - *in* *charstring* - string to log
+ //
+ // Related Type:
+ //
+ ///////////////////////////////////////////////////////////
function f_InlfuxDB_log_debug(in charstring p_log)
{
if (tsp_InfluxDB_debug){ log(p_log); }
}
+ ///////////////////////////////////////////////////////////
+ // Function: as_InfluxDB_eventHandler
+ //
+ // Purpose:
+ // When report period expired, restarts the InfluxDB event handler and sets the time of the next report
+ //
+ // Parameters:
+ //
+ // Related Type:
+ // <InfluxDB_CT>
+ ///////////////////////////////////////////////////////////
altstep as_InfluxDB_eventHandler()
runs on InfluxDB_CT
{
diff --git a/apidoc/Data/ClassHierarchy.nd b/apidoc/Data/ClassHierarchy.nd
new file mode 100644
index 0000000..bc063b0
--- /dev/null
+++ b/apidoc/Data/ClassHierarchy.nd
Binary files differ
diff --git a/apidoc/Data/ConfigFileInfo.nd b/apidoc/Data/ConfigFileInfo.nd
new file mode 100644
index 0000000..c1073dc
--- /dev/null
+++ b/apidoc/Data/ConfigFileInfo.nd
Binary files differ
diff --git a/apidoc/Data/FileInfo.nd b/apidoc/Data/FileInfo.nd
new file mode 100644
index 0000000..dfd6185
--- /dev/null
+++ b/apidoc/Data/FileInfo.nd
@@ -0,0 +1,9 @@
+1.52
+TTCN3
+/home/ETHGRY/Titan_FOSS/ApplicationLibraries/IoT_Loadtest_Framework/InfluxDB_Definitions.ttcn 1581073616 1 /home/ETHGRY/Titan_FOSS/ApplicationLibraries/IoT_Loadtest_Framework/InfluxDB_Definitions.ttcn
+/home/ETHGRY/Titan_FOSS/ApplicationLibraries/IoT_Loadtest_Framework/IOT_LGen_Steps.ttcn 1581001156 1 IOT_LGen_Steps
+/home/ETHGRY/Titan_FOSS/ApplicationLibraries/IoT_Loadtest_Framework/IOT_LGen_Functions.ttcn 1581001146 1 IOT_LGen_Functions
+/home/ETHGRY/Titan_FOSS/ApplicationLibraries/IoT_Loadtest_Framework/IOT_App_Functions.ttcn 1581000753 1 IOT_App_Functions
+/home/ETHGRY/Titan_FOSS/ApplicationLibraries/IoT_Loadtest_Framework/IOT_LGen_Definitions.ttcn 1581001133 1 IOT_LGen_Definitions
+/home/ETHGRY/Titan_FOSS/ApplicationLibraries/IoT_Loadtest_Framework/IOT_App_Definitions.ttcn 1581005187 1 IOT_App_Definitions
+/home/ETHGRY/Titan_FOSS/ApplicationLibraries/IoT_Loadtest_Framework/InfluxDB_Functions.ttcn 1581077976 1 /home/ETHGRY/Titan_FOSS/ApplicationLibraries/IoT_Loadtest_Framework/InfluxDB_Functions.ttcn
diff --git a/apidoc/Data/ImageFileInfo.nd b/apidoc/Data/ImageFileInfo.nd
new file mode 100644
index 0000000..278e2bf
--- /dev/null
+++ b/apidoc/Data/ImageFileInfo.nd
Binary files differ
diff --git a/apidoc/Data/ImageReferenceTable.nd b/apidoc/Data/ImageReferenceTable.nd
new file mode 100644
index 0000000..7cce14f
--- /dev/null
+++ b/apidoc/Data/ImageReferenceTable.nd
Binary files differ
diff --git a/apidoc/Data/IndexInfo.nd b/apidoc/Data/IndexInfo.nd
new file mode 100644
index 0000000..0be9fbd
--- /dev/null
+++ b/apidoc/Data/IndexInfo.nd
Binary files differ
diff --git a/apidoc/Data/PreviousMenuState.nd b/apidoc/Data/PreviousMenuState.nd
new file mode 100644
index 0000000..2ccd8d0
--- /dev/null
+++ b/apidoc/Data/PreviousMenuState.nd
Binary files differ
diff --git a/apidoc/Data/PreviousSettings.nd b/apidoc/Data/PreviousSettings.nd
new file mode 100644
index 0000000..f5113e3
--- /dev/null
+++ b/apidoc/Data/PreviousSettings.nd
Binary files differ
diff --git a/apidoc/Data/SymbolTable.nd b/apidoc/Data/SymbolTable.nd
new file mode 100644
index 0000000..e69bd58
--- /dev/null
+++ b/apidoc/Data/SymbolTable.nd
Binary files differ
diff --git a/apidoc/Languages.txt b/apidoc/Languages.txt
new file mode 100755
index 0000000..d231539
--- /dev/null
+++ b/apidoc/Languages.txt
@@ -0,0 +1,126 @@
+Format: 1.52
+
+# This is the Natural Docs languages file for this project. If you change
+# anything here, it will apply to THIS PROJECT ONLY. If you'd like to change
+# something for all your projects, edit the Languages.txt in Natural Docs'
+# Config directory instead.
+
+
+Ignore Extensions: cc c cpp hh h o sh csh txt pl pm py
+
+
+#-------------------------------------------------------------------------------
+# SYNTAX:
+#
+# Unlike other Natural Docs configuration files, in this file all comments
+# MUST be alone on a line. Some languages deal with the # character, so you
+# cannot put comments on the same line as content.
+#
+# Also, all lists are separated with spaces, not commas, again because some
+# languages may need to use them.
+#
+# Language: [name]
+# Alter Language: [name]
+# Defines a new language or alters an existing one. Its name can use any
+# characters. If any of the properties below have an add/replace form, you
+# must use that when using Alter Language.
+#
+# The language Shebang Script is special. It's entry is only used for
+# extensions, and files with those extensions have their shebang (#!) lines
+# read to determine the real language of the file. Extensionless files are
+# always treated this way.
+#
+# The language Text File is also special. It's treated as one big comment
+# so you can put Natural Docs content in them without special symbols. Also,
+# if you don't specify a package separator, ignored prefixes, or enum value
+# behavior, it will copy those settings from the language that is used most
+# in the source tree.
+#
+# Extensions: [extension] [extension] ...
+# [Add/Replace] Extensions: [extension] [extension] ...
+# Defines the file extensions of the language's source files. You can
+# redefine extensions found in the main languages file. You can use * to
+# mean any undefined extension.
+#
+# Shebang Strings: [string] [string] ...
+# [Add/Replace] Shebang Strings: [string] [string] ...
+# Defines a list of strings that can appear in the shebang (#!) line to
+# designate that it's part of the language. You can redefine strings found
+# in the main languages file.
+#
+# Ignore Prefixes in Index: [prefix] [prefix] ...
+# [Add/Replace] Ignored Prefixes in Index: [prefix] [prefix] ...
+#
+# Ignore [Topic Type] Prefixes in Index: [prefix] [prefix] ...
+# [Add/Replace] Ignored [Topic Type] Prefixes in Index: [prefix] [prefix] ...
+# Specifies prefixes that should be ignored when sorting symbols in an
+# index. Can be specified in general or for a specific topic type.
+#
+#------------------------------------------------------------------------------
+# For basic language support only:
+#
+# Line Comments: [symbol] [symbol] ...
+# Defines a space-separated list of symbols that are used for line comments,
+# if any.
+#
+# Block Comments: [opening sym] [closing sym] [opening sym] [closing sym] ...
+# Defines a space-separated list of symbol pairs that are used for block
+# comments, if any.
+#
+# Package Separator: [symbol]
+# Defines the default package separator symbol. The default is a dot.
+#
+# [Topic Type] Prototype Enders: [symbol] [symbol] ...
+# When defined, Natural Docs will attempt to get a prototype from the code
+# immediately following the topic type. It stops when it reaches one of
+# these symbols. Use \n for line breaks.
+#
+# Line Extender: [symbol]
+# Defines the symbol that allows a prototype to span multiple lines if
+# normally a line break would end it.
+#
+# Enum Values: [global|under type|under parent]
+# Defines how enum values are referenced. The default is global.
+# global - Values are always global, referenced as 'value'.
+# under type - Values are under the enum type, referenced as
+# 'package.enum.value'.
+# under parent - Values are under the enum's parent, referenced as
+# 'package.value'.
+#
+# Perl Package: [perl package]
+# Specifies the Perl package used to fine-tune the language behavior in ways
+# too complex to do in this file.
+#
+#------------------------------------------------------------------------------
+# For full language support only:
+#
+# Full Language Support: [perl package]
+# Specifies the Perl package that has the parsing routines necessary for full
+# language support.
+#
+#-------------------------------------------------------------------------------
+
+# The following languages are defined in the main file, if you'd like to alter
+# them:
+#
+# Text File, Shebang Script, C/C++, C#, Java, JavaScript, Perl, Python,
+# PHP, SQL, Visual Basic, Pascal, Assembly, Ada, Tcl, Ruby, Makefile,
+# ActionScript, ColdFusion, R, Fortran
+
+# If you add a language that you think would be useful to other developers
+# and should be included in Natural Docs by default, please e-mail it to
+# languages [at] naturaldocs [dot] org.
+
+
+Language: TTCN3
+
+ Extensions: ttcn ttcnin ttcnpp
+ Line Comment: //
+ Block Comment: /* */
+ Function Prototype Enders: ; {
+ Variable Prototype Enders: ; =
+ Type Prototype Enders: ; \n
+ Constant Prototype Enders: ; }
+ Altstep Prototype Enders: ; {
+ Component Prototype Enders: ; {
+ Template Prototype Enders: := {
diff --git a/apidoc/Menu.txt b/apidoc/Menu.txt
new file mode 100644
index 0000000..8043215
--- /dev/null
+++ b/apidoc/Menu.txt
@@ -0,0 +1,58 @@
+Format: 1.52
+
+
+Title: IoT_Load_Test_Framework
+SubTitle: API Documentation
+
+Footer: Copyright 2020 Test Competence Center
+Timestamp: Generated on yyyy-mm-dd
+# m - One or two digit month. January is "1"
+# mm - Always two digit month. January is "01"
+# mon - Short month word. January is "Jan"
+# month - Long month word. January is "January"
+# d - One or two digit day. 1 is "1"
+# dd - Always two digit day. 1 is "01"
+# day - Day with letter extension. 1 is "1st"
+# yy - Two digit year. 2006 is "06"
+# yyyy - Four digit year. 2006 is "2006"
+# year - Four digit year. 2006 is "2006"
+
+
+# --------------------------------------------------------------------------
+#
+# Cut and paste the lines below to change the order in which your files
+# appear on the menu. Don't worry about adding or removing files, Natural
+# Docs will take care of that.
+#
+# You can further organize the menu by grouping the entries. Add a
+# "Group: [name] {" line to start a group, and add a "}" to end it.
+#
+# You can add text and web links to the menu by adding "Text: [text]" and
+# "Link: [name] ([URL])" lines, respectively.
+#
+# The formatting and comments are auto-generated, so don't worry about
+# neatness when editing the file. Natural Docs will clean it up the next
+# time it is run. When working with groups, just deal with the braces and
+# forget about the indentation and comments.
+#
+# --------------------------------------------------------------------------
+
+
+File: InfluxDB_Definitions.ttcn (InfluxDB_Definitions.ttcn)
+File: InfluxDB_Functions.ttcn (InfluxDB_Functions.ttcn)
+File: IOT_App_Definitions (IOT_App_Definitions.ttcn)
+File: IOT_App_Functions (IOT_App_Functions.ttcn)
+File: IOT_LGen_Definitions (IOT_LGen_Definitions.ttcn)
+File: IOT_LGen_Functions (IOT_LGen_Functions.ttcn)
+File: IOT_LGen_Steps (IOT_LGen_Steps.ttcn)
+
+Group: Index {
+
+ Constant Index: Constants
+ Index: Everything
+ File Index: Files
+ Function Index: Functions
+ Module Parameter Index: Module Parameters
+ Type Index: Types
+ } # Group: Index
+
diff --git a/apidoc/Topics.txt b/apidoc/Topics.txt
new file mode 100755
index 0000000..95e2676
--- /dev/null
+++ b/apidoc/Topics.txt
@@ -0,0 +1,164 @@
+Format: 1.52
+
+# This is the Natural Docs topics file for this project. If you change anything
+# here, it will apply to THIS PROJECT ONLY. If you'd like to change something
+# for all your projects, edit the Topics.txt in Natural Docs' Config directory
+# instead.
+
+
+Ignore Keywords:
+ note, notes
+
+
+#-------------------------------------------------------------------------------
+# SYNTAX:
+#
+# Topic Type: [name]
+# Alter Topic Type: [name]
+# Creates a new topic type or alters one from the main file. Each type gets
+# its own index and behavior settings. Its name can have letters, numbers,
+# spaces, and these charaters: - / . '
+#
+# Plural: [name]
+# Sets the plural name of the topic type, if different.
+#
+# Keywords:
+# [keyword]
+# [keyword], [plural keyword]
+# ...
+# Defines or adds to the list of keywords for the topic type. They may only
+# contain letters, numbers, and spaces and are not case sensitive. Plural
+# keywords are used for list topics. You can redefine keywords found in the
+# main topics file.
+#
+# Index: [yes|no]
+# Whether the topics get their own index. Defaults to yes. Everything is
+# included in the general index regardless of this setting.
+#
+# Scope: [normal|start|end|always global]
+# How the topics affects scope. Defaults to normal.
+# normal - Topics stay within the current scope.
+# start - Topics start a new scope for all the topics beneath it,
+# like class topics.
+# end - Topics reset the scope back to global for all the topics
+# beneath it.
+# always global - Topics are defined as global, but do not change the scope
+# for any other topics.
+#
+# Class Hierarchy: [yes|no]
+# Whether the topics are part of the class hierarchy. Defaults to no.
+#
+# Page Title If First: [yes|no]
+# Whether the topic's title becomes the page title if it's the first one in
+# a file. Defaults to no.
+#
+# Break Lists: [yes|no]
+# Whether list topics should be broken into individual topics in the output.
+# Defaults to no.
+#
+# Can Group With: [type], [type], ...
+# Defines a list of topic types that this one can possibly be grouped with.
+# Defaults to none.
+#-------------------------------------------------------------------------------
+
+# The following topics are defined in the main file, if you'd like to alter
+# their behavior or add keywords:
+#
+# Generic, Class, Interface, Section, File, Group, Function, Variable,
+# Property, Type, Constant, Enumeration, Event, Delegate, Macro,
+# Database, Database Table, Database View, Database Index, Database
+# Cursor, Database Trigger, Cookie, Build Target
+
+# If you add something that you think would be useful to other developers
+# and should be included in Natural Docs by default, please e-mail it to
+# topics [at] naturaldocs [dot] org.
+
+
+Alter Topic Type: Function
+
+ Index: Yes
+
+
+Alter Topic Type: Constant
+
+ Index: Yes
+
+
+Alter Topic Type: Type
+
+ Index: Yes
+
+
+Topic Type: Module Parameter
+
+ Plural: Module Parameters
+ Index: Yes
+
+ Keywords:
+ module parameter, module parameters
+
+
+Topic Type: Configuration Type
+
+ Plural: Configuration Types
+ Index: Yes
+ Can Group With: Types
+
+ Keywords:
+ configtype, configtypes
+
+
+Topic Type: Testcase
+
+ Plural: Testcases
+ Index: No
+
+ Keywords:
+ testcase, testcases
+
+
+Topic Type: Altstep
+
+ Plural: Altsteps
+ Index: No
+
+ Keywords:
+ altstep, altsteps
+
+
+Topic Type: Template
+
+ Plural: Templates
+ Index: No
+
+ Keywords:
+ template, templates
+
+
+Alter Topic Type: Group
+
+ Plural: Groups
+ Index: No
+
+ Add Keywords:
+ group
+
+
+Alter Topic Type: Generic
+
+
+
+Alter Topic Type: File
+
+ Index: Yes
+ Add Keywords:
+ module
+
+
+Topic Type: Component
+
+ Plural: Components
+ Index: No
+
+ Keywords:
+ component, components
diff --git a/apidoc/html/files/IOT_App_Definitions-ttcn.html b/apidoc/html/files/IOT_App_Definitions-ttcn.html
new file mode 100644
index 0000000..a40db70
--- /dev/null
+++ b/apidoc/html/files/IOT_App_Definitions-ttcn.html
@@ -0,0 +1,34 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IOT_App_Definitions - IoT_Load_Test_Framework</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="IOT_App_Definitions"></a>IOT_App_Definitions</h1><div class=CBody><h4 class=CHeading>Purpose</h4><p>This module contains the definitions for RIoT’s main component</p><h4 class=CHeading>Detailed comments</h4><p>RIoT is a load generator built on top of the TitanSim load generator framework. It is capable of simulating devices using some IoT protocols (CoAP, LwM2M, MQTT, HTTP). RIoT (and the TitanSim framework) was created to support non-functional tests, where load generation is required like performance, stability, scalability.</p><h4 class=CHeading>Module depends on</h4><ul><li><EPTF_CLL_Base_Definitions></li><li><EPTF_CLL_DsRestAPI_Definitions></li></ul><h4 class=CHeading>Module Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress</td><td class=CDLDescription><a href="#tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress" class=LModuleParameter id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress</a> - <b>charstring</b> - the IP address of the REST API server</td></tr><tr><td class=CDLEntry>tsp_EPTF_DsRestAPI_HTTPServer_RemotePort</td><td class=CDLDescription><a href="#tsp_EPTF_DsRestAPI_HTTPServer_RemotePort" class=LModuleParameter id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">tsp_EPTF_DsRestAPI_HTTPServer_RemotePort</a> - <b>charstring</b> - the port number of the REST API server</td></tr><tr><td class=CDLEntry>tsp_EPTF_DsRestAPI_HTTPServer_directory</td><td class=CDLDescription><a href="#tsp_EPTF_DsRestAPI_HTTPServer_directory" class=LModuleParameter id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">tsp_EPTF_DsRestAPI_HTTPServer_directory</a> - <b>charstring</b> - the path of REST API HTTP server directory</td></tr><tr><td class=CDLEntry>tsp_EPTF_DsRestAPI_customizableApp_directory</td><td class=CDLDescription><a href="#tsp_EPTF_DsRestAPI_customizableApp_directory" class=LModuleParameter id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">tsp_EPTF_DsRestAPI_customizableApp_directory</a> - <b>charstring</b> - the path of the REST API customizableApp directory</td></tr><tr><td class=CDLEntry>tsp_EPTF_DsRestAPI_API_directory</td><td class=CDLDescription><a href="#tsp_EPTF_DsRestAPI_API_directory" class=LModuleParameter id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">tsp_EPTF_DsRestAPI_API_directory</a> - <b>charstring</b> - the path of DsRestAPI API directory</td></tr></table><h4 class=CHeading>Configuration</h4><ul><li><tsp_EPTF_ExecCtrl_LGenPool_Declarators></li><li><tsp_EPTF_ExecCtrl_EntityGroup2LGenPool_List></li><li><tsp_LGenBase_EntityGrpDeclarators></li><li><tsp_EPTF_ExecCtrl_Scenario2EntityGroupList></li><li><tsp_LGenBase_TcMgmt_ScenarioDeclarators3></li><li><tsp_LGenBase_TcMgmt_tcTypeDeclarators2></li><li><a href="IOT_LGen_Definitions-ttcn.html#tsp_IOT_LGen_FSMs" class=LModuleParameter id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">tsp_IOT_LGen_FSMs</a></li></ul><h4 class=CHeading>Component Diagram</h4><p>(see IOT_App_Definitions.components.jpg)</p><h4 class=CHeading>Related Types</h4><ul><li><a href="#IOT_App_CT" class=LType id=link8 onMouseOver="ShowTip(event, 'tt1', 'link8')" onMouseOut="HideTip('tt1')">IOT_App_CT</a></li><li><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">IOT_LGen_CT</a></li><li><EPTF_ExecCtrl_CT></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#IOT_App_Definitions" >IOT_App_Definitions</a></td><td class=SDescription>This module contains the definitions for RIoT’s main component</td></tr><tr class="SModuleParameter SMarked"><td class=SEntry><a href="#tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress" >tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress</a></td><td class=SDescription>IP address of the REST API server</td></tr><tr class="SModuleParameter"><td class=SEntry><a href="#tsp_EPTF_DsRestAPI_HTTPServer_RemotePort" >tsp_EPTF_DsRestAPI_HTTPServer_RemotePort</a></td><td class=SDescription>Port number of the REST API server</td></tr><tr class="SModuleParameter SMarked"><td class=SEntry><a href="#tsp_EPTF_DsRestAPI_HTTPServer_directory" >tsp_EPTF_DsRestAPI_HTTPServer_directory</a></td><td class=SDescription>Path of REST API HTTP server directory</td></tr><tr class="SModuleParameter"><td class=SEntry><a href="#tsp_EPTF_DsRestAPI_customizableApp_directory" >tsp_EPTF_DsRestAPI_customizableApp_directory</a></td><td class=SDescription>Path of the REST API customizableApp directory</td></tr><tr class="SModuleParameter SMarked"><td class=SEntry><a href="#tsp_EPTF_DsRestAPI_API_directory" >tsp_EPTF_DsRestAPI_API_directory</a></td><td class=SDescription>Path of DsRestAPI API directory</td></tr><tr class="SType"><td class=SEntry><a href="#IOT_App_CT" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">IOT_App_CT</a></td><td class=SDescription>RIoT application’s main component providing a REST API to the environment</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CModuleParameter"><div class=CTopic><h3 class=CTitle><a name="tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress"></a>tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>IP address of the REST API server</p><h4 class=CHeading>Type</h4><p><b>charstring</b></p><h4 class=CHeading>Default value</h4><p><b>”127.0.0.1”</b></p></div></div></div>
+
+<div class="CModuleParameter"><div class=CTopic><h3 class=CTitle><a name="tsp_EPTF_DsRestAPI_HTTPServer_RemotePort"></a>tsp_EPTF_DsRestAPI_HTTPServer_RemotePort</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>Port number of the REST API server</p><h4 class=CHeading>Type</h4><p><b>integer</b></p><h4 class=CHeading>Default value</h4><p><b>4040</b></p></div></div></div>
+
+<div class="CModuleParameter"><div class=CTopic><h3 class=CTitle><a name="tsp_EPTF_DsRestAPI_HTTPServer_directory"></a>tsp_EPTF_DsRestAPI_HTTPServer_directory</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>Path of REST API HTTP server directory</p><h4 class=CHeading>Type</h4><p><b>charstring</b></p><h4 class=CHeading>Default value</h4><p><b>”./WebGUI/WebGUI_link/”</b></p></div></div></div>
+
+<div class="CModuleParameter"><div class=CTopic><h3 class=CTitle><a name="tsp_EPTF_DsRestAPI_customizableApp_directory"></a>tsp_EPTF_DsRestAPI_customizableApp_directory</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>Path of the REST API customizableApp directory</p><h4 class=CHeading>Type</h4><p><b>charstring</b></p><h4 class=CHeading>Default value</h4><p><b>”./WebGUI/GUICustomization_link”</b></p></div></div></div>
+
+<div class="CModuleParameter"><div class=CTopic><h3 class=CTitle><a name="tsp_EPTF_DsRestAPI_API_directory"></a>tsp_EPTF_DsRestAPI_API_directory</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>Path of DsRestAPI API directory</p><h4 class=CHeading>Type</h4><p><b>charstring</b></p><h4 class=CHeading>Default value</h4><p><b>”./WebGUI/Js_link”</b></p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="IOT_App_CT"></a>IOT_App_CT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_App_CT extends EPTF_Base_CT, EPTF_DsRestAPI_CT</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>RIoT application’s main component providing a REST API to the environment</p><h4 class=CHeading>Extensions</h4><ul><li><EPTF_Base_CT></li><li><EPTF_DsRestAPI_CT></li></ul><h4 class=CHeading>Related Functions</h4><ul><li><a href="IOT_App_Functions-ttcn.html#TC" class=LTestcase id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">TC</a> () - The main test case function, entry point of the application</li></ul></div></div></div>
+
+</div><!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_App_CT extends EPTF_Base_CT, EPTF_DsRestAPI_CT</td></tr></table></blockquote>RIoT application’s main component providing a REST API to the environment</div></div><div class=CToolTip id="tt2"><div class=CModuleParameter>IP address of the REST API server</div></div><div class=CToolTip id="tt3"><div class=CModuleParameter>Port number of the REST API server</div></div><div class=CToolTip id="tt4"><div class=CModuleParameter>Path of REST API HTTP server directory</div></div><div class=CToolTip id="tt5"><div class=CModuleParameter>Path of the REST API customizableApp directory</div></div><div class=CToolTip id="tt6"><div class=CModuleParameter>Path of DsRestAPI API directory</div></div><div class=CToolTip id="tt7"><div class=CModuleParameter>FSM declarations that can be instantiated for the traffic cases</div></div><div class=CToolTip id="tt8"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_LGen_CT</td></tr></table></blockquote>IoT load generator component</div></div><div class=CToolTip id="tt9"><div class=CTestcase>The main entry point of the RIoT application</div></div><!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/files/IOT_App_Functions-ttcn.html b/apidoc/html/files/IOT_App_Functions-ttcn.html
new file mode 100644
index 0000000..f30ae6b
--- /dev/null
+++ b/apidoc/html/files/IOT_App_Functions-ttcn.html
@@ -0,0 +1,28 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IOT_App_Functions - IoT_Load_Test_Framework</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="IOT_App_Functions"></a>IOT_App_Functions</h1><div class=CBody><h4 class=CHeading>Purpose</h4><p>This module contains the functions of RIoT’s main component</p><h4 class=CHeading>See also</h4><p><a href="IOT_App_Definitions-ttcn.html#IOT_App_Definitions" class=LFile id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">IOT_App_Definitions</a></p><h4 class=CHeading>Module depends on</h4><ul><li><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_Definitions" class=LFile id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')">IOT_LGen_Definitions</a></li><li><a href="IOT_LGen_Functions-ttcn.html#IOT_LGen_Functions" class=LFile id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">IOT_LGen_Functions</a></li><li><EPTF_CLL_Base_Functions></li><li><EPTF_CLL_ExecCtrl_Definitions></li><li><EPTF_CLL_ExecCtrl_Functions></li><li><EPTF_CLL_DsRestAPI_Functions></li><li><EPTF_CLL_DataSource_Definitions></li><li><EPTF_CLL_DataSource_Functions></li></ul><h4 class=CHeading>Module Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>tsp_nrOfLGens</td><td class=CDLDescription><tsp_nrOfLGens> - <b>integer</b> - the number of <a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link8 onMouseOver="ShowTip(event, 'tt2', 'link8')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a> instances to be createed during start up</td></tr><tr><td class=CDLEntry>tsp_LGname_prefix</td><td class=CDLDescription><tsp_LGname_prefix> - <b>charstring</b> - name prefix used for the created <a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link9 onMouseOver="ShowTip(event, 'tt2', 'link9')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a> instances</td></tr></table><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#IOT_App_Functions" >IOT_App_Functions</a></td><td class=SDescription>This module contains the functions of RIoT’s main component</td></tr><tr class="STestcase SMarked"><td class=SEntry><a href="#TC" >TC</a></td><td class=SDescription>The main entry point of the RIoT application</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_App_startExecCtrl" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_IOT_App_startExecCtrl</a></td><td class=SDescription>Starting up the Execution Control component that will orchestrate the load generator <a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a>,<EPTF_ExecCtrlClient_CT> component instances</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_create" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_IOT_LGen_create</a></td><td class=SDescription>Starting up a load generator <a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link4 onMouseOver="ShowTip(event, 'tt2', 'link4')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a> component instances</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CTestcase"><div class=CTopic><h3 class=CTitle><a name="TC"></a>TC</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>The main entry point of the RIoT application</p><h4 class=CHeading>Related Types</h4><p><a href="IOT_App_Definitions-ttcn.html#IOT_App_CT" class=LType id=link10 onMouseOver="ShowTip(event, 'tt7', 'link10')" onMouseOut="HideTip('tt7')">IOT_App_CT</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_App_startExecCtrl"></a>f_IOT_App_startExecCtrl</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_App_startExecCtrl(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>pl_nrOfClients,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_DataSource_CT </td><td class="PParameter prettyprint " nowrap width=100%>pl_datasource</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_ExecCtrl_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Starting up the Execution Control component that will orchestrate the load generator <a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link11 onMouseOver="ShowTip(event, 'tt2', 'link11')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a>,<EPTF_ExecCtrlClient_CT> component instances</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_selfName</td><td class=CDLDescription><b>in charstring</b> - name of the execution control components instance</td></tr><tr><td class=CDLEntry>pl_nrOfClients</td><td class=CDLDescription><b>in integer</b> - number of <EPTF_ExecCtrlClient_CT> load generator components to wait for</td></tr><tr><td class=CDLEntry>pl_datasource</td><td class=CDLDescription><b>in</b> <EPTF_DataSource_CT> - data source server</td></tr></table><h4 class=CHeading>Related Types</h4><p><EPTF_ExecCtrl_CT></p><h4 class=CHeading>Related functions</h4><ul><li><f_EPTF_ExecCtrl_loadConfig></li><li><f_EPTF_ExecCtrl_init_CT></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_create"></a>f_IOT_LGen_create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_create (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_hostname,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_componentName</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_ExecCtrl_CT return EPTF_ExecCtrlClient_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Starting up a load generator <a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link12 onMouseOver="ShowTip(event, 'tt2', 'link12')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a> component instances</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_hostname</td><td class=CDLDescription><b>in charstring</b> - name of the host, where the load generator instance will be created</td></tr><tr><td class=CDLEntry>pl_componentName</td><td class=CDLDescription><b>in charstring</b> - the name of the load generator component instance</td></tr></table><h4 class=CHeading>Related Types</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link13 onMouseOver="ShowTip(event, 'tt2', 'link13')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a> <EPTF_ExecCtrlClient_CT> <EPTF_ExecCtrl_CT></p><h4 class=CHeading>Related functions</h4><ul><li><a href="InfluxDB_Functions-ttcn.html#f_IOT_LGen_behavior" class=LFunction id=link14 onMouseOver="ShowTip(event, 'tt8', 'link14')" onMouseOut="HideTip('tt8')">f_IOT_LGen_behavior</a></li></ul></div></div></div>
+
+</div><!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_App_startExecCtrl(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>pl_nrOfClients,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_DataSource_CT </td><td class="PParameter prettyprint " nowrap width=100%>pl_datasource</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_ExecCtrl_CT</td></tr></table></td></tr></table></blockquote>Starting up the Execution Control component that will orchestrate the load generator IOT_LGen_CT,<EPTF_ExecCtrlClient_CT> component instances</div></div><div class=CToolTip id="tt2"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_LGen_CT</td></tr></table></blockquote>IoT load generator component</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_create (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_hostname,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_componentName</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_ExecCtrl_CT return EPTF_ExecCtrlClient_CT</td></tr></table></td></tr></table></blockquote>Starting up a load generator IOT_LGen_CT component instances</div></div><div class=CToolTip id="tt4"><div class=CFile>This module contains the definitions for RIoT’s main component</div></div><div class=CToolTip id="tt5"><div class=CFile>This module contains the definitions for an IoT load generator component</div></div><div class=CToolTip id="tt6"><div class=CFile>This module contains the functions of an IoT load generator component</div></div><div class=CToolTip id="tt7"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_App_CT extends EPTF_Base_CT, EPTF_DsRestAPI_CT</td></tr></table></blockquote>RIoT application’s main component providing a REST API to the environment</div></div><div class=CToolTip id="tt8"><div class=CFunction>The main initialization function for the InfluxDB_CT component type</div></div><!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/files/IOT_LGen_Definitions-ttcn.html b/apidoc/html/files/IOT_LGen_Definitions-ttcn.html
new file mode 100644
index 0000000..63bc26a
--- /dev/null
+++ b/apidoc/html/files/IOT_LGen_Definitions-ttcn.html
@@ -0,0 +1,30 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IOT_LGen_Definitions - IoT_Load_Test_Framework</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="IOT_LGen_Definitions"></a>IOT_LGen_Definitions</h1><div class=CBody><h4 class=CHeading>Purpose</h4><p>This module contains the definitions for an IoT load generator component</p><h4 class=CHeading>Detailed comments</h4><p>RIoT is a load generator built on top of the TitanSim load generator framework. It is capable of simulating devices using some IoT protocols (CoAP, LwM2M, MQTT, HTTP). RIoT (and the TitanSim framework) was created to support non-functional tests, where load generation is required like performance, stability, scalability.</p><h4 class=CHeading>Events, TestSteps</h4><p><a href="IOT_LGen_Steps-ttcn.html#IOT_LGen_Steps" class=LFile id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">IOT_LGen_Steps</a></p><h4 class=CHeading>Module Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>tsp_IOT_LGen_FSMs</td><td class=CDLDescription><EPTF_LGenBase_FsmTableDeclaratorList> - FSM declarations that can be instantiated for the traffic cases</td></tr></table><h4 class=CHeading>Module depends on</h4><ul><li><EPTF_MQTT_LGen_Definitions></li><li><EPTF_MQTT_LocalTransport_Definitions></li><li><EPTF_COAP_LGen_Definitions></li><li><EPTF_COAP_LocalTransport_Definitions></li><li><EPTF_LwM2M_LGen_Definitions></li><li><EPTF_LwM2M_CoapApplibTransport_Definitions></li><li><EPTF_LwM2M_Object_Definitions></li><li><EPTF_HTTP_Definitions></li><li><EPTF_HTTP_Transport_Definitions></li><li><EPTF_CLL_LGenBase_Definitions></li><li><EPTF_CLL_LGenBase_ConfigDefinitions></li><li><EPTF_CLL_ExecCtrl_Definitions></li></ul><h4 class=CHeading>Component Diagram</h4><p>(see IOT_App_Definitions.components.jpg)</p><h4 class=CHeading>Related Types</h4><ul><li><a href="IOT_App_Definitions-ttcn.html#IOT_App_CT" class=LType id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">IOT_App_CT</a></li><li><a href="#IOT_LGen_CT" class=LType id=link6 onMouseOver="ShowTip(event, 'tt3', 'link6')" onMouseOut="HideTip('tt3')">IOT_LGen_CT</a></li><li><EPTF_ExecCtrl_CT></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#IOT_LGen_Definitions" >IOT_LGen_Definitions</a></td><td class=SDescription>This module contains the definitions for an IoT load generator component</td></tr><tr class="SModuleParameter SMarked"><td class=SEntry><a href="#tsp_IOT_LGen_FSMs" >tsp_IOT_LGen_FSMs</a></td><td class=SDescription>FSM declarations that can be instantiated for the traffic cases</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_IOT_entityType" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">c_IOT_entityType</a></td><td class=SDescription>Constant for the simulated IoT entity type</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_behaviorType" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">c_IOT_behaviorType</a></td><td class=SDescription>Constant for the simulated IoT behavior type</td></tr><tr class="SType"><td class=SEntry><a href="#IOT_LGen_CT" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">IOT_LGen_CT</a></td><td class=SDescription>IoT load generator component</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CModuleParameter"><div class=CTopic><h3 class=CTitle><a name="tsp_IOT_LGen_FSMs"></a>tsp_IOT_LGen_FSMs</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>FSM declarations that can be instantiated for the traffic cases</p><h4 class=CHeading>Type</h4><p><EPTF_LGenBase_FsmTableDeclaratorList></p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_entityType"></a>c_IOT_entityType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_entityType := "IOT_Entity"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Constant for the simulated IoT entity type</p></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_behaviorType"></a>c_IOT_behaviorType</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_behaviorType := "IOT_Behavior"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Constant for the simulated IoT behavior type</p></div></div></div>
+
+<div class="CType"><div class=CTopic><h3 class=CTitle><a name="IOT_LGen_CT"></a>IOT_LGen_CT</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_LGen_CT</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>IoT load generator component</p><h4 class=CHeading>Class</h4><p>(see EPTF_COAP_LGen_Definitions.EPTF_COAP_LGen_CT.jpg)</p><h4 class=CHeading>Extensions</h4><ul><li><EPTF_LGenBase_CT></li><li><EPTF_ExecCtrlClient_CT></li><li><EPTF_MQTT_LGen_CT></li><li><EPTF_MQTT_LocalTransport_CT></li><li><EPTF_COAP_LGen_CT></li><li><EPTF_COAP_LocalTransport_CT></li><li><EPTF_LwM2M_LGen_CT></li><li><EPTF_LwM2M_CoapApplibTransport_CT></li><li><EPTF_HTTP_LGen_CT></li><li><EPTF_HTTP_LocalTransport_CT></li><li><InfluxDB_CT></li></ul><h4 class=CHeading>Variables</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>v_IOT_LGen_name</td><td class=CDLDescription><b>charstring</b> - name of the current load generator instance</td></tr><tr><td class=CDLEntry>v_IOT_LGen_idx</td><td class=CDLDescription><b>integer</b> - unique index of the current load generator instance</td></tr><tr><td class=CDLEntry>v_IOT_bIdx</td><td class=CDLDescription><b>integer</b> - id of the IOT behavior defined by RIoT</td></tr><tr><td class=CDLEntry>v_IOT_LGen_loggingMaskId</td><td class=CDLDescription><b>integer</b> - id for RioT logging functions</td></tr></table><h4 class=CHeading>Instance databases</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>v_IOT_LGen_DataSamples_DB</td><td class=CDLDescription><LwM2M_DataSamples_DB> - Storing data samples for LwM2M smart objects</td></tr></table><h4 class=CHeading>Events, TestSteps</h4><p><a href="IOT_LGen_Steps-ttcn.html#IOT_LGen_Steps" class=LFile id=link7 onMouseOver="ShowTip(event, 'tt4', 'link7')" onMouseOut="HideTip('tt4')">IOT_LGen_Steps</a></p><h4 class=CHeading>Related Functions</h4><ul><li><a href="IOT_LGen_Functions-ttcn.html#f_IOT_LGen_init" class=LFunction id=link8 onMouseOver="ShowTip(event, 'tt6', 'link8')" onMouseOut="HideTip('tt6')">f_IOT_LGen_init</a> (in <b>charstring</b> pl_selfName, in <b>integer</b> p_idx, in <EPTF_ExecCtrl_CT> pl_ExecCtrlRef)</li><li><a href="IOT_LGen_Functions-ttcn.html#f_IOT_LGen_initSamples" class=LFunction id=link9 onMouseOver="ShowTip(event, 'tt7', 'link9')" onMouseOut="HideTip('tt7')">f_IOT_LGen_initSamples</a> (in <b>charstring</b> p_selfName)</li><li><a href="InfluxDB_Functions-ttcn.html#f_IOT_LGen_behavior" class=LFunction id=link10 onMouseOver="ShowTip(event, 'tt8', 'link10')" onMouseOut="HideTip('tt8')">f_IOT_LGen_behavior</a> (in <b>charstring</b> pl_selfName, in <b>integer</b> p_idx, in <EPTF_ExecCtrl_CT> pl_ExecCtrlRef)</li><li><a href="IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_VERBOSE" class=LFunction id=link11 onMouseOver="ShowTip(event, 'tt9', 'link11')" onMouseOut="HideTip('tt9')">f_IOT_LGen_Logging_VERBOSE</a> (in @lazy <b>charstring</b> pl_message)</li><li><a href="IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_DEBUG" class=LFunction id=link12 onMouseOver="ShowTip(event, 'tt10', 'link12')" onMouseOut="HideTip('tt10')">f_IOT_LGen_Logging_DEBUG</a> (in @lazy <b>charstring</b> pl_message)</li><li><a href="IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_WARNING" class=LFunction id=link13 onMouseOver="ShowTip(event, 'tt11', 'link13')" onMouseOut="HideTip('tt11')">f_IOT_LGen_Logging_WARNING</a> (in @lazy <b>charstring</b> pl_message)</li><li><a href="IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_ERROR" class=LFunction id=link14 onMouseOver="ShowTip(event, 'tt12', 'link14')" onMouseOut="HideTip('tt12')">f_IOT_LGen_Logging_ERROR</a> (in @lazy <b>charstring</b> pl_message)</li><li><a href="IOT_LGen_Functions-ttcn.html#f_IOT_COAP_LocalTransport_send" class=LFunction id=link15 onMouseOver="ShowTip(event, 'tt13', 'link15')" onMouseOut="HideTip('tt13')">f_IOT_COAP_LocalTransport_send</a> (in <EPTF_COAP_PDU> pl_msg)</li><li><a href="IOT_LGen_Functions-ttcn.html#f_IOT_COAP_LGen_receiveMessage" class=LFunction id=link16 onMouseOver="ShowTip(event, 'tt14', 'link16')" onMouseOut="HideTip('tt14')">f_IOT_COAP_LGen_receiveMessage</a> (in <EPTF_COAP_PDU> pl_message)</li><li><f_EPTF_COAP_PDU_to_Influx> ()</li></ul></div></div></div>
+
+</div><!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_entityType := "IOT_Entity"</td></tr></table></blockquote>Constant for the simulated IoT entity type</div></div><div class=CToolTip id="tt2"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_behaviorType := "IOT_Behavior"</td></tr></table></blockquote>Constant for the simulated IoT behavior type</div></div><div class=CToolTip id="tt3"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_LGen_CT</td></tr></table></blockquote>IoT load generator component</div></div><div class=CToolTip id="tt4"><div class=CFile>This module contains test step functions for an IoT load generator component</div></div><div class=CToolTip id="tt5"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_App_CT extends EPTF_Base_CT, EPTF_DsRestAPI_CT</td></tr></table></blockquote>RIoT application’s main component providing a REST API to the environment</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_init(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_idx,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_ExecCtrl_CT </td><td class="PParameter prettyprint " nowrap width=100%>pl_ExecCtrlRef</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>The main init function of the IOT_LGen_CT component type It initializes the integrated application libraries and defines its own c_IOT_behaviorType and test steps f_IOT_LGen_declareSteps The sample database of the smart objects are also filled in here by calling f_IOT_LGen_initSamples</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_IOT_LGen_initSamples(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_selfName</td><td class="PAfterParameters prettyprint "nowrap>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Initializes the <b>v_IOT_LGen_DataSamples_DB</b> database by loading a set of data samples</div></div><div class=CToolTip id="tt8"><div class=CFunction>The main initialization function for the InfluxDB_CT component type</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_VERBOSE(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the VERBOSE log level</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_DEBUG(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the DEBUG log level</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_WARNING(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the WARNING log level</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_ERROR(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the ERROR log level</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_COAP_LocalTransport_send(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_COAP_PDU </td><td class="PParameter prettyprint " nowrap width=100%>pl_msg</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Wrapper of f_IOT_COAP_LocalTransport_send, used for catching outgoing COAP messages.</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_COAP_LGen_receiveMessage(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_COAP_PDU </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Wrapper of f_EPTF_COAP_LGen_receiveMessage, used for catching and incoming COAP messages.</div></div><!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/files/IOT_LGen_Functions-ttcn.html b/apidoc/html/files/IOT_LGen_Functions-ttcn.html
new file mode 100644
index 0000000..5e99ad7
--- /dev/null
+++ b/apidoc/html/files/IOT_LGen_Functions-ttcn.html
@@ -0,0 +1,40 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IOT_LGen_Functions - IoT_Load_Test_Framework</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="IOT_LGen_Functions"></a>IOT_LGen_Functions</h1><div class=CBody><h4 class=CHeading>Purpose</h4><p>This module contains the functions of an IoT load generator component</p><h4 class=CHeading>See also</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_Definitions" class=LFile id=link16 onMouseOver="ShowTip(event, 'tt13', 'link16')" onMouseOut="HideTip('tt13')">IOT_LGen_Definitions</a></p><h4 class=CHeading>Module depends on</h4><ul><li><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_Definitions" class=LFile id=link17 onMouseOver="ShowTip(event, 'tt13', 'link17')" onMouseOut="HideTip('tt13')">IOT_LGen_Definitions</a></li><li><a href="IOT_LGen_Steps-ttcn.html#IOT_LGen_Steps" class=LFile id=link18 onMouseOver="ShowTip(event, 'tt14', 'link18')" onMouseOut="HideTip('tt14')">IOT_LGen_Steps</a></li><li><EPTF_MQTT_LGen_Definitions></li><li><EPTF_MQTT_LGen_Functions></li><li><EPTF_MQTT_LocalTransport_Functions></li><li><EPTF_COAP_LGen_Definitions></li><li><EPTF_COAP_LGen_Functions></li><li><EPTF_COAP_Transport_Definitions></li><li><EPTF_COAP_LocalTransport_Functions></li><li><EPTF_LwM2M_LGen_Definitions></li><li><EPTF_LwM2M_LGen_Functions></li><li><EPTF_LwM2M_CoapApplibTransport_Functions></li><li><EPTF_LwM2M_Object_Definitions></li><li><EPTF_LwM2M_Object_Functions></li><li><EPTF_HTTP_Definitions></li><li><EPTF_HTTP_Functions></li><li><EPTF_HTTP_Transport_Functions></li><li><EPTF_CLL_Common_Definitions></li><li><EPTF_CLL_Base_Functions></li><li><EPTF_CLL_ExecCtrl_Definitions></li><li><EPTF_CLL_ExecCtrlClient_Functions></li><li><EPTF_CLL_LGenBase_Functions></li><li><EPTF_CLL_LGenBase_ConfigFunctions></li><li><EPTF_CLL_Logging_Definitions></li><li><EPTF_CLL_Logging_Functions></li><li><InfluxDB_Definitions></li><li><InfluxDB_Functions></li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#IOT_LGen_Functions" >IOT_LGen_Functions</a></td><td class=SDescription>This module contains the functions of an IoT load generator component</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_behavior" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_IOT_LGen_behavior</a></td><td class=SDescription>The main service function of the <a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a> component type After initialization, this is that function that is continuously running until the RIoT application exits</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_init" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_IOT_LGen_init</a></td><td class=SDescription>The main init function of the <a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link4 onMouseOver="ShowTip(event, 'tt2', 'link4')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a> component type It initializes the integrated application libraries and defines its own <a href="IOT_LGen_Definitions-ttcn.html#c_IOT_behaviorType" class=LConstant id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">c_IOT_behaviorType</a> and test steps <a href="IOT_LGen_Steps-ttcn.html#f_IOT_LGen_declareSteps" class=LFunction id=link6 onMouseOver="ShowTip(event, 'tt5', 'link6')" onMouseOut="HideTip('tt5')">f_IOT_LGen_declareSteps</a> The sample database of the smart objects are also filled in here by calling <a href="#f_IOT_LGen_initSamples" class=LFunction id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">f_IOT_LGen_initSamples</a></td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_Logging_VERBOSE" id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">f_IOT_LGen_Logging_VERBOSE</a></td><td class=SDescription>Logging functions for the VERBOSE log level</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_Logging_DEBUG" id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">f_IOT_LGen_Logging_DEBUG</a></td><td class=SDescription>Logging functions for the DEBUG log level</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_Logging_WARNING" id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">f_IOT_LGen_Logging_WARNING</a></td><td class=SDescription>Logging functions for the WARNING log level</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_Logging_ERROR" id=link11 onMouseOver="ShowTip(event, 'tt10', 'link11')" onMouseOut="HideTip('tt10')">f_IOT_LGen_Logging_ERROR</a></td><td class=SDescription>Logging functions for the ERROR log level</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_COAP_LocalTransport_send" id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">f_IOT_COAP_LocalTransport_send</a></td><td class=SDescription>Wrapper of <a href="#f_IOT_COAP_LocalTransport_send" class=LFunction id=link13 onMouseOver="ShowTip(event, 'tt11', 'link13')" onMouseOut="HideTip('tt11')">f_IOT_COAP_LocalTransport_send</a>, used for catching outgoing COAP messages.</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_COAP_LGen_receiveMessage" id=link14 onMouseOver="ShowTip(event, 'tt12', 'link14')" onMouseOut="HideTip('tt12')">f_IOT_COAP_LGen_receiveMessage</a></td><td class=SDescription>Wrapper of <f_EPTF_COAP_LGen_receiveMessage>, used for catching and incoming COAP messages.</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_initSamples" id=link15 onMouseOver="ShowTip(event, 'tt6', 'link15')" onMouseOut="HideTip('tt6')">f_IOT_LGen_initSamples</a></td><td class=SDescription>Initializes the <b>v_IOT_LGen_DataSamples_DB</b> database by loading a set of data samples</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_behavior"></a>f_IOT_LGen_behavior</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_behavior(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_idx,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_ExecCtrl_CT </td><td class="PParameter prettyprint " nowrap width=100%>pl_ExecCtrlRef</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>The main service function of the <a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link19 onMouseOver="ShowTip(event, 'tt2', 'link19')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a> component type After initialization, this is that function that is continuously running until the RIoT application exits</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_name</td><td class=CDLDescription><b>in</b> <b>charstring</b> - the name for the component instance</td></tr></table><h4 class=CHeading>Related Type</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link20 onMouseOver="ShowTip(event, 'tt2', 'link20')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_init"></a>f_IOT_LGen_init</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_init(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_idx,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_ExecCtrl_CT </td><td class="PParameter prettyprint " nowrap width=100%>pl_ExecCtrlRef</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>The main init function of the <a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link21 onMouseOver="ShowTip(event, 'tt2', 'link21')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a> component type It initializes the integrated application libraries and defines its own <a href="IOT_LGen_Definitions-ttcn.html#c_IOT_behaviorType" class=LConstant id=link22 onMouseOver="ShowTip(event, 'tt4', 'link22')" onMouseOut="HideTip('tt4')">c_IOT_behaviorType</a> and test steps <a href="IOT_LGen_Steps-ttcn.html#f_IOT_LGen_declareSteps" class=LFunction id=link23 onMouseOver="ShowTip(event, 'tt5', 'link23')" onMouseOut="HideTip('tt5')">f_IOT_LGen_declareSteps</a> The sample database of the smart objects are also filled in here by calling <a href="#f_IOT_LGen_initSamples" class=LFunction id=link24 onMouseOver="ShowTip(event, 'tt6', 'link24')" onMouseOut="HideTip('tt6')">f_IOT_LGen_initSamples</a></p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_name</td><td class=CDLDescription><b>in</b> <b>charstring</b> - the name for the component instance</td></tr></table><h4 class=CHeading>Related Type</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link25 onMouseOver="ShowTip(event, 'tt2', 'link25')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_Logging_VERBOSE"></a>f_IOT_LGen_Logging_VERBOSE</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_VERBOSE(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Logging functions for the VERBOSE log level</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_message</td><td class=CDLDescription><b>in</b> <b>charstring</b> - string to be logged</td></tr></table><h4 class=CHeading>Related Types</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link26 onMouseOver="ShowTip(event, 'tt2', 'link26')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_Logging_DEBUG"></a>f_IOT_LGen_Logging_DEBUG</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_DEBUG(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Logging functions for the DEBUG log level</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_message</td><td class=CDLDescription><b>in</b> <b>charstring</b> - string to be logged</td></tr></table><h4 class=CHeading>Related Types</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link27 onMouseOver="ShowTip(event, 'tt2', 'link27')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_Logging_WARNING"></a>f_IOT_LGen_Logging_WARNING</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_WARNING(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Logging functions for the WARNING log level</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_message</td><td class=CDLDescription><b>in</b> <b>charstring</b> - string to be logged</td></tr></table><h4 class=CHeading>Related Types</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link28 onMouseOver="ShowTip(event, 'tt2', 'link28')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_Logging_ERROR"></a>f_IOT_LGen_Logging_ERROR</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_ERROR(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Logging functions for the ERROR log level</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_message</td><td class=CDLDescription><b>in</b> <b>charstring</b> - string to be logged</td></tr></table><h4 class=CHeading>Related Types</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link29 onMouseOver="ShowTip(event, 'tt2', 'link29')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_COAP_LocalTransport_send"></a>f_IOT_COAP_LocalTransport_send</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_COAP_LocalTransport_send(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_COAP_PDU </td><td class="PParameter prettyprint " nowrap width=100%>pl_msg</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Wrapper of <a href="#f_IOT_COAP_LocalTransport_send" class=LFunction id=link30 onMouseOver="ShowTip(event, 'tt11', 'link30')" onMouseOut="HideTip('tt11')">f_IOT_COAP_LocalTransport_send</a>, used for catching outgoing COAP messages.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_msg</td><td class=CDLDescription><b>in</b> <EPTF_COAP_PDU> - outgoing message</td></tr></table><h4 class=CHeading>Related Types</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link31 onMouseOver="ShowTip(event, 'tt2', 'link31')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_COAP_LGen_receiveMessage"></a>f_IOT_COAP_LGen_receiveMessage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_COAP_LGen_receiveMessage(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_COAP_PDU </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Wrapper of <f_EPTF_COAP_LGen_receiveMessage>, used for catching and incoming COAP messages.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_message</td><td class=CDLDescription><b>in</b> <EPTF_COAP_PDU> - incoming message</td></tr></table><h4 class=CHeading>Related Types</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link32 onMouseOver="ShowTip(event, 'tt2', 'link32')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_initSamples"></a>f_IOT_LGen_initSamples</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_IOT_LGen_initSamples(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_selfName</td><td class="PAfterParameters prettyprint "nowrap>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Initializes the <b>v_IOT_LGen_DataSamples_DB</b> database by loading a set of data samples</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>p_selfName</td><td class=CDLDescription><b>in charstring</b> - load generator instance’s name</td></tr></table><h4 class=CHeading>Related Types</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link33 onMouseOver="ShowTip(event, 'tt2', 'link33')" onMouseOut="HideTip('tt2')">IOT_LGen_CT</a></p></div></div></div>
+
+</div><!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_behavior(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_idx,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_ExecCtrl_CT </td><td class="PParameter prettyprint " nowrap width=100%>pl_ExecCtrlRef</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>The main service function of the IOT_LGen_CT component type After initialization, this is that function that is continuously running until the RIoT application exits</div></div><div class=CToolTip id="tt2"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_LGen_CT</td></tr></table></blockquote>IoT load generator component</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_init(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_idx,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_ExecCtrl_CT </td><td class="PParameter prettyprint " nowrap width=100%>pl_ExecCtrlRef</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>The main init function of the IOT_LGen_CT component type It initializes the integrated application libraries and defines its own c_IOT_behaviorType and test steps f_IOT_LGen_declareSteps The sample database of the smart objects are also filled in here by calling f_IOT_LGen_initSamples</div></div><div class=CToolTip id="tt4"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_behaviorType := "IOT_Behavior"</td></tr></table></blockquote>Constant for the simulated IoT behavior type</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_IOT_LGen_declareSteps() runs on IOT_LGen_CT</td></tr></table></blockquote>Function to declare all the RIoT application related test steps</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_IOT_LGen_initSamples(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_selfName</td><td class="PAfterParameters prettyprint "nowrap>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Initializes the <b>v_IOT_LGen_DataSamples_DB</b> database by loading a set of data samples</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_VERBOSE(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the VERBOSE log level</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_DEBUG(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the DEBUG log level</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_WARNING(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the WARNING log level</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_ERROR(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the ERROR log level</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_COAP_LocalTransport_send(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_COAP_PDU </td><td class="PParameter prettyprint " nowrap width=100%>pl_msg</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Wrapper of f_IOT_COAP_LocalTransport_send, used for catching outgoing COAP messages.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_COAP_LGen_receiveMessage(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_COAP_PDU </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Wrapper of f_EPTF_COAP_LGen_receiveMessage, used for catching and incoming COAP messages.</div></div><div class=CToolTip id="tt13"><div class=CFile>This module contains the definitions for an IoT load generator component</div></div><div class=CToolTip id="tt14"><div class=CFile>This module contains test step functions for an IoT load generator component</div></div><!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/files/IOT_LGen_Steps-ttcn.html b/apidoc/html/files/IOT_LGen_Steps-ttcn.html
new file mode 100644
index 0000000..c0c4d17
--- /dev/null
+++ b/apidoc/html/files/IOT_LGen_Steps-ttcn.html
@@ -0,0 +1,118 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IOT_LGen_Steps - IoT_Load_Test_Framework</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="IOT_LGen_Steps"></a>IOT_LGen_Steps</h1><div class=CBody><h4 class=CHeading>Purpose</h4><p>This module contains test step functions for an IoT load generator component</p><h4 class=CHeading>See also</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_Definitions" class=LFile id=link49 onMouseOver="ShowTip(event, 'tt49', 'link49')" onMouseOut="HideTip('tt49')">IOT_LGen_Definitions</a></p><h4 class=CHeading>Module depends on</h4><ul><li><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_Definitions" class=LFile id=link50 onMouseOver="ShowTip(event, 'tt49', 'link50')" onMouseOut="HideTip('tt49')">IOT_LGen_Definitions</a></li><li><EPTF_MQTT_LGen_Functions></li><li><EPTF_COAP_LGen_Definitions></li><li><EPTF_COAP_LGen_Functions></li><li><EPTF_LwM2M_LGen_Functions></li><li><EPTF_LwM2M_Object_Definitions></li><li><EPTF_LwM2M_Object_Functions></li><li><EPTF_HTTP_Functions></li><li><EPTF_HTTP_Transport_Functions></li><li><EPTF_CLL_Common_Definitions></li><li><EPTF_CLL_ExecCtrlClient_Functions></li><li><EPTF_CLL_LGenBase_Definitions></li><li><EPTF_CLL_LGenBase_StepFunctions></li><li><EPTF_CLL_LGenBase_ConfigFunctions></li><li><EPTF_CLL_Variable_Definitions></li><li><EPTF_CLL_Variable_Functions></li></ul><h4 class=CHeading>Test Steps [Generic]</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>testcase finished</td><td class=CDLDescription><a href="#f_IOT_LGen_step_tcFinished_withVerdict" class=LFunction id=link51 onMouseOver="ShowTip(event, 'tt40', 'link51')" onMouseOut="HideTip('tt40')">f_IOT_LGen_step_tcFinished_withVerdict</a>, <a href="#c_IOT_stepName_tcFinished_withVerdict" class=LConstant id=link52 onMouseOver="ShowTip(event, 'tt1', 'link52')" onMouseOut="HideTip('tt1')">c_IOT_stepName_tcFinished_withVerdict</a></td></tr><tr><td class=CDLEntry>print</td><td class=CDLDescription><a href="#f_IOT_LGen_step_print_stringParam" class=LFunction id=link53 onMouseOver="ShowTip(event, 'tt41', 'link53')" onMouseOut="HideTip('tt41')">f_IOT_LGen_step_print_stringParam</a>, <a href="#c_IOT_stepName_print_stringParam" class=LConstant id=link54 onMouseOver="ShowTip(event, 'tt2', 'link54')" onMouseOut="HideTip('tt2')">c_IOT_stepName_print_stringParam</a></td></tr><tr><td class=CDLEntry>RND generator</td><td class=CDLDescription><a href="#f_IOT_LGen_step_genRndValue_varParams" class=LFunction id=link55 onMouseOver="ShowTip(event, 'tt48', 'link55')" onMouseOut="HideTip('tt48')">f_IOT_LGen_step_genRndValue_varParams</a>, <a href="#c_IOT_stepName_genRndValue_varParams" class=LConstant id=link56 onMouseOver="ShowTip(event, 'tt3', 'link56')" onMouseOut="HideTip('tt3')">c_IOT_stepName_genRndValue_varParams</a></td></tr></table><h4 class=CHeading>Test Steps [COAP]</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>set local address</td><td class=CDLDescription><a href="#f_IOT_LGen_step_COAP_setLocalAddress_byVars" class=LFunction id=link57 onMouseOver="ShowTip(event, 'tt26', 'link57')" onMouseOut="HideTip('tt26')">f_IOT_LGen_step_COAP_setLocalAddress_byVars</a>, <a href="#c_IOT_stepName_COAP_setLocalAddress_byVars" class=LConstant id=link58 onMouseOver="ShowTip(event, 'tt4', 'link58')" onMouseOut="HideTip('tt4')">c_IOT_stepName_COAP_setLocalAddress_byVars</a></td></tr></table><h4 class=CHeading>Test Steps [LwM2M]</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>set client name</td><td class=CDLDescription><a href="#f_IOT_LGen_step_LwM2M_setClientNameInRegister" class=LFunction id=link59 onMouseOver="ShowTip(event, 'tt29', 'link59')" onMouseOut="HideTip('tt29')">f_IOT_LGen_step_LwM2M_setClientNameInRegister</a>, <a href="#c_IOT_stepName_LwM2M_setClientNameInRegister" class=LConstant id=link60 onMouseOver="ShowTip(event, 'tt7', 'link60')" onMouseOut="HideTip('tt7')">c_IOT_stepName_LwM2M_setClientNameInRegister</a> <a href="#f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar" class=LFunction id=link61 onMouseOver="ShowTip(event, 'tt30', 'link61')" onMouseOut="HideTip('tt30')">f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar</a>, <a href="#c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar" class=LConstant id=link62 onMouseOver="ShowTip(event, 'tt8', 'link62')" onMouseOut="HideTip('tt8')">c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar</a></td></tr></table><h4 class=CHeading>Test Steps [MQTT]</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>set local address</td><td class=CDLDescription><a href="#f_IOT_LGen_step_MQTT_setLocalAddress_byVars" class=LFunction id=link63 onMouseOver="ShowTip(event, 'tt27', 'link63')" onMouseOut="HideTip('tt27')">f_IOT_LGen_step_MQTT_setLocalAddress_byVars</a>, <a href="#c_IOT_stepName_MQTT_setLocalAddress_byVars" class=LConstant id=link64 onMouseOver="ShowTip(event, 'tt5', 'link64')" onMouseOut="HideTip('tt5')">c_IOT_stepName_MQTT_setLocalAddress_byVars</a> <a href="#f_IOT_LGen_step_MQTT_setClientId_stringParam" class=LFunction id=link65 onMouseOver="ShowTip(event, 'tt28', 'link65')" onMouseOut="HideTip('tt28')">f_IOT_LGen_step_MQTT_setClientId_stringParam</a>, <a href="#c_IOT_stepName_MQTT_setClientId_stringParam" class=LConstant id=link66 onMouseOver="ShowTip(event, 'tt6', 'link66')" onMouseOut="HideTip('tt6')">c_IOT_stepName_MQTT_setClientId_stringParam</a></td></tr></table><h4 class=CHeading>Test Steps [HTTP]</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>init entity context</td><td class=CDLDescription><a href="#f_IOT_LGen_step_HTTP_initEntityContext" class=LFunction id=link67 onMouseOver="ShowTip(event, 'tt31', 'link67')" onMouseOut="HideTip('tt31')">f_IOT_LGen_step_HTTP_initEntityContext</a>, <a href="#c_IOT_stepName_HTTP_initEntityContext" class=LConstant id=link68 onMouseOver="ShowTip(event, 'tt9', 'link68')" onMouseOut="HideTip('tt9')">c_IOT_stepName_HTTP_initEntityContext</a></td></tr><tr><td class=CDLEntry>open connection</td><td class=CDLDescription><a href="#f_IOT_LGen_step_HTTP_openConnection_byVars" class=LFunction id=link69 onMouseOver="ShowTip(event, 'tt32', 'link69')" onMouseOut="HideTip('tt32')">f_IOT_LGen_step_HTTP_openConnection_byVars</a>, <a href="#c_IOT_stepName_HTTP_openConnection_byVars" class=LConstant id=link70 onMouseOver="ShowTip(event, 'tt10', 'link70')" onMouseOut="HideTip('tt10')">c_IOT_stepName_HTTP_openConnection_byVars</a></td></tr><tr><td class=CDLEntry>close connection</td><td class=CDLDescription><a href="#f_IOT_LGen_step_HTTP_closeConnection" class=LFunction id=link71 onMouseOver="ShowTip(event, 'tt33', 'link71')" onMouseOut="HideTip('tt33')">f_IOT_LGen_step_HTTP_closeConnection</a>, <a href="#c_IOT_stepName_HTTP_closeConnection" class=LConstant id=link72 onMouseOver="ShowTip(event, 'tt11', 'link72')" onMouseOut="HideTip('tt11')">c_IOT_stepName_HTTP_closeConnection</a></td></tr><tr><td class=CDLEntry>set HTTP method</td><td class=CDLDescription><a href="#f_IOT_LGen_step_HTTP_setMethod_stringParam" class=LFunction id=link73 onMouseOver="ShowTip(event, 'tt37', 'link73')" onMouseOut="HideTip('tt37')">f_IOT_LGen_step_HTTP_setMethod_stringParam</a>, <a href="#c_IOT_stepName_HTTP_setMethod_stringParam" class=LConstant id=link74 onMouseOver="ShowTip(event, 'tt12', 'link74')" onMouseOut="HideTip('tt12')">c_IOT_stepName_HTTP_setMethod_stringParam</a></td></tr><tr><td class=CDLEntry>set HTTP URI</td><td class=CDLDescription><a href="#f_IOT_LGen_step_HTTP_setUri_stringParam" class=LFunction id=link75 onMouseOver="ShowTip(event, 'tt34', 'link75')" onMouseOut="HideTip('tt34')">f_IOT_LGen_step_HTTP_setUri_stringParam</a>, <a href="#c_IOT_stepName_HTTP_addToUri_stringParam" class=LConstant id=link76 onMouseOver="ShowTip(event, 'tt14', 'link76')" onMouseOut="HideTip('tt14')">c_IOT_stepName_HTTP_addToUri_stringParam</a> <a href="#f_IOT_LGen_step_HTTP_addToUri_byVars" class=LFunction id=link77 onMouseOver="ShowTip(event, 'tt36', 'link77')" onMouseOut="HideTip('tt36')">f_IOT_LGen_step_HTTP_addToUri_byVars</a>, <a href="#c_IOT_stepName_HTTP_addToUri_byVars" class=LConstant id=link78 onMouseOver="ShowTip(event, 'tt15', 'link78')" onMouseOut="HideTip('tt15')">c_IOT_stepName_HTTP_addToUri_byVars</a></td></tr><tr><td class=CDLEntry>add HTTP Host header</td><td class=CDLDescription><a href="#f_IOT_LGen_step_HTTP_addHostHeader_byVars" class=LFunction id=link79 onMouseOver="ShowTip(event, 'tt38', 'link79')" onMouseOut="HideTip('tt38')">f_IOT_LGen_step_HTTP_addHostHeader_byVars</a>, <a href="#c_IOT_stepName_HTTP_addHostHeader_byVars" class=LConstant id=link80 onMouseOver="ShowTip(event, 'tt16', 'link80')" onMouseOut="HideTip('tt16')">c_IOT_stepName_HTTP_addHostHeader_byVars</a></td></tr></table><h4 class=CHeading>Test Steps [Leshan]</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>get client name</td><td class=CDLDescription><a href="#f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar" class=LFunction id=link81 onMouseOver="ShowTip(event, 'tt39', 'link81')" onMouseOut="HideTip('tt39')">f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar</a>, <a href="#c_IOT_stepName_Leshan_getClientFromResponse_intoVar" class=LConstant id=link82 onMouseOver="ShowTip(event, 'tt17', 'link82')" onMouseOut="HideTip('tt17')">c_IOT_stepName_Leshan_getClientFromResponse_intoVar</a></td></tr></table><h4 class=CHeading>Test Steps [RegDereg FSM]</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>init resource values</td><td class=CDLDescription><a href="#f_IOT_LGen_step_FSM_RegDereg_initResourceValues" class=LFunction id=link83 onMouseOver="ShowTip(event, 'tt42', 'link83')" onMouseOut="HideTip('tt42')">f_IOT_LGen_step_FSM_RegDereg_initResourceValues</a>, <a href="#c_IOT_stepName_FSM_RegDereg_initResourceValues" class=LConstant id=link84 onMouseOver="ShowTip(event, 'tt18', 'link84')" onMouseOut="HideTip('tt18')">c_IOT_stepName_FSM_RegDereg_initResourceValues</a></td></tr></table><h4 class=CHeading>Test Steps [SimDev FSM]</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>create resources</td><td class=CDLDescription><a href="#f_IOT_LGen_step_FSM_SimDevice_createResources" class=LFunction id=link85 onMouseOver="ShowTip(event, 'tt43', 'link85')" onMouseOut="HideTip('tt43')">f_IOT_LGen_step_FSM_SimDevice_createResources</a>, <a href="#c_IOT_stepName_FSM_SimDevice_createResources" class=LConstant id=link86 onMouseOver="ShowTip(event, 'tt19', 'link86')" onMouseOut="HideTip('tt19')">c_IOT_stepName_FSM_SimDevice_createResources</a></td></tr><tr><td class=CDLEntry>init resource values</td><td class=CDLDescription><a href="#f_IOT_LGen_step_FSM_SimDevice_initResourceValues" class=LFunction id=link87 onMouseOver="ShowTip(event, 'tt45', 'link87')" onMouseOut="HideTip('tt45')">f_IOT_LGen_step_FSM_SimDevice_initResourceValues</a>, <a href="#c_IOT_stepName_FSM_SimDevice_initResourceValues" class=LConstant id=link88 onMouseOver="ShowTip(event, 'tt20', 'link88')" onMouseOut="HideTip('tt20')">c_IOT_stepName_FSM_SimDevice_initResourceValues</a></td></tr><tr><td class=CDLEntry>init transport</td><td class=CDLDescription><a href="#f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar" class=LFunction id=link89 onMouseOver="ShowTip(event, 'tt44', 'link89')" onMouseOut="HideTip('tt44')">f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar</a>, <a href="#c_IOT_stepName_FSM_SimDevice_initTransport_boolVar" class=LConstant id=link90 onMouseOver="ShowTip(event, 'tt21', 'link90')" onMouseOut="HideTip('tt21')">c_IOT_stepName_FSM_SimDevice_initTransport_boolVar</a></td></tr><tr><td class=CDLEntry>update resource values</td><td class=CDLDescription><a href="#f_IOT_LGen_step_FSM_SimDevice_updateResourceValues" class=LFunction id=link91 onMouseOver="ShowTip(event, 'tt46', 'link91')" onMouseOut="HideTip('tt46')">f_IOT_LGen_step_FSM_SimDevice_updateResourceValues</a>, <a href="#c_IOT_stepName_FSM_SimDevice_updateResourceValues" class=LConstant id=link92 onMouseOver="ShowTip(event, 'tt22', 'link92')" onMouseOut="HideTip('tt22')">c_IOT_stepName_FSM_SimDevice_updateResourceValues</a></td></tr><tr><td class=CDLEntry>handle EXECUTE</td><td class=CDLDescription><a href="#f_IOT_LGen_step_FSM_SimDevice_handleExecute" class=LFunction id=link93 onMouseOver="ShowTip(event, 'tt47', 'link93')" onMouseOut="HideTip('tt47')">f_IOT_LGen_step_FSM_SimDevice_handleExecute</a>, <a href="#c_IOT_stepName_FSM_SimDevice_handleExecute" class=LConstant id=link94 onMouseOver="ShowTip(event, 'tt23', 'link94')" onMouseOut="HideTip('tt23')">c_IOT_stepName_FSM_SimDevice_handleExecute</a></td></tr></table><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#IOT_LGen_Steps" >IOT_LGen_Steps</a></td><td class=SDescription>This module contains test step functions for an IoT load generator component</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_stepName_tcFinished_withVerdict" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">c_IOT_stepName_tcFinished_withVerdict</a></td><td class=SDescription>Charstring constant for the RIoT test case finished test step</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_IOT_stepName_print_stringParam" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">c_IOT_stepName_print_stringParam</a></td><td class=SDescription>Charstring constant for the RIoT print string test step</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_stepName_genRndValue_varParams" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">c_IOT_stepName_genRndValue_varParams</a></td><td class=SDescription>Charstring constant for the RIoT random number generator test step</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_IOT_stepName_COAP_setLocalAddress_byVars" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">c_IOT_stepName_COAP_setLocalAddress_byVars</a></td><td class=SDescription>Charstring constant for setting the COAP local address test step</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_stepName_MQTT_setLocalAddress_byVars" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">c_IOT_stepName_MQTT_setLocalAddress_byVars</a></td><td class=SDescription>Charstring constant for setting the MQTT local address test step</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_IOT_stepName_MQTT_setClientId_stringParam" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">c_IOT_stepName_MQTT_setClientId_stringParam</a></td><td class=SDescription>Charstring constant for the test step that sets the MQTT client id</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_stepName_LwM2M_setClientNameInRegister" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">c_IOT_stepName_LwM2M_setClientNameInRegister</a></td><td class=SDescription>Charstring constant for the test step that sets the LwM2M endpoint name in the Register message</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar</a></td><td class=SDescription>Charstring constant for the test step that sets the LwM2M endpoint name in the Register message</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_stepName_HTTP_initEntityContext" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">c_IOT_stepName_HTTP_initEntityContext</a></td><td class=SDescription>Charstring constant for the test step that initializes the HTTP entity context</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_IOT_stepName_HTTP_openConnection_byVars" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">c_IOT_stepName_HTTP_openConnection_byVars</a></td><td class=SDescription>Charstring constant for the test step that opens an HTTP connection</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_stepName_HTTP_closeConnection" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">c_IOT_stepName_HTTP_closeConnection</a></td><td class=SDescription>Charstring constant for the test step that closes the opened HTTP connection</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_IOT_stepName_HTTP_setMethod_stringParam" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">c_IOT_stepName_HTTP_setMethod_stringParam</a></td><td class=SDescription>Charstring constant for the test step that sets the HTTP method for the HTTP message to be sent</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_stepName_HTTP_setUri_stringParam" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">c_IOT_stepName_HTTP_setUri_stringParam</a></td><td class=SDescription>Charstring constant for the test step that sets the HTTP request URI for the HTTP message to be sent</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_IOT_stepName_HTTP_addToUri_stringParam" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">c_IOT_stepName_HTTP_addToUri_stringParam</a></td><td class=SDescription>Charstring constant for the test step that concatenates a string to the HTTP request URI for the HTTP message to be sent</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_stepName_HTTP_addToUri_byVars" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">c_IOT_stepName_HTTP_addToUri_byVars</a></td><td class=SDescription>Charstring constant for the test step that concatenates a string to the HTTP request URI for the HTTP message to be sent</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_IOT_stepName_HTTP_addHostHeader_byVars" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">c_IOT_stepName_HTTP_addHostHeader_byVars</a></td><td class=SDescription>Charstring constant for the test step that adds a Host header to the HTTP message to be sent</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_stepName_Leshan_getClientFromResponse_intoVar" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">c_IOT_stepName_Leshan_getClientFromResponse_intoVar</a></td><td class=SDescription>Charstring constant for the test step that loads the client name into a variable from an HTTP response</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_IOT_stepName_FSM_RegDereg_initResourceValues" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">c_IOT_stepName_FSM_RegDereg_initResourceValues</a></td><td class=SDescription>Charstring constant for the test step that inits the resources of the RegDereg FSM</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_stepName_FSM_SimDevice_createResources" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">c_IOT_stepName_FSM_SimDevice_createResources</a></td><td class=SDescription>Charstring constant for the test step that creates the resources of the SimDevice FSM</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_IOT_stepName_FSM_SimDevice_initResourceValues" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">c_IOT_stepName_FSM_SimDevice_initResourceValues</a></td><td class=SDescription>Charstring constant for the test step that inits the resources of the SimDevice FSM</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_stepName_FSM_SimDevice_initTransport_boolVar" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">c_IOT_stepName_FSM_SimDevice_initTransport_boolVar</a></td><td class=SDescription>Charstring constant for the test step that inits the transport (UDP, or DTLS-PSK) for the SimDev FSM’s LwM2M protocol</td></tr><tr class="SConstant"><td class=SEntry><a href="#c_IOT_stepName_FSM_SimDevice_updateResourceValues" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">c_IOT_stepName_FSM_SimDevice_updateResourceValues</a></td><td class=SDescription>Charstring constant for the test step that updates the resource values of the SimDevice FSM</td></tr><tr class="SConstant SMarked"><td class=SEntry><a href="#c_IOT_stepName_FSM_SimDevice_handleExecute" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">c_IOT_stepName_FSM_SimDevice_handleExecute</a></td><td class=SDescription>Charstring constant for the test step that handles LwM2M EXECUTE requests on the SimDevice FSM</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_declareSteps" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">f_IOT_LGen_declareSteps</a></td><td class=SDescription>Function to declare all the RIoT application related test steps</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_getEntityIdxinEntityGroup" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">f_IOT_LGen_getEntityIdxinEntityGroup</a></td><td class=SDescription>Calculates the index of the entity inside its entity group</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_step_COAP_setLocalAddress_byVars" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">f_IOT_LGen_step_COAP_setLocalAddress_byVars</a></td><td class=SDescription>Test step to set the local address in the COAP entity context <COAP_EntityCtx>. </td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_step_MQTT_setLocalAddress_byVars" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">f_IOT_LGen_step_MQTT_setLocalAddress_byVars</a></td><td class=SDescription>Test step to set the local address in the MQTT entity context. </td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_step_MQTT_setClientId_stringParam" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">f_IOT_LGen_step_MQTT_setClientId_stringParam</a></td><td class=SDescription>Test step to set the client id the MQTT entity context. </td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_step_LwM2M_setClientNameInRegister" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">f_IOT_LGen_step_LwM2M_setClientNameInRegister</a></td><td class=SDescription>Test step to set the endpoint client name in the LWM2M Register message that must be previously loaded into <b>v_LwM2M_msgToSend</b>. </td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')">f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar</a></td><td class=SDescription>Test step to set the endpoint client name in the LWM2M Register message that must be previously loaded into <b>v_LwM2M_msgToSend</b>. </td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_step_HTTP_initEntityContext" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')">f_IOT_LGen_step_HTTP_initEntityContext</a></td><td class=SDescription>Test step to initialize the HTTP entity context by calling <f_EPTF_HTTP_setEntityContext>.</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_step_HTTP_openConnection_byVars" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')">f_IOT_LGen_step_HTTP_openConnection_byVars</a></td><td class=SDescription>Test step to open a TCP connection for HTTP. </td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_step_HTTP_closeConnection" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')">f_IOT_LGen_step_HTTP_closeConnection</a></td><td class=SDescription>Test step to close an already opened TCP connection for HTTP</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_step_HTTP_setUri_stringParam" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')">f_IOT_LGen_step_HTTP_setUri_stringParam</a></td><td class=SDescription></td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_step_HTTP_addToUri_stringParam" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')">f_IOT_LGen_step_HTTP_addToUri_stringParam</a></td><td class=SDescription></td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_step_HTTP_addToUri_byVars" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')">f_IOT_LGen_step_HTTP_addToUri_byVars</a></td><td class=SDescription></td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_step_HTTP_setMethod_stringParam" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')">f_IOT_LGen_step_HTTP_setMethod_stringParam</a></td><td class=SDescription></td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_step_HTTP_addHostHeader_byVars" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')">f_IOT_LGen_step_HTTP_addHostHeader_byVars</a></td><td class=SDescription>Test step to add a Host header to the HTTP messager to be sent. </td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')">f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar</a></td><td class=SDescription>Test step to fetch the client name of an HTTP response sent by Leshan into a variable</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_step_tcFinished_withVerdict" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')">f_IOT_LGen_step_tcFinished_withVerdict</a></td><td class=SDescription>Test step to set the final verdict reported by the FSM using a verdict variable as parameter.</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_step_print_stringParam" id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')">f_IOT_LGen_step_print_stringParam</a></td><td class=SDescription>Test step to print a string parameter as a TTCN-3 action() statement</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_step_FSM_RegDereg_initResourceValues" id=link42 onMouseOver="ShowTip(event, 'tt42', 'link42')" onMouseOut="HideTip('tt42')">f_IOT_LGen_step_FSM_RegDereg_initResourceValues</a></td><td class=SDescription>Test step to init resources of the RegDereg FSM</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_step_FSM_SimDevice_createResources" id=link43 onMouseOver="ShowTip(event, 'tt43', 'link43')" onMouseOut="HideTip('tt43')">f_IOT_LGen_step_FSM_SimDevice_createResources</a></td><td class=SDescription>Test step to create resources of the SimDevice FSM</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar" id=link44 onMouseOver="ShowTip(event, 'tt44', 'link44')" onMouseOut="HideTip('tt44')">f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar</a></td><td class=SDescription>Test step to initialize the COAP transport (either UDP, or DTLS-PSK) of the SimDevice FSM. </td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_step_FSM_SimDevice_initResourceValues" id=link45 onMouseOver="ShowTip(event, 'tt45', 'link45')" onMouseOut="HideTip('tt45')">f_IOT_LGen_step_FSM_SimDevice_initResourceValues</a></td><td class=SDescription>Test step to init the resource values of the SimDevice FSM</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_step_FSM_SimDevice_updateResourceValues" id=link46 onMouseOver="ShowTip(event, 'tt46', 'link46')" onMouseOut="HideTip('tt46')">f_IOT_LGen_step_FSM_SimDevice_updateResourceValues</a></td><td class=SDescription>Test step to update the resource values of the SimDevice FSM</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_step_FSM_SimDevice_handleExecute" id=link47 onMouseOver="ShowTip(event, 'tt47', 'link47')" onMouseOut="HideTip('tt47')">f_IOT_LGen_step_FSM_SimDevice_handleExecute</a></td><td class=SDescription>Test step to handle incoming LwM2M EXECUTE request in the SimDevice FSM</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_IOT_LGen_step_genRndValue_varParams" id=link48 onMouseOver="ShowTip(event, 'tt48', 'link48')" onMouseOut="HideTip('tt48')">f_IOT_LGen_step_genRndValue_varParams</a></td><td class=SDescription>Test step to generate a random number and load it into an integer variable. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_tcFinished_withVerdict"></a>c_IOT_stepName_tcFinished_withVerdict</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_tcFinished_withVerdict := "IOT App: tcFinished_withVerdict"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the RIoT test case finished test step</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_tcFinished_withVerdict" class=LFunction id=link95 onMouseOver="ShowTip(event, 'tt40', 'link95')" onMouseOut="HideTip('tt40')">f_IOT_LGen_step_tcFinished_withVerdict</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_print_stringParam"></a>c_IOT_stepName_print_stringParam</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_print_stringParam := "IOT App: print_stringParam"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the RIoT print string test step</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_print_stringParam" class=LFunction id=link96 onMouseOver="ShowTip(event, 'tt41', 'link96')" onMouseOut="HideTip('tt41')">f_IOT_LGen_step_print_stringParam</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_genRndValue_varParams"></a>c_IOT_stepName_genRndValue_varParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_genRndValue_varParams := "IOT App: genRndValue_varParams"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the RIoT random number generator test step</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_genRndValue_varParams" class=LFunction id=link97 onMouseOver="ShowTip(event, 'tt48', 'link97')" onMouseOut="HideTip('tt48')">f_IOT_LGen_step_genRndValue_varParams</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_COAP_setLocalAddress_byVars"></a>c_IOT_stepName_COAP_setLocalAddress_byVars</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_COAP_setLocalAddress_byVars := "IOT App COAP: setLocalAddress_byVars"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for setting the COAP local address test step</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_COAP_setLocalAddress_byVars" class=LFunction id=link98 onMouseOver="ShowTip(event, 'tt26', 'link98')" onMouseOut="HideTip('tt26')">f_IOT_LGen_step_COAP_setLocalAddress_byVars</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_MQTT_setLocalAddress_byVars"></a>c_IOT_stepName_MQTT_setLocalAddress_byVars</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_MQTT_setLocalAddress_byVars := "IOT App MQTT: setLocalAddress_byVars"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for setting the MQTT local address test step</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_MQTT_setLocalAddress_byVars" class=LFunction id=link99 onMouseOver="ShowTip(event, 'tt27', 'link99')" onMouseOut="HideTip('tt27')">f_IOT_LGen_step_MQTT_setLocalAddress_byVars</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_MQTT_setClientId_stringParam"></a>c_IOT_stepName_MQTT_setClientId_stringParam</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_MQTT_setClientId_stringParam := "IOT App MQTT: setClientId_stringParam"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that sets the MQTT client id</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_MQTT_setClientId_stringParam" class=LFunction id=link100 onMouseOver="ShowTip(event, 'tt28', 'link100')" onMouseOut="HideTip('tt28')">f_IOT_LGen_step_MQTT_setClientId_stringParam</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_LwM2M_setClientNameInRegister"></a>c_IOT_stepName_LwM2M_setClientNameInRegister</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_LwM2M_setClientNameInRegister := "IOT App LwM2M: setClientNameInRegister"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that sets the LwM2M endpoint name in the Register message</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_LwM2M_setClientNameInRegister" class=LFunction id=link101 onMouseOver="ShowTip(event, 'tt29', 'link101')" onMouseOut="HideTip('tt29')">f_IOT_LGen_step_LwM2M_setClientNameInRegister</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar"></a>c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar := "IOT App LwM2M: setClientNameInRegister_stringVar"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that sets the LwM2M endpoint name in the Register message</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar" class=LFunction id=link102 onMouseOver="ShowTip(event, 'tt30', 'link102')" onMouseOut="HideTip('tt30')">f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_HTTP_initEntityContext"></a>c_IOT_stepName_HTTP_initEntityContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_initEntityContext := "IOT App HTTP: initEntityContext"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that initializes the HTTP entity context</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_HTTP_initEntityContext" class=LFunction id=link103 onMouseOver="ShowTip(event, 'tt31', 'link103')" onMouseOut="HideTip('tt31')">f_IOT_LGen_step_HTTP_initEntityContext</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_HTTP_openConnection_byVars"></a>c_IOT_stepName_HTTP_openConnection_byVars</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_openConnection_byVars := "IOT App HTTP: openConnection_byVars"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that opens an HTTP connection</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_HTTP_openConnection_byVars" class=LFunction id=link104 onMouseOver="ShowTip(event, 'tt32', 'link104')" onMouseOut="HideTip('tt32')">f_IOT_LGen_step_HTTP_openConnection_byVars</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_HTTP_closeConnection"></a>c_IOT_stepName_HTTP_closeConnection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_closeConnection := "IOT App HTTP: closeConnection"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that closes the opened HTTP connection</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_HTTP_closeConnection" class=LFunction id=link105 onMouseOver="ShowTip(event, 'tt33', 'link105')" onMouseOut="HideTip('tt33')">f_IOT_LGen_step_HTTP_closeConnection</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_HTTP_setMethod_stringParam"></a>c_IOT_stepName_HTTP_setMethod_stringParam</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_setMethod_stringParam := "IOT App HTTP: setMethod_stringParam"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that sets the HTTP method for the HTTP message to be sent</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_HTTP_setMethod_stringParam" class=LFunction id=link106 onMouseOver="ShowTip(event, 'tt37', 'link106')" onMouseOut="HideTip('tt37')">f_IOT_LGen_step_HTTP_setMethod_stringParam</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_HTTP_setUri_stringParam"></a>c_IOT_stepName_HTTP_setUri_stringParam</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_setUri_stringParam := "IOT App HTTP: setUri_stringParam"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that sets the HTTP request URI for the HTTP message to be sent</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_HTTP_setUri_stringParam" class=LFunction id=link107 onMouseOver="ShowTip(event, 'tt34', 'link107')" onMouseOut="HideTip('tt34')">f_IOT_LGen_step_HTTP_setUri_stringParam</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_HTTP_addToUri_stringParam"></a>c_IOT_stepName_HTTP_addToUri_stringParam</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_addToUri_stringParam := "IOT App HTTP: addToUri_stringParam"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that concatenates a string to the HTTP request URI for the HTTP message to be sent</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_HTTP_addToUri_stringParam" class=LFunction id=link108 onMouseOver="ShowTip(event, 'tt35', 'link108')" onMouseOut="HideTip('tt35')">f_IOT_LGen_step_HTTP_addToUri_stringParam</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_HTTP_addToUri_byVars"></a>c_IOT_stepName_HTTP_addToUri_byVars</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_addToUri_byVars := "IOT App HTTP: addToUri_byVars"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that concatenates a string to the HTTP request URI for the HTTP message to be sent</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_HTTP_addToUri_byVars" class=LFunction id=link109 onMouseOver="ShowTip(event, 'tt36', 'link109')" onMouseOut="HideTip('tt36')">f_IOT_LGen_step_HTTP_addToUri_byVars</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_HTTP_addHostHeader_byVars"></a>c_IOT_stepName_HTTP_addHostHeader_byVars</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_addHostHeader_byVars := "IOT App HTTP: addHostHeader_byVars"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that adds a Host header to the HTTP message to be sent</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_HTTP_addHostHeader_byVars" class=LFunction id=link110 onMouseOver="ShowTip(event, 'tt38', 'link110')" onMouseOut="HideTip('tt38')">f_IOT_LGen_step_HTTP_addHostHeader_byVars</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_Leshan_getClientFromResponse_intoVar"></a>c_IOT_stepName_Leshan_getClientFromResponse_intoVar</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_Leshan_getClientFromResponse_intoVar := "IOT App Leshan: getClientFromResponse_intoVar"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that loads the client name into a variable from an HTTP response</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar" class=LFunction id=link111 onMouseOver="ShowTip(event, 'tt39', 'link111')" onMouseOut="HideTip('tt39')">f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_FSM_RegDereg_initResourceValues"></a>c_IOT_stepName_FSM_RegDereg_initResourceValues</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_RegDereg_initResourceValues := "IOT Fsm LWM2M_RegDereg: initResourceValues"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that inits the resources of the RegDereg FSM</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_FSM_RegDereg_initResourceValues" class=LFunction id=link112 onMouseOver="ShowTip(event, 'tt42', 'link112')" onMouseOut="HideTip('tt42')">f_IOT_LGen_step_FSM_RegDereg_initResourceValues</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_FSM_SimDevice_createResources"></a>c_IOT_stepName_FSM_SimDevice_createResources</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_createResources := "IOT Fsm LWM2M_SimDevice: createResources"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that creates the resources of the SimDevice FSM</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_FSM_SimDevice_createResources" class=LFunction id=link113 onMouseOver="ShowTip(event, 'tt43', 'link113')" onMouseOut="HideTip('tt43')">f_IOT_LGen_step_FSM_SimDevice_createResources</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_FSM_SimDevice_initResourceValues"></a>c_IOT_stepName_FSM_SimDevice_initResourceValues</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_initResourceValues := "IOT Fsm LWM2M_SimDevice: initResourceValues"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that inits the resources of the SimDevice FSM</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_FSM_SimDevice_initResourceValues" class=LFunction id=link114 onMouseOver="ShowTip(event, 'tt45', 'link114')" onMouseOut="HideTip('tt45')">f_IOT_LGen_step_FSM_SimDevice_initResourceValues</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_FSM_SimDevice_initTransport_boolVar"></a>c_IOT_stepName_FSM_SimDevice_initTransport_boolVar</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_initTransport_boolVar := "IOT Fsm LWM2M_SimDevice: initTransport_boolVar"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that inits the transport (UDP, or DTLS-PSK) for the SimDev FSM’s LwM2M protocol</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar" class=LFunction id=link115 onMouseOver="ShowTip(event, 'tt44', 'link115')" onMouseOut="HideTip('tt44')">f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_FSM_SimDevice_updateResourceValues"></a>c_IOT_stepName_FSM_SimDevice_updateResourceValues</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_updateResourceValues := "IOT Fsm LWM2M_SimDevice: updateResourceValues"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that updates the resource values of the SimDevice FSM</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_FSM_SimDevice_updateResourceValues" class=LFunction id=link116 onMouseOver="ShowTip(event, 'tt46', 'link116')" onMouseOut="HideTip('tt46')">f_IOT_LGen_step_FSM_SimDevice_updateResourceValues</a></li></ul></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="c_IOT_stepName_FSM_SimDevice_handleExecute"></a>c_IOT_stepName_FSM_SimDevice_handleExecute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_handleExecute := "IOT Fsm LWM2M_SimDevice: handleExecute"</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Charstring constant for the test step that handles LwM2M EXECUTE requests on the SimDevice FSM</p><h4 class=CHeading>Related Function</h4><ul><li><a href="#f_IOT_LGen_step_FSM_SimDevice_handleExecute" class=LFunction id=link117 onMouseOver="ShowTip(event, 'tt47', 'link117')" onMouseOut="HideTip('tt47')">f_IOT_LGen_step_FSM_SimDevice_handleExecute</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_declareSteps"></a>f_IOT_LGen_declareSteps</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_IOT_LGen_declareSteps() runs on IOT_LGen_CT</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Function to declare all the RIoT application related test steps</p><h4 class=CHeading>Related Types</h4><p><a href="IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=LType id=link118 onMouseOver="ShowTip(event, 'tt50', 'link118')" onMouseOut="HideTip('tt50')">IOT_LGen_CT</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_getEntityIdxinEntityGroup"></a>f_IOT_LGen_getEntityIdxinEntityGroup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_getEntityIdxinEntityGroup(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT return integer</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Calculates the index of the entity inside its entity group</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step parameters</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_COAP_setLocalAddress_byVars"></a>f_IOT_LGen_step_COAP_setLocalAddress_byVars</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_COAP_setLocalAddress_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to set the local address in the COAP entity context <COAP_EntityCtx>. Parameters are required. The function will take the base port number from the parameters and adds the entity’s offset inside its entity group (or in case the 3rd parameter is present, then the value found there) to get its assigned port number.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.varNames[0]</td><td class=CDLDescription><b>charstring variable</b> - local host</td></tr><tr><td class=CDLEntry>contextArgs.varNames[1]</td><td class=CDLDescription><b>integer variable</b> - local port</td></tr><tr><td class=CDLEntry>contextArgs.varNames[2]</td><td class=CDLDescription><b>integer variable</b> - offset [optional]</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_COAP_setLocalAddress_byVars" class=LConstant id=link119 onMouseOver="ShowTip(event, 'tt4', 'link119')" onMouseOut="HideTip('tt4')">c_IOT_stepName_COAP_setLocalAddress_byVars</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_MQTT_setLocalAddress_byVars"></a>f_IOT_LGen_step_MQTT_setLocalAddress_byVars</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_MQTT_setLocalAddress_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to set the local address in the MQTT entity context. Parameters are required. The function will take the base port number from the parameters and adds the entity’s offset inside its entity group (or in case the 3rd parameter is present, then the value found there) to get its assigned port number.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.varNames[0]</td><td class=CDLDescription><b>charstring variable</b> - local host</td></tr><tr><td class=CDLEntry>contextArgs.varNames[1]</td><td class=CDLDescription><b>integer variable</b> - local port</td></tr><tr><td class=CDLEntry>contextArgs.varNames[2]</td><td class=CDLDescription><b>integer variable</b> - offset [optional]</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_MQTT_setLocalAddress_byVars" class=LConstant id=link120 onMouseOver="ShowTip(event, 'tt5', 'link120')" onMouseOut="HideTip('tt5')">c_IOT_stepName_MQTT_setLocalAddress_byVars</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_MQTT_setClientId_stringParam"></a>f_IOT_LGen_step_MQTT_setClientId_stringParam</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_MQTT_setClientId_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to set the client id the MQTT entity context. Parameters are required. The function will take the entity’s offset inside its entity group and concatenate it to the string parameter of the test step</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.charstringVal</td><td class=CDLDescription><b>charstring</b> - base client id</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_MQTT_setClientId_stringParam" class=LConstant id=link121 onMouseOver="ShowTip(event, 'tt6', 'link121')" onMouseOut="HideTip('tt6')">c_IOT_stepName_MQTT_setClientId_stringParam</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_LwM2M_setClientNameInRegister"></a>f_IOT_LGen_step_LwM2M_setClientNameInRegister</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_LwM2M_setClientNameInRegister(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to set the endpoint client name in the LWM2M Register message that must be previously loaded into <b>v_LwM2M_msgToSend</b>. The test step currently hard codes the base name to “eantwuhDev_” and concatenates the entity’s index inside its entity group</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_LwM2M_setClientNameInRegister" class=LConstant id=link122 onMouseOver="ShowTip(event, 'tt7', 'link122')" onMouseOut="HideTip('tt7')">c_IOT_stepName_LwM2M_setClientNameInRegister</a></li></ul><h4 class=CHeading>Related test steps</h4><ul><li><f_COAP_step_loadTemplate_byStringId></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar"></a>f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to set the endpoint client name in the LWM2M Register message that must be previously loaded into <b>v_LwM2M_msgToSend</b>. The test step expects the base name to be passed as a string parameter and concatenates the entity’s index inside its entity group</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.varNames[0]</td><td class=CDLDescription><b>charstring variable</b> - base name</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar" class=LConstant id=link123 onMouseOver="ShowTip(event, 'tt8', 'link123')" onMouseOut="HideTip('tt8')">c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar</a></li></ul><h4 class=CHeading>Related test steps</h4><ul><li><f_COAP_step_loadTemplate_byStringId></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_HTTP_initEntityContext"></a>f_IOT_LGen_step_HTTP_initEntityContext</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_initEntityContext(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to initialize the HTTP entity context by calling <f_EPTF_HTTP_setEntityContext>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_HTTP_initEntityContext" class=LConstant id=link124 onMouseOver="ShowTip(event, 'tt9', 'link124')" onMouseOut="HideTip('tt9')">c_IOT_stepName_HTTP_initEntityContext</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_HTTP_openConnection_byVars"></a>f_IOT_LGen_step_HTTP_openConnection_byVars</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_openConnection_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to open a TCP connection for HTTP. Requires parameters</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.varNames[0]</td><td class=CDLDescription><b>charstring variable</b> - local host</td></tr><tr><td class=CDLEntry>contextArgs.varNames[1]</td><td class=CDLDescription><b>integer variable</b> - local port</td></tr><tr><td class=CDLEntry>contextArgs.varNames[2]</td><td class=CDLDescription><b>charstring variable</b> - remote host</td></tr><tr><td class=CDLEntry>contextArgs.varNames[3]</td><td class=CDLDescription><b>integer variable</b> - remote port</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_HTTP_openConnection_byVars" class=LConstant id=link125 onMouseOver="ShowTip(event, 'tt10', 'link125')" onMouseOut="HideTip('tt10')">c_IOT_stepName_HTTP_openConnection_byVars</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_HTTP_closeConnection"></a>f_IOT_LGen_step_HTTP_closeConnection</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_closeConnection(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to close an already opened TCP connection for HTTP</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_HTTP_closeConnection" class=LConstant id=link126 onMouseOver="ShowTip(event, 'tt11', 'link126')" onMouseOut="HideTip('tt11')">c_IOT_stepName_HTTP_closeConnection</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_HTTP_setUri_stringParam"></a>f_IOT_LGen_step_HTTP_setUri_stringParam</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_setUri_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Test step to set a string</td><td class=CDLDescription>specified as a parameter - to the HTTP request URI of the message to be sent</td></tr></table><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.charstringVal</td><td class=CDLDescription><b>charstring</b> - URI to be set</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_HTTP_setUri_stringParam" class=LConstant id=link127 onMouseOver="ShowTip(event, 'tt13', 'link127')" onMouseOut="HideTip('tt13')">c_IOT_stepName_HTTP_setUri_stringParam</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_HTTP_addToUri_stringParam"></a>f_IOT_LGen_step_HTTP_addToUri_stringParam</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_addToUri_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Test step to add a string</td><td class=CDLDescription>specified as a parameter - to the HTTP request URI of the message to be sent</td></tr></table><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.charstringVal</td><td class=CDLDescription><b>charstring</b> - URI part to be concatenated</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_HTTP_addToUri_stringParam" class=LConstant id=link128 onMouseOver="ShowTip(event, 'tt14', 'link128')" onMouseOut="HideTip('tt14')">c_IOT_stepName_HTTP_addToUri_stringParam</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_HTTP_addToUri_byVars"></a>f_IOT_LGen_step_HTTP_addToUri_byVars</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_addToUri_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Test step to add a string</td><td class=CDLDescription>specified as variadic parameter - to the HTTP request URI of the message to be sent</td></tr></table><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.varNames[*]</td><td class=CDLDescription><b>charstring variable</b> - string to be added</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_HTTP_addToUri_stringParam" class=LConstant id=link129 onMouseOver="ShowTip(event, 'tt14', 'link129')" onMouseOut="HideTip('tt14')">c_IOT_stepName_HTTP_addToUri_stringParam</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_HTTP_setMethod_stringParam"></a>f_IOT_LGen_step_HTTP_setMethod_stringParam</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_setMethod_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>Test step to set the method</td><td class=CDLDescription>specified as a string parameter - of the HTTP request to be sent</td></tr></table><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.charstringVal</td><td class=CDLDescription><b>charstring</b> - method to be set</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_HTTP_setMethod_stringParam" class=LConstant id=link130 onMouseOver="ShowTip(event, 'tt12', 'link130')" onMouseOut="HideTip('tt12')">c_IOT_stepName_HTTP_setMethod_stringParam</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_HTTP_addHostHeader_byVars"></a>f_IOT_LGen_step_HTTP_addHostHeader_byVars</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_addHostHeader_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to add a Host header to the HTTP messager to be sent. Requires parameters.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.varNames[0]</td><td class=CDLDescription><b>charstring variable</b> - host name</td></tr><tr><td class=CDLEntry>contextArgs.varNames[1]</td><td class=CDLDescription><b>integer variable</b> - port name</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_HTTP_addHostHeader_byVars" class=LConstant id=link131 onMouseOver="ShowTip(event, 'tt16', 'link131')" onMouseOut="HideTip('tt16')">c_IOT_stepName_HTTP_addHostHeader_byVars</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar"></a>f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to fetch the client name of an HTTP response sent by Leshan into a variable</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.varNames[0]</td><td class=CDLDescription><b>charstring variable</b> - client name will be loaded here</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_Leshan_getClientFromResponse_intoVar" class=LConstant id=link132 onMouseOver="ShowTip(event, 'tt17', 'link132')" onMouseOut="HideTip('tt17')">c_IOT_stepName_Leshan_getClientFromResponse_intoVar</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_tcFinished_withVerdict"></a>f_IOT_LGen_step_tcFinished_withVerdict</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_tcFinished_withVerdict(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to set the final verdict reported by the FSM using a verdict variable as parameter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.verdict</td><td class=CDLDescription><b>verdicttype</b> - verdict to be reported</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_tcFinished_withVerdict" class=LConstant id=link133 onMouseOver="ShowTip(event, 'tt1', 'link133')" onMouseOut="HideTip('tt1')">c_IOT_stepName_tcFinished_withVerdict</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_print_stringParam"></a>f_IOT_LGen_step_print_stringParam</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_print_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to print a string parameter as a TTCN-3 action() statement</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.charstringVal</td><td class=CDLDescription><b>charstring</b> - the string to be printed</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_print_stringParam" class=LConstant id=link134 onMouseOver="ShowTip(event, 'tt2', 'link134')" onMouseOut="HideTip('tt2')">c_IOT_stepName_print_stringParam</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_FSM_RegDereg_initResourceValues"></a>f_IOT_LGen_step_FSM_RegDereg_initResourceValues</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_RegDereg_initResourceValues(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to init resources of the RegDereg FSM</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_FSM_RegDereg_initResourceValues" class=LConstant id=link135 onMouseOver="ShowTip(event, 'tt18', 'link135')" onMouseOut="HideTip('tt18')">c_IOT_stepName_FSM_RegDereg_initResourceValues</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_FSM_SimDevice_createResources"></a>f_IOT_LGen_step_FSM_SimDevice_createResources</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_createResources(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to create resources of the SimDevice FSM</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_FSM_SimDevice_createResources" class=LConstant id=link136 onMouseOver="ShowTip(event, 'tt19', 'link136')" onMouseOut="HideTip('tt19')">c_IOT_stepName_FSM_SimDevice_createResources</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar"></a>f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to initialize the COAP transport (either UDP, or DTLS-PSK) of the SimDevice FSM. Requires parameter.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.varNames[0]</td><td class=CDLDescription><b>boolean variable</b> - will use DTLS-PSK when true, UDP otherwise</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_FSM_SimDevice_initTransport_boolVar" class=LConstant id=link137 onMouseOver="ShowTip(event, 'tt21', 'link137')" onMouseOut="HideTip('tt21')">c_IOT_stepName_FSM_SimDevice_initTransport_boolVar</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_FSM_SimDevice_initResourceValues"></a>f_IOT_LGen_step_FSM_SimDevice_initResourceValues</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_initResourceValues(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to init the resource values of the SimDevice FSM</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_FSM_SimDevice_initResourceValues" class=LConstant id=link138 onMouseOver="ShowTip(event, 'tt20', 'link138')" onMouseOut="HideTip('tt20')">c_IOT_stepName_FSM_SimDevice_initResourceValues</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_FSM_SimDevice_updateResourceValues"></a>f_IOT_LGen_step_FSM_SimDevice_updateResourceValues</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_updateResourceValues(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to update the resource values of the SimDevice FSM</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_FSM_SimDevice_updateResourceValues" class=LConstant id=link139 onMouseOver="ShowTip(event, 'tt22', 'link139')" onMouseOut="HideTip('tt22')">c_IOT_stepName_FSM_SimDevice_updateResourceValues</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_FSM_SimDevice_handleExecute"></a>f_IOT_LGen_step_FSM_SimDevice_handleExecute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_handleExecute(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to handle incoming LwM2M EXECUTE request in the SimDevice FSM</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><a href="#c_IOT_stepName_FSM_SimDevice_handleExecute" class=LConstant id=link140 onMouseOver="ShowTip(event, 'tt23', 'link140')" onMouseOut="HideTip('tt23')">c_IOT_stepName_FSM_SimDevice_handleExecute</a></li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_step_genRndValue_varParams"></a>f_IOT_LGen_step_genRndValue_varParams</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_genRndValue_varParams(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Test step to generate a random number and load it into an integer variable. The generated random number will be between two integers provided as parameters to set the limits for RNG.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>pl_ptr</td><td class=CDLDescription><b>in</b> <EPTF_LGenBase_TestStepArgs> - test step args</td></tr><tr><td class=CDLEntry>contextArgs.varNames[0]</td><td class=CDLDescription><b>in integer variable</b> - min value</td></tr><tr><td class=CDLEntry>contextArgs.varNames[1]</td><td class=CDLDescription><b>in integer variable</b> - max value</td></tr><tr><td class=CDLEntry>contextArgs.varNames[2]</td><td class=CDLDescription><b>out integer variable</b> - generated value</td></tr></table><h4 class=CHeading>Related Constants</h4><ul><li><c_IOT_stepName_FSM_SimDevice_genRndValue_varParams></li></ul></div></div></div>
+
+</div><!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_tcFinished_withVerdict := "IOT App: tcFinished_withVerdict"</td></tr></table></blockquote>Charstring constant for the RIoT test case finished test step</div></div><div class=CToolTip id="tt2"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_print_stringParam := "IOT App: print_stringParam"</td></tr></table></blockquote>Charstring constant for the RIoT print string test step</div></div><div class=CToolTip id="tt3"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_genRndValue_varParams := "IOT App: genRndValue_varParams"</td></tr></table></blockquote>Charstring constant for the RIoT random number generator test step</div></div><div class=CToolTip id="tt4"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_COAP_setLocalAddress_byVars := "IOT App COAP: setLocalAddress_byVars"</td></tr></table></blockquote>Charstring constant for setting the COAP local address test step</div></div><div class=CToolTip id="tt5"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_MQTT_setLocalAddress_byVars := "IOT App MQTT: setLocalAddress_byVars"</td></tr></table></blockquote>Charstring constant for setting the MQTT local address test step</div></div><div class=CToolTip id="tt6"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_MQTT_setClientId_stringParam := "IOT App MQTT: setClientId_stringParam"</td></tr></table></blockquote>Charstring constant for the test step that sets the MQTT client id</div></div><div class=CToolTip id="tt7"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_LwM2M_setClientNameInRegister := "IOT App LwM2M: setClientNameInRegister"</td></tr></table></blockquote>Charstring constant for the test step that sets the LwM2M endpoint name in the Register message</div></div><div class=CToolTip id="tt8"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar := "IOT App LwM2M: setClientNameInRegister_stringVar"</td></tr></table></blockquote>Charstring constant for the test step that sets the LwM2M endpoint name in the Register message</div></div><div class=CToolTip id="tt9"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_initEntityContext := "IOT App HTTP: initEntityContext"</td></tr></table></blockquote>Charstring constant for the test step that initializes the HTTP entity context</div></div><div class=CToolTip id="tt10"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_openConnection_byVars := "IOT App HTTP: openConnection_byVars"</td></tr></table></blockquote>Charstring constant for the test step that opens an HTTP connection</div></div><div class=CToolTip id="tt11"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_closeConnection := "IOT App HTTP: closeConnection"</td></tr></table></blockquote>Charstring constant for the test step that closes the opened HTTP connection</div></div><div class=CToolTip id="tt12"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_setMethod_stringParam := "IOT App HTTP: setMethod_stringParam"</td></tr></table></blockquote>Charstring constant for the test step that sets the HTTP method for the HTTP message to be sent</div></div><div class=CToolTip id="tt13"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_setUri_stringParam := "IOT App HTTP: setUri_stringParam"</td></tr></table></blockquote>Charstring constant for the test step that sets the HTTP request URI for the HTTP message to be sent</div></div><div class=CToolTip id="tt14"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_addToUri_stringParam := "IOT App HTTP: addToUri_stringParam"</td></tr></table></blockquote>Charstring constant for the test step that concatenates a string to the HTTP request URI for the HTTP message to be sent</div></div><div class=CToolTip id="tt15"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_addToUri_byVars := "IOT App HTTP: addToUri_byVars"</td></tr></table></blockquote>Charstring constant for the test step that concatenates a string to the HTTP request URI for the HTTP message to be sent</div></div><div class=CToolTip id="tt16"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_addHostHeader_byVars := "IOT App HTTP: addHostHeader_byVars"</td></tr></table></blockquote>Charstring constant for the test step that adds a Host header to the HTTP message to be sent</div></div><div class=CToolTip id="tt17"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_Leshan_getClientFromResponse_intoVar := "IOT App Leshan: getClientFromResponse_intoVar"</td></tr></table></blockquote>Charstring constant for the test step that loads the client name into a variable from an HTTP response</div></div><div class=CToolTip id="tt18"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_RegDereg_initResourceValues := "IOT Fsm LWM2M_RegDereg: initResourceValues"</td></tr></table></blockquote>Charstring constant for the test step that inits the resources of the RegDereg FSM</div></div><div class=CToolTip id="tt19"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_createResources := "IOT Fsm LWM2M_SimDevice: createResources"</td></tr></table></blockquote>Charstring constant for the test step that creates the resources of the SimDevice FSM</div></div><div class=CToolTip id="tt20"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_initResourceValues := "IOT Fsm LWM2M_SimDevice: initResourceValues"</td></tr></table></blockquote>Charstring constant for the test step that inits the resources of the SimDevice FSM</div></div><div class=CToolTip id="tt21"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_initTransport_boolVar := "IOT Fsm LWM2M_SimDevice: initTransport_boolVar"</td></tr></table></blockquote>Charstring constant for the test step that inits the transport (UDP, or DTLS-PSK) for the SimDev FSM’s LwM2M protocol</div></div><div class=CToolTip id="tt22"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_updateResourceValues := "IOT Fsm LWM2M_SimDevice: updateResourceValues"</td></tr></table></blockquote>Charstring constant for the test step that updates the resource values of the SimDevice FSM</div></div><div class=CToolTip id="tt23"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_handleExecute := "IOT Fsm LWM2M_SimDevice: handleExecute"</td></tr></table></blockquote>Charstring constant for the test step that handles LwM2M EXECUTE requests on the SimDevice FSM</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_IOT_LGen_declareSteps() runs on IOT_LGen_CT</td></tr></table></blockquote>Function to declare all the RIoT application related test steps</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_getEntityIdxinEntityGroup(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT return integer</td></tr></table></td></tr></table></blockquote>Calculates the index of the entity inside its entity group</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_COAP_setLocalAddress_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the local address in the COAP entity context COAP_EntityCtx. </div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_MQTT_setLocalAddress_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the local address in the MQTT entity context. </div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_MQTT_setClientId_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the client id the MQTT entity context. </div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_LwM2M_setClientNameInRegister(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the endpoint client name in the LWM2M Register message that must be previously loaded into <b>v_LwM2M_msgToSend</b>. </div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the endpoint client name in the LWM2M Register message that must be previously loaded into <b>v_LwM2M_msgToSend</b>. </div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_initEntityContext(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to initialize the HTTP entity context by calling f_EPTF_HTTP_setEntityContext.</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_openConnection_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to open a TCP connection for HTTP. </div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_closeConnection(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to close an already opened TCP connection for HTTP</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_setUri_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_addToUri_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_addToUri_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_setMethod_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_addHostHeader_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to add a Host header to the HTTP messager to be sent. </div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to fetch the client name of an HTTP response sent by Leshan into a variable</div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_tcFinished_withVerdict(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the final verdict reported by the FSM using a verdict variable as parameter.</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_print_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to print a string parameter as a TTCN-3 action() statement</div></div><div class=CToolTip id="tt42"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_RegDereg_initResourceValues(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to init resources of the RegDereg FSM</div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_createResources(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to create resources of the SimDevice FSM</div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to initialize the COAP transport (either UDP, or DTLS-PSK) of the SimDevice FSM. </div></div><div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_initResourceValues(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to init the resource values of the SimDevice FSM</div></div><div class=CToolTip id="tt46"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_updateResourceValues(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to update the resource values of the SimDevice FSM</div></div><div class=CToolTip id="tt47"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_handleExecute(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to handle incoming LwM2M EXECUTE request in the SimDevice FSM</div></div><div class=CToolTip id="tt48"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_genRndValue_varParams(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to generate a random number and load it into an integer variable. </div></div><div class=CToolTip id="tt49"><div class=CFile>This module contains the definitions for an IoT load generator component</div></div><div class=CToolTip id="tt50"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_LGen_CT</td></tr></table></blockquote>IoT load generator component</div></div><!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/files/InfluxDB_Definitions-ttcn.html b/apidoc/html/files/InfluxDB_Definitions-ttcn.html
new file mode 100644
index 0000000..dd54484
--- /dev/null
+++ b/apidoc/html/files/InfluxDB_Definitions-ttcn.html
@@ -0,0 +1,28 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/ETHGRY/Titan_FOSS/ApplicationLibraries/IoT_Loadtest_Framework/InfluxDB_Definitions.ttcn - IoT_Load_Test_Framework</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="InfluxDB_Definitions.ttcn"></a>InfluxDB_Definitions.ttcn</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#InfluxDB_Definitions.ttcn" >InfluxDB_Definitions.ttcn</a></td><td class=SDescription></td></tr><tr class="SModuleParameter SMarked"><td class=SEntry><a href="#tsp_InfluxDB_debug" >tsp_InfluxDB_debug</a></td><td class=SDescription>Enable/disable debug logging</td></tr><tr class="SModuleParameter"><td class=SEntry><a href="#tsp_InfluxDB_client_basePort" >tsp_InfluxDB_client_basePort</a></td><td class=SDescription>Local port number used for the UDP connection with the InfluxDB</td></tr><tr class="SModuleParameter SMarked"><td class=SEntry><a href="#tsp_InfluxDB_reportPeriod" >tsp_InfluxDB_reportPeriod</a></td><td class=SDescription>InfluxDB event handler reporting period</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CModuleParameter"><div class=CTopic><h3 class=CTitle><a name="tsp_InfluxDB_debug"></a>tsp_InfluxDB_debug</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>Enable/disable debug logging</p><h4 class=CHeading>Type</h4><p><b>boolean</b></p><h4 class=CHeading>Default value</h4><p><b>false</b></p></div></div></div>
+
+<div class="CModuleParameter"><div class=CTopic><h3 class=CTitle><a name="tsp_InfluxDB_client_basePort"></a>tsp_InfluxDB_client_basePort</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>Local port number used for the UDP connection with the InfluxDB</p><h4 class=CHeading>Type</h4><p><b>integer</b></p><h4 class=CHeading>Default value</h4><p><b>9000</b></p></div></div></div>
+
+<div class="CModuleParameter"><div class=CTopic><h3 class=CTitle><a name="tsp_InfluxDB_reportPeriod"></a>tsp_InfluxDB_reportPeriod</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>InfluxDB event handler reporting period</p><h4 class=CHeading>Type</h4><p><b>float</b></p><h4 class=CHeading>Default value</h4><p><b>3.0</b></p></div></div></div>
+
+</div><!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/files/InfluxDB_Functions-ttcn.html b/apidoc/html/files/InfluxDB_Functions-ttcn.html
new file mode 100644
index 0000000..401269d
--- /dev/null
+++ b/apidoc/html/files/InfluxDB_Functions-ttcn.html
@@ -0,0 +1,42 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>/home/ETHGRY/Titan_FOSS/ApplicationLibraries/IoT_Loadtest_Framework/InfluxDB_Functions.ttcn - IoT_Load_Test_Framework</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CFile"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="InfluxDB_Functions.ttcn"></a>InfluxDB_Functions.ttcn</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#InfluxDB_Functions.ttcn" >InfluxDB_Functions.ttcn</a></td><td class=SDescription></td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_IOT_LGen_behavior" >f_IOT_LGen_behavior</a></td><td class=SDescription>The main initialization function for the <InfluxDB_CT> component type</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_InfluxDB_connect" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_InfluxDB_connect</a></td><td class=SDescription>Setup the connection with the InfluxDB database</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_InfluxDB_send" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_InfluxDB_send</a></td><td class=SDescription>Sends a report to the InfluxDB database</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_InfluxDB_encode" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_InfluxDB_encode</a></td><td class=SDescription>Converts a report to charstring format</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_InfluxDB_setMeasurement" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">f_InfluxDB_setMeasurement</a></td><td class=SDescription>Sets the measurement field of an InfluxDB report</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_InfluxDB_addTag" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">f_InfluxDB_addTag</a></td><td class=SDescription>Adds a tag to the tag-list of an InfluxDB message</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_InfluxDB_addField" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">f_InfluxDB_addField</a></td><td class=SDescription>Adds a field to the field-list of an InfluxDB message</td></tr><tr class="SFunction"><td class=SEntry><a href="#f_InfluxDB_scheduleNextReport" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">f_InfluxDB_scheduleNextReport</a></td><td class=SDescription>Sets the target time of the next report</td></tr><tr class="SFunction SMarked"><td class=SEntry><a href="#f_InlfuxDB_log_debug" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">f_InlfuxDB_log_debug</a></td><td class=SDescription>If debug log is set, write the parameter to the log file</td></tr><tr class="SFunction"><td class=SEntry><a href="#as_InfluxDB_eventHandler" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">as_InfluxDB_eventHandler</a></td><td class=SDescription>When report period expired, restarts the InfluxDB event handler and sets the time of the next report</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_IOT_LGen_behavior"></a>f_IOT_LGen_behavior</h3><div class=CBody><h4 class=CHeading>Purpose</h4><p>The main initialization function for the <InfluxDB_CT> component type</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>p_lgenIdx</td><td class=CDLDescription><b>in</b> <b>integer</b> - the index of the component instance</td></tr></table><h4 class=CHeading>Related Type</h4><p><InfluxDB_CT></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_InfluxDB_connect"></a>f_InfluxDB_connect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_InfluxDB_connect() runs on InfluxDB_CT</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Setup the connection with the InfluxDB database</p><h4 class=CHeading>Parameters</h4><h4 class=CHeading>Related Type</h4><p><InfluxDB_CT></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_InfluxDB_send"></a>f_InfluxDB_send</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_send(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_data</td><td class="PAfterParameters prettyprint "nowrap>) runs on InfluxDB_CT</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Sends a report to the InfluxDB database</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>p_data</td><td class=CDLDescription><b>in</b> <InfluxLineProtocol> - Report to send</td></tr></table><h4 class=CHeading>Related Type</h4><p><InfluxDB_CT></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_InfluxDB_encode"></a>f_InfluxDB_encode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_encode(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_prot,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>out </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_encoded</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Converts a report to charstring format</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>p_prot</td><td class=CDLDescription><b>in</b> <InfluxLineProtocol>, Message to send</td></tr><tr><td class=CDLEntry>p_encoded</td><td class=CDLDescription><b>out</b> <b>charstring</b> - Output string</td></tr></table><h4 class=CHeading>Related Type</h4></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_InfluxDB_setMeasurement"></a>f_InfluxDB_setMeasurement</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_setMeasurement(</td><td class="PTypePrefix prettyprint " nowrap>inout </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_pdu,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_measurement</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Sets the measurement field of an InfluxDB report</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>p_pdu</td><td class=CDLDescription><b>inout</b> <InfluxLineProtocol>, Influx message</td></tr><tr><td class=CDLEntry>p_measurement</td><td class=CDLDescription><b>in</b> <b>charstring</b> - measurement value</td></tr></table><h4 class=CHeading>Related Type</h4></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_InfluxDB_addTag"></a>f_InfluxDB_addTag</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_addTag(</td><td class="PTypePrefix prettyprint " nowrap>inout </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_pdu,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxAttrValue </td><td class="PParameter prettyprint " nowrap>p_tag</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Adds a tag to the tag-list of an InfluxDB message</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>p_pdu</td><td class=CDLDescription><b>inout</b> <InfluxLineProtocol>, Influx message</td></tr><tr><td class=CDLEntry>p_tag</td><td class=CDLDescription><b>in</b> <InfluxAttrValue> - tag value to be added</td></tr></table><h4 class=CHeading>Related Type</h4></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_InfluxDB_addField"></a>f_InfluxDB_addField</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_addField(</td><td class="PTypePrefix prettyprint " nowrap>inout </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_pdu,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxAttrValue </td><td class="PParameter prettyprint " nowrap>p_field</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Adds a field to the field-list of an InfluxDB message</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>p_pdu</td><td class=CDLDescription><b>inout</b> <InfluxLineProtocol>, Influx message</td></tr><tr><td class=CDLEntry>p_field</td><td class=CDLDescription><b>in</b> <InfluxAttrValue> - field value to be added</td></tr></table><h4 class=CHeading>Related Type</h4></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_InfluxDB_scheduleNextReport"></a>f_InfluxDB_scheduleNextReport</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_InfluxDB_scheduleNextReport() runs on InfluxDB_CT</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>Sets the target time of the next report</p><h4 class=CHeading>Parameters</h4><h4 class=CHeading>Related Type</h4><p><InfluxDB_CT></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="f_InlfuxDB_log_debug"></a>f_InlfuxDB_log_debug</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InlfuxDB_log_debug(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_log</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>If debug log is set, write the parameter to the log file</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>p_log</td><td class=CDLDescription><b>in</b> <b>charstring</b> - string to log</td></tr></table><h4 class=CHeading>Related Type</h4></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="as_InfluxDB_eventHandler"></a>as_InfluxDB_eventHandler</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">altstep as_InfluxDB_eventHandler() runs on InfluxDB_CT</td></tr></table></blockquote><h4 class=CHeading>Purpose</h4><p>When report period expired, restarts the InfluxDB event handler and sets the time of the next report</p><h4 class=CHeading>Parameters</h4><h4 class=CHeading>Related Type</h4><p><InfluxDB_CT></p></div></div></div>
+
+</div><!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_InfluxDB_connect() runs on InfluxDB_CT</td></tr></table></blockquote>Setup the connection with the InfluxDB database</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_send(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_data</td><td class="PAfterParameters prettyprint "nowrap>) runs on InfluxDB_CT</td></tr></table></td></tr></table></blockquote>Sends a report to the InfluxDB database</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_encode(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_prot,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>out </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_encoded</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Converts a report to charstring format</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_setMeasurement(</td><td class="PTypePrefix prettyprint " nowrap>inout </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_pdu,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_measurement</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the measurement field of an InfluxDB report</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_addTag(</td><td class="PTypePrefix prettyprint " nowrap>inout </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_pdu,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxAttrValue </td><td class="PParameter prettyprint " nowrap>p_tag</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a tag to the tag-list of an InfluxDB message</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_addField(</td><td class="PTypePrefix prettyprint " nowrap>inout </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_pdu,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxAttrValue </td><td class="PParameter prettyprint " nowrap>p_field</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a field to the field-list of an InfluxDB message</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_InfluxDB_scheduleNextReport() runs on InfluxDB_CT</td></tr></table></blockquote>Sets the target time of the next report</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InlfuxDB_log_debug(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_log</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>If debug log is set, write the parameter to the log file</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">altstep as_InfluxDB_eventHandler() runs on InfluxDB_CT</td></tr></table></blockquote>When report period expired, restarts the InfluxDB event handler and sets the time of the next report</div></div><!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/index.html b/apidoc/html/index.html
new file mode 100644
index 0000000..e31983a
--- /dev/null
+++ b/apidoc/html/index.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IoT_Load_Test_Framework</title></head>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+<frameset cols="185,*"><frame name=Menu src="menu.html"><frame name=Content src="files/InfluxDB_Definitions-ttcn.html"></frameset><noframes>This documentation was designed for use with frames. However, you can still use it by <a href="menu.html">starting from the menu page</a>.<script language=JavaScript><!--
+location.href="menu.html";
+// --></script></noframes></html>
\ No newline at end of file
diff --git a/apidoc/html/index/Constants.html b/apidoc/html/index/Constants.html
new file mode 100644
index 0000000..5777813
--- /dev/null
+++ b/apidoc/html/index/Constants.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IoT_Load_Test_Framework - Constant Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="FramedIndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Constant Index</div><div class=INavigationBar>$#! · 0-9 · A · B · <a href="#C">C</a> · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="C"></a>C</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#c_IOT_behaviorType" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>c_IOT_behaviorType</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#c_IOT_entityType" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>c_IOT_entityType</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_COAP_setLocalAddress_byVars" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>c_IOT_stepName_COAP_setLocalAddress_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_RegDereg_initResourceValues" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>c_IOT_stepName_FSM_RegDereg_initResourceValues</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_createResources" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>c_IOT_stepName_FSM_SimDevice_createResources</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_handleExecute" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>c_IOT_stepName_FSM_SimDevice_handleExecute</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_initResourceValues" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>c_IOT_stepName_FSM_SimDevice_initResourceValues</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_initTransport_boolVar" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>c_IOT_stepName_FSM_SimDevice_initTransport_boolVar</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_updateResourceValues" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>c_IOT_stepName_FSM_SimDevice_updateResourceValues</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_genRndValue_varParams" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>c_IOT_stepName_genRndValue_varParams</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_addHostHeader_byVars" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>c_IOT_stepName_HTTP_addHostHeader_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_addToUri_byVars" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>c_IOT_stepName_HTTP_addToUri_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_addToUri_stringParam" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>c_IOT_stepName_HTTP_addToUri_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_closeConnection" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>c_IOT_stepName_HTTP_closeConnection</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_initEntityContext" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>c_IOT_stepName_HTTP_initEntityContext</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_openConnection_byVars" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>c_IOT_stepName_HTTP_openConnection_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_setMethod_stringParam" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>c_IOT_stepName_HTTP_setMethod_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_setUri_stringParam" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>c_IOT_stepName_HTTP_setUri_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_Leshan_getClientFromResponse_intoVar" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>c_IOT_stepName_Leshan_getClientFromResponse_intoVar</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_LwM2M_setClientNameInRegister" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>c_IOT_stepName_LwM2M_setClientNameInRegister</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_MQTT_setClientId_stringParam" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')" class=ISymbol>c_IOT_stepName_MQTT_setClientId_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_MQTT_setLocalAddress_byVars" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')" class=ISymbol>c_IOT_stepName_MQTT_setLocalAddress_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_print_stringParam" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')" class=ISymbol>c_IOT_stepName_print_stringParam</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_tcFinished_withVerdict" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')" class=ISymbol>c_IOT_stepName_tcFinished_withVerdict</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_behaviorType := "IOT_Behavior"</td></tr></table></blockquote>Constant for the simulated IoT behavior type</div></div><div class=CToolTip id="tt2"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_entityType := "IOT_Entity"</td></tr></table></blockquote>Constant for the simulated IoT entity type</div></div><div class=CToolTip id="tt3"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_COAP_setLocalAddress_byVars := "IOT App COAP: setLocalAddress_byVars"</td></tr></table></blockquote>Charstring constant for setting the COAP local address test step</div></div><div class=CToolTip id="tt4"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_RegDereg_initResourceValues := "IOT Fsm LWM2M_RegDereg: initResourceValues"</td></tr></table></blockquote>Charstring constant for the test step that inits the resources of the RegDereg FSM</div></div><div class=CToolTip id="tt5"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_createResources := "IOT Fsm LWM2M_SimDevice: createResources"</td></tr></table></blockquote>Charstring constant for the test step that creates the resources of the SimDevice FSM</div></div><div class=CToolTip id="tt6"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_handleExecute := "IOT Fsm LWM2M_SimDevice: handleExecute"</td></tr></table></blockquote>Charstring constant for the test step that handles LwM2M EXECUTE requests on the SimDevice FSM</div></div><div class=CToolTip id="tt7"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_initResourceValues := "IOT Fsm LWM2M_SimDevice: initResourceValues"</td></tr></table></blockquote>Charstring constant for the test step that inits the resources of the SimDevice FSM</div></div><div class=CToolTip id="tt8"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_initTransport_boolVar := "IOT Fsm LWM2M_SimDevice: initTransport_boolVar"</td></tr></table></blockquote>Charstring constant for the test step that inits the transport (UDP, or DTLS-PSK) for the SimDev FSM’s LwM2M protocol</div></div><div class=CToolTip id="tt9"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_updateResourceValues := "IOT Fsm LWM2M_SimDevice: updateResourceValues"</td></tr></table></blockquote>Charstring constant for the test step that updates the resource values of the SimDevice FSM</div></div><div class=CToolTip id="tt10"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_genRndValue_varParams := "IOT App: genRndValue_varParams"</td></tr></table></blockquote>Charstring constant for the RIoT random number generator test step</div></div><div class=CToolTip id="tt11"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_addHostHeader_byVars := "IOT App HTTP: addHostHeader_byVars"</td></tr></table></blockquote>Charstring constant for the test step that adds a Host header to the HTTP message to be sent</div></div><div class=CToolTip id="tt12"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_addToUri_byVars := "IOT App HTTP: addToUri_byVars"</td></tr></table></blockquote>Charstring constant for the test step that concatenates a string to the HTTP request URI for the HTTP message to be sent</div></div><div class=CToolTip id="tt13"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_addToUri_stringParam := "IOT App HTTP: addToUri_stringParam"</td></tr></table></blockquote>Charstring constant for the test step that concatenates a string to the HTTP request URI for the HTTP message to be sent</div></div><div class=CToolTip id="tt14"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_closeConnection := "IOT App HTTP: closeConnection"</td></tr></table></blockquote>Charstring constant for the test step that closes the opened HTTP connection</div></div><div class=CToolTip id="tt15"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_initEntityContext := "IOT App HTTP: initEntityContext"</td></tr></table></blockquote>Charstring constant for the test step that initializes the HTTP entity context</div></div><div class=CToolTip id="tt16"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_openConnection_byVars := "IOT App HTTP: openConnection_byVars"</td></tr></table></blockquote>Charstring constant for the test step that opens an HTTP connection</div></div><div class=CToolTip id="tt17"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_setMethod_stringParam := "IOT App HTTP: setMethod_stringParam"</td></tr></table></blockquote>Charstring constant for the test step that sets the HTTP method for the HTTP message to be sent</div></div><div class=CToolTip id="tt18"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_setUri_stringParam := "IOT App HTTP: setUri_stringParam"</td></tr></table></blockquote>Charstring constant for the test step that sets the HTTP request URI for the HTTP message to be sent</div></div><div class=CToolTip id="tt19"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_Leshan_getClientFromResponse_intoVar := "IOT App Leshan: getClientFromResponse_intoVar"</td></tr></table></blockquote>Charstring constant for the test step that loads the client name into a variable from an HTTP response</div></div><div class=CToolTip id="tt20"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_LwM2M_setClientNameInRegister := "IOT App LwM2M: setClientNameInRegister"</td></tr></table></blockquote>Charstring constant for the test step that sets the LwM2M endpoint name in the Register message</div></div><div class=CToolTip id="tt21"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar := "IOT App LwM2M: setClientNameInRegister_stringVar"</td></tr></table></blockquote>Charstring constant for the test step that sets the LwM2M endpoint name in the Register message</div></div><div class=CToolTip id="tt22"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_MQTT_setClientId_stringParam := "IOT App MQTT: setClientId_stringParam"</td></tr></table></blockquote>Charstring constant for the test step that sets the MQTT client id</div></div><div class=CToolTip id="tt23"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_MQTT_setLocalAddress_byVars := "IOT App MQTT: setLocalAddress_byVars"</td></tr></table></blockquote>Charstring constant for setting the MQTT local address test step</div></div><div class=CToolTip id="tt24"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_print_stringParam := "IOT App: print_stringParam"</td></tr></table></blockquote>Charstring constant for the RIoT print string test step</div></div><div class=CToolTip id="tt25"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_tcFinished_withVerdict := "IOT App: tcFinished_withVerdict"</td></tr></table></blockquote>Charstring constant for the RIoT test case finished test step</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/index/Files.html b/apidoc/html/index/Files.html
new file mode 100644
index 0000000..0a34d89
--- /dev/null
+++ b/apidoc/html/index/Files.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IoT_Load_Test_Framework - File Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="FramedIndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>File Index</div><div class=INavigationBar>$#! · 0-9 · A · B · C · D · E · F · G · H · <a href="#I">I</a> · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="I"></a>I</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#InfluxDB_Definitions.ttcn" class=ISymbol>InfluxDB_Definitions.ttcn</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#InfluxDB_Functions.ttcn" class=ISymbol>InfluxDB_Functions.ttcn</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#IOT_App_Definitions" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>IOT_App_Definitions</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#IOT_App_Functions" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>IOT_App_Functions</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#IOT_LGen_Definitions" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>IOT_LGen_Definitions</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#IOT_LGen_Functions" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>IOT_LGen_Functions</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#IOT_LGen_Steps" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>IOT_LGen_Steps</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFile>This module contains the definitions for RIoT’s main component</div></div><div class=CToolTip id="tt2"><div class=CFile>This module contains the functions of RIoT’s main component</div></div><div class=CToolTip id="tt3"><div class=CFile>This module contains the definitions for an IoT load generator component</div></div><div class=CToolTip id="tt4"><div class=CFile>This module contains the functions of an IoT load generator component</div></div><div class=CToolTip id="tt5"><div class=CFile>This module contains test step functions for an IoT load generator component</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/index/Functions.html b/apidoc/html/index/Functions.html
new file mode 100644
index 0000000..5fd1588
--- /dev/null
+++ b/apidoc/html/index/Functions.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IoT_Load_Test_Framework - Function Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="FramedIndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Function Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · B · C · D · E · <a href="#F">F</a> · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="A"></a>A</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#as_InfluxDB_eventHandler" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>as_InfluxDB_eventHandler</a></td></tr><tr><td class=IHeading><a name="F"></a>F</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_addField" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>f_InfluxDB_addField</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_addTag" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>f_InfluxDB_addTag</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_connect" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>f_InfluxDB_connect</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_encode" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>f_InfluxDB_encode</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_scheduleNextReport" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>f_InfluxDB_scheduleNextReport</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_send" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>f_InfluxDB_send</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_setMeasurement" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>f_InfluxDB_setMeasurement</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InlfuxDB_log_debug" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>f_InlfuxDB_log_debug</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#f_IOT_App_startExecCtrl" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>f_IOT_App_startExecCtrl</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_COAP_LGen_receiveMessage" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>f_IOT_COAP_LGen_receiveMessage</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_COAP_LocalTransport_send" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>f_IOT_COAP_LocalTransport_send</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><span class=ISymbol>f_IOT_LGen_behavior</span><div class=ISubIndex><a href="../files/InfluxDB_Functions-ttcn.html#f_IOT_LGen_behavior" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=IFile>InfluxDB_Functions.ttcn</a><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_behavior" id=link14 onMouseOver="ShowTip(event, 'tt13', 'link14')" onMouseOut="HideTip('tt13')" class=IFile>IOT_LGen_Functions.ttcn</a></div></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#f_IOT_LGen_create" id=link15 onMouseOver="ShowTip(event, 'tt14', 'link15')" onMouseOut="HideTip('tt14')" class=ISymbol>f_IOT_LGen_create</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_declareSteps" id=link16 onMouseOver="ShowTip(event, 'tt15', 'link16')" onMouseOut="HideTip('tt15')" class=ISymbol>f_IOT_LGen_declareSteps</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_getEntityIdxinEntityGroup" id=link17 onMouseOver="ShowTip(event, 'tt16', 'link17')" onMouseOut="HideTip('tt16')" class=ISymbol>f_IOT_LGen_getEntityIdxinEntityGroup</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_init" id=link18 onMouseOver="ShowTip(event, 'tt17', 'link18')" onMouseOut="HideTip('tt17')" class=ISymbol>f_IOT_LGen_init</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_initSamples" id=link19 onMouseOver="ShowTip(event, 'tt18', 'link19')" onMouseOut="HideTip('tt18')" class=ISymbol>f_IOT_LGen_initSamples</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_DEBUG" id=link20 onMouseOver="ShowTip(event, 'tt19', 'link20')" onMouseOut="HideTip('tt19')" class=ISymbol>f_IOT_LGen_Logging_DEBUG</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_ERROR" id=link21 onMouseOver="ShowTip(event, 'tt20', 'link21')" onMouseOut="HideTip('tt20')" class=ISymbol>f_IOT_LGen_Logging_ERROR</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_VERBOSE" id=link22 onMouseOver="ShowTip(event, 'tt21', 'link22')" onMouseOut="HideTip('tt21')" class=ISymbol>f_IOT_LGen_Logging_VERBOSE</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_WARNING" id=link23 onMouseOver="ShowTip(event, 'tt22', 'link23')" onMouseOut="HideTip('tt22')" class=ISymbol>f_IOT_LGen_Logging_WARNING</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_COAP_setLocalAddress_byVars" id=link24 onMouseOver="ShowTip(event, 'tt23', 'link24')" onMouseOut="HideTip('tt23')" class=ISymbol>f_IOT_LGen_step_COAP_setLocalAddress_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_RegDereg_initResourceValues" id=link25 onMouseOver="ShowTip(event, 'tt24', 'link25')" onMouseOut="HideTip('tt24')" class=ISymbol>f_IOT_LGen_step_FSM_RegDereg_initResourceValues</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_createResources" id=link26 onMouseOver="ShowTip(event, 'tt25', 'link26')" onMouseOut="HideTip('tt25')" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_createResources</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_handleExecute" id=link27 onMouseOver="ShowTip(event, 'tt26', 'link27')" onMouseOut="HideTip('tt26')" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_handleExecute</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_initResourceValues" id=link28 onMouseOver="ShowTip(event, 'tt27', 'link28')" onMouseOut="HideTip('tt27')" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_initResourceValues</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar" id=link29 onMouseOver="ShowTip(event, 'tt28', 'link29')" onMouseOut="HideTip('tt28')" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_updateResourceValues" id=link30 onMouseOver="ShowTip(event, 'tt29', 'link30')" onMouseOut="HideTip('tt29')" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_updateResourceValues</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_genRndValue_varParams" id=link31 onMouseOver="ShowTip(event, 'tt30', 'link31')" onMouseOut="HideTip('tt30')" class=ISymbol>f_IOT_LGen_step_genRndValue_varParams</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_addHostHeader_byVars" id=link32 onMouseOver="ShowTip(event, 'tt31', 'link32')" onMouseOut="HideTip('tt31')" class=ISymbol>f_IOT_LGen_step_HTTP_addHostHeader_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_addToUri_byVars" id=link33 onMouseOver="ShowTip(event, 'tt32', 'link33')" onMouseOut="HideTip('tt32')" class=ISymbol>f_IOT_LGen_step_HTTP_addToUri_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_addToUri_stringParam" id=link34 onMouseOver="ShowTip(event, 'tt33', 'link34')" onMouseOut="HideTip('tt33')" class=ISymbol>f_IOT_LGen_step_HTTP_addToUri_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_closeConnection" id=link35 onMouseOver="ShowTip(event, 'tt34', 'link35')" onMouseOut="HideTip('tt34')" class=ISymbol>f_IOT_LGen_step_HTTP_closeConnection</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_initEntityContext" id=link36 onMouseOver="ShowTip(event, 'tt35', 'link36')" onMouseOut="HideTip('tt35')" class=ISymbol>f_IOT_LGen_step_HTTP_initEntityContext</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_openConnection_byVars" id=link37 onMouseOver="ShowTip(event, 'tt36', 'link37')" onMouseOut="HideTip('tt36')" class=ISymbol>f_IOT_LGen_step_HTTP_openConnection_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_setMethod_stringParam" id=link38 onMouseOver="ShowTip(event, 'tt37', 'link38')" onMouseOut="HideTip('tt37')" class=ISymbol>f_IOT_LGen_step_HTTP_setMethod_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_setUri_stringParam" id=link39 onMouseOver="ShowTip(event, 'tt38', 'link39')" onMouseOut="HideTip('tt38')" class=ISymbol>f_IOT_LGen_step_HTTP_setUri_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar" id=link40 onMouseOver="ShowTip(event, 'tt39', 'link40')" onMouseOut="HideTip('tt39')" class=ISymbol>f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_LwM2M_setClientNameInRegister" id=link41 onMouseOver="ShowTip(event, 'tt40', 'link41')" onMouseOut="HideTip('tt40')" class=ISymbol>f_IOT_LGen_step_LwM2M_setClientNameInRegister</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar" id=link42 onMouseOver="ShowTip(event, 'tt41', 'link42')" onMouseOut="HideTip('tt41')" class=ISymbol>f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_MQTT_setClientId_stringParam" id=link43 onMouseOver="ShowTip(event, 'tt42', 'link43')" onMouseOut="HideTip('tt42')" class=ISymbol>f_IOT_LGen_step_MQTT_setClientId_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_MQTT_setLocalAddress_byVars" id=link44 onMouseOver="ShowTip(event, 'tt43', 'link44')" onMouseOut="HideTip('tt43')" class=ISymbol>f_IOT_LGen_step_MQTT_setLocalAddress_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_print_stringParam" id=link45 onMouseOver="ShowTip(event, 'tt44', 'link45')" onMouseOut="HideTip('tt44')" class=ISymbol>f_IOT_LGen_step_print_stringParam</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_tcFinished_withVerdict" id=link46 onMouseOver="ShowTip(event, 'tt45', 'link46')" onMouseOut="HideTip('tt45')" class=ISymbol>f_IOT_LGen_step_tcFinished_withVerdict</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">altstep as_InfluxDB_eventHandler() runs on InfluxDB_CT</td></tr></table></blockquote>When report period expired, restarts the InfluxDB event handler and sets the time of the next report</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_addField(</td><td class="PTypePrefix prettyprint " nowrap>inout </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_pdu,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxAttrValue </td><td class="PParameter prettyprint " nowrap>p_field</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a field to the field-list of an InfluxDB message</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_addTag(</td><td class="PTypePrefix prettyprint " nowrap>inout </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_pdu,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxAttrValue </td><td class="PParameter prettyprint " nowrap>p_tag</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a tag to the tag-list of an InfluxDB message</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_InfluxDB_connect() runs on InfluxDB_CT</td></tr></table></blockquote>Setup the connection with the InfluxDB database</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_encode(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_prot,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>out </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_encoded</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Converts a report to charstring format</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_InfluxDB_scheduleNextReport() runs on InfluxDB_CT</td></tr></table></blockquote>Sets the target time of the next report</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_send(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_data</td><td class="PAfterParameters prettyprint "nowrap>) runs on InfluxDB_CT</td></tr></table></td></tr></table></blockquote>Sends a report to the InfluxDB database</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_setMeasurement(</td><td class="PTypePrefix prettyprint " nowrap>inout </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_pdu,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_measurement</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the measurement field of an InfluxDB report</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InlfuxDB_log_debug(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_log</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>If debug log is set, write the parameter to the log file</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_App_startExecCtrl(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>pl_nrOfClients,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_DataSource_CT </td><td class="PParameter prettyprint " nowrap width=100%>pl_datasource</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_ExecCtrl_CT</td></tr></table></td></tr></table></blockquote>Starting up the Execution Control component that will orchestrate the load generator IOT_LGen_CT,<EPTF_ExecCtrlClient_CT> component instances</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_COAP_LGen_receiveMessage(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_COAP_PDU </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Wrapper of f_EPTF_COAP_LGen_receiveMessage, used for catching and incoming COAP messages.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_COAP_LocalTransport_send(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_COAP_PDU </td><td class="PParameter prettyprint " nowrap width=100%>pl_msg</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Wrapper of f_IOT_COAP_LocalTransport_send, used for catching outgoing COAP messages.</div></div><div class=CToolTip id="tt13"><div class=CFunction>The main initialization function for the InfluxDB_CT component type</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_create (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_hostname,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_componentName</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_ExecCtrl_CT return EPTF_ExecCtrlClient_CT</td></tr></table></td></tr></table></blockquote>Starting up a load generator IOT_LGen_CT component instances</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_IOT_LGen_declareSteps() runs on IOT_LGen_CT</td></tr></table></blockquote>Function to declare all the RIoT application related test steps</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_getEntityIdxinEntityGroup(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT return integer</td></tr></table></td></tr></table></blockquote>Calculates the index of the entity inside its entity group</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_init(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_idx,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_ExecCtrl_CT </td><td class="PParameter prettyprint " nowrap width=100%>pl_ExecCtrlRef</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>The main init function of the IOT_LGen_CT component type It initializes the integrated application libraries and defines its own c_IOT_behaviorType and test steps f_IOT_LGen_declareSteps The sample database of the smart objects are also filled in here by calling f_IOT_LGen_initSamples</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_IOT_LGen_initSamples(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_selfName</td><td class="PAfterParameters prettyprint "nowrap>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Initializes the <b>v_IOT_LGen_DataSamples_DB</b> database by loading a set of data samples</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_DEBUG(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the DEBUG log level</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_ERROR(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the ERROR log level</div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_VERBOSE(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the VERBOSE log level</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_WARNING(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the WARNING log level</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_COAP_setLocalAddress_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the local address in the COAP entity context COAP_EntityCtx. </div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_RegDereg_initResourceValues(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to init resources of the RegDereg FSM</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_createResources(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to create resources of the SimDevice FSM</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_handleExecute(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to handle incoming LwM2M EXECUTE request in the SimDevice FSM</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_initResourceValues(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to init the resource values of the SimDevice FSM</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to initialize the COAP transport (either UDP, or DTLS-PSK) of the SimDevice FSM. </div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_updateResourceValues(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to update the resource values of the SimDevice FSM</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_genRndValue_varParams(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to generate a random number and load it into an integer variable. </div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_addHostHeader_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to add a Host header to the HTTP messager to be sent. </div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_addToUri_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_addToUri_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_closeConnection(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to close an already opened TCP connection for HTTP</div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_initEntityContext(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to initialize the HTTP entity context by calling f_EPTF_HTTP_setEntityContext.</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_openConnection_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to open a TCP connection for HTTP. </div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_setMethod_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_setUri_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to fetch the client name of an HTTP response sent by Leshan into a variable</div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_LwM2M_setClientNameInRegister(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the endpoint client name in the LWM2M Register message that must be previously loaded into <b>v_LwM2M_msgToSend</b>. </div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the endpoint client name in the LWM2M Register message that must be previously loaded into <b>v_LwM2M_msgToSend</b>. </div></div><div class=CToolTip id="tt42"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_MQTT_setClientId_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the client id the MQTT entity context. </div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_MQTT_setLocalAddress_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the local address in the MQTT entity context. </div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_print_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to print a string parameter as a TTCN-3 action() statement</div></div><div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_tcFinished_withVerdict(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the final verdict reported by the FSM using a verdict variable as parameter.</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/index/General.html b/apidoc/html/index/General.html
new file mode 100644
index 0000000..a73fb57
--- /dev/null
+++ b/apidoc/html/index/General.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IoT_Load_Test_Framework - Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="FramedIndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="#A">A</a> · B · <a href="#C">C</a> · D · E · <a href="#F">F</a> · G · H · <a href="General2.html#I">I</a> · J · K · L · M · N · O · P · Q · R · S · <a href="General2.html#T">T</a> · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="A"></a>A</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#as_InfluxDB_eventHandler" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>as_InfluxDB_eventHandler</a></td></tr><tr><td class=IHeading><a name="C"></a>C</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#c_IOT_behaviorType" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>c_IOT_behaviorType</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#c_IOT_entityType" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>c_IOT_entityType</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_COAP_setLocalAddress_byVars" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>c_IOT_stepName_COAP_setLocalAddress_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_RegDereg_initResourceValues" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>c_IOT_stepName_FSM_RegDereg_initResourceValues</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_createResources" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>c_IOT_stepName_FSM_SimDevice_createResources</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_handleExecute" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>c_IOT_stepName_FSM_SimDevice_handleExecute</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_initResourceValues" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>c_IOT_stepName_FSM_SimDevice_initResourceValues</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_initTransport_boolVar" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>c_IOT_stepName_FSM_SimDevice_initTransport_boolVar</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_updateResourceValues" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>c_IOT_stepName_FSM_SimDevice_updateResourceValues</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_genRndValue_varParams" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>c_IOT_stepName_genRndValue_varParams</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_addHostHeader_byVars" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>c_IOT_stepName_HTTP_addHostHeader_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_addToUri_byVars" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>c_IOT_stepName_HTTP_addToUri_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_addToUri_stringParam" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>c_IOT_stepName_HTTP_addToUri_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_closeConnection" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>c_IOT_stepName_HTTP_closeConnection</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_initEntityContext" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>c_IOT_stepName_HTTP_initEntityContext</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_openConnection_byVars" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>c_IOT_stepName_HTTP_openConnection_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_setMethod_stringParam" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>c_IOT_stepName_HTTP_setMethod_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_setUri_stringParam" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>c_IOT_stepName_HTTP_setUri_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_Leshan_getClientFromResponse_intoVar" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>c_IOT_stepName_Leshan_getClientFromResponse_intoVar</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_LwM2M_setClientNameInRegister" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>c_IOT_stepName_LwM2M_setClientNameInRegister</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')" class=ISymbol>c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_MQTT_setClientId_stringParam" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')" class=ISymbol>c_IOT_stepName_MQTT_setClientId_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_MQTT_setLocalAddress_byVars" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')" class=ISymbol>c_IOT_stepName_MQTT_setLocalAddress_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_print_stringParam" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')" class=ISymbol>c_IOT_stepName_print_stringParam</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_tcFinished_withVerdict" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')" class=ISymbol>c_IOT_stepName_tcFinished_withVerdict</a></td></tr><tr><td class=IHeading><a name="F"></a>F</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_addField" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')" class=ISymbol>f_InfluxDB_addField</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_addTag" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')" class=ISymbol>f_InfluxDB_addTag</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_connect" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')" class=ISymbol>f_InfluxDB_connect</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_encode" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')" class=ISymbol>f_InfluxDB_encode</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_scheduleNextReport" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')" class=ISymbol>f_InfluxDB_scheduleNextReport</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_send" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')" class=ISymbol>f_InfluxDB_send</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_setMeasurement" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')" class=ISymbol>f_InfluxDB_setMeasurement</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InlfuxDB_log_debug" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')" class=ISymbol>f_InlfuxDB_log_debug</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#f_IOT_App_startExecCtrl" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')" class=ISymbol>f_IOT_App_startExecCtrl</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_COAP_LGen_receiveMessage" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')" class=ISymbol>f_IOT_COAP_LGen_receiveMessage</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_COAP_LocalTransport_send" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')" class=ISymbol>f_IOT_COAP_LocalTransport_send</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><span class=ISymbol>f_IOT_LGen_behavior</span><div class=ISubIndex><a href="../files/InfluxDB_Functions-ttcn.html#f_IOT_LGen_behavior" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')" class=IFile>InfluxDB_Functions.ttcn</a><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_behavior" id=link39 onMouseOver="ShowTip(event, 'tt38', 'link39')" onMouseOut="HideTip('tt38')" class=IFile>IOT_LGen_Functions.ttcn</a></div></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#f_IOT_LGen_create" id=link40 onMouseOver="ShowTip(event, 'tt39', 'link40')" onMouseOut="HideTip('tt39')" class=ISymbol>f_IOT_LGen_create</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_declareSteps" id=link41 onMouseOver="ShowTip(event, 'tt40', 'link41')" onMouseOut="HideTip('tt40')" class=ISymbol>f_IOT_LGen_declareSteps</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_getEntityIdxinEntityGroup" id=link42 onMouseOver="ShowTip(event, 'tt41', 'link42')" onMouseOut="HideTip('tt41')" class=ISymbol>f_IOT_LGen_getEntityIdxinEntityGroup</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_init" id=link43 onMouseOver="ShowTip(event, 'tt42', 'link43')" onMouseOut="HideTip('tt42')" class=ISymbol>f_IOT_LGen_init</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_initSamples" id=link44 onMouseOver="ShowTip(event, 'tt43', 'link44')" onMouseOut="HideTip('tt43')" class=ISymbol>f_IOT_LGen_initSamples</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_DEBUG" id=link45 onMouseOver="ShowTip(event, 'tt44', 'link45')" onMouseOut="HideTip('tt44')" class=ISymbol>f_IOT_LGen_Logging_DEBUG</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_ERROR" id=link46 onMouseOver="ShowTip(event, 'tt45', 'link46')" onMouseOut="HideTip('tt45')" class=ISymbol>f_IOT_LGen_Logging_ERROR</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_VERBOSE" id=link47 onMouseOver="ShowTip(event, 'tt46', 'link47')" onMouseOut="HideTip('tt46')" class=ISymbol>f_IOT_LGen_Logging_VERBOSE</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_WARNING" id=link48 onMouseOver="ShowTip(event, 'tt47', 'link48')" onMouseOut="HideTip('tt47')" class=ISymbol>f_IOT_LGen_Logging_WARNING</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_COAP_setLocalAddress_byVars" id=link49 onMouseOver="ShowTip(event, 'tt48', 'link49')" onMouseOut="HideTip('tt48')" class=ISymbol>f_IOT_LGen_step_COAP_setLocalAddress_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_RegDereg_initResourceValues" id=link50 onMouseOver="ShowTip(event, 'tt49', 'link50')" onMouseOut="HideTip('tt49')" class=ISymbol>f_IOT_LGen_step_FSM_RegDereg_initResourceValues</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_createResources" id=link51 onMouseOver="ShowTip(event, 'tt50', 'link51')" onMouseOut="HideTip('tt50')" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_createResources</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_handleExecute" id=link52 onMouseOver="ShowTip(event, 'tt51', 'link52')" onMouseOut="HideTip('tt51')" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_handleExecute</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_initResourceValues" id=link53 onMouseOver="ShowTip(event, 'tt52', 'link53')" onMouseOut="HideTip('tt52')" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_initResourceValues</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar" id=link54 onMouseOver="ShowTip(event, 'tt53', 'link54')" onMouseOut="HideTip('tt53')" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_updateResourceValues" id=link55 onMouseOver="ShowTip(event, 'tt54', 'link55')" onMouseOut="HideTip('tt54')" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_updateResourceValues</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_genRndValue_varParams" id=link56 onMouseOver="ShowTip(event, 'tt55', 'link56')" onMouseOut="HideTip('tt55')" class=ISymbol>f_IOT_LGen_step_genRndValue_varParams</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_addHostHeader_byVars" id=link57 onMouseOver="ShowTip(event, 'tt56', 'link57')" onMouseOut="HideTip('tt56')" class=ISymbol>f_IOT_LGen_step_HTTP_addHostHeader_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_addToUri_byVars" id=link58 onMouseOver="ShowTip(event, 'tt57', 'link58')" onMouseOut="HideTip('tt57')" class=ISymbol>f_IOT_LGen_step_HTTP_addToUri_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_addToUri_stringParam" id=link59 onMouseOver="ShowTip(event, 'tt58', 'link59')" onMouseOut="HideTip('tt58')" class=ISymbol>f_IOT_LGen_step_HTTP_addToUri_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_closeConnection" id=link60 onMouseOver="ShowTip(event, 'tt59', 'link60')" onMouseOut="HideTip('tt59')" class=ISymbol>f_IOT_LGen_step_HTTP_closeConnection</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_initEntityContext" id=link61 onMouseOver="ShowTip(event, 'tt60', 'link61')" onMouseOut="HideTip('tt60')" class=ISymbol>f_IOT_LGen_step_HTTP_initEntityContext</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_openConnection_byVars" id=link62 onMouseOver="ShowTip(event, 'tt61', 'link62')" onMouseOut="HideTip('tt61')" class=ISymbol>f_IOT_LGen_step_HTTP_openConnection_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_setMethod_stringParam" id=link63 onMouseOver="ShowTip(event, 'tt62', 'link63')" onMouseOut="HideTip('tt62')" class=ISymbol>f_IOT_LGen_step_HTTP_setMethod_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_setUri_stringParam" id=link64 onMouseOver="ShowTip(event, 'tt63', 'link64')" onMouseOut="HideTip('tt63')" class=ISymbol>f_IOT_LGen_step_HTTP_setUri_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar" id=link65 onMouseOver="ShowTip(event, 'tt64', 'link65')" onMouseOut="HideTip('tt64')" class=ISymbol>f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_LwM2M_setClientNameInRegister" id=link66 onMouseOver="ShowTip(event, 'tt65', 'link66')" onMouseOut="HideTip('tt65')" class=ISymbol>f_IOT_LGen_step_LwM2M_setClientNameInRegister</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar" id=link67 onMouseOver="ShowTip(event, 'tt66', 'link67')" onMouseOut="HideTip('tt66')" class=ISymbol>f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_MQTT_setClientId_stringParam" id=link68 onMouseOver="ShowTip(event, 'tt67', 'link68')" onMouseOut="HideTip('tt67')" class=ISymbol>f_IOT_LGen_step_MQTT_setClientId_stringParam</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_MQTT_setLocalAddress_byVars" id=link69 onMouseOver="ShowTip(event, 'tt68', 'link69')" onMouseOut="HideTip('tt68')" class=ISymbol>f_IOT_LGen_step_MQTT_setLocalAddress_byVars</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_print_stringParam" id=link70 onMouseOver="ShowTip(event, 'tt69', 'link70')" onMouseOut="HideTip('tt69')" class=ISymbol>f_IOT_LGen_step_print_stringParam</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_tcFinished_withVerdict" id=link71 onMouseOver="ShowTip(event, 'tt70', 'link71')" onMouseOut="HideTip('tt70')" class=ISymbol>f_IOT_LGen_step_tcFinished_withVerdict</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">altstep as_InfluxDB_eventHandler() runs on InfluxDB_CT</td></tr></table></blockquote>When report period expired, restarts the InfluxDB event handler and sets the time of the next report</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt2"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_behaviorType := "IOT_Behavior"</td></tr></table></blockquote>Constant for the simulated IoT behavior type</div></div><div class=CToolTip id="tt3"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_entityType := "IOT_Entity"</td></tr></table></blockquote>Constant for the simulated IoT entity type</div></div><div class=CToolTip id="tt4"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_COAP_setLocalAddress_byVars := "IOT App COAP: setLocalAddress_byVars"</td></tr></table></blockquote>Charstring constant for setting the COAP local address test step</div></div><div class=CToolTip id="tt5"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_RegDereg_initResourceValues := "IOT Fsm LWM2M_RegDereg: initResourceValues"</td></tr></table></blockquote>Charstring constant for the test step that inits the resources of the RegDereg FSM</div></div><div class=CToolTip id="tt6"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_createResources := "IOT Fsm LWM2M_SimDevice: createResources"</td></tr></table></blockquote>Charstring constant for the test step that creates the resources of the SimDevice FSM</div></div><div class=CToolTip id="tt7"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_handleExecute := "IOT Fsm LWM2M_SimDevice: handleExecute"</td></tr></table></blockquote>Charstring constant for the test step that handles LwM2M EXECUTE requests on the SimDevice FSM</div></div><div class=CToolTip id="tt8"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_initResourceValues := "IOT Fsm LWM2M_SimDevice: initResourceValues"</td></tr></table></blockquote>Charstring constant for the test step that inits the resources of the SimDevice FSM</div></div><div class=CToolTip id="tt9"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_initTransport_boolVar := "IOT Fsm LWM2M_SimDevice: initTransport_boolVar"</td></tr></table></blockquote>Charstring constant for the test step that inits the transport (UDP, or DTLS-PSK) for the SimDev FSM’s LwM2M protocol</div></div><div class=CToolTip id="tt10"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_FSM_SimDevice_updateResourceValues := "IOT Fsm LWM2M_SimDevice: updateResourceValues"</td></tr></table></blockquote>Charstring constant for the test step that updates the resource values of the SimDevice FSM</div></div><div class=CToolTip id="tt11"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_genRndValue_varParams := "IOT App: genRndValue_varParams"</td></tr></table></blockquote>Charstring constant for the RIoT random number generator test step</div></div><div class=CToolTip id="tt12"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_addHostHeader_byVars := "IOT App HTTP: addHostHeader_byVars"</td></tr></table></blockquote>Charstring constant for the test step that adds a Host header to the HTTP message to be sent</div></div><div class=CToolTip id="tt13"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_addToUri_byVars := "IOT App HTTP: addToUri_byVars"</td></tr></table></blockquote>Charstring constant for the test step that concatenates a string to the HTTP request URI for the HTTP message to be sent</div></div><div class=CToolTip id="tt14"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_addToUri_stringParam := "IOT App HTTP: addToUri_stringParam"</td></tr></table></blockquote>Charstring constant for the test step that concatenates a string to the HTTP request URI for the HTTP message to be sent</div></div><div class=CToolTip id="tt15"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_closeConnection := "IOT App HTTP: closeConnection"</td></tr></table></blockquote>Charstring constant for the test step that closes the opened HTTP connection</div></div><div class=CToolTip id="tt16"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_initEntityContext := "IOT App HTTP: initEntityContext"</td></tr></table></blockquote>Charstring constant for the test step that initializes the HTTP entity context</div></div><div class=CToolTip id="tt17"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_openConnection_byVars := "IOT App HTTP: openConnection_byVars"</td></tr></table></blockquote>Charstring constant for the test step that opens an HTTP connection</div></div><div class=CToolTip id="tt18"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_setMethod_stringParam := "IOT App HTTP: setMethod_stringParam"</td></tr></table></blockquote>Charstring constant for the test step that sets the HTTP method for the HTTP message to be sent</div></div><div class=CToolTip id="tt19"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_HTTP_setUri_stringParam := "IOT App HTTP: setUri_stringParam"</td></tr></table></blockquote>Charstring constant for the test step that sets the HTTP request URI for the HTTP message to be sent</div></div><div class=CToolTip id="tt20"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_Leshan_getClientFromResponse_intoVar := "IOT App Leshan: getClientFromResponse_intoVar"</td></tr></table></blockquote>Charstring constant for the test step that loads the client name into a variable from an HTTP response</div></div><div class=CToolTip id="tt21"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_LwM2M_setClientNameInRegister := "IOT App LwM2M: setClientNameInRegister"</td></tr></table></blockquote>Charstring constant for the test step that sets the LwM2M endpoint name in the Register message</div></div><div class=CToolTip id="tt22"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar := "IOT App LwM2M: setClientNameInRegister_stringVar"</td></tr></table></blockquote>Charstring constant for the test step that sets the LwM2M endpoint name in the Register message</div></div><div class=CToolTip id="tt23"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_MQTT_setClientId_stringParam := "IOT App MQTT: setClientId_stringParam"</td></tr></table></blockquote>Charstring constant for the test step that sets the MQTT client id</div></div><div class=CToolTip id="tt24"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_MQTT_setLocalAddress_byVars := "IOT App MQTT: setLocalAddress_byVars"</td></tr></table></blockquote>Charstring constant for setting the MQTT local address test step</div></div><div class=CToolTip id="tt25"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_print_stringParam := "IOT App: print_stringParam"</td></tr></table></blockquote>Charstring constant for the RIoT print string test step</div></div><div class=CToolTip id="tt26"><div class=CConstant><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">const charstring c_IOT_stepName_tcFinished_withVerdict := "IOT App: tcFinished_withVerdict"</td></tr></table></blockquote>Charstring constant for the RIoT test case finished test step</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_addField(</td><td class="PTypePrefix prettyprint " nowrap>inout </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_pdu,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxAttrValue </td><td class="PParameter prettyprint " nowrap>p_field</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a field to the field-list of an InfluxDB message</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_addTag(</td><td class="PTypePrefix prettyprint " nowrap>inout </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_pdu,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxAttrValue </td><td class="PParameter prettyprint " nowrap>p_tag</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Adds a tag to the tag-list of an InfluxDB message</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_InfluxDB_connect() runs on InfluxDB_CT</td></tr></table></blockquote>Setup the connection with the InfluxDB database</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_encode(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_prot,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>out </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_encoded</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Converts a report to charstring format</div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_InfluxDB_scheduleNextReport() runs on InfluxDB_CT</td></tr></table></blockquote>Sets the target time of the next report</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_send(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_data</td><td class="PAfterParameters prettyprint "nowrap>) runs on InfluxDB_CT</td></tr></table></td></tr></table></blockquote>Sends a report to the InfluxDB database</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InfluxDB_setMeasurement(</td><td class="PTypePrefix prettyprint " nowrap>inout </td><td class="PType prettyprint " nowrap>InfluxLineProtocol </td><td class="PParameter prettyprint " nowrap>p_pdu,</td></tr><tr><td></td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_measurement</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the measurement field of an InfluxDB report</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_InlfuxDB_log_debug(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_log</td><td class="PAfterParameters prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>If debug log is set, write the parameter to the log file</div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_App_startExecCtrl(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>pl_nrOfClients,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_DataSource_CT </td><td class="PParameter prettyprint " nowrap width=100%>pl_datasource</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_ExecCtrl_CT</td></tr></table></td></tr></table></blockquote>Starting up the Execution Control component that will orchestrate the load generator IOT_LGen_CT,<EPTF_ExecCtrlClient_CT> component instances</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_COAP_LGen_receiveMessage(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_COAP_PDU </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Wrapper of f_EPTF_COAP_LGen_receiveMessage, used for catching and incoming COAP messages.</div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_COAP_LocalTransport_send(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_COAP_PDU </td><td class="PParameter prettyprint " nowrap width=100%>pl_msg</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Wrapper of f_IOT_COAP_LocalTransport_send, used for catching outgoing COAP messages.</div></div><div class=CToolTip id="tt38"><div class=CFunction>The main initialization function for the InfluxDB_CT component type</div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_create (</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_hostname,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_componentName</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on EPTF_ExecCtrl_CT return EPTF_ExecCtrlClient_CT</td></tr></table></td></tr></table></blockquote>Starting up a load generator IOT_LGen_CT component instances</div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">function f_IOT_LGen_declareSteps() runs on IOT_LGen_CT</td></tr></table></blockquote>Function to declare all the RIoT application related test steps</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_getEntityIdxinEntityGroup(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT return integer</td></tr></table></td></tr></table></blockquote>Calculates the index of the entity inside its entity group</div></div><div class=CToolTip id="tt42"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_init(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_selfName,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>integer </td><td class="PParameter prettyprint " nowrap width=100%>p_idx,</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_ExecCtrl_CT </td><td class="PParameter prettyprint " nowrap width=100%>pl_ExecCtrlRef</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>The main init function of the IOT_LGen_CT component type It initializes the integrated application libraries and defines its own c_IOT_behaviorType and test steps f_IOT_LGen_declareSteps The sample database of the smart objects are also filled in here by calling f_IOT_LGen_initSamples</div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "nowrap>function f_IOT_LGen_initSamples(</td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap>p_selfName</td><td class="PAfterParameters prettyprint "nowrap>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Initializes the <b>v_IOT_LGen_DataSamples_DB</b> database by loading a set of data samples</div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_DEBUG(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the DEBUG log level</div></div><div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_ERROR(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the ERROR log level</div></div><div class=CToolTip id="tt46"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_VERBOSE(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the VERBOSE log level</div></div><div class=CToolTip id="tt47"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_Logging_WARNING(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in @lazy </td><td class="PType prettyprint " nowrap>charstring </td><td class="PParameter prettyprint " nowrap width=100%>pl_message</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Logging functions for the WARNING log level</div></div><div class=CToolTip id="tt48"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_COAP_setLocalAddress_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the local address in the COAP entity context COAP_EntityCtx. </div></div><div class=CToolTip id="tt49"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_RegDereg_initResourceValues(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to init resources of the RegDereg FSM</div></div><div class=CToolTip id="tt50"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_createResources(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to create resources of the SimDevice FSM</div></div><div class=CToolTip id="tt51"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_handleExecute(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to handle incoming LwM2M EXECUTE request in the SimDevice FSM</div></div><div class=CToolTip id="tt52"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_initResourceValues(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to init the resource values of the SimDevice FSM</div></div><div class=CToolTip id="tt53"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to initialize the COAP transport (either UDP, or DTLS-PSK) of the SimDevice FSM. </div></div><div class=CToolTip id="tt54"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_FSM_SimDevice_updateResourceValues(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to update the resource values of the SimDevice FSM</div></div><div class=CToolTip id="tt55"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_genRndValue_varParams(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to generate a random number and load it into an integer variable. </div></div><div class=CToolTip id="tt56"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_addHostHeader_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to add a Host header to the HTTP messager to be sent. </div></div><div class=CToolTip id="tt57"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_addToUri_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt58"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_addToUri_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt59"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_closeConnection(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to close an already opened TCP connection for HTTP</div></div><div class=CToolTip id="tt60"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_initEntityContext(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to initialize the HTTP entity context by calling f_EPTF_HTTP_setEntityContext.</div></div><div class=CToolTip id="tt61"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_openConnection_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to open a TCP connection for HTTP. </div></div><div class=CToolTip id="tt62"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_setMethod_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt63"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_HTTP_setUri_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote></div></div><div class=CToolTip id="tt64"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to fetch the client name of an HTTP response sent by Leshan into a variable</div></div><div class=CToolTip id="tt65"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_LwM2M_setClientNameInRegister(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the endpoint client name in the LWM2M Register message that must be previously loaded into <b>v_LwM2M_msgToSend</b>. </div></div><div class=CToolTip id="tt66"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the endpoint client name in the LWM2M Register message that must be previously loaded into <b>v_LwM2M_msgToSend</b>. </div></div><div class=CToolTip id="tt67"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_MQTT_setClientId_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the client id the MQTT entity context. </div></div><div class=CToolTip id="tt68"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_MQTT_setLocalAddress_byVars(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the local address in the MQTT entity context. </div></div><div class=CToolTip id="tt69"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_print_stringParam(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to print a string parameter as a TTCN-3 action() statement</div></div><div class=CToolTip id="tt70"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters prettyprint "colspan=4>function f_IOT_LGen_step_tcFinished_withVerdict(</td></tr><tr><td> </td><td class="PTypePrefix prettyprint " nowrap>in </td><td class="PType prettyprint " nowrap>EPTF_LGenBase_TestStepArgs </td><td class="PParameter prettyprint " nowrap width=100%>pl_ptr</td></tr><tr><td class="PAfterParameters prettyprint "colspan=4>) runs on IOT_LGen_CT</td></tr></table></td></tr></table></blockquote>Test step to set the final verdict reported by the FSM using a verdict variable as parameter.</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/index/General2.html b/apidoc/html/index/General2.html
new file mode 100644
index 0000000..086b4e9
--- /dev/null
+++ b/apidoc/html/index/General2.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IoT_Load_Test_Framework - Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="FramedIndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Index</div><div class=INavigationBar>$#! · 0-9 · <a href="General.html#A">A</a> · B · <a href="General.html#C">C</a> · D · E · <a href="General.html#F">F</a> · G · H · <a href="#I">I</a> · J · K · L · M · N · O · P · Q · R · S · <a href="#T">T</a> · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="I"></a>I</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#InfluxDB_Definitions.ttcn" class=ISymbol>InfluxDB_Definitions.ttcn</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#InfluxDB_Functions.ttcn" class=ISymbol>InfluxDB_Functions.ttcn</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#IOT_App_CT" id=link72 onMouseOver="ShowTip(event, 'tt71', 'link72')" onMouseOut="HideTip('tt71')" class=ISymbol>IOT_App_CT</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#IOT_App_Definitions" id=link73 onMouseOver="ShowTip(event, 'tt72', 'link73')" onMouseOut="HideTip('tt72')" class=ISymbol>IOT_App_Definitions</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#IOT_App_Functions" id=link74 onMouseOver="ShowTip(event, 'tt73', 'link74')" onMouseOut="HideTip('tt73')" class=ISymbol>IOT_App_Functions</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" id=link75 onMouseOver="ShowTip(event, 'tt74', 'link75')" onMouseOut="HideTip('tt74')" class=ISymbol>IOT_LGen_CT</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#IOT_LGen_Definitions" id=link76 onMouseOver="ShowTip(event, 'tt75', 'link76')" onMouseOut="HideTip('tt75')" class=ISymbol>IOT_LGen_Definitions</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#IOT_LGen_Functions" id=link77 onMouseOver="ShowTip(event, 'tt76', 'link77')" onMouseOut="HideTip('tt76')" class=ISymbol>IOT_LGen_Functions</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#IOT_LGen_Steps" id=link78 onMouseOver="ShowTip(event, 'tt77', 'link78')" onMouseOut="HideTip('tt77')" class=ISymbol>IOT_LGen_Steps</a></td></tr><tr><td class=IHeading><a name="T"></a>T</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#TC" id=link79 onMouseOver="ShowTip(event, 'tt78', 'link79')" onMouseOut="HideTip('tt78')" class=ISymbol>TC</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_API_directory" id=link80 onMouseOver="ShowTip(event, 'tt79', 'link80')" onMouseOut="HideTip('tt79')" class=ISymbol>tsp_EPTF_DsRestAPI_API_directory</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_customizableApp_directory" id=link81 onMouseOver="ShowTip(event, 'tt80', 'link81')" onMouseOut="HideTip('tt80')" class=ISymbol>tsp_EPTF_DsRestAPI_customizableApp_directory</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_HTTPServer_directory" id=link82 onMouseOver="ShowTip(event, 'tt81', 'link82')" onMouseOut="HideTip('tt81')" class=ISymbol>tsp_EPTF_DsRestAPI_HTTPServer_directory</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress" id=link83 onMouseOver="ShowTip(event, 'tt82', 'link83')" onMouseOut="HideTip('tt82')" class=ISymbol>tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_HTTPServer_RemotePort" id=link84 onMouseOver="ShowTip(event, 'tt83', 'link84')" onMouseOut="HideTip('tt83')" class=ISymbol>tsp_EPTF_DsRestAPI_HTTPServer_RemotePort</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#tsp_InfluxDB_client_basePort" id=link85 onMouseOver="ShowTip(event, 'tt84', 'link85')" onMouseOut="HideTip('tt84')" class=ISymbol>tsp_InfluxDB_client_basePort</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#tsp_InfluxDB_debug" id=link86 onMouseOver="ShowTip(event, 'tt85', 'link86')" onMouseOut="HideTip('tt85')" class=ISymbol>tsp_InfluxDB_debug</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#tsp_InfluxDB_reportPeriod" id=link87 onMouseOver="ShowTip(event, 'tt86', 'link87')" onMouseOut="HideTip('tt86')" class=ISymbol>tsp_InfluxDB_reportPeriod</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#tsp_IOT_LGen_FSMs" id=link88 onMouseOver="ShowTip(event, 'tt87', 'link88')" onMouseOut="HideTip('tt87')" class=ISymbol>tsp_IOT_LGen_FSMs</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt71"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_App_CT extends EPTF_Base_CT, EPTF_DsRestAPI_CT</td></tr></table></blockquote>RIoT application’s main component providing a REST API to the environment</div></div><div class=CToolTip id="tt72"><div class=CFile>This module contains the definitions for RIoT’s main component</div></div><div class=CToolTip id="tt73"><div class=CFile>This module contains the functions of RIoT’s main component</div></div><div class=CToolTip id="tt74"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_LGen_CT</td></tr></table></blockquote>IoT load generator component</div></div><div class=CToolTip id="tt75"><div class=CFile>This module contains the definitions for an IoT load generator component</div></div><div class=CToolTip id="tt76"><div class=CFile>This module contains the functions of an IoT load generator component</div></div><div class=CToolTip id="tt77"><div class=CFile>This module contains test step functions for an IoT load generator component</div></div><!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt78"><div class=CTestcase>The main entry point of the RIoT application</div></div><div class=CToolTip id="tt79"><div class=CModuleParameter>Path of DsRestAPI API directory</div></div><div class=CToolTip id="tt80"><div class=CModuleParameter>Path of the REST API customizableApp directory</div></div><div class=CToolTip id="tt81"><div class=CModuleParameter>Path of REST API HTTP server directory</div></div><div class=CToolTip id="tt82"><div class=CModuleParameter>IP address of the REST API server</div></div><div class=CToolTip id="tt83"><div class=CModuleParameter>Port number of the REST API server</div></div><div class=CToolTip id="tt84"><div class=CModuleParameter>Local port number used for the UDP connection with the InfluxDB</div></div><div class=CToolTip id="tt85"><div class=CModuleParameter>Enable/disable debug logging</div></div><div class=CToolTip id="tt86"><div class=CModuleParameter>InfluxDB event handler reporting period</div></div><div class=CToolTip id="tt87"><div class=CModuleParameter>FSM declarations that can be instantiated for the traffic cases</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/index/ModuleParameters.html b/apidoc/html/index/ModuleParameters.html
new file mode 100644
index 0000000..7e9abb0
--- /dev/null
+++ b/apidoc/html/index/ModuleParameters.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IoT_Load_Test_Framework - Module Parameter Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="FramedIndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Module Parameter Index</div><div class=INavigationBar>$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · <a href="#T">T</a> · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="T"></a>T</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_API_directory" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>tsp_EPTF_DsRestAPI_API_directory</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_customizableApp_directory" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>tsp_EPTF_DsRestAPI_customizableApp_directory</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_HTTPServer_directory" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>tsp_EPTF_DsRestAPI_HTTPServer_directory</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_HTTPServer_RemotePort" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>tsp_EPTF_DsRestAPI_HTTPServer_RemotePort</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#tsp_InfluxDB_client_basePort" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>tsp_InfluxDB_client_basePort</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#tsp_InfluxDB_debug" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>tsp_InfluxDB_debug</a></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#tsp_InfluxDB_reportPeriod" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>tsp_InfluxDB_reportPeriod</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#tsp_IOT_LGen_FSMs" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>tsp_IOT_LGen_FSMs</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CModuleParameter>Path of DsRestAPI API directory</div></div><div class=CToolTip id="tt2"><div class=CModuleParameter>Path of the REST API customizableApp directory</div></div><div class=CToolTip id="tt3"><div class=CModuleParameter>Path of REST API HTTP server directory</div></div><div class=CToolTip id="tt4"><div class=CModuleParameter>IP address of the REST API server</div></div><div class=CToolTip id="tt5"><div class=CModuleParameter>Port number of the REST API server</div></div><div class=CToolTip id="tt6"><div class=CModuleParameter>Local port number used for the UDP connection with the InfluxDB</div></div><div class=CToolTip id="tt7"><div class=CModuleParameter>Enable/disable debug logging</div></div><div class=CToolTip id="tt8"><div class=CModuleParameter>InfluxDB event handler reporting period</div></div><div class=CToolTip id="tt9"><div class=CModuleParameter>FSM declarations that can be instantiated for the traffic cases</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/index/Types.html b/apidoc/html/index/Types.html
new file mode 100644
index 0000000..4190c3b
--- /dev/null
+++ b/apidoc/html/index/Types.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>IoT_Load_Test_Framework - Type Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="FramedIndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Type Index</div><div class=INavigationBar>$#! · 0-9 · A · B · C · D · E · F · G · H · <a href="#I">I</a> · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="I"></a>I</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#IOT_App_CT" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>IOT_App_CT</a></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>IOT_LGen_CT</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_App_CT extends EPTF_Base_CT, EPTF_DsRestAPI_CT</td></tr></table></blockquote>RIoT application’s main component providing a REST API to the environment</div></div><div class=CToolTip id="tt2"><div class=CType><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">type component IOT_LGen_CT</td></tr></table></blockquote>IoT load generator component</div></div><!--END_ND_TOOLTIPS-->
+
+</div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/javascript/main.js b/apidoc/html/javascript/main.js
new file mode 100644
index 0000000..3f42acd
--- /dev/null
+++ b/apidoc/html/javascript/main.js
@@ -0,0 +1,841 @@
+// This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure
+// Natural Docs is licensed under version 3 of the GNU Affero General Public License (AGPL)
+// Refer to License.txt for the complete details
+
+// This file may be distributed with documentation files generated by Natural Docs.
+// Such documentation is not covered by Natural Docs' copyright and licensing,
+// and may have its own copyright and distribution terms as decided by its author.
+
+
+//
+// Browser Styles
+// ____________________________________________________________________________
+
+var agt=navigator.userAgent.toLowerCase();
+var browserType;
+var browserVer;
+
+if (agt.indexOf("opera") != -1)
+ {
+ browserType = "Opera";
+
+ if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1)
+ { browserVer = "Opera7"; }
+ else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1)
+ { browserVer = "Opera8"; }
+ else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1)
+ { browserVer = "Opera9"; }
+ }
+
+else if (agt.indexOf("applewebkit") != -1)
+ {
+ browserType = "Safari";
+
+ if (agt.indexOf("version/3") != -1)
+ { browserVer = "Safari3"; }
+ else if (agt.indexOf("safari/4") != -1)
+ { browserVer = "Safari2"; }
+ }
+
+else if (agt.indexOf("khtml") != -1)
+ {
+ browserType = "Konqueror";
+ }
+
+else if (agt.indexOf("msie") != -1)
+ {
+ browserType = "IE";
+
+ if (agt.indexOf("msie 6") != -1)
+ { browserVer = "IE6"; }
+ else if (agt.indexOf("msie 7") != -1)
+ { browserVer = "IE7"; }
+ }
+
+else if (agt.indexOf("gecko") != -1)
+ {
+ browserType = "Firefox";
+
+ if (agt.indexOf("rv:1.7") != -1)
+ { browserVer = "Firefox1"; }
+ else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1)
+ { browserVer = "Firefox15"; }
+ else if (agt.indexOf("rv:1.8.1") != -1)
+ { browserVer = "Firefox2"; }
+ }
+
+
+//
+// Support Functions
+// ____________________________________________________________________________
+
+
+function GetXPosition(item)
+ {
+ var position = 0;
+
+ if (item.offsetWidth != null)
+ {
+ while (item != document.body && item != null)
+ {
+ position += item.offsetLeft;
+ item = item.offsetParent;
+ };
+ };
+
+ return position;
+ };
+
+
+function GetYPosition(item)
+ {
+ var position = 0;
+
+ if (item.offsetWidth != null)
+ {
+ while (item != document.body && item != null)
+ {
+ position += item.offsetTop;
+ item = item.offsetParent;
+ };
+ };
+
+ return position;
+ };
+
+
+function MoveToPosition(item, x, y)
+ {
+ // Opera 5 chokes on the px extension, so it can use the Microsoft one instead.
+
+ if (item.style.left != null)
+ {
+ item.style.left = x + "px";
+ item.style.top = y + "px";
+ }
+ else if (item.style.pixelLeft != null)
+ {
+ item.style.pixelLeft = x;
+ item.style.pixelTop = y;
+ };
+ };
+
+
+//
+// Menu
+// ____________________________________________________________________________
+
+
+function ToggleMenu(id)
+ {
+ if (!window.document.getElementById)
+ { return; };
+
+ var display = window.document.getElementById(id).style.display;
+
+ if (display == "none")
+ { display = "block"; }
+ else
+ { display = "none"; }
+
+ window.document.getElementById(id).style.display = display;
+ }
+
+function HideAllBut(ids, max)
+ {
+ if (document.getElementById)
+ {
+ ids.sort( function(a,b) { return a - b; } );
+ var number = 1;
+
+ while (number < max)
+ {
+ if (ids.length > 0 && number == ids[0])
+ { ids.shift(); }
+ else
+ {
+ document.getElementById("MGroupContent" + number).style.display = "none";
+ };
+
+ number++;
+ };
+ };
+ }
+
+
+//
+// Tooltips
+// ____________________________________________________________________________
+
+
+var tooltipTimer = 0;
+
+function ShowTip(event, tooltipID, linkID)
+ {
+ if (tooltipTimer)
+ { clearTimeout(tooltipTimer); };
+
+ var docX = event.clientX + window.pageXOffset;
+ var docY = event.clientY + window.pageYOffset;
+
+ var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")";
+
+ tooltipTimer = setTimeout(showCommand, 1000);
+ }
+
+function ReallyShowTip(tooltipID, linkID, docX, docY)
+ {
+ tooltipTimer = 0;
+
+ var tooltip;
+ var link;
+
+ if (document.getElementById)
+ {
+ tooltip = document.getElementById(tooltipID);
+ link = document.getElementById(linkID);
+ }
+/* else if (document.all)
+ {
+ tooltip = eval("document.all['" + tooltipID + "']");
+ link = eval("document.all['" + linkID + "']");
+ }
+*/
+ if (tooltip)
+ {
+ var left = GetXPosition(link);
+ var top = GetYPosition(link);
+ top += link.offsetHeight;
+
+
+ // The fallback method is to use the mouse X and Y relative to the document. We use a separate if and test if its a number
+ // in case some browser snuck through the above if statement but didn't support everything.
+
+ if (!isFinite(top) || top == 0)
+ {
+ left = docX;
+ top = docY;
+ }
+
+ // Some spacing to get it out from under the cursor.
+
+ top += 10;
+
+ // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the
+ // page. We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right.
+
+ if (tooltip.offsetWidth != null)
+ {
+ var width = tooltip.offsetWidth;
+ var docWidth = document.body.clientWidth;
+
+ if (left + width > docWidth)
+ { left = docWidth - width - 1; }
+
+ // If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width.
+ if (left < 0)
+ { left = 0; };
+ }
+
+ MoveToPosition(tooltip, left, top);
+ tooltip.style.visibility = "visible";
+ }
+ }
+
+function HideTip(tooltipID)
+ {
+ if (tooltipTimer)
+ {
+ clearTimeout(tooltipTimer);
+ tooltipTimer = 0;
+ }
+
+ var tooltip;
+
+ if (document.getElementById)
+ { tooltip = document.getElementById(tooltipID); }
+ else if (document.all)
+ { tooltip = eval("document.all['" + tooltipID + "']"); }
+
+ if (tooltip)
+ { tooltip.style.visibility = "hidden"; }
+ }
+
+
+//
+// Blockquote fix for IE
+// ____________________________________________________________________________
+
+
+function NDOnLoad()
+ {
+ if (browserVer == "IE6")
+ {
+ var scrollboxes = document.getElementsByTagName('blockquote');
+
+ if (scrollboxes.item(0))
+ {
+ NDDoResize();
+ window.onresize=NDOnResize;
+ };
+ };
+ };
+
+
+var resizeTimer = 0;
+
+function NDOnResize()
+ {
+ if (resizeTimer != 0)
+ { clearTimeout(resizeTimer); };
+
+ resizeTimer = setTimeout(NDDoResize, 250);
+ };
+
+
+function NDDoResize()
+ {
+ var scrollboxes = document.getElementsByTagName('blockquote');
+
+ var i;
+ var item;
+
+ i = 0;
+ while (item = scrollboxes.item(i))
+ {
+ item.style.width = 100;
+ i++;
+ };
+
+ i = 0;
+ while (item = scrollboxes.item(i))
+ {
+ item.style.width = item.parentNode.offsetWidth;
+ i++;
+ };
+
+ clearTimeout(resizeTimer);
+ resizeTimer = 0;
+ }
+
+
+
+/* ________________________________________________________________________________________________________
+
+ Class: SearchPanel
+ ________________________________________________________________________________________________________
+
+ A class handling everything associated with the search panel.
+
+ Parameters:
+
+ name - The name of the global variable that will be storing this instance. Is needed to be able to set timeouts.
+ mode - The mode the search is going to work in. Pass <NaturalDocs::Builder::Base->CommandLineOption()>, so the
+ value will be something like "HTML" or "FramedHTML".
+
+ ________________________________________________________________________________________________________
+*/
+
+
+function SearchPanel(name, mode, resultsPath)
+ {
+ if (!name || !mode || !resultsPath)
+ { alert("Incorrect parameters to SearchPanel."); };
+
+
+ // Group: Variables
+ // ________________________________________________________________________
+
+ /*
+ var: name
+ The name of the global variable that will be storing this instance of the class.
+ */
+ this.name = name;
+
+ /*
+ var: mode
+ The mode the search is going to work in, such as "HTML" or "FramedHTML".
+ */
+ this.mode = mode;
+
+ /*
+ var: resultsPath
+ The relative path from the current HTML page to the results page directory.
+ */
+ this.resultsPath = resultsPath;
+
+ /*
+ var: keyTimeout
+ The timeout used between a keystroke and when a search is performed.
+ */
+ this.keyTimeout = 0;
+
+ /*
+ var: keyTimeoutLength
+ The length of <keyTimeout> in thousandths of a second.
+ */
+ this.keyTimeoutLength = 500;
+
+ /*
+ var: lastSearchValue
+ The last search string executed, or an empty string if none.
+ */
+ this.lastSearchValue = "";
+
+ /*
+ var: lastResultsPage
+ The last results page. The value is only relevant if <lastSearchValue> is set.
+ */
+ this.lastResultsPage = "";
+
+ /*
+ var: deactivateTimeout
+
+ The timeout used between when a control is deactivated and when the entire panel is deactivated. Is necessary
+ because a control may be deactivated in favor of another control in the same panel, in which case it should stay
+ active.
+ */
+ this.deactivateTimout = 0;
+
+ /*
+ var: deactivateTimeoutLength
+ The length of <deactivateTimeout> in thousandths of a second.
+ */
+ this.deactivateTimeoutLength = 200;
+
+
+
+
+ // Group: DOM Elements
+ // ________________________________________________________________________
+
+
+ // Function: DOMSearchField
+ this.DOMSearchField = function()
+ { return document.getElementById("MSearchField"); };
+
+ // Function: DOMSearchType
+ this.DOMSearchType = function()
+ { return document.getElementById("MSearchType"); };
+
+ // Function: DOMPopupSearchResults
+ this.DOMPopupSearchResults = function()
+ { return document.getElementById("MSearchResults"); };
+
+ // Function: DOMPopupSearchResultsWindow
+ this.DOMPopupSearchResultsWindow = function()
+ { return document.getElementById("MSearchResultsWindow"); };
+
+ // Function: DOMSearchPanel
+ this.DOMSearchPanel = function()
+ { return document.getElementById("MSearchPanel"); };
+
+
+
+
+ // Group: Event Handlers
+ // ________________________________________________________________________
+
+
+ /*
+ Function: OnSearchFieldFocus
+ Called when focus is added or removed from the search field.
+ */
+ this.OnSearchFieldFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ };
+
+
+ /*
+ Function: OnSearchFieldChange
+ Called when the content of the search field is changed.
+ */
+ this.OnSearchFieldChange = function()
+ {
+ if (this.keyTimeout)
+ {
+ clearTimeout(this.keyTimeout);
+ this.keyTimeout = 0;
+ };
+
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != this.lastSearchValue)
+ {
+ if (searchValue != "")
+ {
+ this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength);
+ }
+ else
+ {
+ if (this.mode == "HTML")
+ { this.DOMPopupSearchResultsWindow().style.display = "none"; };
+ this.lastSearchValue = "";
+ };
+ };
+ };
+
+
+ /*
+ Function: OnSearchTypeFocus
+ Called when focus is added or removed from the search type.
+ */
+ this.OnSearchTypeFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ };
+
+
+ /*
+ Function: OnSearchTypeChange
+ Called when the search type is changed.
+ */
+ this.OnSearchTypeChange = function()
+ {
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != "")
+ {
+ this.Search();
+ };
+ };
+
+
+
+ // Group: Action Functions
+ // ________________________________________________________________________
+
+
+ /*
+ Function: CloseResultsWindow
+ Closes the results window.
+ */
+ this.CloseResultsWindow = function()
+ {
+ this.DOMPopupSearchResultsWindow().style.display = "none";
+ this.Activate(false, true);
+ };
+
+
+ /*
+ Function: Search
+ Performs a search.
+ */
+ this.Search = function()
+ {
+ this.keyTimeout = 0;
+
+ var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+ var searchTopic = this.DOMSearchType().value;
+
+ var pageExtension = searchValue.substr(0,1);
+
+ if (pageExtension.match(/^[a-z]/i))
+ { pageExtension = pageExtension.toUpperCase(); }
+ else if (pageExtension.match(/^[0-9]/))
+ { pageExtension = 'Numbers'; }
+ else
+ { pageExtension = "Symbols"; };
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ // indexSectionsWithContent is defined in searchdata.js
+ if (indexSectionsWithContent[searchTopic][pageExtension] == true)
+ {
+ resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html';
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else
+ {
+ resultsPage = this.resultsPath + '/NoResults.html';
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ };
+
+ var resultsFrame;
+ if (this.mode == "HTML")
+ { resultsFrame = window.frames.MSearchResults; }
+ else if (this.mode == "FramedHTML")
+ { resultsFrame = window.top.frames['Content']; };
+
+
+ if (resultsPage != this.lastResultsPage ||
+
+ // Bug in IE. If everything becomes hidden in a run, none of them will be able to be reshown in the next for some
+ // reason. It counts the right number of results, and you can even read the display as "block" after setting it, but it
+ // just doesn't work in IE 6 or IE 7. So if we're on the right page but the previous search had no results, reload the
+ // page anyway to get around the bug.
+ (browserType == "IE" && hasResultsPage &&
+ (!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) )
+
+ {
+ resultsFrame.location.href = resultsPageWithSearch;
+ }
+
+ // So if the results page is right and there's no IE bug, reperform the search on the existing page. We have to check if there
+ // are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even
+ // if it did.
+ else if (hasResultsPage)
+ {
+ // We need to check if this exists in case the frame is present but didn't finish loading.
+ if (resultsFrame.searchResults)
+ { resultsFrame.searchResults.Search(searchValue); }
+
+ // Otherwise just reload instead of waiting.
+ else
+ { resultsFrame.location.href = resultsPageWithSearch; };
+ };
+
+
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block")
+ {
+ var domSearchType = this.DOMSearchType();
+
+ var left = GetXPosition(domSearchType);
+ var top = GetYPosition(domSearchType) + domSearchType.offsetHeight;
+
+ MoveToPosition(domPopupSearchResultsWindow, left, top);
+ domPopupSearchResultsWindow.style.display = 'block';
+ };
+
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ };
+
+
+
+ // Group: Activation Functions
+ // Functions that handle whether the entire panel is active or not.
+ // ________________________________________________________________________
+
+
+ /*
+ Function: Activate
+
+ Activates or deactivates the search panel, resetting things to their default values if necessary. You can call this on every
+ control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently.
+
+ Parameters:
+
+ isActive - Whether you're activating or deactivating the panel.
+ ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay.
+ */
+ this.Activate = function(isActive, ignoreDeactivateDelay)
+ {
+ // We want to ignore isActive being false while the results window is open.
+ if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block"))
+ {
+ if (this.inactivateTimeout)
+ {
+ clearTimeout(this.inactivateTimeout);
+ this.inactivateTimeout = 0;
+ };
+
+ this.DOMSearchPanel().className = 'MSearchPanelActive';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == 'Search')
+ { searchField.value = ""; }
+ }
+ else if (!ignoreDeactivateDelay)
+ {
+ this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength);
+ }
+ else
+ {
+ this.InactivateAfterTimeout();
+ };
+ };
+
+
+ /*
+ Function: InactivateAfterTimeout
+
+ Called by <inactivateTimeout>, which is set by <Activate()>. Inactivation occurs on a timeout because a control may
+ receive OnBlur() when focus is really transferring to another control in the search panel. In this case we don't want to
+ actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value.
+ So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation.
+ */
+ this.InactivateAfterTimeout = function()
+ {
+ this.inactivateTimeout = 0;
+
+ this.DOMSearchPanel().className = 'MSearchPanelInactive';
+ this.DOMSearchField().value = "Search";
+
+ this.lastSearchValue = "";
+ this.lastResultsPage = "";
+ };
+ };
+
+
+
+
+/* ________________________________________________________________________________________________________
+
+ Class: SearchResults
+ _________________________________________________________________________________________________________
+
+ The class that handles everything on the search results page.
+ _________________________________________________________________________________________________________
+*/
+
+
+function SearchResults(name, mode)
+ {
+ /*
+ var: mode
+ The mode the search is going to work in, such as "HTML" or "FramedHTML".
+ */
+ this.mode = mode;
+
+ /*
+ var: lastMatchCount
+ The number of matches from the last run of <Search()>.
+ */
+ this.lastMatchCount = 0;
+
+
+ /*
+ Function: Toggle
+ Toggles the visibility of the passed element ID.
+ */
+ this.Toggle = function(id)
+ {
+ if (this.mode == "FramedHTML")
+ { return; };
+
+ var parentElement = document.getElementById(id);
+
+ var element = parentElement.firstChild;
+
+ while (element && element != parentElement)
+ {
+ if (element.nodeName == 'DIV' && element.className == 'ISubIndex')
+ {
+ if (element.style.display == 'block')
+ { element.style.display = "none"; }
+ else
+ { element.style.display = 'block'; }
+ };
+
+ if (element.nodeName == 'DIV' && element.hasChildNodes())
+ { element = element.firstChild; }
+ else if (element.nextSibling)
+ { element = element.nextSibling; }
+ else
+ {
+ do
+ {
+ element = element.parentNode;
+ }
+ while (element && element != parentElement && !element.nextSibling);
+
+ if (element && element != parentElement)
+ { element = element.nextSibling; };
+ };
+ };
+ };
+
+
+ /*
+ Function: Search
+
+ Searches for the passed string. If there is no parameter, it takes it from the URL query.
+
+ Always returns true, since other documents may try to call it and that may or may not be possible.
+ */
+ this.Search = function(search)
+ {
+ if (!search)
+ {
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading ?
+ search = unescape(search);
+ };
+
+ search = search.replace(/^ +/, "");
+ search = search.replace(/ +$/, "");
+ search = search.toLowerCase();
+
+ if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily.
+ {
+ search = search.replace(/\_/g, "_und");
+ search = search.replace(/\ +/gi, "_spc");
+ search = search.replace(/\~/g, "_til");
+ search = search.replace(/\!/g, "_exc");
+ search = search.replace(/\@/g, "_att");
+ search = search.replace(/\#/g, "_num");
+ search = search.replace(/\$/g, "_dol");
+ search = search.replace(/\%/g, "_pct");
+ search = search.replace(/\^/g, "_car");
+ search = search.replace(/\&/g, "_amp");
+ search = search.replace(/\*/g, "_ast");
+ search = search.replace(/\(/g, "_lpa");
+ search = search.replace(/\)/g, "_rpa");
+ search = search.replace(/\-/g, "_min");
+ search = search.replace(/\+/g, "_plu");
+ search = search.replace(/\=/g, "_equ");
+ search = search.replace(/\{/g, "_lbc");
+ search = search.replace(/\}/g, "_rbc");
+ search = search.replace(/\[/g, "_lbk");
+ search = search.replace(/\]/g, "_rbk");
+ search = search.replace(/\:/g, "_col");
+ search = search.replace(/\;/g, "_sco");
+ search = search.replace(/\"/g, "_quo");
+ search = search.replace(/\'/g, "_apo");
+ search = search.replace(/\</g, "_lan");
+ search = search.replace(/\>/g, "_ran");
+ search = search.replace(/\,/g, "_com");
+ search = search.replace(/\./g, "_per");
+ search = search.replace(/\?/g, "_que");
+ search = search.replace(/\//g, "_sla");
+ search = search.replace(/[^a-z0-9\_]i/gi, "_zzz");
+ };
+
+ var resultRows = document.getElementsByTagName("div");
+ var matches = 0;
+
+ var i = 0;
+ while (i < resultRows.length)
+ {
+ var row = resultRows.item(i);
+
+ if (row.className == "SRResult")
+ {
+ var rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, '');
+
+ if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search)
+ {
+ row.style.display = "block";
+ matches++;
+ }
+ else
+ { row.style.display = "none"; };
+ };
+
+ i++;
+ };
+
+ document.getElementById("Searching").style.display="none";
+
+ if (matches == 0)
+ { document.getElementById("NoMatches").style.display="block"; }
+ else
+ { document.getElementById("NoMatches").style.display="none"; }
+
+ this.lastMatchCount = matches;
+
+ return true;
+ };
+ };
+
diff --git a/apidoc/html/javascript/prettify.js b/apidoc/html/javascript/prettify.js
new file mode 100644
index 0000000..fda4bf1
--- /dev/null
+++ b/apidoc/html/javascript/prettify.js
@@ -0,0 +1,1526 @@
+
+// This code comes from the December 2009 release of Google Prettify, which is Copyright © 2006 Google Inc.
+// Minor modifications are marked with "ND Change" comments.
+// As part of Natural Docs, this code is licensed under version 3 of the GNU Affero General Public License (AGPL.)
+// However, it may also be obtained separately under version 2.0 of the Apache License.
+// Refer to License.txt for the complete details
+
+
+// Main code
+// ____________________________________________________________________________
+
+// Copyright (C) 2006 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+
+/**
+ * @fileoverview
+ * some functions for browser-side pretty printing of code contained in html.
+ * <p>
+ *
+ * For a fairly comprehensive set of languages see the
+ * <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html#langs">README</a>
+ * file that came with this source. At a minimum, the lexer should work on a
+ * number of languages including C and friends, Java, Python, Bash, SQL, HTML,
+ * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk
+ * and a subset of Perl, but, because of commenting conventions, doesn't work on
+ * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class.
+ * <p>
+ * Usage: <ol>
+ * <li> include this source file in an html page via
+ * {@code <script type="text/javascript" src="/path/to/prettify.js"></script>}
+ * <li> define style rules. See the example page for examples.
+ * <li> mark the {@code <pre>} and {@code <code>} tags in your source with
+ * {@code class=prettyprint.}
+ * You can also use the (html deprecated) {@code <xmp>} tag, but the pretty
+ * printer needs to do more substantial DOM manipulations to support that, so
+ * some css styles may not be preserved.
+ * </ol>
+ * That's it. I wanted to keep the API as simple as possible, so there's no
+ * need to specify which language the code is in, but if you wish, you can add
+ * another class to the {@code <pre>} or {@code <code>} element to specify the
+ * language, as in {@code <pre class="prettyprint lang-java">}. Any class that
+ * starts with "lang-" followed by a file extension, specifies the file type.
+ * See the "lang-*.js" files in this directory for code that implements
+ * per-language file handlers.
+ * <p>
+ * Change log:<br>
+ * cbeust, 2006/08/22
+ * <blockquote>
+ * Java annotations (start with "@") are now captured as literals ("lit")
+ * </blockquote>
+ * @requires console
+ * @overrides window
+ */
+
+// JSLint declarations
+/*global console, document, navigator, setTimeout, window */
+
+/**
+ * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
+ * UI events.
+ * If set to {@code false}, {@code prettyPrint()} is synchronous.
+ */
+window['PR_SHOULD_USE_CONTINUATION'] = true;
+
+/** the number of characters between tab columns */
+window['PR_TAB_WIDTH'] = 8;
+
+/** Walks the DOM returning a properly escaped version of innerHTML.
+ * @param {Node} node
+ * @param {Array.<string>} out output buffer that receives chunks of HTML.
+ */
+window['PR_normalizedHtml']
+
+/** Contains functions for creating and registering new language handlers.
+ * @type {Object}
+ */
+ = window['PR']
+
+/** Pretty print a chunk of code.
+ *
+ * @param {string} sourceCodeHtml code as html
+ * @return {string} code as html, but prettier
+ */
+ = window['prettyPrintOne']
+/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
+ * {@code class=prettyprint} and prettify them.
+ * @param {Function?} opt_whenDone if specified, called when the last entry
+ * has been finished.
+ */
+ = window['prettyPrint'] = void 0;
+
+/** browser detection. @extern @returns false if not IE, otherwise the major version. */
+window['_pr_isIE6'] = function () {
+ var ieVersion = navigator && navigator.userAgent &&
+ navigator.userAgent.match(/\bMSIE ([678])\./);
+ ieVersion = ieVersion ? +ieVersion[1] : false;
+ window['_pr_isIE6'] = function () { return ieVersion; };
+ return ieVersion;
+};
+
+
+(function () {
+ // Keyword lists for various languages.
+ var FLOW_CONTROL_KEYWORDS =
+ "break continue do else for if return while ";
+ var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
+ "double enum extern float goto int long register short signed sizeof " +
+ "static struct switch typedef union unsigned void volatile ";
+ var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
+ "new operator private protected public this throw true try typeof ";
+ var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
+ "concept concept_map const_cast constexpr decltype " +
+ "dynamic_cast explicit export friend inline late_check " +
+ "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
+ "template typeid typename using virtual wchar_t where ";
+ var JAVA_KEYWORDS = COMMON_KEYWORDS +
+ "abstract boolean byte extends final finally implements import " +
+ "instanceof null native package strictfp super synchronized throws " +
+ "transient ";
+ var CSHARP_KEYWORDS = JAVA_KEYWORDS +
+ "as base by checked decimal delegate descending event " +
+ "fixed foreach from group implicit in interface internal into is lock " +
+ "object out override orderby params partial readonly ref sbyte sealed " +
+ "stackalloc string select uint ulong unchecked unsafe ushort var ";
+ var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
+ "debugger eval export function get null set undefined var with " +
+ "Infinity NaN ";
+ var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
+ "goto if import last local my next no our print package redo require " +
+ "sub undef unless until use wantarray while BEGIN END ";
+ var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
+ "elif except exec finally from global import in is lambda " +
+ "nonlocal not or pass print raise try with yield " +
+ "False True None ";
+ var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
+ " defined elsif end ensure false in module next nil not or redo rescue " +
+ "retry self super then true undef unless until when yield BEGIN END ";
+ var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
+ "function in local set then until ";
+ var ALL_KEYWORDS = (
+ CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
+ PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
+
+ // token style names. correspond to css classes
+ /** token style for a string literal */
+ var PR_STRING = 'str';
+ /** token style for a keyword */
+ var PR_KEYWORD = 'kwd';
+ /** token style for a comment */
+ var PR_COMMENT = 'com';
+ /** token style for a type */
+ var PR_TYPE = 'typ';
+ /** token style for a literal value. e.g. 1, null, true. */
+ var PR_LITERAL = 'lit';
+ /** token style for a punctuation string. */
+ var PR_PUNCTUATION = 'pun';
+ /** token style for a punctuation string. */
+ var PR_PLAIN = 'pln';
+
+ /** token style for an sgml tag. */
+ var PR_TAG = 'tag';
+ /** token style for a markup declaration such as a DOCTYPE. */
+ var PR_DECLARATION = 'dec';
+ /** token style for embedded source. */
+ var PR_SOURCE = 'src';
+ /** token style for an sgml attribute name. */
+ var PR_ATTRIB_NAME = 'atn';
+ /** token style for an sgml attribute value. */
+ var PR_ATTRIB_VALUE = 'atv';
+
+ /**
+ * A class that indicates a section of markup that is not code, e.g. to allow
+ * embedding of line numbers within code listings.
+ */
+ var PR_NOCODE = 'nocode';
+
+ /** A set of tokens that can precede a regular expression literal in
+ * javascript.
+ * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
+ * list, but I've removed ones that might be problematic when seen in
+ * languages that don't support regular expression literals.
+ *
+ * <p>Specifically, I've removed any keywords that can't precede a regexp
+ * literal in a syntactically legal javascript program, and I've removed the
+ * "in" keyword since it's not a keyword in many languages, and might be used
+ * as a count of inches.
+ *
+ * <p>The link a above does not accurately describe EcmaScript rules since
+ * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
+ * very well in practice.
+ *
+ * @private
+ */
+ var REGEXP_PRECEDER_PATTERN = function () {
+ var preceders = [
+ "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
+ "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
+ "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
+ "<", "<<", "<<=", "<=", "=", "==", "===", ">",
+ ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
+ "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
+ "||=", "~" /* handles =~ and !~ */,
+ "break", "case", "continue", "delete",
+ "do", "else", "finally", "instanceof",
+ "return", "throw", "try", "typeof"
+ ];
+ var pattern = '(?:^^|[+-]';
+ for (var i = 0; i < preceders.length; ++i) {
+ pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
+ }
+ pattern += ')\\s*'; // matches at end, and matches empty string
+ return pattern;
+ // CAVEAT: this does not properly handle the case where a regular
+ // expression immediately follows another since a regular expression may
+ // have flags for case-sensitivity and the like. Having regexp tokens
+ // adjacent is not valid in any language I'm aware of, so I'm punting.
+ // TODO: maybe style special characters inside a regexp as punctuation.
+ }();
+
+ // Define regexps here so that the interpreter doesn't have to create an
+ // object each time the function containing them is called.
+ // The language spec requires a new object created even if you don't access
+ // the $1 members.
+ var pr_amp = /&/g;
+ var pr_lt = /</g;
+ var pr_gt = />/g;
+ var pr_quot = /\"/g;
+ /** like textToHtml but escapes double quotes to be attribute safe. */
+ function attribToHtml(str) {
+ return str.replace(pr_amp, '&')
+ .replace(pr_lt, '<')
+ .replace(pr_gt, '>')
+ .replace(pr_quot, '"');
+ }
+
+ /** escapest html special characters to html. */
+ function textToHtml(str) {
+ return str.replace(pr_amp, '&')
+ .replace(pr_lt, '<')
+ .replace(pr_gt, '>');
+ }
+
+
+ var pr_ltEnt = /</g;
+ var pr_gtEnt = />/g;
+ var pr_aposEnt = /'/g;
+ var pr_quotEnt = /"/g;
+ var pr_ampEnt = /&/g;
+ var pr_nbspEnt = / /g;
+ /** unescapes html to plain text. */
+ function htmlToText(html) {
+ var pos = html.indexOf('&');
+ if (pos < 0) { return html; }
+ // Handle numeric entities specially. We can't use functional substitution
+ // since that doesn't work in older versions of Safari.
+ // These should be rare since most browsers convert them to normal chars.
+ for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
+ var end = html.indexOf(';', pos);
+ if (end >= 0) {
+ var num = html.substring(pos + 3, end);
+ var radix = 10;
+ if (num && num.charAt(0) === 'x') {
+ num = num.substring(1);
+ radix = 16;
+ }
+ var codePoint = parseInt(num, radix);
+ if (!isNaN(codePoint)) {
+ html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
+ html.substring(end + 1));
+ }
+ }
+ }
+
+ return html.replace(pr_ltEnt, '<')
+ .replace(pr_gtEnt, '>')
+ .replace(pr_aposEnt, "'")
+ .replace(pr_quotEnt, '"')
+ .replace(pr_nbspEnt, ' ')
+ .replace(pr_ampEnt, '&');
+ }
+
+ /** is the given node's innerHTML normally unescaped? */
+ function isRawContent(node) {
+ return 'XMP' === node.tagName;
+ }
+
+ var newlineRe = /[\r\n]/g;
+ /**
+ * Are newlines and adjacent spaces significant in the given node's innerHTML?
+ */
+ function isPreformatted(node, content) {
+ // PRE means preformatted, and is a very common case, so don't create
+ // unnecessary computed style objects.
+ if ('PRE' === node.tagName) { return true; }
+ if (!newlineRe.test(content)) { return true; } // Don't care
+ var whitespace = '';
+ // For disconnected nodes, IE has no currentStyle.
+ if (node.currentStyle) {
+ whitespace = node.currentStyle.whiteSpace;
+ } else if (window.getComputedStyle) {
+ // Firefox makes a best guess if node is disconnected whereas Safari
+ // returns the empty string.
+ whitespace = window.getComputedStyle(node, null).whiteSpace;
+ }
+ return !whitespace || whitespace === 'pre';
+ }
+
+ function normalizedHtml(node, out) {
+ switch (node.nodeType) {
+ case 1: // an element
+ var name = node.tagName.toLowerCase();
+ out.push('<', name);
+ for (var i = 0; i < node.attributes.length; ++i) {
+ var attr = node.attributes[i];
+ if (!attr.specified) { continue; }
+ out.push(' ');
+ normalizedHtml(attr, out);
+ }
+ out.push('>');
+ for (var child = node.firstChild; child; child = child.nextSibling) {
+ normalizedHtml(child, out);
+ }
+ if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
+ out.push('<\/', name, '>');
+ }
+ break;
+ case 2: // an attribute
+ out.push(node.name.toLowerCase(), '="', attribToHtml(node.value), '"');
+ break;
+ case 3: case 4: // text
+ out.push(textToHtml(node.nodeValue));
+ break;
+ }
+ }
+
+ /**
+ * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
+ * matches the union o the sets o strings matched d by the input RegExp.
+ * Since it matches globally, if the input strings have a start-of-input
+ * anchor (/^.../), it is ignored for the purposes of unioning.
+ * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
+ * @return {RegExp} a global regex.
+ */
+ function combinePrefixPatterns(regexs) {
+ var capturedGroupIndex = 0;
+
+ var needToFoldCase = false;
+ var ignoreCase = false;
+ for (var i = 0, n = regexs.length; i < n; ++i) {
+ var regex = regexs[i];
+ if (regex.ignoreCase) {
+ ignoreCase = true;
+ } else if (/[a-z]/i.test(regex.source.replace(
+ /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
+ needToFoldCase = true;
+ ignoreCase = false;
+ break;
+ }
+ }
+
+ function decodeEscape(charsetPart) {
+ if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
+ switch (charsetPart.charAt(1)) {
+ case 'b': return 8;
+ case 't': return 9;
+ case 'n': return 0xa;
+ case 'v': return 0xb;
+ case 'f': return 0xc;
+ case 'r': return 0xd;
+ case 'u': case 'x':
+ return parseInt(charsetPart.substring(2), 16)
+ || charsetPart.charCodeAt(1);
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7':
+ return parseInt(charsetPart.substring(1), 8);
+ default: return charsetPart.charCodeAt(1);
+ }
+ }
+
+ function encodeEscape(charCode) {
+ if (charCode < 0x20) {
+ return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
+ }
+ var ch = String.fromCharCode(charCode);
+ if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
+ ch = '\\' + ch;
+ }
+ return ch;
+ }
+
+ function caseFoldCharset(charSet) {
+ var charsetParts = charSet.substring(1, charSet.length - 1).match(
+ new RegExp(
+ '\\\\u[0-9A-Fa-f]{4}'
+ + '|\\\\x[0-9A-Fa-f]{2}'
+ + '|\\\\[0-3][0-7]{0,2}'
+ + '|\\\\[0-7]{1,2}'
+ + '|\\\\[\\s\\S]'
+ + '|-'
+ + '|[^-\\\\]',
+ 'g'));
+ var groups = [];
+ var ranges = [];
+ var inverse = charsetParts[0] === '^';
+ for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
+ var p = charsetParts[i];
+ switch (p) {
+ case '\\B': case '\\b':
+ case '\\D': case '\\d':
+ case '\\S': case '\\s':
+ case '\\W': case '\\w':
+ groups.push(p);
+ continue;
+ }
+ var start = decodeEscape(p);
+ var end;
+ if (i + 2 < n && '-' === charsetParts[i + 1]) {
+ end = decodeEscape(charsetParts[i + 2]);
+ i += 2;
+ } else {
+ end = start;
+ }
+ ranges.push([start, end]);
+ // If the range might intersect letters, then expand it.
+ if (!(end < 65 || start > 122)) {
+ if (!(end < 65 || start > 90)) {
+ ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
+ }
+ if (!(end < 97 || start > 122)) {
+ ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
+ }
+ }
+ }
+
+ // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
+ // -> [[1, 12], [14, 14], [16, 17]]
+ ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1] - a[1]); });
+ var consolidatedRanges = [];
+ var lastRange = [NaN, NaN];
+ for (var i = 0; i < ranges.length; ++i) {
+ var range = ranges[i];
+ if (range[0] <= lastRange[1] + 1) {
+ lastRange[1] = Math.max(lastRange[1], range[1]);
+ } else {
+ consolidatedRanges.push(lastRange = range);
+ }
+ }
+
+ var out = ['['];
+ if (inverse) { out.push('^'); }
+ out.push.apply(out, groups);
+ for (var i = 0; i < consolidatedRanges.length; ++i) {
+ var range = consolidatedRanges[i];
+ out.push(encodeEscape(range[0]));
+ if (range[1] > range[0]) {
+ if (range[1] + 1 > range[0]) { out.push('-'); }
+ out.push(encodeEscape(range[1]));
+ }
+ }
+ out.push(']');
+ return out.join('');
+ }
+
+ function allowAnywhereFoldCaseAndRenumberGroups(regex) {
+ // Split into character sets, escape sequences, punctuation strings
+ // like ('(', '(?:', ')', '^'), and runs of characters that do not
+ // include any of the above.
+ var parts = regex.source.match(
+ new RegExp(
+ '(?:'
+ + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]' // a character set
+ + '|\\\\u[A-Fa-f0-9]{4}' // a unicode escape
+ + '|\\\\x[A-Fa-f0-9]{2}' // a hex escape
+ + '|\\\\[0-9]+' // a back-reference or octal escape
+ + '|\\\\[^ux0-9]' // other escape sequence
+ + '|\\(\\?[:!=]' // start of a non-capturing group
+ + '|[\\(\\)\\^]' // start/emd of a group, or line start
+ + '|[^\\x5B\\x5C\\(\\)\\^]+' // run of other characters
+ + ')',
+ 'g'));
+ var n = parts.length;
+
+ // Maps captured group numbers to the number they will occupy in
+ // the output or to -1 if that has not been determined, or to
+ // undefined if they need not be capturing in the output.
+ var capturedGroups = [];
+
+ // Walk over and identify back references to build the capturedGroups
+ // mapping.
+ for (var i = 0, groupIndex = 0; i < n; ++i) {
+ var p = parts[i];
+ if (p === '(') {
+ // groups are 1-indexed, so max group index is count of '('
+ ++groupIndex;
+ } else if ('\\' === p.charAt(0)) {
+ var decimalValue = +p.substring(1);
+ if (decimalValue && decimalValue <= groupIndex) {
+ capturedGroups[decimalValue] = -1;
+ }
+ }
+ }
+
+ // Renumber groups and reduce capturing groups to non-capturing groups
+ // where possible.
+ for (var i = 1; i < capturedGroups.length; ++i) {
+ if (-1 === capturedGroups[i]) {
+ capturedGroups[i] = ++capturedGroupIndex;
+ }
+ }
+ for (var i = 0, groupIndex = 0; i < n; ++i) {
+ var p = parts[i];
+ if (p === '(') {
+ ++groupIndex;
+ if (capturedGroups[groupIndex] === undefined) {
+ parts[i] = '(?:';
+ }
+ } else if ('\\' === p.charAt(0)) {
+ var decimalValue = +p.substring(1);
+ if (decimalValue && decimalValue <= groupIndex) {
+ parts[i] = '\\' + capturedGroups[groupIndex];
+ }
+ }
+ }
+
+ // Remove any prefix anchors so that the output will match anywhere.
+ // ^^ really does mean an anchored match though.
+ for (var i = 0, groupIndex = 0; i < n; ++i) {
+ if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
+ }
+
+ // Expand letters to groupts to handle mixing of case-sensitive and
+ // case-insensitive patterns if necessary.
+ if (regex.ignoreCase && needToFoldCase) {
+ for (var i = 0; i < n; ++i) {
+ var p = parts[i];
+ var ch0 = p.charAt(0);
+ if (p.length >= 2 && ch0 === '[') {
+ parts[i] = caseFoldCharset(p);
+ } else if (ch0 !== '\\') {
+ // TODO: handle letters in numeric escapes.
+ parts[i] = p.replace(
+ /[a-zA-Z]/g,
+ function (ch) {
+ var cc = ch.charCodeAt(0);
+ return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
+ });
+ }
+ }
+ }
+
+ return parts.join('');
+ }
+
+ var rewritten = [];
+ for (var i = 0, n = regexs.length; i < n; ++i) {
+ var regex = regexs[i];
+ if (regex.global || regex.multiline) { throw new Error('' + regex); }
+ rewritten.push(
+ '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
+ }
+
+ return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
+ }
+
+ var PR_innerHtmlWorks = null;
+ function getInnerHtml(node) {
+ // inner html is hopelessly broken in Safari 2.0.4 when the content is
+ // an html description of well formed XML and the containing tag is a PRE
+ // tag, so we detect that case and emulate innerHTML.
+ if (null === PR_innerHtmlWorks) {
+ var testNode = document.createElement('PRE');
+ testNode.appendChild(
+ document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
+ PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
+ }
+
+ if (PR_innerHtmlWorks) {
+ var content = node.innerHTML;
+ // XMP tags contain unescaped entities so require special handling.
+ if (isRawContent(node)) {
+ content = textToHtml(content);
+ } else if (!isPreformatted(node, content)) {
+ content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
+ .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
+ }
+ return content;
+ }
+
+ var out = [];
+ for (var child = node.firstChild; child; child = child.nextSibling) {
+ normalizedHtml(child, out);
+ }
+ return out.join('');
+ }
+
+ /** returns a function that expand tabs to spaces. This function can be fed
+ * successive chunks of text, and will maintain its own internal state to
+ * keep track of how tabs are expanded.
+ * @return {function (string) : string} a function that takes
+ * plain text and return the text with tabs expanded.
+ * @private
+ */
+ function makeTabExpander(tabWidth) {
+ var SPACES = ' ';
+ var charInLine = 0;
+
+ return function (plainText) {
+ // walk over each character looking for tabs and newlines.
+ // On tabs, expand them. On newlines, reset charInLine.
+ // Otherwise increment charInLine
+ var out = null;
+ var pos = 0;
+ for (var i = 0, n = plainText.length; i < n; ++i) {
+ var ch = plainText.charAt(i);
+
+ switch (ch) {
+ case '\t':
+ if (!out) { out = []; }
+ out.push(plainText.substring(pos, i));
+ // calculate how much space we need in front of this part
+ // nSpaces is the amount of padding -- the number of spaces needed
+ // to move us to the next column, where columns occur at factors of
+ // tabWidth.
+ var nSpaces = tabWidth - (charInLine % tabWidth);
+ charInLine += nSpaces;
+ for (; nSpaces >= 0; nSpaces -= SPACES.length) {
+ out.push(SPACES.substring(0, nSpaces));
+ }
+ pos = i + 1;
+ break;
+ case '\n':
+ charInLine = 0;
+ break;
+ default:
+ ++charInLine;
+ }
+ }
+ if (!out) { return plainText; }
+ out.push(plainText.substring(pos));
+ return out.join('');
+ };
+ }
+
+ var pr_chunkPattern = new RegExp(
+ '[^<]+' // A run of characters other than '<'
+ + '|<\!--[\\s\\S]*?--\>' // an HTML comment
+ + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>' // a CDATA section
+ // a probable tag that should not be highlighted
+ + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
+ + '|<', // A '<' that does not begin a larger chunk
+ 'g');
+ var pr_commentPrefix = /^<\!--/;
+ var pr_cdataPrefix = /^<!\[CDATA\[/;
+ var pr_brPrefix = /^<br\b/i;
+ var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
+
+ /** split markup into chunks of html tags (style null) and
+ * plain text (style {@link #PR_PLAIN}), converting tags which are
+ * significant for tokenization (<br>) into their textual equivalent.
+ *
+ * @param {string} s html where whitespace is considered significant.
+ * @return {Object} source code and extracted tags.
+ * @private
+ */
+ function extractTags(s) {
+ // since the pattern has the 'g' modifier and defines no capturing groups,
+ // this will return a list of all chunks which we then classify and wrap as
+ // PR_Tokens
+ var matches = s.match(pr_chunkPattern);
+ var sourceBuf = [];
+ var sourceBufLen = 0;
+ var extractedTags = [];
+ if (matches) {
+ for (var i = 0, n = matches.length; i < n; ++i) {
+ var match = matches[i];
+ if (match.length > 1 && match.charAt(0) === '<') {
+ if (pr_commentPrefix.test(match)) { continue; }
+ if (pr_cdataPrefix.test(match)) {
+ // strip CDATA prefix and suffix. Don't unescape since it's CDATA
+ sourceBuf.push(match.substring(9, match.length - 3));
+ sourceBufLen += match.length - 12;
+ } else if (pr_brPrefix.test(match)) {
+ // <br> tags are lexically significant so convert them to text.
+ // This is undone later.
+ sourceBuf.push('\n');
+ ++sourceBufLen;
+ } else {
+ if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
+ // A <span class="nocode"> will start a section that should be
+ // ignored. Continue walking the list until we see a matching end
+ // tag.
+ var name = match.match(pr_tagNameRe)[2];
+ var depth = 1;
+ var j;
+ end_tag_loop:
+ for (j = i + 1; j < n; ++j) {
+ var name2 = matches[j].match(pr_tagNameRe);
+ if (name2 && name2[2] === name) {
+ if (name2[1] === '/') {
+ if (--depth === 0) { break end_tag_loop; }
+ } else {
+ ++depth;
+ }
+ }
+ }
+ if (j < n) {
+ extractedTags.push(
+ sourceBufLen, matches.slice(i, j + 1).join(''));
+ i = j;
+ } else { // Ignore unclosed sections.
+ extractedTags.push(sourceBufLen, match);
+ }
+ } else {
+ extractedTags.push(sourceBufLen, match);
+ }
+ }
+ } else {
+ var literalText = htmlToText(match);
+ sourceBuf.push(literalText);
+ sourceBufLen += literalText.length;
+ }
+ }
+ }
+ return { source: sourceBuf.join(''), tags: extractedTags };
+ }
+
+ /** True if the given tag contains a class attribute with the nocode class. */
+ function isNoCodeTag(tag) {
+ return !!tag
+ // First canonicalize the representation of attributes
+ .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
+ ' $1="$2$3$4"')
+ // Then look for the attribute we want.
+ .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
+ }
+
+ /**
+ * Apply the given language handler to sourceCode and add the resulting
+ * decorations to out.
+ * @param {number} basePos the index of sourceCode within the chunk of source
+ * whose decorations are already present on out.
+ */
+ function appendDecorations(basePos, sourceCode, langHandler, out) {
+ if (!sourceCode) { return; }
+ var job = {
+ source: sourceCode,
+ basePos: basePos
+ };
+ langHandler(job);
+ out.push.apply(out, job.decorations);
+ }
+
+ /** Given triples of [style, pattern, context] returns a lexing function,
+ * The lexing function interprets the patterns to find token boundaries and
+ * returns a decoration list of the form
+ * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
+ * where index_n is an index into the sourceCode, and style_n is a style
+ * constant like PR_PLAIN. index_n-1 <= index_n, and style_n-1 applies to
+ * all characters in sourceCode[index_n-1:index_n].
+ *
+ * The stylePatterns is a list whose elements have the form
+ * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
+ *
+ * Style is a style constant like PR_PLAIN, or can be a string of the
+ * form 'lang-FOO', where FOO is a language extension describing the
+ * language of the portion of the token in $1 after pattern executes.
+ * E.g., if style is 'lang-lisp', and group 1 contains the text
+ * '(hello (world))', then that portion of the token will be passed to the
+ * registered lisp handler for formatting.
+ * The text before and after group 1 will be restyled using this decorator
+ * so decorators should take care that this doesn't result in infinite
+ * recursion. For example, the HTML lexer rule for SCRIPT elements looks
+ * something like ['lang-js', /<[s]cript>(.+?)<\/script>/]. This may match
+ * '<script>foo()<\/script>', which would cause the current decorator to
+ * be called with '<script>' which would not match the same rule since
+ * group 1 must not be empty, so it would be instead styled as PR_TAG by
+ * the generic tag rule. The handler registered for the 'js' extension would
+ * then be called with 'foo()', and finally, the current decorator would
+ * be called with '<\/script>' which would not match the original rule and
+ * so the generic tag rule would identify it as a tag.
+ *
+ * Pattern must only match prefixes, and if it matches a prefix, then that
+ * match is considered a token with the same style.
+ *
+ * Context is applied to the last non-whitespace, non-comment token
+ * recognized.
+ *
+ * Shortcut is an optional string of characters, any of which, if the first
+ * character, gurantee that this pattern and only this pattern matches.
+ *
+ * @param {Array} shortcutStylePatterns patterns that always start with
+ * a known character. Must have a shortcut string.
+ * @param {Array} fallthroughStylePatterns patterns that will be tried in
+ * order if the shortcut ones fail. May have shortcuts.
+ *
+ * @return {function (Object)} a
+ * function that takes source code and returns a list of decorations.
+ */
+ function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
+ var shortcuts = {};
+ var tokenizer;
+ (function () {
+ var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
+ var allRegexs = [];
+ var regexKeys = {};
+ for (var i = 0, n = allPatterns.length; i < n; ++i) {
+ var patternParts = allPatterns[i];
+ var shortcutChars = patternParts[3];
+ if (shortcutChars) {
+ for (var c = shortcutChars.length; --c >= 0;) {
+ shortcuts[shortcutChars.charAt(c)] = patternParts;
+ }
+ }
+ var regex = patternParts[1];
+ var k = '' + regex;
+ if (!regexKeys.hasOwnProperty(k)) {
+ allRegexs.push(regex);
+ regexKeys[k] = null;
+ }
+ }
+ allRegexs.push(/[\0-\uffff]/);
+ tokenizer = combinePrefixPatterns(allRegexs);
+ })();
+
+ var nPatterns = fallthroughStylePatterns.length;
+ var notWs = /\S/;
+
+ /**
+ * Lexes job.source and produces an output array job.decorations of style
+ * classes preceded by the position at which they start in job.source in
+ * order.
+ *
+ * @param {Object} job an object like {@code
+ * source: {string} sourceText plain text,
+ * basePos: {int} position of job.source in the larger chunk of
+ * sourceCode.
+ * }
+ */
+ var decorate = function (job) {
+ var sourceCode = job.source, basePos = job.basePos;
+ /** Even entries are positions in source in ascending order. Odd enties
+ * are style markers (e.g., PR_COMMENT) that run from that position until
+ * the end.
+ * @type {Array.<number|string>}
+ */
+ var decorations = [basePos, PR_PLAIN];
+ var pos = 0; // index into sourceCode
+ var tokens = sourceCode.match(tokenizer) || [];
+ var styleCache = {};
+
+ for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
+ var token = tokens[ti];
+ var style = styleCache[token];
+ var match = void 0;
+
+ var isEmbedded;
+ if (typeof style === 'string') {
+ isEmbedded = false;
+ } else {
+ var patternParts = shortcuts[token.charAt(0)];
+ if (patternParts) {
+ match = token.match(patternParts[1]);
+ style = patternParts[0];
+ } else {
+ for (var i = 0; i < nPatterns; ++i) {
+ patternParts = fallthroughStylePatterns[i];
+ match = token.match(patternParts[1]);
+ if (match) {
+ style = patternParts[0];
+ break;
+ }
+ }
+
+ if (!match) { // make sure that we make progress
+ style = PR_PLAIN;
+ }
+ }
+
+ isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
+ if (isEmbedded && !(match && typeof match[1] === 'string')) {
+ isEmbedded = false;
+ style = PR_SOURCE;
+ }
+
+ if (!isEmbedded) { styleCache[token] = style; }
+ }
+
+ var tokenStart = pos;
+ pos += token.length;
+
+ if (!isEmbedded) {
+ decorations.push(basePos + tokenStart, style);
+ } else { // Treat group 1 as an embedded block of source code.
+ var embeddedSource = match[1];
+ var embeddedSourceStart = token.indexOf(embeddedSource);
+ var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
+ if (match[2]) {
+ // If embeddedSource can be blank, then it would match at the
+ // beginning which would cause us to infinitely recurse on the
+ // entire token, so we catch the right context in match[2].
+ embeddedSourceEnd = token.length - match[2].length;
+ embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
+ }
+ var lang = style.substring(5);
+ // Decorate the left of the embedded source
+ appendDecorations(
+ basePos + tokenStart,
+ token.substring(0, embeddedSourceStart),
+ decorate, decorations);
+ // Decorate the embedded source
+ appendDecorations(
+ basePos + tokenStart + embeddedSourceStart,
+ embeddedSource,
+ langHandlerForExtension(lang, embeddedSource),
+ decorations);
+ // Decorate the right of the embedded section
+ appendDecorations(
+ basePos + tokenStart + embeddedSourceEnd,
+ token.substring(embeddedSourceEnd),
+ decorate, decorations);
+ }
+ }
+ job.decorations = decorations;
+ };
+ return decorate;
+ }
+
+ /** returns a function that produces a list of decorations from source text.
+ *
+ * This code treats ", ', and ` as string delimiters, and \ as a string
+ * escape. It does not recognize perl's qq() style strings.
+ * It has no special handling for double delimiter escapes as in basic, or
+ * the tripled delimiters used in python, but should work on those regardless
+ * although in those cases a single string literal may be broken up into
+ * multiple adjacent string literals.
+ *
+ * It recognizes C, C++, and shell style comments.
+ *
+ * @param {Object} options a set of optional parameters.
+ * @return {function (Object)} a function that examines the source code
+ * in the input job and builds the decoration list.
+ */
+ function sourceDecorator(options) {
+ var shortcutStylePatterns = [], fallthroughStylePatterns = [];
+ if (options['tripleQuotedStrings']) {
+ // '''multi-line-string''', 'single-line-string', and double-quoted
+ shortcutStylePatterns.push(
+ [PR_STRING, /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
+ null, '\'"']);
+ } else if (options['multiLineStrings']) {
+ // 'multi-line-string', "multi-line-string"
+ shortcutStylePatterns.push(
+ [PR_STRING, /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
+ null, '\'"`']);
+ } else {
+ // 'single-line-string', "single-line-string"
+ shortcutStylePatterns.push(
+ [PR_STRING,
+ /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
+ null, '"\'']);
+ }
+ if (options['verbatimStrings']) {
+ // verbatim-string-literal production from the C# grammar. See issue 93.
+ fallthroughStylePatterns.push(
+ [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
+ }
+ if (options['hashComments']) {
+ if (options['cStyleComments']) {
+ // Stop C preprocessor declarations at an unclosed open comment
+ shortcutStylePatterns.push(
+ [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
+ null, '#']);
+ fallthroughStylePatterns.push(
+ [PR_STRING,
+ /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
+ null]);
+ } else {
+ shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
+ }
+ }
+ if (options['cStyleComments']) {
+ fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
+ fallthroughStylePatterns.push(
+ [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
+ }
+ if (options['regexLiterals']) {
+ var REGEX_LITERAL = (
+ // A regular expression literal starts with a slash that is
+ // not followed by * or / so that it is not confused with
+ // comments.
+ '/(?=[^/*])'
+ // and then contains any number of raw characters,
+ + '(?:[^/\\x5B\\x5C]'
+ // escape sequences (\x5C),
+ + '|\\x5C[\\s\\S]'
+ // or non-nesting character sets (\x5B\x5D);
+ + '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
+ // finally closed by a /.
+ + '/');
+ fallthroughStylePatterns.push(
+ ['lang-regex',
+ new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
+ ]);
+ }
+
+ var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
+ if (keywords.length) {
+ fallthroughStylePatterns.push(
+ [PR_KEYWORD,
+ new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
+ }
+
+ shortcutStylePatterns.push([PR_PLAIN, /^\s+/, null, ' \r\n\t\xA0']);
+ fallthroughStylePatterns.push(
+ // TODO(mikesamuel): recognize non-latin letters and numerals in idents
+ [PR_LITERAL, /^@[a-z_$][a-z_$@0-9]*/i, null],
+ [PR_TYPE, /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
+ [PR_PLAIN, /^[a-z_$][a-z_$@0-9]*/i, null],
+ [PR_LITERAL,
+ new RegExp(
+ '^(?:'
+ // A hex number
+ + '0x[a-f0-9]+'
+ // or an octal or decimal number,
+ + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
+ // possibly in scientific notation
+ + '(?:e[+\\-]?\\d+)?'
+ + ')'
+ // with an optional modifier like UL for unsigned long
+ + '[a-z]*', 'i'),
+ null, '0123456789'],
+ [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
+
+ return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
+ }
+
+ var decorateSource = sourceDecorator({
+ 'keywords': ALL_KEYWORDS,
+ 'hashComments': true,
+ 'cStyleComments': true,
+ 'multiLineStrings': true,
+ 'regexLiterals': true
+ });
+
+ /** Breaks {@code job.source} around style boundaries in
+ * {@code job.decorations} while re-interleaving {@code job.extractedTags},
+ * and leaves the result in {@code job.prettyPrintedHtml}.
+ * @param {Object} job like {
+ * source: {string} source as plain text,
+ * extractedTags: {Array.<number|string>} extractedTags chunks of raw
+ * html preceded by their position in {@code job.source}
+ * in order
+ * decorations: {Array.<number|string} an array of style classes preceded
+ * by the position at which they start in job.source in order
+ * }
+ * @private
+ */
+ function recombineTagsAndDecorations(job) {
+ var sourceText = job.source;
+ var extractedTags = job.extractedTags;
+ var decorations = job.decorations;
+
+ var html = [];
+ // index past the last char in sourceText written to html
+ var outputIdx = 0;
+
+ var openDecoration = null;
+ var currentDecoration = null;
+ var tagPos = 0; // index into extractedTags
+ var decPos = 0; // index into decorations
+ var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
+
+ var adjacentSpaceRe = /([\r\n ]) /g;
+ var startOrSpaceRe = /(^| ) /gm;
+ var newlineRe = /\r\n?|\n/g;
+ var trailingSpaceRe = /[ \r\n]$/;
+ var lastWasSpace = true; // the last text chunk emitted ended with a space.
+
+ // A helper function that is responsible for opening sections of decoration
+ // and outputing properly escaped chunks of source
+ function emitTextUpTo(sourceIdx) {
+ if (sourceIdx > outputIdx) {
+ if (openDecoration && openDecoration !== currentDecoration) {
+ // Close the current decoration
+ html.push('</span>');
+ openDecoration = null;
+ }
+ if (!openDecoration && currentDecoration) {
+ openDecoration = currentDecoration;
+ html.push('<span class="', openDecoration, '">');
+ }
+ // This interacts badly with some wikis which introduces paragraph tags
+ // into pre blocks for some strange reason.
+ // It's necessary for IE though which seems to lose the preformattedness
+ // of <pre> tags when their innerHTML is assigned.
+ // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
+ // and it serves to undo the conversion of <br>s to newlines done in
+ // chunkify.
+ var htmlChunk = textToHtml(
+ tabExpander(sourceText.substring(outputIdx, sourceIdx)))
+ .replace(lastWasSpace
+ ? startOrSpaceRe
+ : adjacentSpaceRe, '$1 ');
+ // Keep track of whether we need to escape space at the beginning of the
+ // next chunk.
+ lastWasSpace = trailingSpaceRe.test(htmlChunk);
+ // IE collapses multiple adjacient <br>s into 1 line break.
+ // Prefix every <br> with ' ' can prevent such IE's behavior.
+ var lineBreakHtml = window['_pr_isIE6']() ? ' <br />' : '<br />';
+ html.push(htmlChunk.replace(newlineRe, lineBreakHtml));
+ outputIdx = sourceIdx;
+ }
+ }
+
+ while (true) {
+ // Determine if we're going to consume a tag this time around. Otherwise
+ // we consume a decoration or exit.
+ var outputTag;
+ if (tagPos < extractedTags.length) {
+ if (decPos < decorations.length) {
+ // Pick one giving preference to extractedTags since we shouldn't open
+ // a new style that we're going to have to immediately close in order
+ // to output a tag.
+ outputTag = extractedTags[tagPos] <= decorations[decPos];
+ } else {
+ outputTag = true;
+ }
+ } else {
+ outputTag = false;
+ }
+ // Consume either a decoration or a tag or exit.
+ if (outputTag) {
+ emitTextUpTo(extractedTags[tagPos]);
+ if (openDecoration) {
+ // Close the current decoration
+ html.push('</span>');
+ openDecoration = null;
+ }
+ html.push(extractedTags[tagPos + 1]);
+ tagPos += 2;
+ } else if (decPos < decorations.length) {
+ emitTextUpTo(decorations[decPos]);
+ currentDecoration = decorations[decPos + 1];
+ decPos += 2;
+ } else {
+ break;
+ }
+ }
+ emitTextUpTo(sourceText.length);
+ if (openDecoration) {
+ html.push('</span>');
+ }
+ job.prettyPrintedHtml = html.join('');
+ }
+
+ /** Maps language-specific file extensions to handlers. */
+ var langHandlerRegistry = {};
+ /** Register a language handler for the given file extensions.
+ * @param {function (Object)} handler a function from source code to a list
+ * of decorations. Takes a single argument job which describes the
+ * state of the computation. The single parameter has the form
+ * {@code {
+ * source: {string} as plain text.
+ * decorations: {Array.<number|string>} an array of style classes
+ * preceded by the position at which they start in
+ * job.source in order.
+ * The language handler should assigned this field.
+ * basePos: {int} the position of source in the larger source chunk.
+ * All positions in the output decorations array are relative
+ * to the larger source chunk.
+ * } }
+ * @param {Array.<string>} fileExtensions
+ */
+ function registerLangHandler(handler, fileExtensions) {
+ for (var i = fileExtensions.length; --i >= 0;) {
+ var ext = fileExtensions[i];
+ if (!langHandlerRegistry.hasOwnProperty(ext)) {
+ langHandlerRegistry[ext] = handler;
+ } else if ('console' in window) {
+ console.warn('cannot override language handler %s', ext);
+ }
+ }
+ }
+ function langHandlerForExtension(extension, source) {
+ if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
+ // Treat it as markup if the first non whitespace character is a < and
+ // the last non-whitespace character is a >.
+ extension = /^\s*</.test(source)
+ ? 'default-markup'
+ : 'default-code';
+ }
+ return langHandlerRegistry[extension];
+ }
+ registerLangHandler(decorateSource, ['default-code']);
+ registerLangHandler(
+ createSimpleLexer(
+ [],
+ [
+ [PR_PLAIN, /^[^<?]+/],
+ [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
+ [PR_COMMENT, /^<\!--[\s\S]*?(?:-\->|$)/],
+ // Unescaped content in an unknown language
+ ['lang-', /^<\?([\s\S]+?)(?:\?>|$)/],
+ ['lang-', /^<%([\s\S]+?)(?:%>|$)/],
+ [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
+ ['lang-', /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
+ // Unescaped content in javascript. (Or possibly vbscript).
+ ['lang-js', /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
+ // Contains unescaped stylesheet content
+ ['lang-css', /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
+ ['lang-in.tag', /^(<\/?[a-z][^<>]*>)/i]
+ ]),
+ ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
+ registerLangHandler(
+ createSimpleLexer(
+ [
+ [PR_PLAIN, /^[\s]+/, null, ' \t\r\n'],
+ [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
+ ],
+ [
+ [PR_TAG, /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
+ [PR_ATTRIB_NAME, /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
+ ['lang-uq.val', /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
+ [PR_PUNCTUATION, /^[=<>\/]+/],
+ ['lang-js', /^on\w+\s*=\s*\"([^\"]+)\"/i],
+ ['lang-js', /^on\w+\s*=\s*\'([^\']+)\'/i],
+ ['lang-js', /^on\w+\s*=\s*([^\"\'>\s]+)/i],
+ ['lang-css', /^style\s*=\s*\"([^\"]+)\"/i],
+ ['lang-css', /^style\s*=\s*\'([^\']+)\'/i],
+ ['lang-css', /^style\s*=\s*([^\"\'>\s]+)/i]
+ ]),
+ ['in.tag']);
+ registerLangHandler(
+ createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': CPP_KEYWORDS,
+ 'hashComments': true,
+ 'cStyleComments': true
+ }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': 'null true false'
+ }), ['json']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': CSHARP_KEYWORDS,
+ 'hashComments': true,
+ 'cStyleComments': true,
+ 'verbatimStrings': true
+ }), ['cs']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': JAVA_KEYWORDS,
+ 'cStyleComments': true
+ }), ['java']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': SH_KEYWORDS,
+ 'hashComments': true,
+ 'multiLineStrings': true
+ }), ['bsh', 'csh', 'sh']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': PYTHON_KEYWORDS,
+ 'hashComments': true,
+ 'multiLineStrings': true,
+ 'tripleQuotedStrings': true
+ }), ['cv', 'py']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': PERL_KEYWORDS,
+ 'hashComments': true,
+ 'multiLineStrings': true,
+ 'regexLiterals': true
+ }), ['perl', 'pl', 'pm']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': RUBY_KEYWORDS,
+ 'hashComments': true,
+ 'multiLineStrings': true,
+ 'regexLiterals': true
+ }), ['rb']);
+ registerLangHandler(sourceDecorator({
+ 'keywords': JSCRIPT_KEYWORDS,
+ 'cStyleComments': true,
+ 'regexLiterals': true
+ }), ['js']);
+ registerLangHandler(
+ createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
+
+ function applyDecorator(job) {
+ var sourceCodeHtml = job.sourceCodeHtml;
+ var opt_langExtension = job.langExtension;
+
+ // Prepopulate output in case processing fails with an exception.
+ job.prettyPrintedHtml = sourceCodeHtml;
+
+ try {
+ // Extract tags, and convert the source code to plain text.
+ var sourceAndExtractedTags = extractTags(sourceCodeHtml);
+ /** Plain text. @type {string} */
+ var source = sourceAndExtractedTags.source;
+ job.source = source;
+ job.basePos = 0;
+
+ /** Even entries are positions in source in ascending order. Odd entries
+ * are tags that were extracted at that position.
+ * @type {Array.<number|string>}
+ */
+ job.extractedTags = sourceAndExtractedTags.tags;
+
+ // Apply the appropriate language handler
+ langHandlerForExtension(opt_langExtension, source)(job);
+ // Integrate the decorations and tags back into the source code to produce
+ // a decorated html string which is left in job.prettyPrintedHtml.
+ recombineTagsAndDecorations(job);
+ } catch (e) {
+ if ('console' in window) {
+ console.log(e);
+ console.trace();
+ }
+ }
+ }
+
+ function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
+ var job = {
+ sourceCodeHtml: sourceCodeHtml,
+ langExtension: opt_langExtension
+ };
+ applyDecorator(job);
+ return job.prettyPrintedHtml;
+ }
+
+ function prettyPrint(opt_whenDone) {
+ var isIE678 = window['_pr_isIE6']();
+ var ieNewline = isIE678 === 6 ? '\r\n' : '\r';
+ // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
+
+ // fetch a list of nodes to rewrite
+ var codeSegments = [
+ document.getElementsByTagName('pre'),
+ document.getElementsByTagName('code'),
+ document.getElementsByTagName('td'), /* ND Change: Add tables to support prototypes. */
+ document.getElementsByTagName('xmp') ];
+ var elements = [];
+ for (var i = 0; i < codeSegments.length; ++i) {
+ for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
+ elements.push(codeSegments[i][j]);
+ }
+ }
+ codeSegments = null;
+
+ var clock = Date;
+ if (!clock['now']) {
+ clock = { 'now': function () { return (new Date).getTime(); } };
+ }
+
+ // The loop is broken into a series of continuations to make sure that we
+ // don't make the browser unresponsive when rewriting a large page.
+ var k = 0;
+ var prettyPrintingJob;
+
+ function doWork() {
+ var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
+ clock.now() + 250 /* ms */ :
+ Infinity);
+ for (; k < elements.length && clock.now() < endTime; k++) {
+ var cs = elements[k];
+ if (cs.className && cs.className.indexOf('prettyprint') >= 0) {
+ // If the classes includes a language extensions, use it.
+ // Language extensions can be specified like
+ // <pre class="prettyprint lang-cpp">
+ // the language extension "cpp" is used to find a language handler as
+ // passed to PR_registerLangHandler.
+ var langExtension = cs.className.match(/\blang-(\w+)\b/);
+ if (langExtension) { langExtension = langExtension[1]; }
+
+ // make sure this is not nested in an already prettified element
+ var nested = false;
+ for (var p = cs.parentNode; p; p = p.parentNode) {
+ if ((p.tagName === 'pre' || p.tagName === 'code' ||
+ p.tagName === 'xmp' || p.tagName === 'td') && /* ND Change: Add tables to support prototypes */
+ p.className && p.className.indexOf('prettyprint') >= 0) {
+ nested = true;
+ break;
+ }
+ }
+ if (!nested) {
+ // fetch the content as a snippet of properly escaped HTML.
+ // Firefox adds newlines at the end.
+ var content = getInnerHtml(cs);
+ content = content.replace(/(?:\r\n?|\n)$/, '');
+
+ /* ND Change: we need to preserve s so change them to a special character instead of a space. */
+ content = content.replace(/ /g, '\x11');
+
+ // do the pretty printing
+ prettyPrintingJob = {
+ sourceCodeHtml: content,
+ langExtension: langExtension,
+ sourceNode: cs
+ };
+ applyDecorator(prettyPrintingJob);
+ replaceWithPrettyPrintedHtml();
+ }
+ }
+ }
+ if (k < elements.length) {
+ // finish up in a continuation
+ setTimeout(doWork, 250);
+ } else if (opt_whenDone) {
+ opt_whenDone();
+ }
+ }
+
+ function replaceWithPrettyPrintedHtml() {
+ var newContent = prettyPrintingJob.prettyPrintedHtml;
+ if (!newContent) { return; }
+
+ /* ND Change: Restore the preserved s. */
+ newContent = newContent.replace(/\x11/g, ' ');
+
+ var cs = prettyPrintingJob.sourceNode;
+
+ // push the prettified html back into the tag.
+ if (!isRawContent(cs)) {
+ // just replace the old html with the new
+ cs.innerHTML = newContent;
+ } else {
+ // we need to change the tag to a <pre> since <xmp>s do not allow
+ // embedded tags such as the span tags used to attach styles to
+ // sections of source code.
+ var pre = document.createElement('PRE');
+ for (var i = 0; i < cs.attributes.length; ++i) {
+ var a = cs.attributes[i];
+ if (a.specified) {
+ var aname = a.name.toLowerCase();
+ if (aname === 'class') {
+ pre.className = a.value; // For IE 6
+ } else {
+ pre.setAttribute(a.name, a.value);
+ }
+ }
+ }
+ pre.innerHTML = newContent;
+
+ // remove the old
+ cs.parentNode.replaceChild(pre, cs);
+ cs = pre;
+ }
+
+ // Replace <br>s with line-feeds so that copying and pasting works
+ // on IE 6.
+ // Doing this on other browsers breaks lots of stuff since \r\n is
+ // treated as two newlines on Firefox, and doing this also slows
+ // down rendering.
+ if (isIE678 && cs.tagName === 'PRE') {
+ var lineBreaks = cs.getElementsByTagName('br');
+ for (var j = lineBreaks.length; --j >= 0;) {
+ var lineBreak = lineBreaks[j];
+ lineBreak.parentNode.replaceChild(
+ document.createTextNode(ieNewline), lineBreak);
+ }
+ }
+ }
+
+ doWork();
+ }
+
+ window['PR_normalizedHtml'] = normalizedHtml;
+ window['prettyPrintOne'] = prettyPrintOne;
+ window['prettyPrint'] = prettyPrint;
+ window['PR'] = {
+ 'combinePrefixPatterns': combinePrefixPatterns,
+ 'createSimpleLexer': createSimpleLexer,
+ 'registerLangHandler': registerLangHandler,
+ 'sourceDecorator': sourceDecorator,
+ 'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
+ 'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
+ 'PR_COMMENT': PR_COMMENT,
+ 'PR_DECLARATION': PR_DECLARATION,
+ 'PR_KEYWORD': PR_KEYWORD,
+ 'PR_LITERAL': PR_LITERAL,
+ 'PR_NOCODE': PR_NOCODE,
+ 'PR_PLAIN': PR_PLAIN,
+ 'PR_PUNCTUATION': PR_PUNCTUATION,
+ 'PR_SOURCE': PR_SOURCE,
+ 'PR_STRING': PR_STRING,
+ 'PR_TAG': PR_TAG,
+ 'PR_TYPE': PR_TYPE
+ };
+})();
+
+
+// ____________________________________________________________________________
+
+
+
+// Lua extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,' \n\r \xa0'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],[PR.PR_STRING,/^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],[PR.PR_KEYWORD,/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^[a-z_]\w*/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]]),['lua'])
+
+
+// Haskell extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\x0B\x0C\r ]+/,null,' \n\r '],[PR.PR_STRING,/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'\"'],[PR.PR_STRING,/^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,null,'\''],[PR.PR_LITERAL,/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,'0123456789']],[[PR.PR_COMMENT,/^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],[PR.PR_KEYWORD,/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/,null],[PR.PR_PLAIN,/^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],[PR.PR_PUNCTUATION,/^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]]),['hs'])
+
+
+// ML extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,' \n\r \xa0'],[PR.PR_COMMENT,/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,'#'],[PR.PR_STRING,/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],[PR.PR_KEYWORD,/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],[PR.PR_LITERAL,/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^(?:[a-z_]\w*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],[PR.PR_PUNCTUATION,/^[^\t\n\r \xA0\"\'\w]+/]]),['fs','ml'])
+
+
+// SQL extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0]+/,null,' \n\r \xa0'],[PR.PR_STRING,/^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/,null,'\"\'']],[[PR.PR_COMMENT,/^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],[PR.PR_KEYWORD,/^(?:ADD|ALL|ALTER|AND|ANY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|NATIONAL|NOCHECK|NONCLUSTERED|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PERCENT|PLAN|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNION|UNIQUE|UPDATE|UPDATETEXT|USE|USER|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WRITETEXT)(?=[^\w-]|$)/i,null],[PR.PR_LITERAL,/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],[PR.PR_PLAIN,/^[a-z_][\w-]*/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/]]),['sql'])
+
+
+// VB extension
+
+PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[\t\n\r \xA0\u2028\u2029]+/,null,' \n\r \xa0\u2028\u2029'],[PR.PR_STRING,/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'\"\u201c\u201d'],[PR.PR_COMMENT,/^[\'\u2018\u2019][^\r\n\u2028\u2029]*/,null,'\'\u2018\u2019']],[[PR.PR_KEYWORD,/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i,null],[PR.PR_COMMENT,/^REM[^\r\n\u2028\u2029]*/i],[PR.PR_LITERAL,/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],[PR.PR_PLAIN,/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*\])/i],[PR.PR_PUNCTUATION,/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],[PR.PR_PUNCTUATION,/^(?:\[|\])/]]),['vb','vbs'])
diff --git a/apidoc/html/javascript/searchdata.js b/apidoc/html/javascript/searchdata.js
new file mode 100644
index 0000000..1db2465
--- /dev/null
+++ b/apidoc/html/javascript/searchdata.js
@@ -0,0 +1,182 @@
+var indexSectionsWithContent = {
+ "Functions": {
+ "Symbols": false,
+ "Numbers": false,
+ "A": true,
+ "B": false,
+ "C": false,
+ "D": false,
+ "E": false,
+ "F": true,
+ "G": false,
+ "H": false,
+ "I": false,
+ "J": false,
+ "K": false,
+ "L": false,
+ "M": false,
+ "N": false,
+ "O": false,
+ "P": false,
+ "Q": false,
+ "R": false,
+ "S": false,
+ "T": false,
+ "U": false,
+ "V": false,
+ "W": false,
+ "X": false,
+ "Y": false,
+ "Z": false
+ },
+ "Types": {
+ "Symbols": false,
+ "Numbers": false,
+ "A": false,
+ "B": false,
+ "C": false,
+ "D": false,
+ "E": false,
+ "F": false,
+ "G": false,
+ "H": false,
+ "I": true,
+ "J": false,
+ "K": false,
+ "L": false,
+ "M": false,
+ "N": false,
+ "O": false,
+ "P": false,
+ "Q": false,
+ "R": false,
+ "S": false,
+ "T": false,
+ "U": false,
+ "V": false,
+ "W": false,
+ "X": false,
+ "Y": false,
+ "Z": false
+ },
+ "Files": {
+ "Symbols": false,
+ "Numbers": false,
+ "A": false,
+ "B": false,
+ "C": false,
+ "D": false,
+ "E": false,
+ "F": false,
+ "G": false,
+ "H": false,
+ "I": true,
+ "J": false,
+ "K": false,
+ "L": false,
+ "M": false,
+ "N": false,
+ "O": false,
+ "P": false,
+ "Q": false,
+ "R": false,
+ "S": false,
+ "T": false,
+ "U": false,
+ "V": false,
+ "W": false,
+ "X": false,
+ "Y": false,
+ "Z": false
+ },
+ "General": {
+ "Symbols": false,
+ "Numbers": false,
+ "A": true,
+ "B": false,
+ "C": true,
+ "D": false,
+ "E": false,
+ "F": true,
+ "G": false,
+ "H": false,
+ "I": true,
+ "J": false,
+ "K": false,
+ "L": false,
+ "M": false,
+ "N": false,
+ "O": false,
+ "P": false,
+ "Q": false,
+ "R": false,
+ "S": false,
+ "T": true,
+ "U": false,
+ "V": false,
+ "W": false,
+ "X": false,
+ "Y": false,
+ "Z": false
+ },
+ "Constants": {
+ "Symbols": false,
+ "Numbers": false,
+ "A": false,
+ "B": false,
+ "C": true,
+ "D": false,
+ "E": false,
+ "F": false,
+ "G": false,
+ "H": false,
+ "I": false,
+ "J": false,
+ "K": false,
+ "L": false,
+ "M": false,
+ "N": false,
+ "O": false,
+ "P": false,
+ "Q": false,
+ "R": false,
+ "S": false,
+ "T": false,
+ "U": false,
+ "V": false,
+ "W": false,
+ "X": false,
+ "Y": false,
+ "Z": false
+ },
+ "ModuleParameters": {
+ "Symbols": false,
+ "Numbers": false,
+ "A": false,
+ "B": false,
+ "C": false,
+ "D": false,
+ "E": false,
+ "F": false,
+ "G": false,
+ "H": false,
+ "I": false,
+ "J": false,
+ "K": false,
+ "L": false,
+ "M": false,
+ "N": false,
+ "O": false,
+ "P": false,
+ "Q": false,
+ "R": false,
+ "S": false,
+ "T": true,
+ "U": false,
+ "V": false,
+ "W": false,
+ "X": false,
+ "Y": false,
+ "Z": false
+ }
+ }
\ No newline at end of file
diff --git a/apidoc/html/menu.html b/apidoc/html/menu.html
new file mode 100644
index 0000000..f5b365c
--- /dev/null
+++ b/apidoc/html/menu.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Menu - IoT_Load_Test_Framework</title><base target="Content"><link rel="stylesheet" type="text/css" href="styles/main.css"><script language=JavaScript src="javascript/main.js"></script><script language=JavaScript src="javascript/searchdata.js"></script></head><body class="FramedMenuPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Menu><div class=MTitle>IoT_Load_Test_Framework<div class=MSubTitle>API Documentation</div></div><div class=MEntry><div class=MFile><a href="files/InfluxDB_Definitions-ttcn.html">InfluxDB_Definitions.ttcn</a></div></div><div class=MEntry><div class=MFile><a href="files/InfluxDB_Functions-ttcn.html">InfluxDB_Functions.ttcn</a></div></div><div class=MEntry><div class=MFile><a href="files/IOT_App_Definitions-ttcn.html">IOT_App_Definitions</a></div></div><div class=MEntry><div class=MFile><a href="files/IOT_App_Functions-ttcn.html">IOT_App_Functions</a></div></div><div class=MEntry><div class=MFile><a href="files/IOT_LGen_Definitions-ttcn.html">IOT_LGen_Definitions</a></div></div><div class=MEntry><div class=MFile><a href="files/IOT_LGen_Functions-ttcn.html">IOT_LGen_Functions</a></div></div><div class=MEntry><div class=MFile><a href="files/IOT_LGen_Steps-ttcn.html">IOT_LGen_Steps</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')" target="_self">Index</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MIndex><a href="index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="index/ModuleParameters.html">Module Parameters</a></div></div><div class=MEntry><div class=MIndex><a href="index/Types.html">Types</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "FramedHTML", "search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option id=MSearchEverything selected value="General">Everything</option><option value="Constants">Constants</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="ModuleParameters">Module Parameters</option><option value="Types">Types</option></select></div></div><!--Menu-->
+
+
+<div id=Footer><p>Copyright 2020 Test Competence Center</p><p>Generated on 2020-02-07</p><p><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></p></div><!--Footer-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/ConstantsC.html b/apidoc/html/search/ConstantsC.html
new file mode 100644
index 0000000..78450de
--- /dev/null
+++ b/apidoc/html/search/ConstantsC.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_c_undIOT_undbehaviorType><div class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#c_IOT_behaviorType" class=ISymbol>c_IOT_behaviorType</a></div></div><div class=SRResult id=SR_c_undIOT_undentityType><div class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#c_IOT_entityType" class=ISymbol>c_IOT_entityType</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undCOAP_undsetLocalAddress_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_COAP_setLocalAddress_byVars" class=ISymbol>c_IOT_stepName_COAP_setLocalAddress_byVars</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undFSM_undRegDereg_undinitResourceValues><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_RegDereg_initResourceValues" class=ISymbol>c_IOT_stepName_FSM_RegDereg_initResourceValues</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undFSM_undSimDevice_undcreateResources><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_createResources" class=ISymbol>c_IOT_stepName_FSM_SimDevice_createResources</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undFSM_undSimDevice_undhandleExecute><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_handleExecute" class=ISymbol>c_IOT_stepName_FSM_SimDevice_handleExecute</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undFSM_undSimDevice_undinitResourceValues><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_initResourceValues" class=ISymbol>c_IOT_stepName_FSM_SimDevice_initResourceValues</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undFSM_undSimDevice_undinitTransport_undboolVar><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_initTransport_boolVar" class=ISymbol>c_IOT_stepName_FSM_SimDevice_initTransport_boolVar</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undFSM_undSimDevice_undupdateResourceValues><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_updateResourceValues" class=ISymbol>c_IOT_stepName_FSM_SimDevice_updateResourceValues</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undgenRndValue_undvarParams><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_genRndValue_varParams" class=ISymbol>c_IOT_stepName_genRndValue_varParams</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undaddHostHeader_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_addHostHeader_byVars" class=ISymbol>c_IOT_stepName_HTTP_addHostHeader_byVars</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undaddToUri_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_addToUri_byVars" class=ISymbol>c_IOT_stepName_HTTP_addToUri_byVars</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undaddToUri_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_addToUri_stringParam" class=ISymbol>c_IOT_stepName_HTTP_addToUri_stringParam</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undcloseConnection><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_closeConnection" class=ISymbol>c_IOT_stepName_HTTP_closeConnection</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undinitEntityContext><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_initEntityContext" class=ISymbol>c_IOT_stepName_HTTP_initEntityContext</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undopenConnection_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_openConnection_byVars" class=ISymbol>c_IOT_stepName_HTTP_openConnection_byVars</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undsetMethod_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_setMethod_stringParam" class=ISymbol>c_IOT_stepName_HTTP_setMethod_stringParam</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undsetUri_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_setUri_stringParam" class=ISymbol>c_IOT_stepName_HTTP_setUri_stringParam</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undLeshan_undgetClientFromResponse_undintoVar><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_Leshan_getClientFromResponse_intoVar" class=ISymbol>c_IOT_stepName_Leshan_getClientFromResponse_intoVar</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undLwM2M_undsetClientNameInRegister><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_LwM2M_setClientNameInRegister" class=ISymbol>c_IOT_stepName_LwM2M_setClientNameInRegister</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undLwM2M_undsetClientNameInRegister_undstringVar><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar" class=ISymbol>c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undMQTT_undsetClientId_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_MQTT_setClientId_stringParam" class=ISymbol>c_IOT_stepName_MQTT_setClientId_stringParam</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undMQTT_undsetLocalAddress_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_MQTT_setLocalAddress_byVars" class=ISymbol>c_IOT_stepName_MQTT_setLocalAddress_byVars</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undprint_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_print_stringParam" class=ISymbol>c_IOT_stepName_print_stringParam</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undtcFinished_undwithVerdict><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_tcFinished_withVerdict" class=ISymbol>c_IOT_stepName_tcFinished_withVerdict</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/FilesI.html b/apidoc/html/search/FilesI.html
new file mode 100644
index 0000000..d15ecc2
--- /dev/null
+++ b/apidoc/html/search/FilesI.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_InfluxDB_undDefinitions_perttcn><div class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#InfluxDB_Definitions.ttcn" class=ISymbol>InfluxDB_Definitions.ttcn</a></div></div><div class=SRResult id=SR_InfluxDB_undFunctions_perttcn><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#InfluxDB_Functions.ttcn" class=ISymbol>InfluxDB_Functions.ttcn</a></div></div><div class=SRResult id=SR_IOT_undApp_undDefinitions><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#IOT_App_Definitions" class=ISymbol>IOT_App_Definitions</a></div></div><div class=SRResult id=SR_IOT_undApp_undFunctions><div class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#IOT_App_Functions" class=ISymbol>IOT_App_Functions</a></div></div><div class=SRResult id=SR_IOT_undLGen_undDefinitions><div class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#IOT_LGen_Definitions" class=ISymbol>IOT_LGen_Definitions</a></div></div><div class=SRResult id=SR_IOT_undLGen_undFunctions><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#IOT_LGen_Functions" class=ISymbol>IOT_LGen_Functions</a></div></div><div class=SRResult id=SR_IOT_undLGen_undSteps><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#IOT_LGen_Steps" class=ISymbol>IOT_LGen_Steps</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/FunctionsA.html b/apidoc/html/search/FunctionsA.html
new file mode 100644
index 0000000..37305c6
--- /dev/null
+++ b/apidoc/html/search/FunctionsA.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_as_undInfluxDB_undeventHandler><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#as_InfluxDB_eventHandler" class=ISymbol>as_InfluxDB_eventHandler</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/FunctionsF.html b/apidoc/html/search/FunctionsF.html
new file mode 100644
index 0000000..9f9a844
--- /dev/null
+++ b/apidoc/html/search/FunctionsF.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_f_undInfluxDB_undaddField><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_addField" class=ISymbol>f_InfluxDB_addField</a></div></div><div class=SRResult id=SR_f_undInfluxDB_undaddTag><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_addTag" class=ISymbol>f_InfluxDB_addTag</a></div></div><div class=SRResult id=SR_f_undInfluxDB_undconnect><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_connect" class=ISymbol>f_InfluxDB_connect</a></div></div><div class=SRResult id=SR_f_undInfluxDB_undencode><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_encode" class=ISymbol>f_InfluxDB_encode</a></div></div><div class=SRResult id=SR_f_undInfluxDB_undscheduleNextReport><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_scheduleNextReport" class=ISymbol>f_InfluxDB_scheduleNextReport</a></div></div><div class=SRResult id=SR_f_undInfluxDB_undsend><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_send" class=ISymbol>f_InfluxDB_send</a></div></div><div class=SRResult id=SR_f_undInfluxDB_undsetMeasurement><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_setMeasurement" class=ISymbol>f_InfluxDB_setMeasurement</a></div></div><div class=SRResult id=SR_f_undInlfuxDB_undlog_unddebug><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InlfuxDB_log_debug" class=ISymbol>f_InlfuxDB_log_debug</a></div></div><div class=SRResult id=SR_f_undIOT_undApp_undstartExecCtrl><div class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#f_IOT_App_startExecCtrl" class=ISymbol>f_IOT_App_startExecCtrl</a></div></div><div class=SRResult id=SR_f_undIOT_undCOAP_undLGen_undreceiveMessage><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_COAP_LGen_receiveMessage" class=ISymbol>f_IOT_COAP_LGen_receiveMessage</a></div></div><div class=SRResult id=SR_f_undIOT_undCOAP_undLocalTransport_undsend><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_COAP_LocalTransport_send" class=ISymbol>f_IOT_COAP_LocalTransport_send</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undbehavior><div class=IEntry><a href="javascript:searchResults.Toggle('SR_f_undIOT_undLGen_undbehavior')" class=ISymbol>f_IOT_LGen_behavior</a><div class=ISubIndex><a href="../files/InfluxDB_Functions-ttcn.html#f_IOT_LGen_behavior" class=IFile>InfluxDB_Functions.ttcn</a><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_behavior" class=IFile>IOT_LGen_Functions.ttcn</a></div></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undcreate><div class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#f_IOT_LGen_create" class=ISymbol>f_IOT_LGen_create</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_unddeclareSteps><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_declareSteps" class=ISymbol>f_IOT_LGen_declareSteps</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undgetEntityIdxinEntityGroup><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_getEntityIdxinEntityGroup" class=ISymbol>f_IOT_LGen_getEntityIdxinEntityGroup</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undinit><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_init" class=ISymbol>f_IOT_LGen_init</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undinitSamples><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_initSamples" class=ISymbol>f_IOT_LGen_initSamples</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undLogging_undDEBUG><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_DEBUG" class=ISymbol>f_IOT_LGen_Logging_DEBUG</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undLogging_undERROR><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_ERROR" class=ISymbol>f_IOT_LGen_Logging_ERROR</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undLogging_undVERBOSE><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_VERBOSE" class=ISymbol>f_IOT_LGen_Logging_VERBOSE</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undLogging_undWARNING><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_WARNING" class=ISymbol>f_IOT_LGen_Logging_WARNING</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undCOAP_undsetLocalAddress_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_COAP_setLocalAddress_byVars" class=ISymbol>f_IOT_LGen_step_COAP_setLocalAddress_byVars</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undFSM_undRegDereg_undinitResourceValues><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_RegDereg_initResourceValues" class=ISymbol>f_IOT_LGen_step_FSM_RegDereg_initResourceValues</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undFSM_undSimDevice_undcreateResources><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_createResources" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_createResources</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undFSM_undSimDevice_undhandleExecute><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_handleExecute" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_handleExecute</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undFSM_undSimDevice_undinitResourceValues><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_initResourceValues" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_initResourceValues</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undFSM_undSimDevice_undinitTransport_undboolVar><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undFSM_undSimDevice_undupdateResourceValues><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_updateResourceValues" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_updateResourceValues</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undgenRndValue_undvarParams><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_genRndValue_varParams" class=ISymbol>f_IOT_LGen_step_genRndValue_varParams</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undaddHostHeader_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_addHostHeader_byVars" class=ISymbol>f_IOT_LGen_step_HTTP_addHostHeader_byVars</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undaddToUri_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_addToUri_byVars" class=ISymbol>f_IOT_LGen_step_HTTP_addToUri_byVars</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undaddToUri_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_addToUri_stringParam" class=ISymbol>f_IOT_LGen_step_HTTP_addToUri_stringParam</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undcloseConnection><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_closeConnection" class=ISymbol>f_IOT_LGen_step_HTTP_closeConnection</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undinitEntityContext><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_initEntityContext" class=ISymbol>f_IOT_LGen_step_HTTP_initEntityContext</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undopenConnection_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_openConnection_byVars" class=ISymbol>f_IOT_LGen_step_HTTP_openConnection_byVars</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undsetMethod_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_setMethod_stringParam" class=ISymbol>f_IOT_LGen_step_HTTP_setMethod_stringParam</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undsetUri_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_setUri_stringParam" class=ISymbol>f_IOT_LGen_step_HTTP_setUri_stringParam</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undLeshan_undgetClientFromResponse_undintoVar><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar" class=ISymbol>f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undLwM2M_undsetClientNameInRegister><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_LwM2M_setClientNameInRegister" class=ISymbol>f_IOT_LGen_step_LwM2M_setClientNameInRegister</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undLwM2M_undsetClientNameInRegister_undstringVar><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar" class=ISymbol>f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undMQTT_undsetClientId_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_MQTT_setClientId_stringParam" class=ISymbol>f_IOT_LGen_step_MQTT_setClientId_stringParam</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undMQTT_undsetLocalAddress_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_MQTT_setLocalAddress_byVars" class=ISymbol>f_IOT_LGen_step_MQTT_setLocalAddress_byVars</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undprint_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_print_stringParam" class=ISymbol>f_IOT_LGen_step_print_stringParam</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undtcFinished_undwithVerdict><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_tcFinished_withVerdict" class=ISymbol>f_IOT_LGen_step_tcFinished_withVerdict</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/GeneralA.html b/apidoc/html/search/GeneralA.html
new file mode 100644
index 0000000..37305c6
--- /dev/null
+++ b/apidoc/html/search/GeneralA.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_as_undInfluxDB_undeventHandler><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#as_InfluxDB_eventHandler" class=ISymbol>as_InfluxDB_eventHandler</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/GeneralC.html b/apidoc/html/search/GeneralC.html
new file mode 100644
index 0000000..78450de
--- /dev/null
+++ b/apidoc/html/search/GeneralC.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_c_undIOT_undbehaviorType><div class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#c_IOT_behaviorType" class=ISymbol>c_IOT_behaviorType</a></div></div><div class=SRResult id=SR_c_undIOT_undentityType><div class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#c_IOT_entityType" class=ISymbol>c_IOT_entityType</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undCOAP_undsetLocalAddress_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_COAP_setLocalAddress_byVars" class=ISymbol>c_IOT_stepName_COAP_setLocalAddress_byVars</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undFSM_undRegDereg_undinitResourceValues><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_RegDereg_initResourceValues" class=ISymbol>c_IOT_stepName_FSM_RegDereg_initResourceValues</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undFSM_undSimDevice_undcreateResources><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_createResources" class=ISymbol>c_IOT_stepName_FSM_SimDevice_createResources</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undFSM_undSimDevice_undhandleExecute><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_handleExecute" class=ISymbol>c_IOT_stepName_FSM_SimDevice_handleExecute</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undFSM_undSimDevice_undinitResourceValues><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_initResourceValues" class=ISymbol>c_IOT_stepName_FSM_SimDevice_initResourceValues</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undFSM_undSimDevice_undinitTransport_undboolVar><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_initTransport_boolVar" class=ISymbol>c_IOT_stepName_FSM_SimDevice_initTransport_boolVar</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undFSM_undSimDevice_undupdateResourceValues><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_FSM_SimDevice_updateResourceValues" class=ISymbol>c_IOT_stepName_FSM_SimDevice_updateResourceValues</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undgenRndValue_undvarParams><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_genRndValue_varParams" class=ISymbol>c_IOT_stepName_genRndValue_varParams</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undaddHostHeader_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_addHostHeader_byVars" class=ISymbol>c_IOT_stepName_HTTP_addHostHeader_byVars</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undaddToUri_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_addToUri_byVars" class=ISymbol>c_IOT_stepName_HTTP_addToUri_byVars</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undaddToUri_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_addToUri_stringParam" class=ISymbol>c_IOT_stepName_HTTP_addToUri_stringParam</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undcloseConnection><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_closeConnection" class=ISymbol>c_IOT_stepName_HTTP_closeConnection</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undinitEntityContext><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_initEntityContext" class=ISymbol>c_IOT_stepName_HTTP_initEntityContext</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undopenConnection_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_openConnection_byVars" class=ISymbol>c_IOT_stepName_HTTP_openConnection_byVars</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undsetMethod_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_setMethod_stringParam" class=ISymbol>c_IOT_stepName_HTTP_setMethod_stringParam</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undHTTP_undsetUri_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_HTTP_setUri_stringParam" class=ISymbol>c_IOT_stepName_HTTP_setUri_stringParam</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undLeshan_undgetClientFromResponse_undintoVar><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_Leshan_getClientFromResponse_intoVar" class=ISymbol>c_IOT_stepName_Leshan_getClientFromResponse_intoVar</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undLwM2M_undsetClientNameInRegister><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_LwM2M_setClientNameInRegister" class=ISymbol>c_IOT_stepName_LwM2M_setClientNameInRegister</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undLwM2M_undsetClientNameInRegister_undstringVar><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar" class=ISymbol>c_IOT_stepName_LwM2M_setClientNameInRegister_stringVar</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undMQTT_undsetClientId_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_MQTT_setClientId_stringParam" class=ISymbol>c_IOT_stepName_MQTT_setClientId_stringParam</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undMQTT_undsetLocalAddress_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_MQTT_setLocalAddress_byVars" class=ISymbol>c_IOT_stepName_MQTT_setLocalAddress_byVars</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undprint_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_print_stringParam" class=ISymbol>c_IOT_stepName_print_stringParam</a></div></div><div class=SRResult id=SR_c_undIOT_undstepName_undtcFinished_undwithVerdict><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#c_IOT_stepName_tcFinished_withVerdict" class=ISymbol>c_IOT_stepName_tcFinished_withVerdict</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/GeneralF.html b/apidoc/html/search/GeneralF.html
new file mode 100644
index 0000000..9f9a844
--- /dev/null
+++ b/apidoc/html/search/GeneralF.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_f_undInfluxDB_undaddField><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_addField" class=ISymbol>f_InfluxDB_addField</a></div></div><div class=SRResult id=SR_f_undInfluxDB_undaddTag><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_addTag" class=ISymbol>f_InfluxDB_addTag</a></div></div><div class=SRResult id=SR_f_undInfluxDB_undconnect><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_connect" class=ISymbol>f_InfluxDB_connect</a></div></div><div class=SRResult id=SR_f_undInfluxDB_undencode><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_encode" class=ISymbol>f_InfluxDB_encode</a></div></div><div class=SRResult id=SR_f_undInfluxDB_undscheduleNextReport><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_scheduleNextReport" class=ISymbol>f_InfluxDB_scheduleNextReport</a></div></div><div class=SRResult id=SR_f_undInfluxDB_undsend><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_send" class=ISymbol>f_InfluxDB_send</a></div></div><div class=SRResult id=SR_f_undInfluxDB_undsetMeasurement><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InfluxDB_setMeasurement" class=ISymbol>f_InfluxDB_setMeasurement</a></div></div><div class=SRResult id=SR_f_undInlfuxDB_undlog_unddebug><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#f_InlfuxDB_log_debug" class=ISymbol>f_InlfuxDB_log_debug</a></div></div><div class=SRResult id=SR_f_undIOT_undApp_undstartExecCtrl><div class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#f_IOT_App_startExecCtrl" class=ISymbol>f_IOT_App_startExecCtrl</a></div></div><div class=SRResult id=SR_f_undIOT_undCOAP_undLGen_undreceiveMessage><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_COAP_LGen_receiveMessage" class=ISymbol>f_IOT_COAP_LGen_receiveMessage</a></div></div><div class=SRResult id=SR_f_undIOT_undCOAP_undLocalTransport_undsend><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_COAP_LocalTransport_send" class=ISymbol>f_IOT_COAP_LocalTransport_send</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undbehavior><div class=IEntry><a href="javascript:searchResults.Toggle('SR_f_undIOT_undLGen_undbehavior')" class=ISymbol>f_IOT_LGen_behavior</a><div class=ISubIndex><a href="../files/InfluxDB_Functions-ttcn.html#f_IOT_LGen_behavior" class=IFile>InfluxDB_Functions.ttcn</a><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_behavior" class=IFile>IOT_LGen_Functions.ttcn</a></div></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undcreate><div class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#f_IOT_LGen_create" class=ISymbol>f_IOT_LGen_create</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_unddeclareSteps><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_declareSteps" class=ISymbol>f_IOT_LGen_declareSteps</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undgetEntityIdxinEntityGroup><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_getEntityIdxinEntityGroup" class=ISymbol>f_IOT_LGen_getEntityIdxinEntityGroup</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undinit><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_init" class=ISymbol>f_IOT_LGen_init</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undinitSamples><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_initSamples" class=ISymbol>f_IOT_LGen_initSamples</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undLogging_undDEBUG><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_DEBUG" class=ISymbol>f_IOT_LGen_Logging_DEBUG</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undLogging_undERROR><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_ERROR" class=ISymbol>f_IOT_LGen_Logging_ERROR</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undLogging_undVERBOSE><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_VERBOSE" class=ISymbol>f_IOT_LGen_Logging_VERBOSE</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undLogging_undWARNING><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#f_IOT_LGen_Logging_WARNING" class=ISymbol>f_IOT_LGen_Logging_WARNING</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undCOAP_undsetLocalAddress_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_COAP_setLocalAddress_byVars" class=ISymbol>f_IOT_LGen_step_COAP_setLocalAddress_byVars</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undFSM_undRegDereg_undinitResourceValues><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_RegDereg_initResourceValues" class=ISymbol>f_IOT_LGen_step_FSM_RegDereg_initResourceValues</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undFSM_undSimDevice_undcreateResources><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_createResources" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_createResources</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undFSM_undSimDevice_undhandleExecute><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_handleExecute" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_handleExecute</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undFSM_undSimDevice_undinitResourceValues><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_initResourceValues" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_initResourceValues</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undFSM_undSimDevice_undinitTransport_undboolVar><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_initTransport_boolVar</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undFSM_undSimDevice_undupdateResourceValues><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_FSM_SimDevice_updateResourceValues" class=ISymbol>f_IOT_LGen_step_FSM_SimDevice_updateResourceValues</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undgenRndValue_undvarParams><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_genRndValue_varParams" class=ISymbol>f_IOT_LGen_step_genRndValue_varParams</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undaddHostHeader_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_addHostHeader_byVars" class=ISymbol>f_IOT_LGen_step_HTTP_addHostHeader_byVars</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undaddToUri_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_addToUri_byVars" class=ISymbol>f_IOT_LGen_step_HTTP_addToUri_byVars</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undaddToUri_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_addToUri_stringParam" class=ISymbol>f_IOT_LGen_step_HTTP_addToUri_stringParam</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undcloseConnection><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_closeConnection" class=ISymbol>f_IOT_LGen_step_HTTP_closeConnection</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undinitEntityContext><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_initEntityContext" class=ISymbol>f_IOT_LGen_step_HTTP_initEntityContext</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undopenConnection_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_openConnection_byVars" class=ISymbol>f_IOT_LGen_step_HTTP_openConnection_byVars</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undsetMethod_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_setMethod_stringParam" class=ISymbol>f_IOT_LGen_step_HTTP_setMethod_stringParam</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undHTTP_undsetUri_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_HTTP_setUri_stringParam" class=ISymbol>f_IOT_LGen_step_HTTP_setUri_stringParam</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undLeshan_undgetClientFromResponse_undintoVar><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar" class=ISymbol>f_IOT_LGen_step_Leshan_getClientFromResponse_intoVar</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undLwM2M_undsetClientNameInRegister><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_LwM2M_setClientNameInRegister" class=ISymbol>f_IOT_LGen_step_LwM2M_setClientNameInRegister</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undLwM2M_undsetClientNameInRegister_undstringVar><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar" class=ISymbol>f_IOT_LGen_step_LwM2M_setClientNameInRegister_stringVar</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undMQTT_undsetClientId_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_MQTT_setClientId_stringParam" class=ISymbol>f_IOT_LGen_step_MQTT_setClientId_stringParam</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undMQTT_undsetLocalAddress_undbyVars><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_MQTT_setLocalAddress_byVars" class=ISymbol>f_IOT_LGen_step_MQTT_setLocalAddress_byVars</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undprint_undstringParam><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_print_stringParam" class=ISymbol>f_IOT_LGen_step_print_stringParam</a></div></div><div class=SRResult id=SR_f_undIOT_undLGen_undstep_undtcFinished_undwithVerdict><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#f_IOT_LGen_step_tcFinished_withVerdict" class=ISymbol>f_IOT_LGen_step_tcFinished_withVerdict</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/GeneralI.html b/apidoc/html/search/GeneralI.html
new file mode 100644
index 0000000..9fd00ba
--- /dev/null
+++ b/apidoc/html/search/GeneralI.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_InfluxDB_undDefinitions_perttcn><div class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#InfluxDB_Definitions.ttcn" class=ISymbol>InfluxDB_Definitions.ttcn</a></div></div><div class=SRResult id=SR_InfluxDB_undFunctions_perttcn><div class=IEntry><a href="../files/InfluxDB_Functions-ttcn.html#InfluxDB_Functions.ttcn" class=ISymbol>InfluxDB_Functions.ttcn</a></div></div><div class=SRResult id=SR_IOT_undApp_undCT><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#IOT_App_CT" class=ISymbol>IOT_App_CT</a></div></div><div class=SRResult id=SR_IOT_undApp_undDefinitions><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#IOT_App_Definitions" class=ISymbol>IOT_App_Definitions</a></div></div><div class=SRResult id=SR_IOT_undApp_undFunctions><div class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#IOT_App_Functions" class=ISymbol>IOT_App_Functions</a></div></div><div class=SRResult id=SR_IOT_undLGen_undCT><div class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=ISymbol>IOT_LGen_CT</a></div></div><div class=SRResult id=SR_IOT_undLGen_undDefinitions><div class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#IOT_LGen_Definitions" class=ISymbol>IOT_LGen_Definitions</a></div></div><div class=SRResult id=SR_IOT_undLGen_undFunctions><div class=IEntry><a href="../files/IOT_LGen_Functions-ttcn.html#IOT_LGen_Functions" class=ISymbol>IOT_LGen_Functions</a></div></div><div class=SRResult id=SR_IOT_undLGen_undSteps><div class=IEntry><a href="../files/IOT_LGen_Steps-ttcn.html#IOT_LGen_Steps" class=ISymbol>IOT_LGen_Steps</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/GeneralT.html b/apidoc/html/search/GeneralT.html
new file mode 100644
index 0000000..12e7d13
--- /dev/null
+++ b/apidoc/html/search/GeneralT.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_TC><div class=IEntry><a href="../files/IOT_App_Functions-ttcn.html#TC" class=ISymbol>TC</a></div></div><div class=SRResult id=SR_tsp_undEPTF_undDsRestAPI_undAPI_unddirectory><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_API_directory" class=ISymbol>tsp_EPTF_DsRestAPI_API_directory</a></div></div><div class=SRResult id=SR_tsp_undEPTF_undDsRestAPI_undcustomizableApp_unddirectory><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_customizableApp_directory" class=ISymbol>tsp_EPTF_DsRestAPI_customizableApp_directory</a></div></div><div class=SRResult id=SR_tsp_undEPTF_undDsRestAPI_undHTTPServer_unddirectory><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_HTTPServer_directory" class=ISymbol>tsp_EPTF_DsRestAPI_HTTPServer_directory</a></div></div><div class=SRResult id=SR_tsp_undEPTF_undDsRestAPI_undHTTPServer_undRemoteAddress><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress" class=ISymbol>tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress</a></div></div><div class=SRResult id=SR_tsp_undEPTF_undDsRestAPI_undHTTPServer_undRemotePort><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_HTTPServer_RemotePort" class=ISymbol>tsp_EPTF_DsRestAPI_HTTPServer_RemotePort</a></div></div><div class=SRResult id=SR_tsp_undInfluxDB_undclient_undbasePort><div class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#tsp_InfluxDB_client_basePort" class=ISymbol>tsp_InfluxDB_client_basePort</a></div></div><div class=SRResult id=SR_tsp_undInfluxDB_unddebug><div class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#tsp_InfluxDB_debug" class=ISymbol>tsp_InfluxDB_debug</a></div></div><div class=SRResult id=SR_tsp_undInfluxDB_undreportPeriod><div class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#tsp_InfluxDB_reportPeriod" class=ISymbol>tsp_InfluxDB_reportPeriod</a></div></div><div class=SRResult id=SR_tsp_undIOT_undLGen_undFSMs><div class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#tsp_IOT_LGen_FSMs" class=ISymbol>tsp_IOT_LGen_FSMs</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/ModuleParametersT.html b/apidoc/html/search/ModuleParametersT.html
new file mode 100644
index 0000000..c526ec3
--- /dev/null
+++ b/apidoc/html/search/ModuleParametersT.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_tsp_undEPTF_undDsRestAPI_undAPI_unddirectory><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_API_directory" class=ISymbol>tsp_EPTF_DsRestAPI_API_directory</a></div></div><div class=SRResult id=SR_tsp_undEPTF_undDsRestAPI_undcustomizableApp_unddirectory><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_customizableApp_directory" class=ISymbol>tsp_EPTF_DsRestAPI_customizableApp_directory</a></div></div><div class=SRResult id=SR_tsp_undEPTF_undDsRestAPI_undHTTPServer_unddirectory><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_HTTPServer_directory" class=ISymbol>tsp_EPTF_DsRestAPI_HTTPServer_directory</a></div></div><div class=SRResult id=SR_tsp_undEPTF_undDsRestAPI_undHTTPServer_undRemoteAddress><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress" class=ISymbol>tsp_EPTF_DsRestAPI_HTTPServer_RemoteAddress</a></div></div><div class=SRResult id=SR_tsp_undEPTF_undDsRestAPI_undHTTPServer_undRemotePort><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#tsp_EPTF_DsRestAPI_HTTPServer_RemotePort" class=ISymbol>tsp_EPTF_DsRestAPI_HTTPServer_RemotePort</a></div></div><div class=SRResult id=SR_tsp_undInfluxDB_undclient_undbasePort><div class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#tsp_InfluxDB_client_basePort" class=ISymbol>tsp_InfluxDB_client_basePort</a></div></div><div class=SRResult id=SR_tsp_undInfluxDB_unddebug><div class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#tsp_InfluxDB_debug" class=ISymbol>tsp_InfluxDB_debug</a></div></div><div class=SRResult id=SR_tsp_undInfluxDB_undreportPeriod><div class=IEntry><a href="../files/InfluxDB_Definitions-ttcn.html#tsp_InfluxDB_reportPeriod" class=ISymbol>tsp_InfluxDB_reportPeriod</a></div></div><div class=SRResult id=SR_tsp_undIOT_undLGen_undFSMs><div class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#tsp_IOT_LGen_FSMs" class=ISymbol>tsp_IOT_LGen_FSMs</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/NoResults.html b/apidoc/html/search/NoResults.html
new file mode 100644
index 0000000..e15a60d
--- /dev/null
+++ b/apidoc/html/search/NoResults.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=NoMatches>No Matches</div></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/search/TypesI.html b/apidoc/html/search/TypesI.html
new file mode 100644
index 0000000..1547bbd
--- /dev/null
+++ b/apidoc/html/search/TypesI.html
@@ -0,0 +1,26 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="FramedSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!-- Generated by Natural Docs, version 1.52 -->
+<!-- http://www.naturaldocs.org -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index><div class=IPageTitle>Search Results</div><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_IOT_undApp_undCT><div class=IEntry><a href="../files/IOT_App_Definitions-ttcn.html#IOT_App_CT" class=ISymbol>IOT_App_CT</a></div></div><div class=SRResult id=SR_IOT_undLGen_undCT><div class=IEntry><a href="../files/IOT_LGen_Definitions-ttcn.html#IOT_LGen_CT" class=ISymbol>IOT_LGen_CT</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div><!--Index-->
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/apidoc/html/styles/1.css b/apidoc/html/styles/1.css
new file mode 100644
index 0000000..511703f
--- /dev/null
+++ b/apidoc/html/styles/1.css
@@ -0,0 +1,828 @@
+/*
+ IMPORTANT: If you're editing this file in the output directory of one of
+ your projects, your changes will be overwritten the next time you run
+ Natural Docs. Instead, copy this file to your project directory, make your
+ changes, and you can use it with -s. Even better would be to make a CSS
+ file in your project directory with only your changes, which you can then
+ use with -s [original style] [your changes].
+
+ On the other hand, if you're editing this file in the Natural Docs styles
+ directory, the changes will automatically be applied to all your projects
+ that use this style the next time Natural Docs is run on them.
+
+ This file is part of Natural Docs, which is Copyright © 2003-2010 Greg Valure.
+ Natural Docs is licensed under version 3 of the GNU Affero General Public
+ License (AGPL). Refer to License.txt for the complete details.
+
+ This file may be distributed with documentation files generated by Natural Docs.
+ Such documentation is not covered by Natural Docs' copyright and licensing,
+ and may have its own copyright and distribution terms as decided by its author.
+*/
+
+body {
+ font: 10pt Verdana, Arial, sans-serif;
+ color: #000000;
+ margin: 0; padding: 0;
+ }
+
+.ContentPage,
+.IndexPage,
+.FramedMenuPage {
+ background-color: #E8E8E8;
+ }
+.FramedContentPage,
+.FramedIndexPage,
+.FramedSearchResultsPage,
+.PopupSearchResultsPage {
+ background-color: #FFFFFF;
+ }
+
+
+a:link,
+a:visited { color: #900000; text-decoration: none }
+a:hover { color: #900000; text-decoration: underline }
+a:active { color: #FF0000; text-decoration: underline }
+
+td {
+ vertical-align: top }
+
+img { border: 0; }
+
+
+/*
+ Comment out this line to use web-style paragraphs (blank line between
+ paragraphs, no indent) instead of print-style paragraphs (no blank line,
+ indented.)
+*/
+p {
+ text-indent: 5ex; margin: 0 }
+
+
+/* Opera doesn't break with just wbr, but will if you add this. */
+.Opera wbr:after {
+ content: "\00200B";
+ }
+
+
+/* Blockquotes are used as containers for things that may need to scroll. */
+blockquote {
+ padding: 0;
+ margin: 0;
+ overflow: auto;
+ }
+
+
+.Firefox1 blockquote {
+ padding-bottom: .5em;
+ }
+
+/* Turn off scrolling when printing. */
+@media print {
+ blockquote {
+ overflow: visible;
+ }
+ .IE blockquote {
+ width: auto;
+ }
+ }
+
+
+
+#Menu {
+ font-size: 9pt;
+ padding: 10px 0 0 0;
+ }
+.ContentPage #Menu,
+.IndexPage #Menu {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 31ex;
+ overflow: hidden;
+ }
+.ContentPage .Firefox #Menu,
+.IndexPage .Firefox #Menu {
+ width: 27ex;
+ }
+
+
+ .MTitle {
+ font-size: 16pt; font-weight: bold; font-variant: small-caps;
+ text-align: center;
+ padding: 5px 10px 15px 10px;
+ border-bottom: 1px dotted #000000;
+ margin-bottom: 15px }
+
+ .MSubTitle {
+ font-size: 9pt; font-weight: normal; font-variant: normal;
+ margin-top: 1ex; margin-bottom: 5px }
+
+
+ .MEntry a:link,
+ .MEntry a:hover,
+ .MEntry a:visited { color: #606060; margin-right: 0 }
+ .MEntry a:active { color: #A00000; margin-right: 0 }
+
+
+ .MGroup {
+ font-variant: small-caps; font-weight: bold;
+ margin: 1em 0 1em 10px;
+ }
+
+ .MGroupContent {
+ font-variant: normal; font-weight: normal }
+
+ .MGroup a:link,
+ .MGroup a:hover,
+ .MGroup a:visited { color: #545454; margin-right: 10px }
+ .MGroup a:active { color: #A00000; margin-right: 10px }
+
+
+ .MFile,
+ .MText,
+ .MLink,
+ .MIndex {
+ padding: 1px 17px 2px 10px;
+ margin: .25em 0 .25em 0;
+ }
+
+ .MText {
+ font-size: 8pt; font-style: italic }
+
+ .MLink {
+ font-style: italic }
+
+ #MSelected {
+ color: #000000; background-color: #FFFFFF;
+ /* Replace padding with border. */
+ padding: 0 10px 0 10px;
+ border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000;
+ margin-right: 5px;
+ }
+
+ /* Close off the left side when its in a group. */
+ .MGroup #MSelected {
+ padding-left: 9px; border-left-width: 1px }
+
+ /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */
+ .Firefox #MSelected {
+ -moz-border-radius-topright: 10px;
+ -moz-border-radius-bottomright: 10px }
+ .Firefox .MGroup #MSelected {
+ -moz-border-radius-topleft: 10px;
+ -moz-border-radius-bottomleft: 10px }
+
+
+ #MSearchPanel {
+ padding: 0px 6px;
+ margin: .25em 0;
+ }
+
+
+ #MSearchField {
+ font: italic 9pt Verdana, sans-serif;
+ color: #606060;
+ background-color: #E8E8E8;
+ border: none;
+ padding: 2px 4px;
+ width: 100%;
+ }
+ /* Only Opera gets it right. */
+ .Firefox #MSearchField,
+ .IE #MSearchField,
+ .Safari #MSearchField {
+ width: 94%;
+ }
+ .Opera9 #MSearchField,
+ .Konqueror #MSearchField {
+ width: 97%;
+ }
+ .FramedMenuPage .Firefox #MSearchField,
+ .FramedMenuPage .Safari #MSearchField,
+ .FramedMenuPage .Konqueror #MSearchField {
+ width: 98%;
+ }
+
+ /* Firefox doesn't do this right in frames without #MSearchPanel added on.
+ It's presence doesn't hurt anything other browsers. */
+ #MSearchPanel.MSearchPanelInactive:hover #MSearchField {
+ background-color: #FFFFFF;
+ border: 1px solid #C0C0C0;
+ padding: 1px 3px;
+ }
+ .MSearchPanelActive #MSearchField {
+ background-color: #FFFFFF;
+ border: 1px solid #C0C0C0;
+ font-style: normal;
+ padding: 1px 3px;
+ }
+
+ #MSearchType {
+ visibility: hidden;
+ font: 8pt Verdana, sans-serif;
+ width: 98%;
+ padding: 0;
+ border: 1px solid #C0C0C0;
+ }
+ .MSearchPanelActive #MSearchType,
+ /* As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */
+ #MSearchPanel.MSearchPanelInactive:hover #MSearchType,
+ #MSearchType:focus {
+ visibility: visible;
+ color: #606060;
+ }
+ #MSearchType option#MSearchEverything {
+ font-weight: bold;
+ }
+
+ .Opera8 .MSearchPanelInactive:hover,
+ .Opera8 .MSearchPanelActive {
+ margin-left: -1px;
+ }
+
+
+ iframe#MSearchResults {
+ width: 60ex;
+ height: 15em;
+ }
+ #MSearchResultsWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #000000;
+ background-color: #E8E8E8;
+ }
+ #MSearchResultsWindowClose {
+ font-weight: bold;
+ font-size: 8pt;
+ display: block;
+ padding: 2px 5px;
+ }
+ #MSearchResultsWindowClose:link,
+ #MSearchResultsWindowClose:visited {
+ color: #000000;
+ text-decoration: none;
+ }
+ #MSearchResultsWindowClose:active,
+ #MSearchResultsWindowClose:hover {
+ color: #800000;
+ text-decoration: none;
+ background-color: #F4F4F4;
+ }
+
+
+
+
+#Content {
+ padding-bottom: 15px;
+ }
+
+.ContentPage #Content {
+ border-width: 0 0 1px 1px;
+ border-style: solid;
+ border-color: #000000;
+ background-color: #FFFFFF;
+ font-size: 9pt; /* To make 31ex match the menu's 31ex. */
+ margin-left: 31ex;
+ }
+.ContentPage .Firefox #Content {
+ margin-left: 27ex;
+ }
+
+
+
+ .CTopic {
+ font-size: 10pt;
+ margin-bottom: 3em;
+ }
+
+
+ .CTitle {
+ font-size: 12pt; font-weight: bold;
+ border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
+ margin: 0 15px .5em 15px }
+
+ .CGroup .CTitle {
+ font-size: 16pt; font-variant: small-caps;
+ padding-left: 15px; padding-right: 15px;
+ border-width: 0 0 2px 0; border-color: #000000;
+ margin-left: 0; margin-right: 0 }
+
+ .CClass .CTitle,
+ .CInterface .CTitle,
+ .CDatabase .CTitle,
+ .CDatabaseTable .CTitle,
+ .CSection .CTitle {
+ font-size: 18pt;
+ color: #FFFFFF; background-color: #A0A0A0;
+ padding: 10px 15px 10px 15px;
+ border-width: 2px 0; border-color: #000000;
+ margin-left: 0; margin-right: 0 }
+
+ #MainTopic .CTitle {
+ font-size: 20pt;
+ color: #FFFFFF; background-color: #7070C0;
+ padding: 10px 15px 10px 15px;
+ border-width: 0 0 3px 0; border-color: #000000;
+ margin-left: 0; margin-right: 0 }
+
+ .CBody {
+ margin-left: 15px; margin-right: 15px }
+
+
+ .CToolTip {
+ position: absolute; visibility: hidden;
+ left: 0; top: 0;
+ background-color: #FFFFE0;
+ padding: 5px;
+ border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000;
+ font-size: 8pt;
+ }
+
+ .Opera .CToolTip {
+ max-width: 98%;
+ }
+
+ /* Scrollbars would be useless. */
+ .CToolTip blockquote {
+ overflow: hidden;
+ }
+ .IE6 .CToolTip blockquote {
+ overflow: visible;
+ }
+
+ .CHeading {
+ font-weight: bold; font-size: 10pt;
+ margin: 1.5em 0 .5em 0;
+ }
+
+ .CBody pre {
+ font: 10pt "Courier New", Courier, monospace;
+ background-color: #FCFCFC;
+ margin: 1em 35px;
+ padding: 10px 15px 10px 10px;
+ border-color: #E0E0E0 #E0E0E0 #E0E0E0 #E4E4E4;
+ border-width: 1px 1px 1px 6px;
+ border-style: dashed dashed dashed solid;
+ }
+
+ .CBody ul {
+ /* I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever.
+ Reapply it here as padding. */
+ padding-left: 15px; padding-right: 15px;
+ margin: .5em 5ex .5em 5ex;
+ }
+
+ .CDescriptionList {
+ margin: .5em 5ex 0 5ex }
+
+ .CDLEntry {
+ font: 10pt "Courier New", Courier, monospace; color: #808080;
+ padding-bottom: .25em;
+ white-space: nowrap }
+
+ .CDLDescription {
+ font-size: 10pt; /* For browsers that don't inherit correctly, like Opera 5. */
+ padding-bottom: .5em; padding-left: 5ex }
+
+
+ .CTopic img {
+ text-align: center;
+ display: block;
+ margin: 1em auto;
+ }
+ .CImageCaption {
+ font-variant: small-caps;
+ font-size: 8pt;
+ color: #808080;
+ text-align: center;
+ position: relative;
+ top: 1em;
+ }
+
+ .CImageLink {
+ color: #808080;
+ font-style: italic;
+ }
+ a.CImageLink:link,
+ a.CImageLink:visited,
+ a.CImageLink:hover { color: #808080 }
+
+
+
+
+
+.Prototype {
+ font: 10pt "Courier New", Courier, monospace;
+ padding: 5px 3ex;
+ border-width: 1px; border-style: solid;
+ margin: 0 5ex 1.5em 5ex;
+ }
+
+ .Prototype td {
+ font-size: 10pt;
+ }
+
+ .PDefaultValue,
+ .PDefaultValuePrefix,
+ .PTypePrefix {
+ color: #8F8F8F;
+ }
+ .PTypePrefix {
+ text-align: right;
+ }
+ .PAfterParameters {
+ vertical-align: bottom;
+ }
+
+ .IE .Prototype table {
+ padding: 0;
+ }
+
+ .CFunction .Prototype {
+ background-color: #F4F4F4; border-color: #D0D0D0 }
+ .CProperty .Prototype {
+ background-color: #F4F4FF; border-color: #C0C0E8 }
+ .CVariable .Prototype {
+ background-color: #FFFFF0; border-color: #E0E0A0 }
+
+ .CClass .Prototype {
+ border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
+ background-color: #F4F4F4;
+ }
+ .CInterface .Prototype {
+ border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
+ background-color: #F4F4FF;
+ }
+
+ .CDatabaseIndex .Prototype,
+ .CConstant .Prototype {
+ background-color: #D0D0D0; border-color: #000000 }
+ .CType .Prototype,
+ .CEnumeration .Prototype {
+ background-color: #FAF0F0; border-color: #E0B0B0;
+ }
+ .CDatabaseTrigger .Prototype,
+ .CEvent .Prototype,
+ .CDelegate .Prototype {
+ background-color: #F0FCF0; border-color: #B8E4B8 }
+
+ .CToolTip .Prototype {
+ margin: 0 0 .5em 0;
+ white-space: nowrap;
+ }
+
+
+
+
+
+.Summary {
+ margin: 1.5em 5ex 0 5ex }
+
+ .STitle {
+ font-size: 12pt; font-weight: bold;
+ margin-bottom: .5em }
+
+
+ .SBorder {
+ background-color: #FFFFF0;
+ padding: 15px;
+ border: 1px solid #C0C060 }
+
+ /* In a frame IE 6 will make them too long unless you set the width to 100%. Without frames it will be correct without a width
+ or slightly too long (but not enough to scroll) with a width. This arbitrary weirdness simply astounds me. IE 7 has the same
+ problem with frames, haven't tested it without. */
+ .FramedContentPage .IE .SBorder {
+ width: 100% }
+
+ /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */
+ .Firefox .SBorder {
+ -moz-border-radius: 20px }
+
+
+ .STable {
+ font-size: 9pt; width: 100% }
+
+ .SEntry {
+ width: 30% }
+ .SDescription {
+ width: 70% }
+
+
+ .SMarked {
+ background-color: #F8F8D8 }
+
+ .SDescription { padding-left: 2ex }
+ .SIndent1 .SEntry { padding-left: 1.5ex } .SIndent1 .SDescription { padding-left: 3.5ex }
+ .SIndent2 .SEntry { padding-left: 3.0ex } .SIndent2 .SDescription { padding-left: 5.0ex }
+ .SIndent3 .SEntry { padding-left: 4.5ex } .SIndent3 .SDescription { padding-left: 6.5ex }
+ .SIndent4 .SEntry { padding-left: 6.0ex } .SIndent4 .SDescription { padding-left: 8.0ex }
+ .SIndent5 .SEntry { padding-left: 7.5ex } .SIndent5 .SDescription { padding-left: 9.5ex }
+
+ .SDescription a { color: #800000}
+ .SDescription a:active { color: #A00000 }
+
+ .SGroup td {
+ padding-top: .5em; padding-bottom: .25em }
+
+ .SGroup .SEntry {
+ font-weight: bold; font-variant: small-caps }
+
+ .SGroup .SEntry a { color: #800000 }
+ .SGroup .SEntry a:active { color: #F00000 }
+
+
+ .SMain td,
+ .SClass td,
+ .SDatabase td,
+ .SDatabaseTable td,
+ .SSection td {
+ font-size: 10pt;
+ padding-bottom: .25em }
+
+ .SClass td,
+ .SDatabase td,
+ .SDatabaseTable td,
+ .SSection td {
+ padding-top: 1em }
+
+ .SMain .SEntry,
+ .SClass .SEntry,
+ .SDatabase .SEntry,
+ .SDatabaseTable .SEntry,
+ .SSection .SEntry {
+ font-weight: bold;
+ }
+
+ .SMain .SEntry a,
+ .SClass .SEntry a,
+ .SDatabase .SEntry a,
+ .SDatabaseTable .SEntry a,
+ .SSection .SEntry a { color: #000000 }
+
+ .SMain .SEntry a:active,
+ .SClass .SEntry a:active,
+ .SDatabase .SEntry a:active,
+ .SDatabaseTable .SEntry a:active,
+ .SSection .SEntry a:active { color: #A00000 }
+
+
+
+
+
+.ClassHierarchy {
+ margin: 0 15px 1em 15px }
+
+ .CHEntry {
+ border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
+ margin-bottom: 3px;
+ padding: 2px 2ex;
+ font-size: 10pt;
+ background-color: #F4F4F4; color: #606060;
+ }
+
+ .Firefox .CHEntry {
+ -moz-border-radius: 4px;
+ }
+
+ .CHCurrent .CHEntry {
+ font-weight: bold;
+ border-color: #000000;
+ color: #000000;
+ }
+
+ .CHChildNote .CHEntry {
+ font-style: italic;
+ font-size: 8pt;
+ }
+
+ .CHIndent {
+ margin-left: 3ex;
+ }
+
+ .CHEntry a:link,
+ .CHEntry a:visited,
+ .CHEntry a:hover {
+ color: #606060;
+ }
+ .CHEntry a:active {
+ color: #800000;
+ }
+
+
+
+
+
+#Index {
+ background-color: #FFFFFF;
+ }
+
+/* As opposed to .PopupSearchResultsPage #Index */
+.IndexPage #Index,
+.FramedIndexPage #Index,
+.FramedSearchResultsPage #Index {
+ padding: 15px;
+ }
+
+.IndexPage #Index {
+ border-width: 0 0 1px 1px;
+ border-style: solid;
+ border-color: #000000;
+ font-size: 9pt; /* To make 27ex match the menu's 27ex. */
+ margin-left: 27ex;
+ }
+
+
+ .IPageTitle {
+ font-size: 20pt; font-weight: bold;
+ color: #FFFFFF; background-color: #7070C0;
+ padding: 10px 15px 10px 15px;
+ border-width: 0 0 3px 0; border-color: #000000; border-style: solid;
+ margin: -15px -15px 0 -15px }
+
+ .FramedSearchResultsPage .IPageTitle {
+ margin-bottom: 15px;
+ }
+
+ .INavigationBar {
+ font-size: 10pt;
+ text-align: center;
+ background-color: #FFFFF0;
+ padding: 5px;
+ border-bottom: solid 1px black;
+ margin: 0 -15px 15px -15px;
+ }
+
+ .INavigationBar a {
+ font-weight: bold }
+
+ .IHeading {
+ font-size: 16pt; font-weight: bold;
+ padding: 2.5em 0 .5em 0;
+ text-align: center;
+ width: 3.5ex;
+ }
+ #IFirstHeading {
+ padding-top: 0;
+ }
+
+ .IEntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+ }
+ .PopupSearchResultsPage .IEntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+ }
+ .PopupSearchResultsPage .Opera9 .IEntry,
+ .FramedSearchResultsPage .Opera9 .IEntry {
+ text-align: left;
+ }
+ .FramedSearchResultsPage .IEntry {
+ padding: 0;
+ }
+
+ .ISubIndex {
+ padding-left: 3ex; padding-bottom: .5em }
+ .PopupSearchResultsPage .ISubIndex {
+ display: none;
+ }
+
+ /* While it may cause some entries to look like links when they aren't, I found it's much easier to read the
+ index if everything's the same color. */
+ .ISymbol {
+ font-weight: bold; color: #900000 }
+
+ .IndexPage .ISymbolPrefix,
+ .FramedIndexPage .ISymbolPrefix {
+ font-size: 10pt;
+ text-align: right;
+ color: #C47C7C;
+ background-color: #F8F8F8;
+ border-right: 3px solid #E0E0E0;
+ border-left: 1px solid #E0E0E0;
+ padding: 0 1px 0 2px;
+ }
+ .PopupSearchResultsPage .ISymbolPrefix,
+ .FramedSearchResultsPage .ISymbolPrefix {
+ color: #900000;
+ }
+ .PopupSearchResultsPage .ISymbolPrefix {
+ font-size: 8pt;
+ }
+
+ .IndexPage #IFirstSymbolPrefix,
+ .FramedIndexPage #IFirstSymbolPrefix {
+ border-top: 1px solid #E0E0E0;
+ }
+ .IndexPage #ILastSymbolPrefix,
+ .FramedIndexPage #ILastSymbolPrefix {
+ border-bottom: 1px solid #E0E0E0;
+ }
+ .IndexPage #IOnlySymbolPrefix,
+ .FramedIndexPage #IOnlySymbolPrefix {
+ border-top: 1px solid #E0E0E0;
+ border-bottom: 1px solid #E0E0E0;
+ }
+
+ a.IParent,
+ a.IFile {
+ display: block;
+ }
+
+ .PopupSearchResultsPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+ }
+ .FramedSearchResultsPage .SRStatus {
+ font-size: 10pt;
+ font-style: italic;
+ }
+
+ .SRResult {
+ display: none;
+ }
+
+
+
+#Footer {
+ font-size: 8pt;
+ color: #989898;
+ text-align: right;
+ }
+
+#Footer p {
+ text-indent: 0;
+ margin-bottom: .5em;
+ }
+
+.ContentPage #Footer,
+.IndexPage #Footer {
+ text-align: right;
+ margin: 2px;
+ }
+
+.FramedMenuPage #Footer {
+ text-align: center;
+ margin: 5em 10px 10px 10px;
+ padding-top: 1em;
+ border-top: 1px solid #C8C8C8;
+ }
+
+ #Footer a:link,
+ #Footer a:hover,
+ #Footer a:visited { color: #989898 }
+ #Footer a:active { color: #A00000 }
+
+
+
+.prettyprint .kwd { color: #800000; } /* keywords */
+
+ .prettyprint.PDefaultValue .kwd,
+ .prettyprint.PDefaultValuePrefix .kwd,
+ .prettyprint.PTypePrefix .kwd {
+ color: #C88F8F;
+ }
+
+.prettyprint .com { color: #008000; } /* comments */
+
+ .prettyprint.PDefaultValue .com,
+ .prettyprint.PDefaultValuePrefix .com,
+ .prettyprint.PTypePrefix .com {
+ color: #8FC88F;
+ }
+
+.prettyprint .str { color: #0000B0; } /* strings */
+.prettyprint .lit { color: #0000B0; } /* literals */
+
+ .prettyprint.PDefaultValue .str,
+ .prettyprint.PDefaultValuePrefix .str,
+ .prettyprint.PTypePrefix .str,
+ .prettyprint.PDefaultValue .lit,
+ .prettyprint.PDefaultValuePrefix .lit,
+ .prettyprint.PTypePrefix .lit {
+ color: #8F8FC0;
+ }
+
+.prettyprint .typ { color: #000000; } /* types */
+.prettyprint .pun { color: #000000; } /* punctuation */
+.prettyprint .pln { color: #000000; } /* punctuation */
+
+ .prettyprint.PDefaultValue .typ,
+ .prettyprint.PDefaultValuePrefix .typ,
+ .prettyprint.PTypePrefix .typ,
+ .prettyprint.PDefaultValue .pun,
+ .prettyprint.PDefaultValuePrefix .pun,
+ .prettyprint.PTypePrefix .pun,
+ .prettyprint.PDefaultValue .pln,
+ .prettyprint.PDefaultValuePrefix .pln,
+ .prettyprint.PTypePrefix .pln {
+ color: #8F8F8F;
+ }
+
+.prettyprint .tag { color: #008; }
+.prettyprint .atn { color: #606; }
+.prettyprint .atv { color: #080; }
+.prettyprint .dec { color: #606; }
+
diff --git a/apidoc/html/styles/2.css b/apidoc/html/styles/2.css
new file mode 100644
index 0000000..bd55024
--- /dev/null
+++ b/apidoc/html/styles/2.css
@@ -0,0 +1,45 @@
+/*
+ IMPORTANT: If you're editing this file in the output directory of one of
+ your projects, your changes will be overwritten the next time you run
+ Natural Docs. Instead, copy this file to your project directory, make your
+ changes, and you can use it with -s. Even better would be to make a CSS
+ file in your project directory with only your changes, which you can then
+ use with -s [original style] [your changes].
+
+ On the other hand, if you're editing this file in the Natural Docs styles
+ directory, the changes will automatically be applied to all your projects
+ that use this style the next time Natural Docs is run on them.
+
+ This file is part of Natural Docs, which is Copyright © 2003-2004 Greg Valure
+ Natural Docs is licensed under the GPL
+*/
+
+/* NO longer necessary!!
+ .Prototype td {
+ font-size: 8pt;
+ }
+*/
+
+.CRequirementTestcase .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementFunction .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementProcedure .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementType .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+
+.MGroupContent {
+ font-variant: normal;
+ font-weight: normal;
+ display: none;
+}
+
+/* NO longer necessary!!
+@media print {
+
+ blockquote {
+ overflow: visible;
+ }
+
+ .IE blockquote {
+ width: auto;
+ }
+}
+*/
diff --git a/apidoc/html/styles/main.css b/apidoc/html/styles/main.css
new file mode 100644
index 0000000..a672a94
--- /dev/null
+++ b/apidoc/html/styles/main.css
@@ -0,0 +1,2 @@
+@import URL("1.css");
+@import URL("2.css");
diff --git a/apidoc/load.css b/apidoc/load.css
new file mode 100644
index 0000000..bd55024
--- /dev/null
+++ b/apidoc/load.css
@@ -0,0 +1,45 @@
+/*
+ IMPORTANT: If you're editing this file in the output directory of one of
+ your projects, your changes will be overwritten the next time you run
+ Natural Docs. Instead, copy this file to your project directory, make your
+ changes, and you can use it with -s. Even better would be to make a CSS
+ file in your project directory with only your changes, which you can then
+ use with -s [original style] [your changes].
+
+ On the other hand, if you're editing this file in the Natural Docs styles
+ directory, the changes will automatically be applied to all your projects
+ that use this style the next time Natural Docs is run on them.
+
+ This file is part of Natural Docs, which is Copyright © 2003-2004 Greg Valure
+ Natural Docs is licensed under the GPL
+*/
+
+/* NO longer necessary!!
+ .Prototype td {
+ font-size: 8pt;
+ }
+*/
+
+.CRequirementTestcase .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementFunction .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementProcedure .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementType .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+
+.MGroupContent {
+ font-variant: normal;
+ font-weight: normal;
+ display: none;
+}
+
+/* NO longer necessary!!
+@media print {
+
+ blockquote {
+ overflow: visible;
+ }
+
+ .IE blockquote {
+ width: auto;
+ }
+}
+*/