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