Skip to content

Commit 04dc934

Browse files
Release 2.1.0 (#3)
# Release 2.1.0 ## New features - 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 51fae92 commit 04dc934

14 files changed

Lines changed: 143 additions & 81 deletions

File tree

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
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+
- Check if persistent data to load provides all relevant parameters. Otherwise add default values
8+
9+
### Improvements
10+
- Better instance handling regarding FlowConfig
11+
12+
### Bugfix
13+
- Legacy bindings of ValueDisplay elements within UI did not work if deployed with VS Code AppSpace SDK
14+
- UI differs if deployed via Appstudio or VS Code AppSpace SDK
15+
- Fullscreen icon of iFrame was visible
16+
417
## Release 2.0.0
518

619
### New features

CSK_Module_MultiImageFilter/pages/pages/CSK_Module_MultiImageFilter/CSK_Module_MultiImageFilter.css

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
.myViewer_CSK_Module_MultiImageFilter > div > div {
2-
max-height: 600px;
3-
min-height: 600px;
1+
.myViewer_CSK_Module_MultiImageFilter {
2+
width: 98%;
3+
height: 600px;
4+
margin: auto;
45
}
56

67
.myCustomSpacerVert10_CSK_Module_MultiImageFilter {
@@ -105,5 +106,5 @@
105106

106107
.myCustomButton_CSK_Module_MultiImageFilter {
107108
border-radius: 30px;
108-
padding-right: 0px;
109+
padding: 11px;
109110
}

CSK_Module_MultiImageFilter/pages/pages/CSK_Module_MultiImageFilter/CSK_Module_MultiImageFilter.html

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@
66
<layout-row id="RowLayout31">
77
<layout-column id="ColumnLayout40" style="align-items: stretch">
88
<layout-row id="RowLayout01" style="align-items: baseline">
9-
<davinci-value-display id="VD_Title" class="myCustomLabel_CSK_Module_MultiImageFilter"
10-
value="Image Filter">
11-
</davinci-value-display>
9+
<h1 id="Heading_Title" class="myCustomLabel_CSK_Module_MultiImageFilter">
10+
Image Filter
11+
</h1>
1212
<davinci-value-display id="VD_Version">
13-
<crown-edpws-binding property="value" name="CSK_MultiImageFilter/OnNewStatusModuleVersion"
14-
update-on-resume>
15-
</crown-edpws-binding>
13+
<crown-on property="value" crown-event="CSK_MultiImageFilter/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_MultiImageFilter"
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_MultiImageFilter/addInstance" auto-commit>
6766
</crown-binding>
6867
</davinci-button>
6968
<davinci-button id="Button_ResetInstances"
7069
class="myCustomButton_CSK_Module_MultiImageFilter"
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_MultiImageFilter/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_MultiImageFilter"
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_MultiImageFilter/loadParameters"
@@ -132,9 +131,9 @@
132131
</davinci-button>
133132
<davinci-button id="B_SaveConfig"
134133
class="myCustomButton_CSK_Module_MultiImageFilter"
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_MultiImageFilter/sendParameters"
@@ -265,9 +264,10 @@
265264
</layout-row>
266265
<layout-row id="RowLayout2" class="myCustomSpacerVert10_CSK_Module_MultiImageFilter">
267266
</layout-row>
268-
<sick-viewer2d id="Viewer2D1" class="myViewer_CSK_Module_MultiImageFilter"
269-
viewer-id="multiImageFilterViewer1" style="width: 100%; height: 100%">
270-
</sick-viewer2d>
267+
<sick-viewer2d id="Viewer2D1"
268+
class="myViewer_CSK_Module_MultiImageFilter"
269+
viewer-id="multiImageFilterViewer1">
270+
</sick-viewer2d>
271271
<layout-row id="RowLayout3" class="myCustomSpacerVert10_CSK_Module_MultiImageFilter">
272272
</layout-row>
273273
</layout-column>

CSK_Module_MultiImageFilter/pages/src/converter.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@ export function changeID(id) {
1212
export function changeStyle(theme) {
1313
const style: HTMLStyleElement = document.createElement('style');
1414
style.id ='blub'
15+
16+
const toggleSW = document.querySelectorAll("davinci-toggle-switch")
17+
toggleSW.forEach((userItem) => {
18+
const shadowToggle = userItem.shadowRoot
19+
const finalToggleSW = shadowToggle?.querySelector('div')
20+
finalToggleSW?.classList.add('hasIcon')
21+
});
22+
1523
if (theme == 'CSK_Style'){
1624
var headerToolbar = `.sopasjs-ui-header-toolbar-wrapper { background-color: #FFFFFF; }`
1725
var uiHeader = `.sopasjs-ui-header>.app-logo { margin-right:0px; }`

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

CSK_Module_MultiImageFilter/project.mf.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ IMPORTANT: As instances start their own threads, the module needs to be restarte
413413
</crown>
414414
</crown>
415415
<meta key="author">SICK AG</meta>
416-
<meta key="version">2.0.0</meta>
416+
<meta key="version">2.1.0</meta>
417417
<meta key="priority">low</meta>
418418
<meta key="copy-protected">false</meta>
419419
<meta key="read-protected">false</meta>

CSK_Module_MultiImageFilter/scripts/CSK_Module_MultiImageFilter.lua

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,9 @@ local multiImageFilter_Instances = {} -- Handle all instances
5050
local multiImageFilterController = require('ImageProcessing/MultiImageFilter/MultiImageFilter_Controller')
5151

5252
if _G.availableAPIs.default and _G.availableAPIs.specific then
53-
local setInstanceHandle = require('ImageProcessing/MultiImageFilter/FlowConfig/MultiImageFilter_FlowConfig')
53+
require('ImageProcessing/MultiImageFilter/FlowConfig/MultiImageFilter_FlowConfig')
5454
table.insert(multiImageFilter_Instances, multiImageFilter_Model.create(1)) -- Create at least 1 instance
5555
multiImageFilterController.setMultiImageFilter_Instances_Handle(multiImageFilter_Instances) -- share handle of instances
56-
setInstanceHandle(multiImageFilter_Instances)
5756
else
5857
_G.logger:warning("CSK_MultiImageFilter: Relevant CROWN(s) not available on device. Module is not supported...")
5958
end

CSK_Module_MultiImageFilter/scripts/ImageProcessing/MultiImageFilter/FlowConfig/MultiImageFilter_FlowConfig.lua

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,10 @@ require('ImageProcessing.MultiImageFilter.FlowConfig.MultiImageFilter_ImageSourc
77
require('ImageProcessing.MultiImageFilter.FlowConfig.MultiImageFilter_OnNewImage')
88
require('ImageProcessing.MultiImageFilter.FlowConfig.MultiImageFilter_Process')
99

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

CSK_Module_MultiImageFilter/scripts/ImageProcessing/MultiImageFilter/MultiImageFilter_Controller.lua

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -471,9 +471,11 @@ Script.serveFunction('CSK_MultiImageFilter.getStatusModuleActive', getStatusModu
471471

472472
local function clearFlowConfigRelevantConfiguration()
473473
for i = 1, #multiImageFilter_Instances do
474-
multiImageFilter_Instances[i].parameters.registeredEvent = ''
475-
Script.notifyEvent('MultiImageFilter_OnNewProcessingParameter', i, 'deregisterFromEvent', '')
476-
Script.notifyEvent('MultiImageFilter_OnNewStatusRegisteredEvent', '')
474+
if multiImageFilter_Instances[i].parameters.flowConfigPriority then
475+
multiImageFilter_Instances[i].parameters.registeredEvent = ''
476+
Script.notifyEvent('MultiImageFilter_OnNewProcessingParameter', i, 'deregisterFromEvent', '')
477+
Script.notifyEvent('MultiImageFilter_OnNewStatusRegisteredEvent', '')
478+
end
477479
end
478480
end
479481
Script.serveFunction('CSK_MultiImageFilter.clearFlowConfigRelevantConfiguration', clearFlowConfigRelevantConfiguration)
@@ -524,6 +526,8 @@ local function loadParameters()
524526
_G.logger:info(nameOfModule .. ": Loaded parameters for multiImageFilterObject " .. tostring(selectedInstance) .. " from CSK_PersistentData module.")
525527
multiImageFilter_Instances[selectedInstance].parameters = helperFuncs.convertContainer2Table(data)
526528

529+
multiImageFilter_Instances[selectedInstance].parameters = helperFuncs.checkParameters(multiImageFilter_Instances[selectedInstance].parameters, helperFuncs.defaultParameters.getParameters())
530+
527531
-- If something needs to be configured/activated with new loaded data
528532
updateProcessingParameters()
529533
tmrMultiImageFilter:start()
@@ -606,7 +610,11 @@ Script.register("CSK_PersistentData.OnInitialDataLoaded", handleOnInitialDataLoa
606610

607611
local function resetModule()
608612
if _G.availableAPIs.default and _G.availableAPIs.specific then
609-
clearFlowConfigRelevantConfiguration()
613+
for i = 1, #multiImageFilter_Instances do
614+
multiImageFilter_Instances[i].parameters.registeredEvent = ''
615+
Script.notifyEvent('MultiImageFilter_OnNewProcessingParameter', i, 'deregisterFromEvent', '')
616+
Script.notifyEvent('MultiImageFilter_OnNewStatusRegisteredEvent', '')
617+
end
610618
pageCalled()
611619
end
612620
end

CSK_Module_MultiImageFilter/scripts/ImageProcessing/MultiImageFilter/MultiImageFilter_Model.lua

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -57,34 +57,7 @@ function multiImageFilter.create(multiImageFilterInstanceNo)
5757

5858
-- Parameters to be saved permanently if wanted
5959
self.parameters = {}
60-
self.parameters.flowConfigPriority = CSK_FlowConfig ~= nil or false -- Status if FlowConfig should have priority for FlowConfig relevant configurations
61-
self.parameters.registeredEvent = '' -- If thread internal function should react on external event, define it here, e.g. 'CSK_OtherModule.OnNewInput'
62-
self.parameters.processingFile = 'CSK_MultiImageFilter_Processing' -- which file to use for processing (will be started in own thread)
63-
self.parameters.filterType = 'Gray' -- Type of filter to use
64-
65-
self.parameters.labChannel = 'L' -- Channel to use if images was converted to Lab channels, 'L', 'a' or 'b'
66-
67-
self.parameters.cannyThresholdHigh = 255 --100 -- First/high threshold to find strong edges
68-
self.parameters.cannyThresholdLow = 10 --50 -- Second/low threshold for finding weaker edges connected with the strong edges
69-
70-
self.parameters.blurKernelSizePix = 15 -- Size of the kernel
71-
72-
self.parameters.cropPositionSource = 'MANUAL' -- 'MANUAL' or 'EXTERNAL' source for cropping
73-
self.parameters.cropPosX = 267 -- The x position of the top-left corner of the cropped image in the source image (MANUAL MODE)
74-
self.parameters.cropPosY = 200 -- The y position of the top-left corner of the cropped image in the source image (MANUAL MODE)
75-
self.parameters.cropWidth = 150 -- The width of the cropped image
76-
self.parameters.cropHeight = 80 -- The height of the cropped image
77-
self.parameters.registeredCropPositionEvent = '' -- If thread internal function should react on external transformation event, define it here, e.g. 'CSK_OtherModule.OnNewTransformation'
78-
79-
self.parameters.transformationSource = 'MANUAL' -- 'MANUAL' or 'EXTERNAL' source for transformation
80-
self.parameters.transX = 0 -- Manual transformation in x direction
81-
self.parameters.transY = 0 -- Manual transformation in y direction
82-
self.parameters.transAngle = 0 -- Manual angle transformation
83-
self.parameters.transAngleOriginX = 0 -- X origin for manual angle transformation
84-
self.parameters.transAngleOriginY = 0 -- Y origin for manual angle transformation
85-
self.parameters.registeredTransformationEvent = '' -- If thread internal function should react on external transformation event, define it here, e.g. 'CSK_OtherModule.OnNewTransformation'
86-
87-
self.parameters.showImage = false -- Show image in UI
60+
self.parameters = self.helperFuncs.defaultParameters.getParameters() -- Load default parameters
8861

8962
-- Parameters to give to the processing script
9063
self.multiImageFilterProcessingParams = Container.create()

0 commit comments

Comments
 (0)