diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1e88bc0..01f93e6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,18 @@
# Changelog
All notable changes to this project will be documented in this file.
+## Release 2.1.0
+
+### New features
+- Protocol (HTTP, HTTPS) selectable within FlowConfig block
+
+### Improvements
+- Do not automatically select new added request within UI table (might confuse user)
+- Sort preconfigured requests within UI in alphabetic order
+
+### Bugfix
+- Adds multiple 'http://' to endpoint
+
## Release 2.0.0
### New features
diff --git a/CSK_Module_MultiHTTPClient/project.mf.xml b/CSK_Module_MultiHTTPClient/project.mf.xml
index bbcf2b2..a6f2abf 100644
--- a/CSK_Module_MultiHTTPClient/project.mf.xml
+++ b/CSK_Module_MultiHTTPClient/project.mf.xml
@@ -47,6 +47,11 @@ The module will dynamically create events to provide the incoming response of th
- TRACE
- OPTIONS
+
+ Protocol to use for requests.
+ - HTTP
+ - HTTPS
+
Notify status if parameters should be loaded on app/device boot up.
@@ -404,6 +409,7 @@ IMPORTANT: As instances start their own threads, the module needs to be restarte
+
Function to trigger preconfigured request via UI.
@@ -508,6 +514,7 @@ IMPORTANT: As instances start their own threads, the module needs to be restarte
+
@@ -523,7 +530,7 @@ IMPORTANT: As instances start their own threads, the module needs to be restarte
SICK AG
- 2.0.0
+ 2.1.0
low
false
false
diff --git a/CSK_Module_MultiHTTPClient/scripts/Communication/MultiHTTPClient/FlowConfig/MultiHTTPClient_SendRequest.lua b/CSK_Module_MultiHTTPClient/scripts/Communication/MultiHTTPClient/FlowConfig/MultiHTTPClient_SendRequest.lua
index 349026d..66bf6b8 100644
--- a/CSK_Module_MultiHTTPClient/scripts/Communication/MultiHTTPClient/FlowConfig/MultiHTTPClient_SendRequest.lua
+++ b/CSK_Module_MultiHTTPClient/scripts/Communication/MultiHTTPClient/FlowConfig/MultiHTTPClient_SendRequest.lua
@@ -13,6 +13,7 @@ local function sendRequest(handle, source)
local instance = Container.get(handle, 'Instance')
local requestName = Container.get(handle, 'RequestName')
local mode = Container.get(handle, 'Mode')
+ local protocol = Container.get(handle, 'Protocol')
local endpoint = Container.get(handle, 'Endpoint')
local port = Container.get(handle, 'Port')
@@ -25,7 +26,7 @@ local function sendRequest(handle, source)
else
CSK_MultiHTTPClient.setSelectedInstance(instance)
- CSK_MultiHTTPClient.addRequest(requestName, mode, endpoint, port, source, false)
+ CSK_MultiHTTPClient.addRequest(requestName, mode, endpoint, port, source, false, nil, protocol)
break
end
end
@@ -37,7 +38,7 @@ Script.serveFunction(BLOCK_NAMESPACE .. '.sendRequest', sendRequest)
--*************************************************************
--*************************************************************
-local function create(instance, requestName, mode, endpoint, port)
+local function create(instance, requestName, mode, protocol, endpoint, port)
local fullInstanceName = tostring(instance) .. tostring(requestName)
@@ -52,6 +53,7 @@ local function create(instance, requestName, mode, endpoint, port)
Container.add(handle, 'Instance', instance)
Container.add(handle, 'RequestName', requestName)
Container.add(handle, 'Mode', mode)
+ Container.add(handle, 'Protocol', protocol)
Container.add(handle, 'Endpoint', endpoint)
Container.add(handle, 'Port', port)
return handle
diff --git a/CSK_Module_MultiHTTPClient/scripts/Communication/MultiHTTPClient/MultiHTTPClient_Controller.lua b/CSK_Module_MultiHTTPClient/scripts/Communication/MultiHTTPClient/MultiHTTPClient_Controller.lua
index 7bf3057..38a7b8e 100644
--- a/CSK_Module_MultiHTTPClient/scripts/Communication/MultiHTTPClient/MultiHTTPClient_Controller.lua
+++ b/CSK_Module_MultiHTTPClient/scripts/Communication/MultiHTTPClient/MultiHTTPClient_Controller.lua
@@ -160,8 +160,15 @@ local function getRequestsTableContent()
}
table.insert(tableContent, tableRow)
else
+ local orderedTable = {}
+ for n in pairs(multiHTTPClient_Instances[selectedInstance].parameters.requests) do
+ table.insert(orderedTable, n)
+ end
+ table.sort(orderedTable)
+
local id = 1
- for reqName, requestDescription in pairs(multiHTTPClient_Instances[selectedInstance].parameters.requests) do
+ for _, value in ipairs(orderedTable) do
+ local requestDescription = multiHTTPClient_Instances[selectedInstance].parameters.requests[value]
local tableRow = {
RequestNo = tostring(id),
Name = requestDescription.requestName,
@@ -171,7 +178,7 @@ local function getRequestsTableContent()
Event = requestDescription.registeredEvent,
Periodic = requestDescription.requestPeriodic,
Period = requestDescription.requestPeriod,
- selected = (multiHTTPClient_Instances[selectedInstance].selectedRequest == reqName)
+ selected = (multiHTTPClient_Instances[selectedInstance].selectedRequest == requestDescription.requestName)
}
table.insert(tableContent, tableRow)
id = id + 1
@@ -739,7 +746,7 @@ local function createRequestParameters()
return requestParameters
end
-local function addRequest(name, mode, endpoint, port, event, periodic, period)
+local function addRequest(name, mode, endpoint, port, event, periodic, period, protocol)
if name ~= '' then
if multiHTTPClient_Instances[selectedInstance].parameters.requests[name] then
@@ -747,9 +754,19 @@ local function addRequest(name, mode, endpoint, port, event, periodic, period)
else
_G.logger:fine(nameOfModule .. ": Add request to instance" .. tostring(selectedInstance))
+ local httpIncluded = string.find(endpoint, 'http') or string.find(endpoint, 'https')
+
multiHTTPClient_Instances[selectedInstance].requestName = name
multiHTTPClient_Instances[selectedInstance].requestMode = mode
- multiHTTPClient_Instances[selectedInstance].requestEndpoint = 'http://' .. endpoint
+ if httpIncluded then
+ multiHTTPClient_Instances[selectedInstance].requestEndpoint = endpoint
+ else
+ if protocol == 'HTTPS' then
+ multiHTTPClient_Instances[selectedInstance].requestEndpoint = 'https://' .. endpoint
+ else
+ multiHTTPClient_Instances[selectedInstance].requestEndpoint = 'http://' .. endpoint
+ end
+ end
multiHTTPClient_Instances[selectedInstance].requestPort = port
multiHTTPClient_Instances[selectedInstance].registeredEvent = event or ''
multiHTTPClient_Instances[selectedInstance].requestPeriodic = periodic
@@ -761,8 +778,10 @@ local function addRequest(name, mode, endpoint, port, event, periodic, period)
local requestData = helperFuncs.convertTable2Container(multiHTTPClient_Instances[selectedInstance].parameters.requests[multiHTTPClient_Instances[selectedInstance].requestName])
Script.notifyEvent("MultiHTTPClient_OnNewProcessingParameter", selectedInstance, 'addRequest', requestData)
- multiHTTPClient_Instances[selectedInstance].selectedRequest = multiHTTPClient_Instances[selectedInstance].requestName
- Script.notifyEvent("MultiHTTPClient_OnNewProcessingParameter", selectedInstance, 'selectedRequest', multiHTTPClient_Instances[selectedInstance].selectedRequest)
+ multiHTTPClient_Instances[selectedInstance].requestName = ''
+ Script.notifyEvent('MultiHTTPClient_OnNewRequestName', multiHTTPClient_Instances[selectedInstance].requestName)
+ Script.notifyEvent('MultiHTTPClient_OnNewRequestsTable', getRequestsTableContent())
+
--announceExternalEventsAndFunctions() -- future usage
end
else
diff --git a/README.md b/README.md
index 49cc547..3fd8535 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,7 @@ Tested on
|Device|Firmware|Module version|
|--|--|--|
+|SIM1012|V2.4.2|V2.1.0|
|SICK AppEngine|V1.7.0|V2.0.0|
|SIM1012|V2.4.2|V2.0.0|
|SIM1012|V2.3.0|V1.0.0|
diff --git a/docu/CSK_Module_MultiHTTPClient.html b/docu/CSK_Module_MultiHTTPClient.html
index 17acfa6..9b39091 100644
--- a/docu/CSK_Module_MultiHTTPClient.html
+++ b/docu/CSK_Module_MultiHTTPClient.html
@@ -6,7 +6,7 @@
-Documentation - CSK_Module_MultiHTTPClient 2.0.0
+Documentation - CSK_Module_MultiHTTPClient 2.1.0