Skip to content

Commit 8f194a3

Browse files
Release 2.1.0 (#3)
# Release 2.1.0 ## New features - HEX values like "\x03" can be used within "setCommand" function - Check if persistent data to load provides all relevant parameters. Otherwise add default values ## Improvements - Better instance handling regarding FlowConfig ## Bugfix - Legacy bindings of ValueDisplay elements within UI did not work if deployed with VS Code AppSpace SDK - UI differs if deployed via Appstudio or VS Code AppSpace SDK - Fullscreen icon of iFrame was visible
1 parent b5a0307 commit 8f194a3

File tree

15 files changed

+415
-78
lines changed

15 files changed

+415
-78
lines changed

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,20 @@
11
# Changelog
22
All notable changes to this project will be documented in this file.
33

4+
## Release 2.1.0
5+
6+
### New features
7+
- HEX values like "\x03" can be used within "setCommand" function
8+
- Check if persistent data to load provides all relevant parameters. Otherwise add default values
9+
10+
### Improvements
11+
- Better instance handling regarding FlowConfig
12+
13+
### Bugfix
14+
- Legacy bindings of ValueDisplay elements within UI did not work if deployed with VS Code AppSpace SDK
15+
- UI differs if deployed via Appstudio or VS Code AppSpace SDK
16+
- Fullscreen icon of iFrame was visible
17+
418
## Release 2.0.0
519

620
### New features

CSK_Module_MultiTCPIPClient/pages/pages/CSK_Module_MultiTCPIPClient/CSK_Module_MultiTCPIPClient.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,5 +112,5 @@
112112

113113
.myCustomButton_CSK_Module_MultiTCPIPClient {
114114
border-radius: 30px;
115-
padding-right: 0px;
115+
padding: 11px;
116116
}

CSK_Module_MultiTCPIPClient/pages/pages/CSK_Module_MultiTCPIPClient/CSK_Module_MultiTCPIPClient.html

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@
66
<layout-row id="RowLayout22">
77
<layout-column id="ColumnLayout23" style="align-items: stretch">
88
<layout-row id="RowLayout01" style="align-items: baseline">
9-
<davinci-value-display id="VD_Title" class="myCustomLabel_CSK_Module_MultiTCPIPClient"
10-
value="TCP/IP Client">
11-
</davinci-value-display>
9+
<h1 id="Heading_Title" class="myCustomLabel_CSK_Module_MultiTCPIPClient">
10+
TCP/IP Client
11+
</h1>
1212
<davinci-value-display id="VD_Version">
13-
<crown-edpws-binding property="value" name="CSK_MultiTCPIPClient/OnNewStatusModuleVersion"
14-
update-on-resume>
15-
</crown-edpws-binding>
13+
<crown-on property="value" crown-event="CSK_MultiTCPIPClient/OnNewStatusModuleVersion">
14+
</crown-on>
1615
</davinci-value-display>
1716
</layout-row>
1817
</layout-column>
@@ -59,18 +58,18 @@
5958
style="align-items: center; justify-content: center">
6059
<davinci-button id="Button_AddInstance"
6160
class="myCustomButton_CSK_Module_MultiTCPIPClient"
62-
type="outline" icon-position="append" title="Add instance"
63-
icon="content/add">
61+
type="outline" title="Add instance">
62+
<davinci-icon icon="content/add"></davinci-icon>
6463
<span></span>
6564
<crown-binding event="submit"
6665
name="CSK_MultiTCPIPClient/addInstance" auto-commit>
6766
</crown-binding>
6867
</davinci-button>
6968
<davinci-button id="Button_ResetInstances"
7069
class="myCustomButton_CSK_Module_MultiTCPIPClient"
71-
type="outline" icon-position="append"
72-
title="Reset insances to single instance. Reload app after reseting."
73-
icon="action/delete">
70+
type="outline"
71+
title="Reset insances to single instance. Reload app after reseting.">
72+
<davinci-icon icon="action/delete"></davinci-icon>
7473
<span></span>
7574
<crown-binding event="submit"
7675
name="CSK_MultiTCPIPClient/resetInstances" auto-commit>
@@ -116,9 +115,9 @@
116115
style="justify-content: center; align-items: center">
117116
<davinci-button id="B_LoadConfig"
118117
class="myCustomButton_CSK_Module_MultiTCPIPClient"
119-
type="outline" icon-position="append"
120-
title="Load configured parameters from CSK_PersistentData module."
121-
icon="action/history">
118+
type="outline"
119+
title="Load configured parameters from CSK_PersistentData module.">
120+
<davinci-icon icon="action/history"></davinci-icon>
122121
<span></span>
123122
<crown-binding event="submit"
124123
name="CSK_MultiTCPIPClient/loadParameters"
@@ -132,9 +131,9 @@
132131
</davinci-button>
133132
<davinci-button id="B_SaveConfig"
134133
class="myCustomButton_CSK_Module_MultiTCPIPClient"
135-
type="outline" icon-position="append"
136-
title="Save current configured parameters of this module within CSK_PersistentData module."
137-
icon="content/save">
134+
type="outline"
135+
title="Save current configured parameters of this module within CSK_PersistentData module.">
136+
<davinci-icon icon="content/save"></davinci-icon>
138137
<span></span>
139138
<crown-binding event="submit"
140139
name="CSK_MultiTCPIPClient/sendParameters"
@@ -283,7 +282,8 @@
283282
<layout-column id="ColumnLayout12" style="align-items: center">
284283
<davinci-button id="B_Transmit"
285284
class="myCustomButton_CSK_Module_MultiTCPIPClient" type="outline"
286-
icon-position="append" icon="content/send" title="Transmit">
285+
title="Transmit">
286+
<davinci-icon icon="content/send"></davinci-icon>
287287
<span></span>
288288
<crown-set event="submit"
289289
crown-function="CSK_MultiTCPIPClient/transmitCommando"
@@ -297,9 +297,8 @@
297297
</layout-column>
298298
</layout-row>
299299
<davinci-text-area id="TA_MessageLog" label="Message Log:" style="height: 500px">
300-
<crown-edpws-binding property="value" name="CSK_MultiTCPIPClient/OnNewLog"
301-
update-on-resume>
302-
</crown-edpws-binding>
300+
<crown-on property="value" crown-event="CSK_MultiTCPIPClient/OnNewLog">
301+
</crown-on>
303302
</davinci-text-area>
304303
<layout-row id="RowLayout2" class="myCustomSpacerVert10_CSK_Module_MultiTCPIPClient">
305304
</layout-row>
@@ -521,9 +520,9 @@
521520
style="justify-content: space-evenly; align-items: center">
522521
<davinci-button id="B_AddEventTriggerPair"
523522
class="myCustomButton_CSK_Module_MultiTCPIPClient"
524-
type="primary" icon-position="append"
525-
title="Add" icon="content/add"
523+
type="primary" title="Add"
526524
style="align-self: stretch; width: 100%">
525+
<davinci-icon icon="content/add"></davinci-icon>
527526
<span></span>
528527
<crown-binding event="submit"
529528
name="CSK_MultiTCPIPClient/addTriggerEventPairViaUI"
@@ -532,9 +531,10 @@
532531
</davinci-button>
533532
<davinci-button id="B_DeleteEventTriggerPair"
534533
class="myCustomButton_CSK_Module_MultiTCPIPClient"
535-
type="outline" icon-position="append"
536-
title="Delete" icon="action/delete"
534+
type="outline" title="Delete"
537535
style="align-self: stretch; width: 100%">
536+
<davinci-icon icon="action/delete">
537+
</davinci-icon>
538538
<span></span>
539539
<crown-binding event="submit"
540540
name="CSK_MultiTCPIPClient/deleteTriggerEventPairViaUI"
@@ -608,9 +608,9 @@
608608
style="justify-content: space-evenly">
609609
<davinci-button id="B_AddEventToForward"
610610
class="myCustomButton_CSK_Module_MultiTCPIPClient"
611-
type="primary" icon-position="append"
612-
title="Add event to register to and to forward its content to TCP/IP server."
613-
icon="content/add">
611+
type="primary"
612+
title="Add event to register to and to forward its content to TCP/IP server.">
613+
<davinci-icon icon="content/add"></davinci-icon>
614614
<span></span>
615615
<crown-binding event="submit"
616616
name="CSK_MultiTCPIPClient/addEventToForwardViaUI"
@@ -623,8 +623,9 @@
623623
</davinci-button>
624624
<davinci-button id="B_DeleteEventToForward"
625625
class="myCustomButton_CSK_Module_MultiTCPIPClient"
626-
type="outline" icon-position="append"
627-
title="Delete" icon="action/delete">
626+
type="outline" title="Delete">
627+
<davinci-icon icon="action/delete">
628+
</davinci-icon>
628629
<span></span>
629630
<crown-binding event="submit"
630631
name="CSK_MultiTCPIPClient/deleteEventToForwardViaUI"

CSK_Module_MultiTCPIPClient/pages/src/converter.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@ export function convertToList(value) {
55
export function changeStyle(theme) {
66
const style: HTMLStyleElement = document.createElement('style');
77
style.id ='blub'
8+
9+
const toggleSW = document.querySelectorAll("davinci-toggle-switch")
10+
toggleSW.forEach((userItem) => {
11+
const shadowToggle = userItem.shadowRoot
12+
const finalToggleSW = shadowToggle?.querySelector('div')
13+
finalToggleSW?.classList.add('hasIcon')
14+
});
15+
816
if (theme == 'CSK_Style'){
917
var headerToolbar = `.sopasjs-ui-header-toolbar-wrapper { background-color: #FFFFFF; }`
1018
var uiHeader = `.sopasjs-ui-header>.app-logo { margin-right:0px; }`

CSK_Module_MultiTCPIPClient/pages/src/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ document.addEventListener('sopasjs-ready', () => {
1212
page_Setup.remove();
1313

1414
setTimeout(() => {
15+
const element = document.querySelector("div.sjs-wrapper > div > div.sjs-fullscreen-toggle")
16+
if(element) {
17+
element.parentElement.removeChild(element)
18+
}
1519
document.title = 'CSK_Module_MultiTCPIPClient'
1620
}, 500);
1721
})

CSK_Module_MultiTCPIPClient/project.mf.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,8 @@ NUM will be replaced by the number of instance (e.g. "OnNewResult1"). +</desc>
203203
<param desc="Port" multiplicity="1" name="port" type="int"/>
204204
</function>
205205
<function name="setCommand">
206-
<desc>Set command to transmit via TCP/IP if triggered via "transmitCommando() (used in modules UI).</desc>
206+
<desc>Set command to transmit via TCP/IP if triggered via "transmitCommando() (used in modules UI). +
207+
HEX values can be used like this: '\x03'.</desc>
207208
<param desc="Command to transmit." multiplicity="1" name="cmd" type="string"/>
208209
</function>
209210
<function name="transmitCommando">
@@ -391,7 +392,7 @@ IMPORTANT: As instances start their own threads, the module needs to be restarte
391392
</crown>
392393
</crown>
393394
<meta key="author">SICK AG</meta>
394-
<meta key="version">2.0.0</meta>
395+
<meta key="version">2.1.0</meta>
395396
<meta key="priority">low</meta>
396397
<meta key="copy-protected">false</meta>
397398
<meta key="read-protected">false</meta>

CSK_Module_MultiTCPIPClient/scripts/CSK_Module_MultiTCPIPClient.lua

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,9 @@ local multiTCPIPClient_Instances = {} -- Handle all instances
5050
local multiTCPIPClientController = require('Communication/MultiTCPIPClient/MultiTCPIPClient_Controller')
5151

5252
if _G.availableAPIs.default and _G.availableAPIs.specific then
53-
local setInstanceHandle = require('Communication/MultiTCPIPClient/FlowConfig/MultiTCPIPClient_FlowConfig')
53+
require('Communication/MultiTCPIPClient/FlowConfig/MultiTCPIPClient_FlowConfig')
5454
table.insert(multiTCPIPClient_Instances, multiTCPIPClient_Model.create(1)) -- Create at least 1 instance
5555
multiTCPIPClientController.setMultiTCPIPClient_Instances_Handle(multiTCPIPClient_Instances) -- share handle of instances
56-
setInstanceHandle(multiTCPIPClient_Instances)
5756
else
5857
_G.logger:warning("CSK_MultiTCPIPClient: Relevant CROWN(s) not available on device. Module is not supported...")
5958
end

CSK_Module_MultiTCPIPClient/scripts/Communication/MultiTCPIPClient/FlowConfig/MultiTCPIPClient_FlowConfig.lua

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,10 @@
66
require('Communication.MultiTCPIPClient.FlowConfig.MultiTCPIPClient_OnReceive')
77
require('Communication.MultiTCPIPClient.FlowConfig.MultiTCPIPClient_Transmit')
88

9-
-- Reference to the multiTCPIPClient_Instances handle
10-
local multiTCPIPClient_Instances
11-
129
--- Function to react if FlowConfig was updated
1310
local function handleOnClearOldFlow()
1411
if _G.availableAPIs.default and _G.availableAPIs.specific then
15-
for i = 1, # multiTCPIPClient_Instances do
16-
if multiTCPIPClient_Instances[i].parameters.flowConfigPriority then
17-
CSK_MultiTCPIPClient.clearFlowConfigRelevantConfiguration()
18-
break
19-
end
20-
end
12+
CSK_MultiTCPIPClient.clearFlowConfigRelevantConfiguration()
2113
end
2214
end
2315
Script.register('CSK_FlowConfig.OnClearOldFlow', handleOnClearOldFlow)
24-
25-
--- Function to get access to the multiTCPIPClient_Instances
26-
---@param handle handle Handle of multiTCPIPClient_Instances object
27-
local function setMultiTCPIPClient_Instances_Handle(handle)
28-
multiTCPIPClient_Instances = handle
29-
end
30-
31-
return setMultiTCPIPClient_Instances_Handle

CSK_Module_MultiTCPIPClient/scripts/Communication/MultiTCPIPClient/MultiTCPIPClient_Controller.lua

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -467,9 +467,19 @@ local function setTxFraming(frame)
467467
end
468468
Script.serveFunction("CSK_MultiTCPIPClient.setTxFraming", setTxFraming)
469469

470+
local function replaceHex(value)
471+
local subString = string.sub(value, 3, 4)
472+
if multiTCPIPClient_Instances[selectedInstance].hexValues[subString] then
473+
return multiTCPIPClient_Instances[selectedInstance].hexValues[subString]
474+
else
475+
return value
476+
end
477+
end
478+
470479
local function setCommand(cmd)
471480
_G.logger:fine(nameOfModule .. ": Preset command to send = " .. tostring(cmd))
472-
multiTCPIPClient_Instances[selectedInstance].command = cmd
481+
local res = string.gsub(cmd, "\\x+%w%w", replaceHex)
482+
multiTCPIPClient_Instances[selectedInstance].command = res
473483
end
474484
Script.serveFunction("CSK_MultiTCPIPClient.setCommand", setCommand)
475485

@@ -508,8 +518,10 @@ Script.serveFunction('CSK_MultiTCPIPClient.getStatusModuleActive', getStatusModu
508518

509519
local function clearFlowConfigRelevantConfiguration()
510520
for i = 1, #multiTCPIPClient_Instances do
511-
for key, value in pairs(multiTCPIPClient_Instances[i].parameters.forwardEvents) do
512-
deleteEventToForward(value)
521+
if multiTCPIPClient_Instances[i].parameters.flowConfigPriority then
522+
for key, value in pairs(multiTCPIPClient_Instances[i].parameters.forwardEvents) do
523+
deleteEventToForward(value)
524+
end
513525
end
514526
end
515527
end
@@ -562,6 +574,8 @@ local function loadParameters()
562574
_G.logger:info(nameOfModule .. ": Loaded parameters for multiTCPIPClientObject " .. tostring(selectedInstance) .. " from CSK_PersistentData module.")
563575
multiTCPIPClient_Instances[selectedInstance].parameters = helperFuncs.convertContainer2Table(data)
564576

577+
multiTCPIPClient_Instances[selectedInstance].parameters = helperFuncs.checkParameters(multiTCPIPClient_Instances[selectedInstance].parameters, helperFuncs.defaultParameters.getParameters())
578+
565579
-- If something needs to be configured/activated with new loaded data
566580
updateProcessingParameters()
567581

@@ -649,8 +663,10 @@ Script.register("CSK_PersistentData.OnInitialDataLoaded", handleOnInitialDataLoa
649663

650664
local function resetModule()
651665
if _G.availableAPIs.default and _G.availableAPIs.specific then
652-
clearFlowConfigRelevantConfiguration()
653666
for i = 1, #multiTCPIPClient_Instances do
667+
for key, value in pairs(multiTCPIPClient_Instances[i].parameters.forwardEvents) do
668+
deleteEventToForward(value)
669+
end
654670
setConnectionStatus(false)
655671
end
656672
pageCalled()

0 commit comments

Comments
 (0)