Skip to content

Commit 32d74a0

Browse files
Release 3.2.0 (#4)
# Release 3.2.0 ## New features - Check if persistent data to load provides all relevant parameters. Otherwise add default values ## 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 7110cd1 commit 32d74a0

12 files changed

Lines changed: 106 additions & 33 deletions

File tree

CHANGELOG.md

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

4+
## Release 3.2.0
5+
6+
### New features
7+
- Check if persistent data to load provides all relevant parameters. Otherwise add default values
8+
9+
### Bugfix
10+
- Legacy bindings of ValueDisplay elements within UI did not work if deployed with VS Code AppSpace SDK
11+
- UI differs if deployed via Appstudio or VS Code AppSpace SDK
12+
- Fullscreen icon of iFrame was visible
13+
414
## Release 3.1.1
515

616
### Bugfix

CSK_Module_ImagePlayer/pages/pages/CSK_Module_ImagePlayer/CSK_Module_ImagePlayer.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@
8383

8484
.myCustomButton_CSK_Module_ImagePlayer {
8585
border-radius: 30px;
86-
padding-right: 0px;
86+
padding: 11px;
8787
}
8888

8989
.myCustomPlayerButton_CSK_Module_ImagePlayer {
9090
border-radius: 30px;
91-
padding-right: 0px;
91+
padding: 11px;
9292
margin-block: revert;
9393
}

CSK_Module_ImagePlayer/pages/pages/CSK_Module_ImagePlayer/CSK_Module_ImagePlayer.html

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@
66
<layout-row id="RowLayout19">
77
<layout-column id="ColumnLayout26" style="align-items: stretch">
88
<layout-row id="RowLayout01" style="align-items: baseline">
9-
<davinci-value-display id="VD_Title" class="myCustomLabel_CSK_Module_ImagePlayer"
10-
value="Image Player">
11-
</davinci-value-display>
9+
<h1 id="Heading_Title" class="myCustomLabel_CSK_Module_ImagePlayer">
10+
Image Player
11+
</h1>
1212
<davinci-value-display id="VD_Version">
13-
<crown-edpws-binding property="value" name="CSK_ImagePlayer/OnNewStatusModuleVersion"
14-
update-on-resume>
15-
</crown-edpws-binding>
13+
<crown-on property="value" crown-event="CSK_ImagePlayer/OnNewStatusModuleVersion">
14+
</crown-on>
1615
</davinci-value-display>
1716
</layout-row>
1817
</layout-column>
@@ -65,9 +64,10 @@
6564
style="justify-content: center; align-items: center">
6665
<davinci-button id="B_LoadConfigx"
6766
class="myCustomButton_CSK_Module_ImagePlayer"
68-
type="outline" icon-position="append"
69-
title="Load configured parameters from CSK_PersistentData module."
70-
icon="action/history">
67+
type="outline"
68+
title="Load configured parameters from CSK_PersistentData module.">
69+
<davinci-icon icon="action/history">
70+
</davinci-icon>
7171
<span></span>
7272
<crown-binding event="submit"
7373
name="CSK_ImagePlayer/loadParameters"
@@ -81,9 +81,10 @@
8181
</davinci-button>
8282
<davinci-button id="B_SaveConfigx"
8383
class="myCustomButton_CSK_Module_ImagePlayer"
84-
type="outline" icon-position="append"
85-
icon="content/save"
84+
type="outline"
8685
title="Save current configured parameters of this module within CSK_PersistentData module.">
86+
<davinci-icon icon="content/save">
87+
</davinci-icon>
8788
<span></span>
8889
<crown-binding event="submit"
8990
name="CSK_ImagePlayer/sendParameters"
@@ -203,8 +204,9 @@
203204
<layout-row id="RowLayout4" style="align-items: center">
204205
<davinci-button id="Button_Start"
205206
class="myCustomPlayerButton_CSK_Module_ImagePlayer"
206-
type="outline" icon-position="append"
207-
icon="av/play_arrow" title="Start">
207+
type="outline" title="Start">
208+
<davinci-icon icon="av/play_arrow">
209+
</davinci-icon>
208210
<span></span>
209211
<crown-binding event="submit"
210212
name="CSK_ImagePlayer/startProvider"
@@ -213,8 +215,9 @@
213215
</davinci-button>
214216
<davinci-button id="Button_SingleTrigger"
215217
class="myCustomPlayerButton_CSK_Module_ImagePlayer"
216-
type="outline" icon-position="append"
217-
title="SingleTrigger" icon="navigation/refresh">
218+
type="outline" title="SingleTrigger">
219+
<davinci-icon icon="navigation/refresh">
220+
</davinci-icon>
218221
<span></span>
219222
<crown-binding event="submit"
220223
name="CSK_ImagePlayer/triggerOnce"
@@ -227,8 +230,8 @@
227230
<layout-row id="RowLayout5" style="align-items: center">
228231
<davinci-button id="Button_Stop"
229232
class="myCustomPlayerButton_CSK_Module_ImagePlayer"
230-
type="outline" icon-position="append"
231-
title="Stop" icon="av/stop">
233+
type="outline" title="Stop">
234+
<davinci-icon icon="av/stop"></davinci-icon>
232235
<span></span>
233236
<crown-binding event="submit"
234237
name="CSK_ImagePlayer/stopProvider"

CSK_Module_ImagePlayer/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_ImagePlayer/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_ImagePlayer'
1620
}, 500);
1721
})

CSK_Module_ImagePlayer/project.mf.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ INFO: If the internal resizeFactor is changed, this module will notify the "OnNe
223223
</crown>
224224
</crown>
225225
<meta key="author">SICK AG</meta>
226-
<meta key="version">3.1.1</meta>
226+
<meta key="version">3.2.0</meta>
227227
<meta key="priority">low</meta>
228228
<meta key="copy-protected">false</meta>
229229
<meta key="read-protected">false</meta>

CSK_Module_ImagePlayer/scripts/Sensors/ImagePlayer/ImagePlayer_Controller.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,8 +284,10 @@ local function loadParameters()
284284
if imagePlayer_Model.persistentModuleAvailable then
285285
local data = CSK_PersistentData.getParameter(imagePlayer_Model.parametersName)
286286
if data then
287+
clearFlowConfigRelevantConfiguration()
287288
_G.logger:info(nameOfModule .. ": Loaded parameters from CSK_PersistentData module.")
288289
imagePlayer_Model.parameters = imagePlayer_Model.helperFuncs.convertContainer2Table(data)
290+
imagePlayer_Model.parameters = imagePlayer_Model.helperFuncs.checkParameters(imagePlayer_Model.parameters, imagePlayer_Model.helperFuncs.defaultParameters.getParameters())
289291
imagePlayer_Model.setup()
290292
CSK_ImagePlayer.pageCalled()
291293
return true

CSK_Module_ImagePlayer/scripts/Sensors/ImagePlayer/ImagePlayer_Model.lua

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,7 @@ imagePlayer_Model.selectedFileSource = '/resources' -- File source selected out
5454

5555
-- Parameters to be saved permanently if wanted
5656
imagePlayer_Model.parameters = {}
57-
imagePlayer_Model.parameters.flowConfigPriority = CSK_FlowConfig ~= nil or false -- Status if FlowConfig should have priority for FlowConfig relevant configurations
58-
imagePlayer_Model.parameters.viewerActive = false -- Images should be shown in UI viewer
59-
imagePlayer_Model.parameters.path = 'resources/CSK_Module_ImagePlayer/ColorPins'-- Path to images like 'public/images'
60-
imagePlayer_Model.parameters.dataTypes = 'jpg' --'jpg, JPG, bmp, BMP, png, PNG' -- Image type to load
61-
imagePlayer_Model.parameters.cycleTime = 1000 -- Loading new images after x [ms]
62-
imagePlayer_Model.parameters.forwardImage = true -- Should loaded images be forwarded to other modules via "OnNewImage" event
63-
imagePlayer_Model.parameters.imagePoolSize = 50 -- Image pool size to load images
64-
imagePlayer_Model.parameters.resizeFactor = 1.0 -- Resize factor to scale images
57+
imagePlayer_Model.parameters = imagePlayer_Model.helperFuncs.defaultParameters.getParameters() -- Load default parameters
6558

6659
--**************************************************************************
6760
--********************** End Global Scope **********************************
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---@diagnostic disable: redundant-parameter, undefined-global
2+
3+
--***************************************************************
4+
-- Inside of this script, you will find the relevant parameters
5+
-- for this module and its default values
6+
--***************************************************************
7+
8+
local functions = {}
9+
10+
local function getParameters()
11+
12+
local imagePlayerParameters = {}
13+
14+
imagePlayerParameters.flowConfigPriority = CSK_FlowConfig ~= nil or false -- Status if FlowConfig should have priority for FlowConfig relevant configurations
15+
imagePlayerParameters.viewerActive = false -- Images should be shown in UI viewer
16+
imagePlayerParameters.path = 'resources/CSK_Module_ImagePlayer/ColorPins'-- Path to images like 'public/images'
17+
imagePlayerParameters.dataTypes = 'jpg' --'jpg, JPG, bmp, BMP, png, PNG' -- Image type to load
18+
imagePlayerParameters.cycleTime = 1000 -- Loading new images after x [ms]
19+
imagePlayerParameters.forwardImage = true -- Should loaded images be forwarded to other modules via "OnNewImage" event
20+
imagePlayerParameters.imagePoolSize = 50 -- Image pool size to load images
21+
imagePlayerParameters.resizeFactor = 1.0 -- Resize factor to scale images
22+
23+
return imagePlayerParameters
24+
end
25+
functions.getParameters = getParameters
26+
27+
return functions

CSK_Module_ImagePlayer/scripts/Sensors/ImagePlayer/helper/funcs.lua

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@
77
--**********************Start Global Scope *********************************
88
--**************************************************************************
99

10+
local nameOfModule = 'CSK_ImagePlayer'
11+
1012
local funcs = {}
1113
-- Providing standard JSON functions
1214
funcs.json = require('Sensors/ImagePlayer/helper/Json')
15+
-- Default parameters for instances of module
16+
funcs.defaultParameters = require('Sensors/ImagePlayer/ImagePlayer_Parameters')
1317

1418
--**************************************************************************
1519
--********************** End Global Scope **********************************
@@ -146,6 +150,27 @@ local function createStringListBySimpleTable(content)
146150
end
147151
funcs.createStringListBySimpleTable = createStringListBySimpleTable
148152

153+
--- Function to compare table content. Optionally will fill missing values within content table with values of defaultTable
154+
---@param content auto Data to check
155+
---@param defaultTable auto Reference data
156+
---@return auto[] content Update of data
157+
local function checkParameters(content, defaultTable)
158+
for key, value in pairs(defaultTable) do
159+
if type(value) == 'table' then
160+
if content[key] == nil then
161+
_G.logger:info(nameOfModule .. ": Created missing parameters table '" .. tostring(key) .. "'")
162+
content[key] = {}
163+
end
164+
content[key] = checkParameters(content[key], defaultTable[key])
165+
elseif content[key] == nil then
166+
_G.logger:info(nameOfModule .. ": Missing parameter '" .. tostring(key) .. "'. Adding default value '" .. tostring(defaultTable[key]) .. "'")
167+
content[key] = defaultTable[key]
168+
end
169+
end
170+
return content
171+
end
172+
funcs.checkParameters = checkParameters
173+
149174
return funcs
150175

151176
--**************************************************************************

0 commit comments

Comments
 (0)