Migliorata pagina configurazioni

This commit is contained in:
Nicola Pievani
2025-08-25 10:01:18 +02:00
parent 1b918c31ac
commit 219cd35a6a
26 changed files with 976 additions and 504 deletions
@@ -1 +1 @@
d2b932f18ef2e5c798fd58426e0d24aa6cf31e94f0a9380c5153e4ca9c7312e0 e95e89768799aa70174d795dd6cd51d4394677f14b86bcd305000d17f87ae1d9
+80 -68
View File
@@ -30,54 +30,55 @@ Partial Class FrmMain
Me.LbFocalLenght = New System.Windows.Forms.Label() Me.LbFocalLenght = New System.Windows.Forms.Label()
Me.TimerZoom = New System.Windows.Forms.Timer(Me.components) Me.TimerZoom = New System.Windows.Forms.Timer(Me.components)
Me.GBImgFromCam = New System.Windows.Forms.GroupBox() Me.GBImgFromCam = New System.Windows.Forms.GroupBox()
Me.BtnDefAree = New System.Windows.Forms.Button() Me.BtnDefAree = New System.Windows.Forms.Button()
Me.BtnCorrLens = New System.Windows.Forms.Button() Me.BtnCorrLens = New System.Windows.Forms.Button()
Me.BtnCorrCompleta = New System.Windows.Forms.Button() Me.BtnCorrCompleta = New System.Windows.Forms.Button()
Me.GBCorrected = New System.Windows.Forms.GroupBox() Me.GBCorrected = New System.Windows.Forms.GroupBox()
Me.BtnSave = New System.Windows.Forms.Button() Me.BtnSave = New System.Windows.Forms.Button()
Me.GBCalibration = New System.Windows.Forms.GroupBox() Me.GBCalibration = New System.Windows.Forms.GroupBox()
Me.Label3 = New System.Windows.Forms.Label() Me.Label3 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label() Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label() Me.Label1 = New System.Windows.Forms.Label()
Me.lbYmm = New System.Windows.Forms.Label() Me.lbYmm = New System.Windows.Forms.Label()
Me.lbXmm = New System.Windows.Forms.Label() Me.lbXmm = New System.Windows.Forms.Label()
Me.PictureBox2 = New System.Windows.Forms.PictureBox() Me.PictureBox2 = New System.Windows.Forms.PictureBox()
Me.LbAltRif = New System.Windows.Forms.Label() Me.LbAltRif = New System.Windows.Forms.Label()
Me.LbAltCali = New System.Windows.Forms.Label() Me.LbAltCali = New System.Windows.Forms.Label()
Me.PictureBox1 = New System.Windows.Forms.PictureBox() Me.PictureBox1 = New System.Windows.Forms.PictureBox()
Me.BtnAbortCal = New System.Windows.Forms.Button() Me.BtnAbortCal = New System.Windows.Forms.Button()
Me.BtnSaveCal = New System.Windows.Forms.Button() Me.BtnSaveCal = New System.Windows.Forms.Button()
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
Me.BtnLoad = New System.Windows.Forms.ToolStripButton() Me.BtnLoad = New System.Windows.Forms.ToolStripButton()
Me.cmdZoomAll = New System.Windows.Forms.ToolStripButton() Me.cmdZoomAll = New System.Windows.Forms.ToolStripButton()
Me.BtnZoom11 = New System.Windows.Forms.ToolStripButton() Me.BtnZoom11 = New System.Windows.Forms.ToolStripButton()
Me.BtnZoomPan = New System.Windows.Forms.ToolStripButton() Me.BtnZoomPan = New System.Windows.Forms.ToolStripButton()
Me.BtnCorrProsp = New System.Windows.Forms.ToolStripButton() Me.BtnCorrProsp = New System.Windows.Forms.ToolStripButton()
Me.BtnCfg = New System.Windows.Forms.ToolStripButton() Me.BtnCfg = New System.Windows.Forms.ToolStripButton()
Me.BtnBackG = New System.Windows.Forms.ToolStripButton() Me.BtnBackG = New System.Windows.Forms.ToolStripButton()
Me.BtnEdgeFinder = New System.Windows.Forms.ToolStripButton() Me.BtnEdgeFinder = New System.Windows.Forms.ToolStripButton()
Me.BtnChangeThreshold = New System.Windows.Forms.ToolStripButton() Me.BtnChangeThreshold = New System.Windows.Forms.ToolStripButton()
Me.BtnIncrTh = New System.Windows.Forms.ToolStripButton() Me.BtnIncrTh = New System.Windows.Forms.ToolStripButton()
Me.lbThreshold = New System.Windows.Forms.ToolStripLabel() Me.lbThreshold = New System.Windows.Forms.ToolStripLabel()
Me.btnSearch = New System.Windows.Forms.ToolStripButton() Me.btnSearch = New System.Windows.Forms.ToolStripButton()
Me.RefreshCameras = New System.Windows.Forms.ToolStripButton() Me.RefreshCameras = New System.Windows.Forms.ToolStripButton()
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
Me.TStatus = New System.Windows.Forms.ToolStripStatusLabel() Me.TStatus = New System.Windows.Forms.ToolStripStatusLabel()
Me.ProgressBar = New System.Windows.Forms.ToolStripProgressBar() Me.ProgressBar = New System.Windows.Forms.ToolStripProgressBar()
Me.lbMousePosmm = New System.Windows.Forms.ToolStripStatusLabel() Me.lbMousePosmm = New System.Windows.Forms.ToolStripStatusLabel()
Me.TimerMain = New System.Windows.Forms.Timer(Me.components) Me.TimerMain = New System.Windows.Forms.Timer(Me.components)
Me.GBDefAree = New System.Windows.Forms.GroupBox() Me.GBDefAree = New System.Windows.Forms.GroupBox()
Me.BtnVentosa = New System.Windows.Forms.Button() Me.BtnVentosa = New System.Windows.Forms.Button()
Me.BtnExpT = New System.Windows.Forms.Button() Me.BtnExpT = New System.Windows.Forms.Button()
Me.BtnStone = New System.Windows.Forms.Button() Me.BtnStone = New System.Windows.Forms.Button()
Me.BtnAbortDefAree = New System.Windows.Forms.Button() Me.BtnAbortDefAree = New System.Windows.Forms.Button()
Me.BtnSaveAree = New System.Windows.Forms.Button() Me.BtnSaveAree = New System.Windows.Forms.Button()
Me.ComboBoxCameras = New System.Windows.Forms.ComboBox() Me.ComboBoxCameras = New System.Windows.Forms.ComboBox()
Me.ComboBoxCameraCfg = New System.Windows.Forms.ComboBox() Me.ComboBoxCameraCfg = New System.Windows.Forms.ComboBox()
Me.ImageControl1 = New ImageControl()
Me.Button1 = New System.Windows.Forms.Button()
Me.BtnEnd = New System.Windows.Forms.Button() Me.BtnEnd = New System.Windows.Forms.Button()
Me.BtnTakeFoto = New System.Windows.Forms.Button() Me.BtnTakeFoto = New System.Windows.Forms.Button()
Me.BtnShowMsg = New System.Windows.Forms.Button()
Me.ImageList2 = New System.Windows.Forms.ImageList(Me.components)
Me.ImageControl1 = New ImageControl()
Me.GBImgFromCam.SuspendLayout() Me.GBImgFromCam.SuspendLayout()
Me.GBCorrected.SuspendLayout() Me.GBCorrected.SuspendLayout()
Me.GBCalibration.SuspendLayout() Me.GBCalibration.SuspendLayout()
@@ -414,6 +415,35 @@ Partial Class FrmMain
resources.ApplyResources(Me.ComboBoxCameraCfg, "ComboBoxCameraCfg") resources.ApplyResources(Me.ComboBoxCameraCfg, "ComboBoxCameraCfg")
Me.ComboBoxCameraCfg.Name = "ComboBoxCameraCfg" Me.ComboBoxCameraCfg.Name = "ComboBoxCameraCfg"
' '
'BtnEnd
'
Me.BtnEnd.Image = Global.My.Resources.Resources._exit
resources.ApplyResources(Me.BtnEnd, "BtnEnd")
Me.BtnEnd.Name = "BtnEnd"
Me.BtnEnd.UseVisualStyleBackColor = True
'
'BtnTakeFoto
'
resources.ApplyResources(Me.BtnTakeFoto, "BtnTakeFoto")
Me.BtnTakeFoto.ImageList = Me.ImageList1
Me.BtnTakeFoto.Name = "BtnTakeFoto"
Me.BtnTakeFoto.UseVisualStyleBackColor = True
'
'BtnShowMsg
'
resources.ApplyResources(Me.BtnShowMsg, "BtnShowMsg")
Me.BtnShowMsg.ImageList = Me.ImageList2
Me.BtnShowMsg.Name = "BtnShowMsg"
Me.BtnShowMsg.UseVisualStyleBackColor = True
'
'ImageList2
'
Me.ImageList2.ImageStream = CType(resources.GetObject("ImageList2.ImageStream"), System.Windows.Forms.ImageListStreamer)
Me.ImageList2.TransparentColor = System.Drawing.Color.Transparent
Me.ImageList2.Images.SetKeyName(0, "accept.png")
Me.ImageList2.Images.SetKeyName(1, "cross.png")
Me.ImageList2.Images.SetKeyName(2, "warning.png")
'
'ImageControl1 'ImageControl1
' '
resources.ApplyResources(Me.ImageControl1, "ImageControl1") resources.ApplyResources(Me.ImageControl1, "ImageControl1")
@@ -431,31 +461,12 @@ Partial Class FrmMain
Me.ImageControl1.ZoomFactor = 1.0R Me.ImageControl1.ZoomFactor = 1.0R
Me.ImageControl1.ZoomOnMouseWheel = True Me.ImageControl1.ZoomOnMouseWheel = True
' '
'Button1
'
resources.ApplyResources(Me.Button1, "Button1")
Me.Button1.Name = "Button1"
Me.Button1.UseVisualStyleBackColor = True
'
'BtnEnd
'
Me.BtnEnd.Image = Global.My.Resources.Resources._exit
resources.ApplyResources(Me.BtnEnd, "BtnEnd")
Me.BtnEnd.Name = "BtnEnd"
Me.BtnEnd.UseVisualStyleBackColor = True
'
'BtnTakeFoto
'
resources.ApplyResources(Me.BtnTakeFoto, "BtnTakeFoto")
Me.BtnTakeFoto.ImageList = Me.ImageList1
Me.BtnTakeFoto.Name = "BtnTakeFoto"
Me.BtnTakeFoto.UseVisualStyleBackColor = True
'
'FrmMain 'FrmMain
' '
resources.ApplyResources(Me, "$this") resources.ApplyResources(Me, "$this")
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.Controls.Add(Me.Button1) Me.BackColor = System.Drawing.SystemColors.Control
Me.Controls.Add(Me.BtnShowMsg)
Me.Controls.Add(Me.ComboBoxCameraCfg) Me.Controls.Add(Me.ComboBoxCameraCfg)
Me.Controls.Add(Me.ComboBoxCameras) Me.Controls.Add(Me.ComboBoxCameras)
Me.Controls.Add(Me.GBDefAree) Me.Controls.Add(Me.GBDefAree)
@@ -538,5 +549,6 @@ Partial Class FrmMain
Friend WithEvents ComboBoxCameras As ComboBox Friend WithEvents ComboBoxCameras As ComboBox
Friend WithEvents ComboBoxCameraCfg As ComboBox Friend WithEvents ComboBoxCameraCfg As ComboBox
Friend WithEvents RefreshCameras As ToolStripButton Friend WithEvents RefreshCameras As ToolStripButton
Friend WithEvents Button1 As Button Friend WithEvents BtnShowMsg As Button
Friend WithEvents ImageList2 As ImageList
End Class End Class
+310 -142
View File
@@ -128,7 +128,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAS ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAS
TwAAAk1TRnQBSQFMAgEBCQEAAUwBAgFMAQIBMgEAATIBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo TwAAAk1TRnQBSQFMAgEBCQEAAZwBAgGcAQIBMgEAATIBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwAByAMAAZYDAAEBAQABCAUAATABdRgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc AwAByAMAAZYDAAEBAQABCAUAATABdRgAAYACAAGAAwACgAEAAYADAAGAAQABgAEAAoACAAPAAQABwAHc
AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA AcABAAHwAcoBpgEAATMFAAEzAQABMwEAATMBAAIzAgADFgEAAxwBAAMiAQADKQEAA1UBAANNAQADQgEA
AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz AzkBAAGAAXwB/wEAAlAB/wEAAZMBAAHWAQAB/wHsAcwBAAHGAdYB7wEAAdYC5wEAAZABqQGtAgAB/wEz
@@ -478,10 +478,13 @@
</data> </data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="LbImageStatus.Location" type="System.Drawing.Point, System.Drawing"> <data name="LbImageStatus.Location" type="System.Drawing.Point, System.Drawing">
<value>109, 519</value> <value>145, 639</value>
</data>
<data name="LbImageStatus.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data> </data>
<data name="LbImageStatus.Size" type="System.Drawing.Size, System.Drawing"> <data name="LbImageStatus.Size" type="System.Drawing.Size, System.Drawing">
<value>0, 13</value> <value>0, 16</value>
</data> </data>
<data name="LbImageStatus.TabIndex" type="System.Int32, mscorlib"> <data name="LbImageStatus.TabIndex" type="System.Int32, mscorlib">
<value>25</value> <value>25</value>
@@ -505,10 +508,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="LbFocalLenght.Location" type="System.Drawing.Point, System.Drawing"> <data name="LbFocalLenght.Location" type="System.Drawing.Point, System.Drawing">
<value>381, 13</value> <value>508, 16</value>
</data>
<data name="LbFocalLenght.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data> </data>
<data name="LbFocalLenght.Size" type="System.Drawing.Size, System.Drawing"> <data name="LbFocalLenght.Size" type="System.Drawing.Size, System.Drawing">
<value>0, 13</value> <value>0, 16</value>
</data> </data>
<data name="LbFocalLenght.TabIndex" type="System.Int32, mscorlib"> <data name="LbFocalLenght.TabIndex" type="System.Int32, mscorlib">
<value>31</value> <value>31</value>
@@ -532,10 +538,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnDefAree.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnDefAree.Location" type="System.Drawing.Point, System.Drawing">
<value>10, 175</value> <value>13, 215</value>
</data>
<data name="BtnDefAree.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnDefAree.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnDefAree.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 50</value> <value>80, 62</value>
</data> </data>
<data name="BtnDefAree.TabIndex" type="System.Int32, mscorlib"> <data name="BtnDefAree.TabIndex" type="System.Int32, mscorlib">
<value>43</value> <value>43</value>
@@ -556,10 +565,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnCorrLens.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnCorrLens.Location" type="System.Drawing.Point, System.Drawing">
<value>10, 109</value> <value>13, 134</value>
</data>
<data name="BtnCorrLens.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnCorrLens.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnCorrLens.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 50</value> <value>80, 62</value>
</data> </data>
<data name="BtnCorrLens.TabIndex" type="System.Int32, mscorlib"> <data name="BtnCorrLens.TabIndex" type="System.Int32, mscorlib">
<value>42</value> <value>42</value>
@@ -580,10 +592,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnCorrCompleta.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnCorrCompleta.Location" type="System.Drawing.Point, System.Drawing">
<value>10, 28</value> <value>13, 34</value>
</data>
<data name="BtnCorrCompleta.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnCorrCompleta.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnCorrCompleta.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 50</value> <value>80, 62</value>
</data> </data>
<data name="BtnCorrCompleta.TabIndex" type="System.Int32, mscorlib"> <data name="BtnCorrCompleta.TabIndex" type="System.Int32, mscorlib">
<value>39</value> <value>39</value>
@@ -601,10 +616,16 @@
<value>2</value> <value>2</value>
</data> </data>
<data name="GBImgFromCam.Location" type="System.Drawing.Point, System.Drawing"> <data name="GBImgFromCam.Location" type="System.Drawing.Point, System.Drawing">
<value>500, 140</value> <value>667, 172</value>
</data>
<data name="GBImgFromCam.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="GBImgFromCam.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="GBImgFromCam.Size" type="System.Drawing.Size, System.Drawing"> <data name="GBImgFromCam.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 302</value> <value>107, 372</value>
</data> </data>
<data name="GBImgFromCam.TabIndex" type="System.Int32, mscorlib"> <data name="GBImgFromCam.TabIndex" type="System.Int32, mscorlib">
<value>44</value> <value>44</value>
@@ -690,10 +711,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnSave.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnSave.Location" type="System.Drawing.Point, System.Drawing">
<value>14, 240</value> <value>19, 295</value>
</data>
<data name="BtnSave.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnSave.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnSave.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 50</value> <value>80, 62</value>
</data> </data>
<data name="BtnSave.TabIndex" type="System.Int32, mscorlib"> <data name="BtnSave.TabIndex" type="System.Int32, mscorlib">
<value>22</value> <value>22</value>
@@ -711,10 +735,16 @@
<value>0</value> <value>0</value>
</data> </data>
<data name="GBCorrected.Location" type="System.Drawing.Point, System.Drawing"> <data name="GBCorrected.Location" type="System.Drawing.Point, System.Drawing">
<value>598, 140</value> <value>797, 172</value>
</data>
<data name="GBCorrected.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="GBCorrected.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="GBCorrected.Size" type="System.Drawing.Size, System.Drawing"> <data name="GBCorrected.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 302</value> <value>107, 372</value>
</data> </data>
<data name="GBCorrected.TabIndex" type="System.Int32, mscorlib"> <data name="GBCorrected.TabIndex" type="System.Int32, mscorlib">
<value>45</value> <value>45</value>
@@ -738,10 +768,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="Label3.Location" type="System.Drawing.Point, System.Drawing"> <data name="Label3.Location" type="System.Drawing.Point, System.Drawing">
<value>27, 172</value> <value>36, 212</value>
</data>
<data name="Label3.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data> </data>
<data name="Label3.Size" type="System.Drawing.Size, System.Drawing"> <data name="Label3.Size" type="System.Drawing.Size, System.Drawing">
<value>69, 13</value> <value>88, 16</value>
</data> </data>
<data name="Label3.TabIndex" type="System.Int32, mscorlib"> <data name="Label3.TabIndex" type="System.Int32, mscorlib">
<value>56</value> <value>56</value>
@@ -768,10 +801,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="Label2.Location" type="System.Drawing.Point, System.Drawing"> <data name="Label2.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 218</value> <value>8, 268</value>
</data>
<data name="Label2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data> </data>
<data name="Label2.Size" type="System.Drawing.Size, System.Drawing"> <data name="Label2.Size" type="System.Drawing.Size, System.Drawing">
<value>14, 13</value> <value>16, 16</value>
</data> </data>
<data name="Label2.TabIndex" type="System.Int32, mscorlib"> <data name="Label2.TabIndex" type="System.Int32, mscorlib">
<value>55</value> <value>55</value>
@@ -798,10 +834,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="Label1.Location" type="System.Drawing.Point, System.Drawing"> <data name="Label1.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 190</value> <value>8, 234</value>
</data>
<data name="Label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data> </data>
<data name="Label1.Size" type="System.Drawing.Size, System.Drawing"> <data name="Label1.Size" type="System.Drawing.Size, System.Drawing">
<value>14, 13</value> <value>15, 16</value>
</data> </data>
<data name="Label1.TabIndex" type="System.Int32, mscorlib"> <data name="Label1.TabIndex" type="System.Int32, mscorlib">
<value>54</value> <value>54</value>
@@ -828,10 +867,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="lbYmm.Location" type="System.Drawing.Point, System.Drawing"> <data name="lbYmm.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 217</value> <value>32, 267</value>
</data>
<data name="lbYmm.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data> </data>
<data name="lbYmm.Size" type="System.Drawing.Size, System.Drawing"> <data name="lbYmm.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 21</value> <value>101, 26</value>
</data> </data>
<data name="lbYmm.TabIndex" type="System.Int32, mscorlib"> <data name="lbYmm.TabIndex" type="System.Int32, mscorlib">
<value>53</value> <value>53</value>
@@ -855,10 +897,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="lbXmm.Location" type="System.Drawing.Point, System.Drawing"> <data name="lbXmm.Location" type="System.Drawing.Point, System.Drawing">
<value>24, 187</value> <value>32, 230</value>
</data>
<data name="lbXmm.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data> </data>
<data name="lbXmm.Size" type="System.Drawing.Size, System.Drawing"> <data name="lbXmm.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 21</value> <value>101, 26</value>
</data> </data>
<data name="lbXmm.TabIndex" type="System.Int32, mscorlib"> <data name="lbXmm.TabIndex" type="System.Int32, mscorlib">
<value>52</value> <value>52</value>
@@ -879,10 +924,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="PictureBox2.Location" type="System.Drawing.Point, System.Drawing"> <data name="PictureBox2.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 100</value> <value>16, 123</value>
</data>
<data name="PictureBox2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="PictureBox2.Size" type="System.Drawing.Size, System.Drawing"> <data name="PictureBox2.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 40</value> <value>87, 49</value>
</data> </data>
<data name="PictureBox2.TabIndex" type="System.Int32, mscorlib"> <data name="PictureBox2.TabIndex" type="System.Int32, mscorlib">
<value>51</value> <value>51</value>
@@ -906,10 +954,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="LbAltRif.Location" type="System.Drawing.Point, System.Drawing"> <data name="LbAltRif.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 143</value> <value>16, 176</value>
</data>
<data name="LbAltRif.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data> </data>
<data name="LbAltRif.Size" type="System.Drawing.Size, System.Drawing"> <data name="LbAltRif.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 21</value> <value>87, 26</value>
</data> </data>
<data name="LbAltRif.TabIndex" type="System.Int32, mscorlib"> <data name="LbAltRif.TabIndex" type="System.Int32, mscorlib">
<value>50</value> <value>50</value>
@@ -933,10 +984,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="LbAltCali.Location" type="System.Drawing.Point, System.Drawing"> <data name="LbAltCali.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 53</value> <value>16, 65</value>
</data>
<data name="LbAltCali.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 0, 4, 0</value>
</data> </data>
<data name="LbAltCali.Size" type="System.Drawing.Size, System.Drawing"> <data name="LbAltCali.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 21</value> <value>87, 26</value>
</data> </data>
<data name="LbAltCali.TabIndex" type="System.Int32, mscorlib"> <data name="LbAltCali.TabIndex" type="System.Int32, mscorlib">
<value>49</value> <value>49</value>
@@ -957,10 +1011,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="PictureBox1.Location" type="System.Drawing.Point, System.Drawing"> <data name="PictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 23</value> <value>16, 28</value>
</data>
<data name="PictureBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="PictureBox1.Size" type="System.Drawing.Size, System.Drawing"> <data name="PictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 27</value> <value>87, 33</value>
</data> </data>
<data name="PictureBox1.TabIndex" type="System.Int32, mscorlib"> <data name="PictureBox1.TabIndex" type="System.Int32, mscorlib">
<value>48</value> <value>48</value>
@@ -981,10 +1038,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnAbortCal.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnAbortCal.Location" type="System.Drawing.Point, System.Drawing">
<value>14, 266</value> <value>19, 327</value>
</data>
<data name="BtnAbortCal.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnAbortCal.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnAbortCal.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 37</value> <value>80, 46</value>
</data> </data>
<data name="BtnAbortCal.TabIndex" type="System.Int32, mscorlib"> <data name="BtnAbortCal.TabIndex" type="System.Int32, mscorlib">
<value>24</value> <value>24</value>
@@ -1073,10 +1133,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnSaveCal.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnSaveCal.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 309</value> <value>16, 380</value>
</data>
<data name="BtnSaveCal.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnSaveCal.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnSaveCal.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 50</value> <value>80, 62</value>
</data> </data>
<data name="BtnSaveCal.TabIndex" type="System.Int32, mscorlib"> <data name="BtnSaveCal.TabIndex" type="System.Int32, mscorlib">
<value>23</value> <value>23</value>
@@ -1094,10 +1157,16 @@
<value>10</value> <value>10</value>
</data> </data>
<data name="GBCalibration.Location" type="System.Drawing.Point, System.Drawing"> <data name="GBCalibration.Location" type="System.Drawing.Point, System.Drawing">
<value>684, 114</value> <value>912, 140</value>
</data>
<data name="GBCalibration.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="GBCalibration.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="GBCalibration.Size" type="System.Drawing.Size, System.Drawing"> <data name="GBCalibration.Size" type="System.Drawing.Size, System.Drawing">
<value>108, 365</value> <value>144, 449</value>
</data> </data>
<data name="GBCalibration.TabIndex" type="System.Int32, mscorlib"> <data name="GBCalibration.TabIndex" type="System.Int32, mscorlib">
<value>46</value> <value>46</value>
@@ -1120,7 +1189,7 @@
<data name="BtnLoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BtnLoad.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABlSURBVDhPxZBRCsAwCEM9uufZJTdkWrpoaToKDbyvmodW YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAABlSURBVDhPxZBRCsAwCEM9uufZJTdkWrpoaToKDbyvmodW
ZGdU9UZwZhgbrkJJWvmSjEsqOIFLMC54JVNBQRPgWgxJwCZKA4HdOsdKsUn+g6KARPG3wEiCVUlX/gpW ZGdU9UZwZhgbrkJJWvmSjEsqOIFLMC54JVNBQRPgWgxJwCZKA4HdOsdKsUn+g6KARPG3wEiCVUlX/gpW
SAJP/8ByOA85jMsZFmo5BQAAAABJRU5ErkJggg== SAJP/8ByOA85jMsZFmo5BQAAAABJRU5ErkJggg==
</value> </value>
@@ -1129,7 +1198,7 @@
<value>Magenta</value> <value>Magenta</value>
</data> </data>
<data name="BtnLoad.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnLoad.Size" type="System.Drawing.Size, System.Drawing">
<value>24, 42</value> <value>29, 42</value>
</data> </data>
<data name="BtnLoad.Text" xml:space="preserve"> <data name="BtnLoad.Text" xml:space="preserve">
<value>Open picture</value> <value>Open picture</value>
@@ -1137,7 +1206,7 @@
<data name="cmdZoomAll.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="cmdZoomAll.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADjSURBVFhHxZTRDcIwDAU9Avv/MAojMBIoFQ+Vw2nslJiT YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAADjSURBVFhHxZTRDcIwDAU9Avv/MAojMBIoFQ+Vw2nslJiT
nkQF9jupIWbzXMzsbmZXflGByh+vlEqwvFSiV14iMSpfKhEtXypBWFpOmQCLspmivXPBhdmk0YETs4s4 nkQF9jupIWbzXMzsbmZXflGByh+vlEqwvFSiV14iMSpfKhEtXypBWFpOmQCLspmivXPBhdmk0YETs4s4
FzqY+9MuuCgK59rnoUT7gTf4K4FDiX25N5iFc/vdXxIs95KF88xbIlLekoXzXjaJ6BWbhfNeNoHoPZ+F FzqY+9MuuCgK59rnoUT7gTf4K4FDiX25N5iFc/vdXxIs95KF88xbIlLekoXzXjaJ6BWbhfNeNoHoPZ+F
88zHOfAkBJ+jcK5bLigh+ByFc4fl4u8XUeOvV7GHFs3mNFyYzTLKinqUCvAvOsr0gTsiKrGkXIwklpaL 88zHOfAkBJ+jcK5bLigh+ByFc4fl4u8XUeOvV7GHFs3mNFyYzTLKinqUCvAvOsr0gTsiKrGkXIwklpaL
@@ -1148,7 +1217,7 @@
<value>Magenta</value> <value>Magenta</value>
</data> </data>
<data name="cmdZoomAll.Size" type="System.Drawing.Size, System.Drawing"> <data name="cmdZoomAll.Size" type="System.Drawing.Size, System.Drawing">
<value>24, 42</value> <value>29, 42</value>
</data> </data>
<data name="cmdZoomAll.Text" xml:space="preserve"> <data name="cmdZoomAll.Text" xml:space="preserve">
<value>Zoom All</value> <value>Zoom All</value>
@@ -1156,7 +1225,7 @@
<data name="BtnZoom11.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BtnZoom11.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t /aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
@@ -1172,7 +1241,7 @@
<value>Magenta</value> <value>Magenta</value>
</data> </data>
<data name="BtnZoom11.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnZoom11.Size" type="System.Drawing.Size, System.Drawing">
<value>26, 42</value> <value>32, 42</value>
</data> </data>
<data name="BtnZoom11.Text" xml:space="preserve"> <data name="BtnZoom11.Text" xml:space="preserve">
<value>1:1</value> <value>1:1</value>
@@ -1181,7 +1250,7 @@
<value>Magenta</value> <value>Magenta</value>
</data> </data>
<data name="BtnZoomPan.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnZoomPan.Size" type="System.Drawing.Size, System.Drawing">
<value>24, 42</value> <value>29, 42</value>
</data> </data>
<data name="BtnZoomPan.Text" xml:space="preserve"> <data name="BtnZoomPan.Text" xml:space="preserve">
<value>ToolStripButton1</value> <value>ToolStripButton1</value>
@@ -1189,7 +1258,7 @@
<data name="BtnCorrProsp.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BtnCorrProsp.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t /aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
@@ -1205,7 +1274,7 @@
<value>Magenta</value> <value>Magenta</value>
</data> </data>
<data name="BtnCorrProsp.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnCorrProsp.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 42</value> <value>85, 42</value>
</data> </data>
<data name="BtnCorrProsp.Text" xml:space="preserve"> <data name="BtnCorrProsp.Text" xml:space="preserve">
<value>Corr. Prosp</value> <value>Corr. Prosp</value>
@@ -1214,7 +1283,7 @@
<value>Magenta</value> <value>Magenta</value>
</data> </data>
<data name="BtnCfg.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnCfg.Size" type="System.Drawing.Size, System.Drawing">
<value>24, 42</value> <value>29, 42</value>
</data> </data>
<data name="BtnCfg.Text" xml:space="preserve"> <data name="BtnCfg.Text" xml:space="preserve">
<value>Cfg</value> <value>Cfg</value>
@@ -1222,7 +1291,7 @@
<data name="BtnBackG.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BtnBackG.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t /aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
@@ -1238,7 +1307,7 @@
<value>Magenta</value> <value>Magenta</value>
</data> </data>
<data name="BtnBackG.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnBackG.Size" type="System.Drawing.Size, System.Drawing">
<value>72, 42</value> <value>90, 42</value>
</data> </data>
<data name="BtnBackG.Text" xml:space="preserve"> <data name="BtnBackG.Text" xml:space="preserve">
<value>Back Image</value> <value>Back Image</value>
@@ -1261,7 +1330,7 @@
<data name="BtnChangeThreshold.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BtnChangeThreshold.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t /aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
@@ -1277,7 +1346,7 @@
<value>Magenta</value> <value>Magenta</value>
</data> </data>
<data name="BtnChangeThreshold.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnChangeThreshold.Size" type="System.Drawing.Size, System.Drawing">
<value>30, 42</value> <value>35, 42</value>
</data> </data>
<data name="BtnChangeThreshold.Text" xml:space="preserve"> <data name="BtnChangeThreshold.Text" xml:space="preserve">
<value>Th-</value> <value>Th-</value>
@@ -1285,7 +1354,7 @@
<data name="BtnIncrTh.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="BtnIncrTh.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t /aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
@@ -1301,7 +1370,7 @@
<value>Magenta</value> <value>Magenta</value>
</data> </data>
<data name="BtnIncrTh.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnIncrTh.Size" type="System.Drawing.Size, System.Drawing">
<value>33, 42</value> <value>39, 42</value>
</data> </data>
<data name="BtnIncrTh.Text" xml:space="preserve"> <data name="BtnIncrTh.Text" xml:space="preserve">
<value>Th+</value> <value>Th+</value>
@@ -1328,7 +1397,7 @@
<value>Magenta</value> <value>Magenta</value>
</data> </data>
<data name="RefreshCameras.Size" type="System.Drawing.Size, System.Drawing"> <data name="RefreshCameras.Size" type="System.Drawing.Size, System.Drawing">
<value>24, 42</value> <value>29, 42</value>
</data> </data>
<data name="RefreshCameras.Text" xml:space="preserve"> <data name="RefreshCameras.Text" xml:space="preserve">
<value>ToolStripButton1</value> <value>ToolStripButton1</value>
@@ -1340,7 +1409,7 @@
<value>0, 0</value> <value>0, 0</value>
</data> </data>
<data name="ToolStrip1.Size" type="System.Drawing.Size, System.Drawing"> <data name="ToolStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>795, 45</value> <value>1060, 45</value>
</data> </data>
<data name="ToolStrip1.TabIndex" type="System.Int32, mscorlib"> <data name="ToolStrip1.TabIndex" type="System.Int32, mscorlib">
<value>101</value> <value>101</value>
@@ -1364,7 +1433,7 @@
<value>479, 12</value> <value>479, 12</value>
</metadata> </metadata>
<data name="TStatus.Size" type="System.Drawing.Size, System.Drawing"> <data name="TStatus.Size" type="System.Drawing.Size, System.Drawing">
<value>67, 17</value> <value>86, 20</value>
</data> </data>
<data name="TStatus.Text" xml:space="preserve"> <data name="TStatus.Text" xml:space="preserve">
<value>Not Started</value> <value>Not Started</value>
@@ -1373,19 +1442,22 @@
<value>No</value> <value>No</value>
</data> </data>
<data name="ProgressBar.Size" type="System.Drawing.Size, System.Drawing"> <data name="ProgressBar.Size" type="System.Drawing.Size, System.Drawing">
<value>150, 16</value> <value>200, 18</value>
</data> </data>
<data name="lbMousePosmm.Size" type="System.Drawing.Size, System.Drawing"> <data name="lbMousePosmm.Size" type="System.Drawing.Size, System.Drawing">
<value>30, 17</value> <value>38, 20</value>
</data> </data>
<data name="lbMousePosmm.Text" xml:space="preserve"> <data name="lbMousePosmm.Text" xml:space="preserve">
<value>X Y </value> <value>X Y </value>
</data> </data>
<data name="StatusStrip1.Location" type="System.Drawing.Point, System.Drawing"> <data name="StatusStrip1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 550</value> <value>0, 678</value>
</data>
<data name="StatusStrip1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>1, 0, 19, 0</value>
</data> </data>
<data name="StatusStrip1.Size" type="System.Drawing.Size, System.Drawing"> <data name="StatusStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>795, 22</value> <value>1060, 26</value>
</data> </data>
<data name="StatusStrip1.TabIndex" type="System.Int32, mscorlib"> <data name="StatusStrip1.TabIndex" type="System.Int32, mscorlib">
<value>102</value> <value>102</value>
@@ -1412,10 +1484,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnVentosa.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnVentosa.Location" type="System.Drawing.Point, System.Drawing">
<value>18, 111</value> <value>24, 137</value>
</data>
<data name="BtnVentosa.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnVentosa.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnVentosa.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 37</value> <value>80, 46</value>
</data> </data>
<data name="BtnVentosa.TabIndex" type="System.Int32, mscorlib"> <data name="BtnVentosa.TabIndex" type="System.Int32, mscorlib">
<value>29</value> <value>29</value>
@@ -1439,10 +1514,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnExpT.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnExpT.Location" type="System.Drawing.Point, System.Drawing">
<value>18, 23</value> <value>24, 28</value>
</data>
<data name="BtnExpT.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnExpT.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnExpT.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 37</value> <value>80, 46</value>
</data> </data>
<data name="BtnExpT.TabIndex" type="System.Int32, mscorlib"> <data name="BtnExpT.TabIndex" type="System.Int32, mscorlib">
<value>28</value> <value>28</value>
@@ -1466,10 +1544,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnStone.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnStone.Location" type="System.Drawing.Point, System.Drawing">
<value>18, 66</value> <value>24, 81</value>
</data>
<data name="BtnStone.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnStone.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnStone.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 37</value> <value>80, 46</value>
</data> </data>
<data name="BtnStone.TabIndex" type="System.Int32, mscorlib"> <data name="BtnStone.TabIndex" type="System.Int32, mscorlib">
<value>27</value> <value>27</value>
@@ -1493,10 +1574,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnAbortDefAree.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnAbortDefAree.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 201</value> <value>21, 247</value>
</data>
<data name="BtnAbortDefAree.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnAbortDefAree.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnAbortDefAree.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 37</value> <value>80, 46</value>
</data> </data>
<data name="BtnAbortDefAree.TabIndex" type="System.Int32, mscorlib"> <data name="BtnAbortDefAree.TabIndex" type="System.Int32, mscorlib">
<value>26</value> <value>26</value>
@@ -1585,10 +1669,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnSaveAree.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnSaveAree.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 251</value> <value>21, 309</value>
</data>
<data name="BtnSaveAree.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnSaveAree.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnSaveAree.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 50</value> <value>80, 62</value>
</data> </data>
<data name="BtnSaveAree.TabIndex" type="System.Int32, mscorlib"> <data name="BtnSaveAree.TabIndex" type="System.Int32, mscorlib">
<value>25</value> <value>25</value>
@@ -1606,10 +1693,16 @@
<value>4</value> <value>4</value>
</data> </data>
<data name="GBDefAree.Location" type="System.Drawing.Point, System.Drawing"> <data name="GBDefAree.Location" type="System.Drawing.Point, System.Drawing">
<value>586, 48</value> <value>781, 59</value>
</data>
<data name="GBDefAree.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="GBDefAree.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="GBDefAree.Size" type="System.Drawing.Size, System.Drawing"> <data name="GBDefAree.Size" type="System.Drawing.Size, System.Drawing">
<value>97, 317</value> <value>129, 390</value>
</data> </data>
<data name="GBDefAree.TabIndex" type="System.Int32, mscorlib"> <data name="GBDefAree.TabIndex" type="System.Int32, mscorlib">
<value>103</value> <value>103</value>
@@ -1627,13 +1720,13 @@
<value>3</value> <value>3</value>
</data> </data>
<data name="ComboBoxCameras.Location" type="System.Drawing.Point, System.Drawing"> <data name="ComboBoxCameras.Location" type="System.Drawing.Point, System.Drawing">
<value>465, 10</value> <value>620, 12</value>
</data> </data>
<data name="ComboBoxCameras.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="ComboBoxCameras.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>2, 2, 2, 2</value> <value>3, 2, 3, 2</value>
</data> </data>
<data name="ComboBoxCameras.Size" type="System.Drawing.Size, System.Drawing"> <data name="ComboBoxCameras.Size" type="System.Drawing.Size, System.Drawing">
<value>129, 21</value> <value>171, 24</value>
</data> </data>
<data name="ComboBoxCameras.TabIndex" type="System.Int32, mscorlib"> <data name="ComboBoxCameras.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@@ -1651,13 +1744,13 @@
<value>2</value> <value>2</value>
</data> </data>
<data name="ComboBoxCameraCfg.Location" type="System.Drawing.Point, System.Drawing"> <data name="ComboBoxCameraCfg.Location" type="System.Drawing.Point, System.Drawing">
<value>598, 11</value> <value>797, 14</value>
</data> </data>
<data name="ComboBoxCameraCfg.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="ComboBoxCameraCfg.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>2, 2, 2, 2</value> <value>3, 2, 3, 2</value>
</data> </data>
<data name="ComboBoxCameraCfg.Size" type="System.Drawing.Size, System.Drawing"> <data name="ComboBoxCameraCfg.Size" type="System.Drawing.Size, System.Drawing">
<value>81, 21</value> <value>107, 24</value>
</data> </data>
<data name="ComboBoxCameraCfg.TabIndex" type="System.Int32, mscorlib"> <data name="ComboBoxCameraCfg.TabIndex" type="System.Int32, mscorlib">
<value>0</value> <value>0</value>
@@ -1674,68 +1767,17 @@
<data name="&gt;&gt;ComboBoxCameraCfg.ZOrder" xml:space="preserve"> <data name="&gt;&gt;ComboBoxCameraCfg.ZOrder" xml:space="preserve">
<value>1</value> <value>1</value>
</data> </data>
<data name="ImageControl1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="ImageControl1.Location" type="System.Drawing.Point, System.Drawing">
<value>15, 70</value>
</data>
<data name="ImageControl1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="ImageControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>546, 554</value>
</data>
<data name="ImageControl1.TabIndex" type="System.Int32, mscorlib">
<value>35</value>
</data>
<data name="&gt;&gt;ImageControl1.Name" xml:space="preserve">
<value>ImageControl1</value>
</data>
<data name="&gt;&gt;ImageControl1.Type" xml:space="preserve">
<value>ImageControl, CameraMng, Version=2.7.7.1, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;ImageControl1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;ImageControl1.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<data name="Button1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="Button1.Location" type="System.Drawing.Point, System.Drawing">
<value>693, 11</value>
</data>
<data name="Button1.Size" type="System.Drawing.Size, System.Drawing">
<value>87, 23</value>
</data>
<data name="Button1.TabIndex" type="System.Int32, mscorlib">
<value>104</value>
</data>
<data name="Button1.Text" xml:space="preserve">
<value>Configurazione</value>
</data>
<data name="&gt;&gt;Button1.Name" xml:space="preserve">
<value>Button1</value>
</data>
<data name="&gt;&gt;Button1.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Button1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;Button1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="BtnEnd.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> <data name="BtnEnd.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnEnd.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnEnd.Location" type="System.Drawing.Point, System.Drawing">
<value>724, 504</value> <value>965, 620</value>
</data>
<data name="BtnEnd.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnEnd.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnEnd.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 50</value> <value>80, 62</value>
</data> </data>
<data name="BtnEnd.TabIndex" type="System.Int32, mscorlib"> <data name="BtnEnd.TabIndex" type="System.Int32, mscorlib">
<value>22</value> <value>22</value>
@@ -1759,10 +1801,13 @@
<value>NoControl</value> <value>NoControl</value>
</data> </data>
<data name="BtnTakeFoto.Location" type="System.Drawing.Point, System.Drawing"> <data name="BtnTakeFoto.Location" type="System.Drawing.Point, System.Drawing">
<value>696, 58</value> <value>928, 71</value>
</data>
<data name="BtnTakeFoto.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="BtnTakeFoto.Size" type="System.Drawing.Size, System.Drawing"> <data name="BtnTakeFoto.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 50</value> <value>80, 62</value>
</data> </data>
<data name="BtnTakeFoto.TabIndex" type="System.Int32, mscorlib"> <data name="BtnTakeFoto.TabIndex" type="System.Int32, mscorlib">
<value>4</value> <value>4</value>
@@ -1779,6 +1824,120 @@
<data name="&gt;&gt;BtnTakeFoto.ZOrder" xml:space="preserve"> <data name="&gt;&gt;BtnTakeFoto.ZOrder" xml:space="preserve">
<value>13</value> <value>13</value>
</data> </data>
<data name="BtnShowMsg.ImageIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<metadata name="ImageList2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>585, 9</value>
</metadata>
<data name="ImageList2.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB+
CwAAAk1TRnQBSQFMAgEBAwEAAUgBAAFIAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wQAAf8B8wHvAa4CSAGQ
AfcB8gH/BQAC/wHzAQcBbwFGAWgBjgGTAfIC/wIAAf8B9AzyAfMB/xIAAfQB9wFJAXEBdwOcAZcBSQHs
AfMDAAH/AfQBBwGOAWoFZAGOAfcB8wH/AQAB8wGSBxwFcwHtAfARAAH/AewBbAF8BsABfAFPAesB8wIA
Af8BkwGOAWoBZAdqAY4B8wH/AewBmQyaAXQB6xEAAe8BAgPAAuQEwAHkAU8B7AH/AQABBwEWAWoBaQFo
AUYCRwFqAW8BbgFqAUcBkwH/AW0BmQWaAXMB7AWaAXkB6hAAAf8BZgGcAsABnAFsAUkBnATAAXwBSQHy
AfQBbwFHAUYB7wEZAe0BRgEXAewBvAEHAW8BRwFvAfIB8AFzBZoBcwHsBJoBegFzAQcQAAEHAUkCwAF8
AUkBbQHrAUgBnATAAZcB9wG8AhcBbwEHAf8B8gHtAW4B8AH/AfABbgIXAQcB/wH3AZkEmgGfAZkEmgF6
Ae0B9BAAARIBdwHAAZwBSAHrAQcB8AHsAUgBnAPAAZwBEgHtAxcBTAEHAf8B8wHyAf8B8AHtAxcB7QEA
AfIBcwGgA5oB7QHqAaACmgF6Ae0BBwH/EQABnAHAAUkBbQHxARUBDwH0AewBSAF8AsABnAFJAeoEFwFM
AbwC/wHyAewBTAMXAW4BAAH/Ae8BeAOaAewBEwGfApoBegHsAfQRAAEOAZwBwAFOARMDbAEQAQcB7AFJ
AXwBwAGcAUkBbgRNAe0B8AL/AfMB7QFvA00BTAEAAf8B8wHtAaACmgHsARMBnwGaAaAB6wHwAf8RAAHr
AXcBwAF8AXEBTwLAAXEBFQHvAesBSQHkAXcBbQGSAuMBdAHtAfAB/wHwAbwB/wHyAZIBdQLjAZMCAAH/
AQcBcwKaAewBEwGfAZoBHAHtAf8SAAHwAUkHwAFPARUBFAFIAeQBcQHvAfABdAHjAXMB8AH/AfAB7QFz
AQcB/wHxAUsB4wFSAbwDAAH0AewBmQGaAesBFAKfAewB8xMAAf8BQwGcB8ABdwFsAsABbAHzAf8BkwF1
AW8BkgG8AXQBUgF1AXMBBwEcAUwBdQF0AfMEAAHwAe0BmgEcAe0BmgFzAQcVAAG8AUkBnAfAAeQBwAFs
AfcB/wEAAfABdAFTAnQBUgN1AXQBbwFTAZkBvAH/BAAB/wHvAZkCmgGZAe0B9BUAAf8B7wFJAZwGwAGc
AQIB7AH0AgAB/wG8AVIBdQdTAXkBBwH0Af8FAAHyAZICnwHtAbwB/xYAAf8BBwFmAQIBdwKcAXcBbAFm
Ae8B/wMAAv8B8AF0AXkEdQF6AXQBvAH2Af8GAAH/AfABkgHtAQcB/xkAAf8BvAHrAg4BEgEHAf8IAAH/
AfABHAFzAVABHAHwAfQKAAT/FgABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGAFwAD/wEA
AeABBwHAAQMEAAHAAQMBgAEBBAABgAEBAYAFAAGAAQABgBkAAYAHAAGAAQEGAAGAAQEGAAHAAQMGAAHg
AQcGAAHwAQ8CAAGAAQABgAEAAfABDwIAAYABAQGAAQAB+AEPAgABwAEDAYABAQH4AR8CAAHwAQ8B8AEP
AfwBPwIACw==
</value>
</data>
<data name="BtnShowMsg.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="BtnShowMsg.Location" type="System.Drawing.Point, System.Drawing">
<value>912, 14</value>
</data>
<data name="BtnShowMsg.Size" type="System.Drawing.Size, System.Drawing">
<value>24, 24</value>
</data>
<data name="BtnShowMsg.TabIndex" type="System.Int32, mscorlib">
<value>105</value>
</data>
<data name="&gt;&gt;BtnShowMsg.Name" xml:space="preserve">
<value>BtnShowMsg</value>
</data>
<data name="&gt;&gt;BtnShowMsg.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;BtnShowMsg.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;BtnShowMsg.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="ImageControl1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="ImageControl1.Location" type="System.Drawing.Point, System.Drawing">
<value>20, 86</value>
</data>
<data name="ImageControl1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>5, 5, 5, 5</value>
</data>
<data name="ImageControl1.Size" type="System.Drawing.Size, System.Drawing">
<value>727, 681</value>
</data>
<data name="ImageControl1.TabIndex" type="System.Int32, mscorlib">
<value>35</value>
</data>
<data name="&gt;&gt;ImageControl1.Name" xml:space="preserve">
<value>ImageControl1</value>
</data>
<data name="&gt;&gt;ImageControl1.Type" xml:space="preserve">
<value>ImageControl, CameraMng, Version=2.7.8.1, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;ImageControl1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;ImageControl1.ZOrder" xml:space="preserve">
<value>10</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
</metadata> </metadata>
@@ -1786,10 +1945,13 @@
<value>25</value> <value>25</value>
</metadata> </metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing"> <data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>6, 13</value> <value>8, 16</value>
</data> </data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>795, 572</value> <value>1060, 704</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data> </data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms"> <data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value> <value>CenterScreen</value>
@@ -1917,6 +2079,12 @@
<data name="&gt;&gt;TimerMain.Type" xml:space="preserve"> <data name="&gt;&gt;TimerMain.Type" xml:space="preserve">
<value>System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;ImageList2.Name" xml:space="preserve">
<value>ImageList2</value>
</data>
<data name="&gt;&gt;ImageList2.Type" xml:space="preserve">
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve"> <data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>FrmMain</value> <value>FrmMain</value>
</data> </data>
+88 -47
View File
@@ -23,6 +23,7 @@ Public Class FrmMain
DefVentosa DefVentosa
End Enum End Enum
' Inn sequenza in funzione della gravità dell'errore
Private Enum ReadCfgResult Private Enum ReadCfgResult
OK OK
WARNING WARNING
@@ -42,6 +43,8 @@ Public Class FrmMain
m_sDataRoot = GetIniValue("Data", "DataRoot", Application.StartupPath & "\DataRoot.ini") m_sDataRoot = GetIniValue("Data", "DataRoot", Application.StartupPath & "\DataRoot.ini")
End Sub End Sub
Private sMsgErr As String = String.Empty
Private m_Image As System.Drawing.Image Private m_Image As System.Drawing.Image
Private m_ZoomFactor As Double Private m_ZoomFactor As Double
' Permette di aggiornare la pagina principale del programma 'SetFormStatus()' ' Permette di aggiornare la pagina principale del programma 'SetFormStatus()'
@@ -85,7 +88,7 @@ Public Class FrmMain
End If End If
Else Else
BtnTakeFoto.ImageIndex = 1 BtnTakeFoto.ImageIndex = 1
TStatus.Text = "--" TStatus.Text = " --- "
End If End If
BtnCfg.Visible = bExtended BtnCfg.Visible = bExtended
@@ -93,6 +96,8 @@ Public Class FrmMain
BtnVentosa.Visible = VacuumCheckEnable BtnVentosa.Visible = VacuumCheckEnable
btnSearch.Visible = VacuumCheckEnable btnSearch.Visible = VacuumCheckEnable
ComboBoxCameras.Visible = False
Select Case status Select Case status
Case en_status.NoImage Case en_status.NoImage
GBCalibration.Visible = False GBCalibration.Visible = False
@@ -194,11 +199,11 @@ Public Class FrmMain
Dim sTextMsg As String = String.Format("L'identificativo della camera della configurazione corrente non è disponibile. " & Dim sTextMsg As String = String.Format("L'identificativo della camera della configurazione corrente non è disponibile. " &
"Verificare che sia accessa oppure che esista. ") "Verificare che sia accessa oppure che esista. ")
MessageBox.Show(sTextMsg, "Avvertenza", MessageBoxButtons.OK, MessageBoxIcon.Warning) MessageBox.Show(sTextMsg, "Avvertenza", MessageBoxButtons.OK, MessageBoxIcon.Warning)
ComboBoxCameras.SelectedIndex = 0 ComboBoxCameras.SelectedIndex = -1
End If End If
' Attivo la ' Attivo la
If Not ModalitaNascosta Then If Not ModalitaNascosta Then
Camera.Connect(ComboBoxCameras.SelectedItem) If ComboBoxCameras.SelectedIndex > -1 Then Camera.Connect(ComboBoxCameras.SelectedItem)
Else Else
Camera.Connect(CameraID) Camera.Connect(CameraID)
End If End If
@@ -224,18 +229,22 @@ Public Class FrmMain
End If End If
Next Next
If Not IsCfgValid Then If Not IsCfgValid Then
'If Not ModalitaNascosta Then
' Non esiste una configurazione ' Non esiste una configurazione
Dim sTextMsg As String = String.Format("Nessuna configurazione presenta una connessione alla camera valida. " & Dim sTextMsg As String = String.Format("Nessuna configurazione presenta una connessione alla camera valida. " &
"Nel file 'CamaeraMng.cgf' il campo 'CameraID' è vuoto o non assente. ") "Nel file 'CamaeraMng.cgf' il campo 'CameraID' è vuoto o assente. ")
MessageBox.Show(sTextMsg, "Avvertenza", MessageBoxButtons.OK, MessageBoxIcon.Warning) MessageBox.Show(sTextMsg, "Avvertenza", MessageBoxButtons.OK, MessageBoxIcon.Warning)
ComboBoxCameraCfg.SelectedIndex = 0 ComboBoxCameraCfg.SelectedIndex = 0
End If 'End If
End If
Else Else
'If Not ModalitaNascosta Then
' Non esiste una configurazione ' Non esiste una configurazione
Dim sTextMsg As String = String.Format("Nella cartella '{0}' non sono state trovate configurazioni valide. " & Dim sTextMsg As String = String.Format("Nella cartella '{0}' non sono state trovate configurazioni valide. " &
"(CameraMng, CameraMng1, CameraMng2..)", sDataRoot) "(CameraMng, CameraMng1, CameraMng2..)", sDataRoot)
MessageBox.Show(sTextMsg, "Avvertenza", MessageBoxButtons.OK, MessageBoxIcon.Warning) MessageBox.Show(sTextMsg, "Avvertenza", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return False Return False
'End If
End If End If
Return True Return True
End Function End Function
@@ -264,7 +273,6 @@ Public Class FrmMain
ProgressBar.Maximum = 100 ProgressBar.Maximum = 100
ProgressBar.Value = 0 ProgressBar.Value = 0
SetFormStatus()
' carico elenco camere attive è creo la connessione ' carico elenco camere attive è creo la connessione
LoadCamerasList() LoadCamerasList()
@@ -274,11 +282,6 @@ Public Class FrmMain
SpessLastra = ImageMng.ZCali SpessLastra = ImageMng.ZCali
FrmStart.Close() FrmStart.Close()
'If Camera.Connected And RichiestaFoto Then
' Camera.TakeFoto()
' RichiestaFoto = False
'End If
If VacuumCheckEnable Then If VacuumCheckEnable Then
TimerMain.Enabled = True TimerMain.Enabled = True
End If End If
@@ -399,36 +402,37 @@ Public Class FrmMain
Next Next
End Sub End Sub
' Costruisco il percorso del file letto da configurazione ' Costruisco il percorso del file letto da configurazione: restituisco l'esito dell'operazione (Nel riferimento restituisco la sintesi dell'operazione di lettura)
Private Sub IsCorrectFilePathReadFromCfg(DirToReadCfg As String, ByRef sStringPath As String, ByRef sMsg As String) Private Function IsCorrectFilePathReadFromCfg(DirToReadCfg As String, ByRef sStringPath As String, ByRef sMsg As String, ByRef CfgResult As ReadCfgResult) As ReadCfgResult
Dim bOk As ReadCfgResult = ReadCfgResult.OK Dim CurrCfgResult As ReadCfgResult = ReadCfgResult.OK
sStringPath = sStringPath.Trim sStringPath = sStringPath.Trim
If Not sStringPath.StartsWith("\") And Not sStringPath.StartsWith(".\") Then If Not sStringPath.StartsWith("\") And Not sStringPath.StartsWith(".\") Then
' Warning! il percorso potrebbe non essere relativo ' Warning! il percorso potrebbe non essere relativo
If sStringPath.Contains("CameraMng") Then If sStringPath.Contains("CameraMng") Then
' Errore! il percorso contiene un riferimento alla cartella ' Errore! il percorso contiene un riferimento alla cartella
bOk = ReadCfgResult.ERR0 CurrCfgResult = ReadCfgResult.ERR0
Else Else
bOk = ReadCfgResult.WARNING CurrCfgResult = ReadCfgResult.WARNING
sStringPath = DirToReadCfg & "\" & sStringPath sStringPath = DirToReadCfg & "\" & sStringPath
End If End If
Else Else
' OK! il percorso è potenzialmente correto ' OK! il percorso è potenzialmente correto
If sStringPath.Contains("\CameraMng") Then If sStringPath.Contains("\CameraMng") Then
' Errore! il percorso contiene un riferimento alla cartella ' Errore! il percorso contiene un riferimento alla cartella
bOk = ReadCfgResult.ERR1 CurrCfgResult = ReadCfgResult.ERR1
Else Else
' rimuovo il primo carattere se è il punto (".") ' rimuovo il primo carattere se è il punto (".")
If sStringPath.StartsWith(".") Then sStringPath.Remove(0, 1) If sStringPath.StartsWith(".") Then sStringPath.Remove(0, 1)
' Ok! il percorso è accettato ' Ok! il percorso è accettato
bOk = ReadCfgResult.OK CurrCfgResult = ReadCfgResult.OK
sStringPath = DirToReadCfg & sStringPath sStringPath = DirToReadCfg & sStringPath
End If End If
End If End If
CreateMsgTextErr(bOk, sStringPath, sMsg) CreateMsgTextErr(CurrCfgResult, sStringPath, sMsg)
' Valuto se il risultato restituito deve modificare il
End Sub CfgResult = SetIcoResultCfg(CfgResult, CurrCfgResult)
Return CurrCfgResult
End Function
Private Sub CreateMsgTextErr(ReadCfg As ReadCfgResult, sStringPath As String, ByRef sMsg As String) Private Sub CreateMsgTextErr(ReadCfg As ReadCfgResult, sStringPath As String, ByRef sMsg As String)
Select Case ReadCfg Select Case ReadCfg
@@ -441,6 +445,13 @@ Public Class FrmMain
End Select End Select
End Sub End Sub
Private Function SetIcoResultCfg(ResultCfg As ReadCfgResult, CurrResultCfg As ReadCfgResult) As ReadCfgResult
If CurrResultCfg > ResultCfg Then
ResultCfg = CurrResultCfg
End If
Return ResultCfg
End Function
' procedo alla lettura del file *.cfg ' procedo alla lettura del file *.cfg
Private Sub LeggiFileConfigurazione() Private Sub LeggiFileConfigurazione()
@@ -462,7 +473,8 @@ Public Class FrmMain
DirToReadCfg = DirToReadCfg & MainModule.IndexProc DirToReadCfg = DirToReadCfg & MainModule.IndexProc
End If End If
Dim sMsgErr As String = String.Empty Dim CfgResult As ReadCfgResult = ReadCfgResult.OK
sMsgErr = String.Empty
' Console.WriteLine("LETTURA CONFIGURAZIONE: " & MainModule.IndexProc & " -- " & DirToReadCfg) ' Console.WriteLine("LETTURA CONFIGURAZIONE: " & MainModule.IndexProc & " -- " & DirToReadCfg)
@@ -493,6 +505,7 @@ Public Class FrmMain
VacDirModels = "" VacDirModels = ""
bExtended = False bExtended = False
bBtnLoad = False bBtnLoad = False
CameraID = ""
reader = New StreamReader(NomeFileCfg) reader = New StreamReader(NomeFileCfg)
nfi.NumberDecimalSeparator = "." nfi.NumberDecimalSeparator = "."
@@ -503,15 +516,15 @@ Public Class FrmMain
TmpString = reader.ReadLine() TmpString = reader.ReadLine()
If TmpString.StartsWith("FileCali=") Then If TmpString.StartsWith("FileCali=") Then
FileLensCalib = Mid(TmpString, 10) FileLensCalib = Mid(TmpString, 10)
IsCorrectFilePathReadFromCfg(DirToReadCfg, FileLensCalib, sMsgErr) IsCorrectFilePathReadFromCfg(DirToReadCfg, FileLensCalib, sMsgErr, CfgResult)
ElseIf TmpString.StartsWith("LensCalibType=") Then ElseIf TmpString.StartsWith("LensCalibType=") Then
LensCalibType = Convert.ToInt16(Mid(TmpString, 15)) LensCalibType = Convert.ToInt16(Mid(TmpString, 15))
ElseIf TmpString.StartsWith("FileCaliProsp=") Then ElseIf TmpString.StartsWith("FileCaliProsp=") Then
FileCalibProsp = Mid(TmpString, 15) FileCalibProsp = Mid(TmpString, 15)
IsCorrectFilePathReadFromCfg(DirToReadCfg, FileCalibProsp, sMsgErr) IsCorrectFilePathReadFromCfg(DirToReadCfg, FileCalibProsp, sMsgErr, CfgResult)
ElseIf TmpString.StartsWith("FileCaliRes=") Then ElseIf TmpString.StartsWith("FileCaliRes=") Then
FileCalibRes = Mid(TmpString, 13) FileCalibRes = Mid(TmpString, 13)
IsCorrectFilePathReadFromCfg(DirToReadCfg, FileCalibRes, sMsgErr) IsCorrectFilePathReadFromCfg(DirToReadCfg, FileCalibRes, sMsgErr, CfgResult)
ElseIf TmpString.StartsWith("Extended=") Then ElseIf TmpString.StartsWith("Extended=") Then
bExtended = CInt(TmpString.Substring(9)) > 0 'lascio vedere tutti i bottoni bExtended = CInt(TmpString.Substring(9)) > 0 'lascio vedere tutti i bottoni
BtnCfg.Visible = bExtended BtnCfg.Visible = bExtended
@@ -521,10 +534,10 @@ Public Class FrmMain
BtnLoad.Visible = bExtended BtnLoad.Visible = bExtended
ElseIf TmpString.StartsWith("SaveDir=") Then ElseIf TmpString.StartsWith("SaveDir=") Then
SaveDir = Mid(TmpString, 9) SaveDir = Mid(TmpString, 9)
IsCorrectFilePathReadFromCfg(DirToReadCfg, SaveDir, sMsgErr) IsCorrectFilePathReadFromCfg(DirToReadCfg, SaveDir, sMsgErr, CfgResult)
ElseIf TmpString.StartsWith("TmpDir=") Then ElseIf TmpString.StartsWith("TmpDir=") Then
DirTmp = Mid(TmpString, 8) DirTmp = Mid(TmpString, 8)
IsCorrectFilePathReadFromCfg(DirToReadCfg, DirTmp, sMsgErr) IsCorrectFilePathReadFromCfg(DirToReadCfg, DirTmp, sMsgErr, CfgResult)
ElseIf TmpString.StartsWith("MaxPxWidth=") Then ElseIf TmpString.StartsWith("MaxPxWidth=") Then
TmpInt = Convert.ToInt16(Mid(TmpString, 12)) TmpInt = Convert.ToInt16(Mid(TmpString, 12))
If TmpInt > 0 Then ImageMng.MaxPxWidthOutImage = TmpInt If TmpInt > 0 Then ImageMng.MaxPxWidthOutImage = TmpInt
@@ -532,7 +545,7 @@ Public Class FrmMain
_visione.ReduceImage = CInt(TmpString.Substring(11)) 'pyr_down nel riconoscimento bordi _visione.ReduceImage = CInt(TmpString.Substring(11)) 'pyr_down nel riconoscimento bordi
ElseIf TmpString.StartsWith("LogDir=") Then ElseIf TmpString.StartsWith("LogDir=") Then
SaveLogDir = Mid(TmpString, 8) SaveLogDir = Mid(TmpString, 8)
IsCorrectFilePathReadFromCfg(DirToReadCfg, SaveLogDir, sMsgErr) IsCorrectFilePathReadFromCfg(DirToReadCfg, SaveLogDir, sMsgErr, CfgResult)
ElseIf TmpString.StartsWith("CameraID=") Then ElseIf TmpString.StartsWith("CameraID=") Then
CameraID = Mid(TmpString, 10) CameraID = Mid(TmpString, 10)
CfgForm.LbCfgCameraID.Text = CameraID CfgForm.LbCfgCameraID.Text = CameraID
@@ -574,16 +587,16 @@ Public Class FrmMain
VacuumCheckEnable = TmpInt > 0 VacuumCheckEnable = TmpInt > 0
ElseIf TmpString.StartsWith("VacFileStart=") Then ElseIf TmpString.StartsWith("VacFileStart=") Then
VacFileStart = Mid(TmpString, Len("StartVacFile=") + 1) VacFileStart = Mid(TmpString, Len("StartVacFile=") + 1)
IsCorrectFilePathReadFromCfg(DirToReadCfg, VacFileStart, sMsgErr) IsCorrectFilePathReadFromCfg(DirToReadCfg, VacFileStart, sMsgErr, CfgResult)
ElseIf TmpString.StartsWith("VacFilePos=") Then ElseIf TmpString.StartsWith("VacFilePos=") Then
VacFilePos = Mid(TmpString, Len("VacFilePos=") + 1) VacFilePos = Mid(TmpString, Len("VacFilePos=") + 1)
IsCorrectFilePathReadFromCfg(DirToReadCfg, VacFilePos, sMsgErr) IsCorrectFilePathReadFromCfg(DirToReadCfg, VacFilePos, sMsgErr, CfgResult)
ElseIf TmpString.StartsWith("VacFileEnd=") Then ElseIf TmpString.StartsWith("VacFileEnd=") Then
VacFileEnd = Mid(TmpString, Len("VacFileEnd=") + 1) VacFileEnd = Mid(TmpString, Len("VacFileEnd=") + 1)
IsCorrectFilePathReadFromCfg(DirToReadCfg, VacFileEnd, sMsgErr) IsCorrectFilePathReadFromCfg(DirToReadCfg, VacFileEnd, sMsgErr, CfgResult)
ElseIf TmpString.StartsWith("VacDirModels=") Then ElseIf TmpString.StartsWith("VacDirModels=") Then
VacDirModels = Mid(TmpString, Len("VacDirModels=") + 1) VacDirModels = Mid(TmpString, Len("VacDirModels=") + 1)
IsCorrectFilePathReadFromCfg(DirToReadCfg, VacDirModels, sMsgErr) IsCorrectFilePathReadFromCfg(DirToReadCfg, VacDirModels, sMsgErr, CfgResult)
ElseIf TmpString.StartsWith("VacMinScore=") Then ElseIf TmpString.StartsWith("VacMinScore=") Then
VacMinScore = Convert.ToDouble(Mid(TmpString, Len("VacMinScore=") + 1), nfi) VacMinScore = Convert.ToDouble(Mid(TmpString, Len("VacMinScore=") + 1), nfi)
ElseIf TmpString.StartsWith("VacTolmm=") Then ElseIf TmpString.StartsWith("VacTolmm=") Then
@@ -593,10 +606,29 @@ Public Class FrmMain
reader.Close() reader.Close()
reader.Dispose() reader.Dispose()
If Not String.IsNullOrEmpty(sMsgErr) And Not ModalitaNascosta Then ' Gestione dell'icone del bottone per esito lettura configurazione
MessageBox.Show(sMsgErr, NomeFileCfg, MessageBoxButtons.OK, MessageBoxIcon.Hand) Dim nIndexIcoCfg As Integer = 0
Select Case CfgResult
Case ReadCfgResult.OK
nIndexIcoCfg = 0
Case ReadCfgResult.WARNING
nIndexIcoCfg = 2
Case ReadCfgResult.ERR0, ReadCfgResult.ERR1
nIndexIcoCfg = 1
End Select
If Not String.IsNullOrEmpty(sMsgErr) Then
If Not ModalitaNascosta Then
BtnShowMsg.ImageIndex = nIndexIcoCfg
BtnShowMsg.Visible = True
Else
Console.WriteLine("ERRORE LETTURA CONFIGURAZIONE: " & MainModule.IndexProc & " -- " & sMsgErr)
End If
Else Else
Console.WriteLine("ERRORE LETTURA CONFIGURAZIONE: " & MainModule.IndexProc & " -- " & sMsgErr) If Not ModalitaNascosta Then
BtnShowMsg.ImageIndex = nIndexIcoCfg
BtnShowMsg.Visible = False
End If
End If End If
Catch ex As Exception Catch ex As Exception
@@ -1148,14 +1180,18 @@ Public Class FrmMain
#If WinXp Then #If WinXp Then
strWinXP = " (WinXP)" strWinXP = " (WinXP)"
#End If #End If
Dim ver As String = My.Application.Info.Version.Major.ToString() & "." &
My.Application.Info.Version.Minor.ToString() &
(ChrW(97 - 1 + My.Application.Info.Version.Build)).ToString() &
My.Application.Info.Version.Revision.ToString()
Me.Text = "EgalTech Camera Manager" & strWinXP & " v" & System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() Me.Text = "EgalTech Camera Manager" & strWinXP & " v" & ver
BtnLoad.Visible = bExtended BtnLoad.Visible = bExtended
ImageControl1.PanMode = True ImageControl1.PanMode = True
' Carico la configurazione corrente ' Carico la configurazione corrente
Inizializza() Inizializza()
TStatus.Text = "Initialized" ' TStatus.Text = "Initialized"
If ModalitaNascosta Then Me.Visible = False If ModalitaNascosta Then Me.Visible = False
' Avvio su un nuvo processo la comunicazione con il programma OmagCUT ' Avvio su un nuvo processo la comunicazione con il programma OmagCUT
@@ -1232,7 +1268,10 @@ Public Class FrmMain
CfgForm.LbDeviceStatus.Text = If(Camera.Connected, "Connected", "Disconnected") CfgForm.LbDeviceStatus.Text = If(Camera.Connected, "Connected", "Disconnected")
' assegnato solo dall'evento connessione, perciò lo ribadisco ' assegnato solo dall'evento connessione, perciò lo ribadisco
CfgForm.LbCameraID.Text = Camera.CameraID CfgForm.LbCameraID.Text = Camera.CameraID
CfgForm.ShowDialog() ' CfgForm.ShowDialog()
' Nuova gestione della pagina delle configurazioni
SetConfigForm.ShowDialog()
End Sub End Sub
Private Sub BtnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEnd.Click Private Sub BtnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEnd.Click
@@ -1825,9 +1864,9 @@ Public Class FrmMain
Private Sub ComboBoxCameras_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBoxCameras.SelectedIndexChanged Private Sub ComboBoxCameras_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBoxCameras.SelectedIndexChanged
If Not ModalitaNascosta Then If Not ModalitaNascosta Then
LeggiFileConfigurazione() ' LeggiFileConfigurazione()
SetFormStatus()
Camera.Connect(ComboBoxCameras.SelectedItem) Camera.Connect(ComboBoxCameras.SelectedItem)
SetFormStatus()
End If End If
End Sub End Sub
@@ -1847,6 +1886,7 @@ Public Class FrmMain
sTextMsg &= ": " & CameraID & "' non è valido." sTextMsg &= ": " & CameraID & "' non è valido."
End If End If
MessageBox.Show(sTextMsg, "Avvertenza", MessageBoxButtons.OK, MessageBoxIcon.Error) MessageBox.Show(sTextMsg, "Avvertenza", MessageBoxButtons.OK, MessageBoxIcon.Error)
ComboBoxCameras.SelectedIndex = -1
End If End If
End If End If
ImageMng.m_fileCaliLensRead = False ImageMng.m_fileCaliLensRead = False
@@ -1860,8 +1900,9 @@ Public Class FrmMain
LoadCamerasList() LoadCamerasList()
End Sub End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Private Sub BtnShowMsg_Click(sender As Object, e As EventArgs) Handles BtnShowMsg.Click
SetConfigForm.ShowDialog() Dim sTitle As String = "Esito lettura configurazione " & ComboBoxCameraCfg.SelectedItem
MessageBox.Show(sMsgErr, sTitle, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Sub End Sub
#End Region ' Events #End Region ' Events
+2 -2
View File
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.7.7.1")> <Assembly: AssemblyVersion("2.7.8.1")>
<Assembly: AssemblyFileVersion("2.7.7.1")> <Assembly: AssemblyFileVersion("2.7.8.1")>
+8 -7
View File
@@ -57,7 +57,7 @@ Partial Class SetConfigForm
Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.DataGridView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Config, Me.ImageConfig, Me.ComboCamera, Me.ImageCamera, Me.SaveConfig, Me.ApplyConfig}) Me.DataGridView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Config, Me.ImageConfig, Me.ComboCamera, Me.ImageCamera, Me.SaveConfig, Me.ApplyConfig})
Me.DataGridView1.Location = New System.Drawing.Point(47, 31) Me.DataGridView1.Location = New System.Drawing.Point(47, 31)
Me.DataGridView1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.DataGridView1.Margin = New System.Windows.Forms.Padding(4)
Me.DataGridView1.Name = "DataGridView1" Me.DataGridView1.Name = "DataGridView1"
Me.DataGridView1.RowHeadersWidth = 51 Me.DataGridView1.RowHeadersWidth = 51
Me.DataGridView1.Size = New System.Drawing.Size(788, 196) Me.DataGridView1.Size = New System.Drawing.Size(788, 196)
@@ -68,7 +68,7 @@ Partial Class SetConfigForm
' '
Me.PictureBox1.Image = Global.My.Resources.Resources.accept Me.PictureBox1.Image = Global.My.Resources.Resources.accept
Me.PictureBox1.Location = New System.Drawing.Point(39, 59) Me.PictureBox1.Location = New System.Drawing.Point(39, 59)
Me.PictureBox1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.PictureBox1.Margin = New System.Windows.Forms.Padding(4)
Me.PictureBox1.Name = "PictureBox1" Me.PictureBox1.Name = "PictureBox1"
Me.PictureBox1.Size = New System.Drawing.Size(39, 33) Me.PictureBox1.Size = New System.Drawing.Size(39, 33)
Me.PictureBox1.TabIndex = 1 Me.PictureBox1.TabIndex = 1
@@ -78,7 +78,7 @@ Partial Class SetConfigForm
' '
Me.PictureBox2.Image = Global.My.Resources.Resources.warning Me.PictureBox2.Image = Global.My.Resources.Resources.warning
Me.PictureBox2.Location = New System.Drawing.Point(39, 102) Me.PictureBox2.Location = New System.Drawing.Point(39, 102)
Me.PictureBox2.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.PictureBox2.Margin = New System.Windows.Forms.Padding(4)
Me.PictureBox2.Name = "PictureBox2" Me.PictureBox2.Name = "PictureBox2"
Me.PictureBox2.Size = New System.Drawing.Size(39, 33) Me.PictureBox2.Size = New System.Drawing.Size(39, 33)
Me.PictureBox2.TabIndex = 2 Me.PictureBox2.TabIndex = 2
@@ -88,7 +88,7 @@ Partial Class SetConfigForm
' '
Me.PictureBox3.Image = Global.My.Resources.Resources.cross Me.PictureBox3.Image = Global.My.Resources.Resources.cross
Me.PictureBox3.Location = New System.Drawing.Point(39, 153) Me.PictureBox3.Location = New System.Drawing.Point(39, 153)
Me.PictureBox3.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.PictureBox3.Margin = New System.Windows.Forms.Padding(4)
Me.PictureBox3.Name = "PictureBox3" Me.PictureBox3.Name = "PictureBox3"
Me.PictureBox3.Size = New System.Drawing.Size(39, 32) Me.PictureBox3.Size = New System.Drawing.Size(39, 32)
Me.PictureBox3.TabIndex = 3 Me.PictureBox3.TabIndex = 3
@@ -120,9 +120,9 @@ Partial Class SetConfigForm
Me.GroupBox1.Controls.Add(Me.PictureBox2) Me.GroupBox1.Controls.Add(Me.PictureBox2)
Me.GroupBox1.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.GroupBox1.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.GroupBox1.Location = New System.Drawing.Point(47, 245) Me.GroupBox1.Location = New System.Drawing.Point(47, 245)
Me.GroupBox1.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.GroupBox1.Margin = New System.Windows.Forms.Padding(4)
Me.GroupBox1.Name = "GroupBox1" Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Padding = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.GroupBox1.Padding = New System.Windows.Forms.Padding(4)
Me.GroupBox1.Size = New System.Drawing.Size(788, 209) Me.GroupBox1.Size = New System.Drawing.Size(788, 209)
Me.GroupBox1.TabIndex = 5 Me.GroupBox1.TabIndex = 5
Me.GroupBox1.TabStop = False Me.GroupBox1.TabStop = False
@@ -216,6 +216,7 @@ Partial Class SetConfigForm
' '
Me.ImageConfig.FillWeight = 53.93283! Me.ImageConfig.FillWeight = 53.93283!
Me.ImageConfig.HeaderText = "Result Cfg" Me.ImageConfig.HeaderText = "Result Cfg"
Me.ImageConfig.Image = Global.My.Resources.Resources.warning
Me.ImageConfig.MinimumWidth = 6 Me.ImageConfig.MinimumWidth = 6
Me.ImageConfig.Name = "ImageConfig" Me.ImageConfig.Name = "ImageConfig"
' '
@@ -255,7 +256,7 @@ Partial Class SetConfigForm
Me.ClientSize = New System.Drawing.Size(884, 469) Me.ClientSize = New System.Drawing.Size(884, 469)
Me.Controls.Add(Me.GroupBox1) Me.Controls.Add(Me.GroupBox1)
Me.Controls.Add(Me.DataGridView1) Me.Controls.Add(Me.DataGridView1)
Me.Margin = New System.Windows.Forms.Padding(4, 4, 4, 4) Me.Margin = New System.Windows.Forms.Padding(4)
Me.Name = "SetConfigForm" Me.Name = "SetConfigForm"
Me.Text = "SetConfigForm" Me.Text = "SetConfigForm"
CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit()
+453 -234
View File
@@ -1,17 +1,48 @@
Imports System.Globalization Imports System.Globalization
Imports System.IO Imports System.IO
Imports Emgu.CV.Flann
Public Class SetConfigForm Public Class SetConfigForm
Private CameraListCfg As New List(Of String) Private Const IdCamEmpty As String = " --- "
Private myImage As Image
Private CurrIndexRow As Integer = 0 Private m_myImage As Image
Private CurrAppliedConfig As String = 0
Private bIsSavedAll As Boolean = True Private m_UpdatingDataSource As Boolean = False
Private IDConfig As String = String.Empty
Private IDCamera As String = String.Empty ' Indice della riga correntemente selezionata
Private IndexCurrentRow As Integer = 0 Private m_nCurrIndexRow As Integer = 0
' Nome della configurazione corrente del programma
Private m_sCurrAppliedIdCfg As String = 0
Private Enum ICO
ERR_ = -1
WARNING_ = 0
OK_ = 2
End Enum
Private Enum COLUMN
ID_CFG = 0
CFG_ICO = 1
ID_CAM = 2
CAM_ICO = 3
SAVE_CMD = 4
APPLY_CMD = 5
End Enum
' Elementi che popolano la lista delle camere disponibili
Private Structure EbnableCamItem
' Indica l'Id della camera
Public IdCam As String
' Indica se l'Id è già stato assegnato ad una configurazione
Public IsEnable As Boolean
' Indice se l'Id della camera è connessa
Public IsConnected As Boolean
' Indica l'id della configurazione in cui è in uso
Public IdCfg As List(Of String)
End Structure
' Lista degli Id REALMENTE disponibili
Private EnableCamList As New List(Of EbnableCamItem)
Sub New() Sub New()
@@ -21,192 +52,177 @@ Public Class SetConfigForm
' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent(). ' Aggiungere le eventuali istruzioni di inizializzazione dopo la chiamata a InitializeComponent().
End Sub End Sub
' OK: popolo la datagrid all'avvio del programma
Private Sub LoadWindows() Handles Me.Load Private Sub LoadWindows() Handles Me.Load
PopolateDataGrid() EnableCamList.Clear()
' Preparo lisra EnableCamList
LoadListOfEnableCamItem()
' Popola la DataGridView e al caricamento seleziono la riga del'IdCfg impostato
PopolateDataGrid(True)
' recupero il nome della configurazione impostata
m_sCurrAppliedIdCfg = If(FrmMain.ComboBoxCameraCfg.SelectedItem.Equals("Default"), "0", FrmMain.ComboBoxCameraCfg.SelectedItem)
End Sub
CurrAppliedConfig = If(FrmMain.ComboBoxCameraCfg.SelectedItem.Equals("Default"), "0", FrmMain.ComboBoxCameraCfg.SelectedItem) #Region "METODI GESTIONE COMBOBOX"
' ------- INIZIO ------- gestione EnableCamList ----------------------------
' Deseleziona tutte le righe attualmente selezionate (opzionale ma consigliato) ' OK: Costruisco la lista EnableCamList sulla base delle configurazioni salvate
DataGridView1.ClearSelection() Private Sub LoadListOfEnableCamItem()
' Verifica che la griglia non sia vuota Dim DirToReadCfg As String = FrmMain.sDataRoot
If DataGridView1.Rows.Count > 0 Then
' Imposta la cella corrente alla prima cella della prima riga ' Assegnno di defualt una camera VUOTA
DataGridView1.CurrentCell = DataGridView1.Rows(CurrAppliedConfig).Cells(0) Dim NOCam As EbnableCamItem
DataGridView1.Rows(CurrAppliedConfig).Selected = True NOCam.IdCam = IdCamEmpty
NOCam.IsEnable = True
NOCam.IsConnected = False
NOCam.IdCfg = New List(Of String)
EnableCamList.Add(NOCam)
' Inizializzo la lista con le camere realmente disponibili (IsEnable=true)
For Each CameraItem As String In FrmMain.ComboBoxCameras.Items
Dim ItemCam As EbnableCamItem
ItemCam.IdCam = CameraItem
ItemCam.IsEnable = True
ItemCam.IsConnected = True
ItemCam.IdCfg = New List(Of String)
EnableCamList.Add(ItemCam)
Next
' Per ogni camera disponibile assegno l'ID della configuraione associata
For Each CfgItem As String In FrmMain.ComboBoxCameraCfg.Items
CfgItem = If(CfgItem = "Default", String.Empty, CfgItem)
Dim NomeFileCfg As String = DirToReadCfg & CfgItem & "\CameraMng.cfg"
' Recupero l'Id della camera configurata nel file Cfg
Dim IDCameraFromCgf As String = ReadIdCameraFromCfg(NomeFileCfg)
' Se esiste l'Id
If Not String.IsNullOrEmpty(IDCameraFromCgf) Then
' Verifico se l'Id della camera è connessa
Dim IndID As Integer = EnableCamList.FindIndex(Function(x) x.IdCam = IDCameraFromCgf)
If IndID < 0 Then
' l'Id della camera non è nell'elenco delle camere connesse: lo aggiungo
Dim ItemCam As EbnableCamItem
ItemCam.IdCam = IDCameraFromCgf
ItemCam.IsEnable = False
ItemCam.IsConnected = False
ItemCam.IdCfg = New List(Of String)({CfgItem})
EnableCamList.Add(ItemCam)
Else
' Recupero l'oggetto associato alla camera corrente
Dim CurrCam As EbnableCamItem = EnableCamList(IndID)
' l'Id della camera è connessa: aggiorno l'Id dalla configurazione
CurrCam.IsEnable = False
CurrCam.IdCfg.Add(CfgItem)
' Riassegno alla lista (solo la lista IdCfg viene aggiornata veramente...)
EnableCamList(IndID) = CurrCam
End If
Else
' l'Id della camera non esiste (recupero la prima camera), ma una configurazione si
Dim IndID As Integer = 0
Dim CurrCam As EbnableCamItem = EnableCamList(IndID)
CurrCam.IdCfg.Add(CfgItem)
End If
Next
End Sub
' OK: Data la config e il nuvo IDCam mi occupo di aggiornare la lista EnableCamList (NON DataGridView)
Private Sub UpdateListOfEnableCamItem(CfgItem As String, NewIdCam As String)
' Recupero la camera assegnata alla configurazione
Dim IndIDCam As Integer = GetCurrCamIndFromCfg(CfgItem)
If IndIDCam > EnableCamList.Count - 1 Then Return
Dim CurrCam As EbnableCamItem = EnableCamList(IndIDCam)
If IsNothing(CurrCam) Then Return
' Verifico che sia presente in elenco
If CurrCam.IdCfg.FindIndex((Function(x) x = CfgItem)) < 0 Then Return
' Rimuovo questo elemento dalla lista delle configurazioni (per rifereminto si aggiorna anche la lista)
CurrCam.IdCfg.Remove(CfgItem)
' Se la camera non ha nessun assegnamento allora aggiorno lo stato
If CurrCam.IdCfg.Count < 1 Then
CurrCam.IsEnable = True
EnableCamList(IndIDCam) = CurrCam
End If
IndIDCam = EnableCamList.FindIndex((Function(x) x.IdCam = NewIdCam))
If IndIDCam > -1 Then
CurrCam = EnableCamList(IndIDCam)
' verifico che non sia già inserito in elenco (se la grafica non fosse allineata...)
If CurrCam.IdCfg.FindIndex((Function(x) x = CfgItem)) < 0 Then
CurrCam.IdCfg.Add(CfgItem)
' Aggiorno anche lo stato
If CurrCam.IdCam <> IdCamEmpty And CurrCam.IsEnable Then
CurrCam.IsEnable = False
EnableCamList(IndIDCam) = CurrCam
End If
End If
End If End If
End Sub End Sub
Private Sub PopolateDataGrid() ' ------- FINE ------- gestione EnableCamList ----------------------------
' OK: Carico gli elementi della tabella (n_CurrIndex: indice selezionato); bFirstRun: set la config applicata
Private Sub PopolateDataGrid(Optional bFirstRun As Boolean = False)
' Ripulisco tutti i dati della datagrid
DataGridView1.Rows.Clear() DataGridView1.Rows.Clear()
CameraListCfg.Clear()
ComboCamera.Items.Clear() ' Per ogni configurazione genero una riga della datagrid
Dim DirToReadCfg As String = FrmMain.sDataRoot
' Popolo combobox con idcamera
For Each CameraItem As String In FrmMain.ComboBoxCameras.Items
ComboCamera.Items.Add(CameraItem)
Next
' Popolo text con configurazione
For Each CfgItem As String In FrmMain.ComboBoxCameraCfg.Items For Each CfgItem As String In FrmMain.ComboBoxCameraCfg.Items
Dim NomeFileCfg As String = DirToReadCfg & If(CfgItem = "Default", String.Empty, CfgItem) & "\CameraMng.cfg" CfgItem = If(CfgItem = "Default", String.Empty, CfgItem)
' Creo una nuova riga della tabella
Dim riga As New DataGridViewRow() Dim riga As New DataGridViewRow()
' Crea le celle corrispondenti alle colonne ' Crea le celle corrispondenti alle colonne
riga.CreateCells(DataGridView1) riga.CreateCells(DataGridView1)
riga.Cells(0).Value = CfgItem
Dim id As String = ReadIdCameraFromCfg(NomeFileCfg) ' Popolo text con configurazione: assegno Indice della configurazione
If Not String.IsNullOrEmpty(id) Then riga.Cells(COLUMN.ID_CFG).Value = CfgItem
' Icone CFG
If CameraListCfg.IndexOf(id) < 0 Then ' Aggiorno le icone (leggendo la lista EnableCamList)
CameraListCfg.Add(id) RefreshIcoAndComboBox(riga)
riga.Cells(1).Value = GetCurrIco(2)
Else riga.Cells(COLUMN.SAVE_CMD).Value = "Save"
riga.Cells(1).Value = GetCurrIco(0) riga.Cells(COLUMN.APPLY_CMD).Value = "Apply"
End If
' Icone CAMERA
If ComboCamera.Items.IndexOf(id) > -1 Then
riga.Cells(3).Value = GetCurrIco(2)
riga.Cells(2).Value = id
Else
riga.Cells(3).Value = GetCurrIco(0)
End If
Else
riga.Cells(1).Value = GetCurrIco(-1)
riga.Cells(3).Value = GetCurrIco(-1)
End If
riga.Cells(4).Value = "Save"
riga.Cells(5).Value = "Apply"
' Aggiungi la riga completa al DataGridView ' Aggiungi la riga completa al DataGridView
DataGridView1.Rows.Add(riga) DataGridView1.Rows.Add(riga)
If CfgItem = FrmMain.ComboBoxCameraCfg.SelectedItem Then ' Imposto la configurazione corrente come attiva
DataGridView1.ClearSelection() If bFirstRun And CfgItem = FrmMain.ComboBoxCameraCfg.SelectedItem Then
' Mantengo la selezione sulla riga corrente ' --> DataGridView1.ClearSelection()
DataGridView1.Rows(DataGridView1.Rows.Count - 1).Selected = True ' Recupero l'indice della riga corrente che deve rimanere selezionata
' Indico in grassetto il comando Apply Dim LastIndexRow As Integer = DataGridView1.Rows.Count - 1
' Mi assicuro che la cella sia del tipo corretto ' --> DataGridView1.Rows(DataGridView1.Rows.Count - 1).Selected = True
If TypeOf riga.Cells(5) Is DataGridViewButtonCell Then ' Imposto la selezione sulla riga corrente
' Ottiengo la cella specifica SelectCurrIndexRow(LastIndexRow)
Dim cellaBottone As DataGridViewButtonCell = CType(riga.Cells(5), DataGridViewButtonCell) ' Indico in grassetto il comando Apply della configurazione corrente
' Recupero il font attuale della cella per non perdere le altre proprietà (come la dimensione) SetStatusApplyFont(LastIndexRow, True)
Dim fontAttuale As Font = cellaBottone.Style.Font
' Se non è stato impostato un font, usane uno di default per sicurezza
If fontAttuale Is Nothing Then
fontAttuale = Me.DataGridView1.Font ' Usa il font del DataGridView come base
End If
' Assegno un NUOVO oggetto Font con lo stile Bold
cellaBottone.Style.Font = New Font(fontAttuale, FontStyle.Bold)
End If
End If End If
Next Next
' Seleziono la riga associata alla configurazione impostata
End Sub
' OK: Assegna le nuove combobox per ogni configurazione
Private Sub UpdateDataGridView()
' Aggiorno le lista degli ID camera per ogni riga della tabella
For IndexRow As Integer = 0 To DataGridView1.Rows.Count - 1
' recupero la riga corrente della tabella
Dim riga As DataGridViewRow = DataGridView1.Rows(IndexRow)
' Aggiorno la lista della combobox e le icone
RefreshIcoAndComboBox(riga)
Next
End Sub End Sub
Private Sub RefreshDataGrid(IndexRawDataGrid As Integer) ' OK: Recupero l'INDICE (della lista EnableCmaList) della camera associata a CfgItem
DataGridView1.ClearSelection() Private Function GetCurrCamIndFromCfg(CfgItem As String) As Integer
Dim IndIDCam As Integer = 0
Dim CfgItem As String = DataGridView1.Rows(IndexRawDataGrid).Cells("Config").Value.ToString() For Ind As Integer = 0 To EnableCamList.Count - 1
' Aggiorno lo stato delle icone della lista If EnableCamList(Ind).IdCfg.FindIndex((Function(y) y = CfgItem)) > -1 Then
IndIDCam = Ind
Dim DirToReadCfg As String = FrmMain.sDataRoot Exit For
Dim NomeFileCfg As String = DirToReadCfg & If(CfgItem = "Default", String.Empty, CfgItem) & "\CameraMng.cfg"
' Creo la nuova riga che sostituirà quella precedente
Dim riga As DataGridViewRow = DataGridView1.Rows(IndexRawDataGrid)
' Crea le celle corrispondenti alle colonne
riga.Cells(0).Value = CfgItem
Dim id As String = ReadIdCameraFromCfg(NomeFileCfg)
If Not String.IsNullOrEmpty(id) Then
' Icone CFG
If CameraListCfg.IndexOf(id) < 0 Then
riga.Cells(1).Value = GetCurrIco(2)
Else
riga.Cells(1).Value = GetCurrIco(0)
End If End If
' Icone CAMERA Next
If ComboCamera.Items.IndexOf(id) > -1 Then Return IndIDCam
riga.Cells(3).Value = GetCurrIco(2) End Function
riga.Cells(2).Value = id
Else
riga.Cells(3).Value = GetCurrIco(0)
End If
Else
riga.Cells(1).Value = GetCurrIco(-1)
riga.Cells(3).Value = GetCurrIco(-1)
End If
riga.Cells(4).Value = "Save"
riga.Cells(5).Value = "Apply"
' Sostituisco la riga corrente: rimuovo la precedente riga e ne inserisco una nuova
DataGridView1.Rows.RemoveAt(IndexRawDataGrid)
DataGridView1.Rows.Insert(IndexRawDataGrid, riga)
' Mantengo la selezione sulla riga corrente
DataGridView1.CurrentCell = riga.Cells(0)
DataGridView1.Rows(IndexRawDataGrid).Selected = True
End Sub
Private Sub RefreshSelectedItemCfg(IndexRawDataGrid As Integer)
' 1. RIPRISTINA IL FONT DELLA RIGA PRECEDENTE
' Controlla se c'era una riga precedente valida e se non è la stessa che stiamo per modificare
If CurrAppliedConfig > -1 AndAlso CurrAppliedConfig <> IndexRawDataGrid Then
' Assicurati che l'indice sia ancora nel range del DataGridView
If CurrAppliedConfig < DataGridView1.Rows.Count Then
Dim lastRow As DataGridViewRow = DataGridView1.Rows(CurrAppliedConfig)
Dim lastCellButton As DataGridViewButtonCell = CType(lastRow.Cells(5), DataGridViewButtonCell)
Dim lastFont As Font = lastCellButton.Style.Font
' Crea un nuovo font basato su quello esistente, ma con stile Regular
If lastFont IsNot Nothing Then
lastCellButton.Style.Font = New Font(lastFont, FontStyle.Regular)
End If
End If
End If
DataGridView1.ClearSelection()
' 2. AGGIORNA I DATI DELLA RIGA ESISTENTE
Dim CfgItem As String = DataGridView1.Rows(IndexRawDataGrid).Cells("Config").Value.ToString()
' Aggiorno lo stato delle icone della lista
Dim DirToReadCfg As String = FrmMain.sDataRoot
Dim NomeFileCfg As String = DirToReadCfg & If(CfgItem = "Default", String.Empty, CfgItem) & "\CameraMng.cfg"
' Creo la nuova riga che sostituirà quella precedente
Dim riga As DataGridViewRow = DataGridView1.Rows(IndexRawDataGrid)
' Crea le celle corrispondenti alle colonne
riga.Cells(0).Value = CfgItem
Dim id As String = ReadIdCameraFromCfg(NomeFileCfg)
If Not String.IsNullOrEmpty(id) Then
' Icone CFG
If CameraListCfg.IndexOf(id) < 0 Then
riga.Cells(1).Value = GetCurrIco(2)
Else
riga.Cells(1).Value = GetCurrIco(0)
End If
' Icone CAMERA
If ComboCamera.Items.IndexOf(id) > -1 Then
riga.Cells(3).Value = GetCurrIco(2)
riga.Cells(2).Value = id
Else
riga.Cells(3).Value = GetCurrIco(0)
End If
Else
riga.Cells(1).Value = GetCurrIco(-1)
riga.Cells(3).Value = GetCurrIco(-1)
End If
riga.Cells(4).Value = "Save"
riga.Cells(5).Value = "Apply"
' 3. APPLICA IL GRASSETTO ALLA RIGA CORRENTE
Dim currentCellButton As DataGridViewButtonCell = CType(riga.Cells(5), DataGridViewButtonCell)
Dim currentFont As Font = currentCellButton.Style.Font
If currentFont Is Nothing Then
currentFont = Me.DataGridView1.Font ' Usa il font del DataGridView come base
End If
' Assegna un NUOVO oggetto Font con lo stile Bold
currentCellButton.Style.Font = New Font(currentFont, FontStyle.Bold)
' 4. AGGIORNA L'INDICE DA RICORDARE
CurrAppliedConfig = IndexRawDataGrid
' Mantengo la selezione sulla riga corrente
DataGridView1.CurrentCell = riga.Cells(0)
DataGridView1.Rows(IndexRawDataGrid).Selected = True
End Sub
' OK: Lettura dell'IDCam dal file di configurazione
Private Function ReadIdCameraFromCfg(NomeFileCfg As String) As String Private Function ReadIdCameraFromCfg(NomeFileCfg As String) As String
Dim IDCamera As String = String.Empty Dim IDCamera As String = String.Empty
Dim reader As New StreamReader(NomeFileCfg) Dim reader As New StreamReader(NomeFileCfg)
@@ -229,18 +245,20 @@ Public Class SetConfigForm
Return IDCamera Return IDCamera
End Function End Function
' OK: Restituisce l'immagine associata all'Enum indicato
Private Function GetCurrIco(Index As Integer) As Image Private Function GetCurrIco(Index As Integer) As Image
Select Case Index Select Case Index
Case -1 Case ICO.ERR_
myImage = My.Resources.cross m_myImage = My.Resources.cross
Case 0 Case ICO.WARNING_
myImage = My.Resources.warning m_myImage = My.Resources.warning
Case Else Case Else
myImage = My.Resources.accept m_myImage = My.Resources.accept
End Select End Select
Return myImage Return m_myImage
End Function End Function
' OK: Salva l'IDCam nella configurazione corrente
Public Sub SaveIDCamera(IDConfing As String, IDCamera As String) Public Sub SaveIDCamera(IDConfing As String, IDCamera As String)
Dim NomeFileCfg, TmpString As String Dim NomeFileCfg, TmpString As String
Dim NomeFileTempCfg, DirToReadCfg As String Dim NomeFileTempCfg, DirToReadCfg As String
@@ -249,6 +267,7 @@ Public Class SetConfigForm
Dim writer As StreamWriter Dim writer As StreamWriter
Try Try
If IDConfing.Contains("Default") Then IDConfing = ""
DirToReadCfg = FrmMain.sDataRoot & IDConfing DirToReadCfg = FrmMain.sDataRoot & IDConfing
NomeFileCfg = DirToReadCfg & "\CameraMng.cfg" NomeFileCfg = DirToReadCfg & "\CameraMng.cfg"
NomeFileTempCfg = DirToReadCfg & "\CameraMngTmp.cfg" NomeFileTempCfg = DirToReadCfg & "\CameraMngTmp.cfg"
@@ -266,7 +285,7 @@ Public Class SetConfigForm
writer.WriteLine(TmpString, CultureInfo.InvariantCulture) writer.WriteLine(TmpString, CultureInfo.InvariantCulture)
End If End If
End While End While
writer.WriteLine("CameraID=" & IDCamera, CultureInfo.InvariantCulture) writer.WriteLine("CameraID=" & If(IDCamera = IdCamEmpty, "", IDCamera), CultureInfo.InvariantCulture)
FileClose(nf) FileClose(nf)
writer.Close() writer.Close()
File.Copy(NomeFileCfg, SaveFileCfg) File.Copy(NomeFileCfg, SaveFileCfg)
@@ -282,105 +301,305 @@ Public Class SetConfigForm
End Try End Try
End Sub End Sub
' OK: Data la riga della DataGrid viene assegnato il font: bSet=True -> BOLD, bSet=False -> REGULAR
Private Sub SetStatusApplyFont(IndexRowDataGrid As Integer, bSet As Boolean)
If IndexRowDataGrid > -1 Then
Dim ApplyCellButton As DataGridViewButtonCell = CType(DataGridView1.Rows(IndexRowDataGrid).Cells(COLUMN.APPLY_CMD), DataGridViewButtonCell)
Dim CurrFont As Font = ApplyCellButton.Style.Font
' Crea un nuovo font basato su quello esistente, ma con stile Regular
If IsNothing(CurrFont) Then CurrFont = Me.DataGridView1.Font
ApplyCellButton.Style.Font = New Font(CurrFont, If(bSet, FontStyle.Bold, FontStyle.Regular))
End If
End Sub
' OK: Aggiorno la DataGrid per visualizzare la configurazione attiva
Private Function ApplyCurrCfg(CurrIdCfg As String, Optional bForce As Boolean = False) As Boolean
' Se il nome della configurazione corrente è già attivo allora esco
If (m_sCurrAppliedIdCfg = CurrIdCfg And Not bForce) And String.IsNullOrEmpty(CurrIdCfg) Then Return False
' Recupero l'indice della DataGrid associato alla configurazione applicata: rimuovo il font BOLD
Dim IndAppliedIdCfg As Integer = -1
For Index As Integer = 0 To DataGridView1.Rows.Count - 1
If DataGridView1.Rows(Index).Cells(COLUMN.ID_CFG).Value = m_sCurrAppliedIdCfg Then
IndAppliedIdCfg = Index
Exit For
End If
Next
' Ripristino il font Regular
SetStatusApplyFont(IndAppliedIdCfg, False)
' Recupero l'indice della DataGrid associato alla configurazione
Dim IndCurrIdCfg As Integer = -1
For Index As Integer = 0 To DataGridView1.Rows.Count - 1
If DataGridView1.Rows(Index).Cells(COLUMN.ID_CFG).Value = CurrIdCfg Then
IndCurrIdCfg = Index
Exit For
End If
Next
' Applico il font Bold
SetStatusApplyFont(IndCurrIdCfg, True)
' Assegno come applicata cfg corrente
m_sCurrAppliedIdCfg = CurrIdCfg
Return True
End Function
#End Region ' Metodi gestione combobox
' OK: Aggiorna l'icone della riga corrente
Private Function RefreshIcoAndComboBox(ByRef riga As DataGridViewRow) As Boolean
'Dim riga As DataGridViewRow = DataGridView1.Rows(IndexRow)
Dim CfgItem As String = riga.Cells(COLUMN.ID_CFG).Value
' Recupero la camera assegnata alla configurazione
Dim IndIDCam As Integer = GetCurrCamIndFromCfg(CfgItem)
If IndIDCam > EnableCamList.Count - 1 Then Return False
Dim CurrCam As EbnableCamItem = EnableCamList(IndIDCam)
If IsNothing(CurrCam) Then Return False
' Configurazione delle icone della pagina
If CurrCam.IdCam = IdCamEmpty Then
' CFG ICO
riga.Cells(COLUMN.CFG_ICO).Value = GetCurrIco(ICO.ERR_)
' CAM ICO
riga.Cells(COLUMN.CAM_ICO).Value = GetCurrIco(ICO.ERR_)
Else
' CFG ICO
If CurrCam.IdCfg(0) = CfgItem Then
riga.Cells(COLUMN.CFG_ICO).Value = GetCurrIco(ICO.OK_)
Else
riga.Cells(COLUMN.CFG_ICO).Value = GetCurrIco(ICO.WARNING_)
End If
' CAM ICO
If CurrCam.IsConnected Then
riga.Cells(COLUMN.CAM_ICO).Value = GetCurrIco(ICO.OK_)
Else
riga.Cells(COLUMN.CAM_ICO).Value = GetCurrIco(ICO.WARNING_)
End If
End If
' Creo la lista degli IdCam disponibili per la configurazione corrente
Dim CamList As New List(Of String)
' Procedo alla creazione della lista delle camere libere
For Each CameraItem As EbnableCamItem In EnableCamList
If CameraItem.IsEnable Then
CamList.Add(CameraItem.IdCam)
End If
Next
' Aggiungo la camera assegnata a questa configurazione
If CurrCam.IdCam <> IdCamEmpty Then CamList.Add(CurrCam.IdCam)
' Se la camera non è in elenco tra le camere disponibili (Id già occupato)
If CamList.IndexOf(CurrCam.IdCam) < 0 Then
CamList.Add(CurrCam.IdCam)
End If
If m_nCurrIndexRow = riga.Index Then
Dim Pippo As Boolean = True
End If
' Assegno la lista alla cella ComboBox
Dim comboBoxCell As DataGridViewComboBoxCell = TryCast(riga.Cells.Item(COLUMN.ID_CAM), DataGridViewComboBoxCell)
If Not IsNothing(comboBoxCell) Then
m_UpdatingDataSource = True
' Imposto l'ID della camera (sembra che questa assegnazione non generi nessun evento)
comboBoxCell.Value = CurrCam.IdCam
' verifice che le due liste siano uguali
Dim bAreSame As Boolean = False
If Not IsNothing(comboBoxCell.DataSource) Then
' Ad ogni assegnazione della lista viene lanciato l'evento
bAreSame = True
If comboBoxCell.DataSource.Count <> CamList.Count Then
' Hanno numero di elementi differenti: quindi sicuramente diverse
bAreSame = False
Else
' Verifico che tutti gli elementi di una lista siano anche nell'altra
For Each Item As String In comboBoxCell.DataSource
If CamList.FindIndex(Function(x) x = Item) < 0 Then
bAreSame = False
Exit For
End If
Next
End If
End If
' Se le liste sono diverse anche per contenuto allora ricarico
If Not bAreSame Then comboBoxCell.DataSource = CamList
m_UpdatingDataSource = False
End If
Return True
End Function
' Aggiorno la selezione della tabella e setto la riga corrente nella variabile m_nCurrIndexRow
Private Sub SelectCurrIndexRow(IndexRow As Integer)
' Verifico che l'indice di riga sia valido
If IndexRow < 0 Or IndexRow > DataGridView1.RowCount Then Return
' Se la selezione è la stessa riga che è in uso allora non aggiorno
If IndexRow = m_nCurrIndexRow Then Return
Me.Invalidate()
DataGridView1.ClearSelection()
DataGridView1.Rows(IndexRow).Selected = True
m_nCurrIndexRow = IndexRow
End Sub
#Region "EVENTS"
'Private CMB As ComboBox
' Selezione ComboBox
Private Sub DataGridView1_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing Private Sub DataGridView1_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
' Seleziono la riga indicata
SelectCurrIndexRow(DataGridView1.CurrentCell.RowIndex)
' Controlla se la cella corrente è nella colonna della ComboBox e se il controllo è una ComboBox ' Controlla se la cella corrente è nella colonna della ComboBox e se il controllo è una ComboBox
If DataGridView1.CurrentCell.ColumnIndex = DataGridView1.Columns("ComboCamera").Index AndAlso TypeOf e.Control Is ComboBox Then If DataGridView1.CurrentCell.ColumnIndex = DataGridView1.Columns("ComboCamera").Index AndAlso TypeOf e.Control Is ComboBox Then
Dim comboBox As ComboBox = TryCast(e.Control, ComboBox) Dim comboBox As ComboBox = TryCast(e.Control, ComboBox)
If comboBox IsNot Nothing Then If comboBox IsNot Nothing Then
' Rimuovi eventuali gestori eventi precedenti per evitare eventi duplicati ' Salvo un riferimento alla combobox selezionata: viene cancellato il riferimento al termine della selezione
' Questo è importante se l'utente modifica più volte la stessa cella 'CMB = comboBox
' Rimuovi i gestori precedenti per evitare agganci multipli
RemoveHandler comboBox.SelectedIndexChanged, AddressOf DataGridViewComboBox_SelectedIndexChanged RemoveHandler comboBox.SelectedIndexChanged, AddressOf DataGridViewComboBox_SelectedIndexChanged
' Aggiungi il gestore eventi per l'evento SelectedIndexChanged della ComboBox 'Aggiungo il gestore eventi per l'evento SelectedIndexChanged della ComboBox
AddHandler comboBox.SelectedIndexChanged, AddressOf DataGridViewComboBox_SelectedIndexChanged AddHandler comboBox.SelectedIndexChanged, AddressOf DataGridViewComboBox_SelectedIndexChanged
End If End If
End If End If
End Sub End Sub
' Questo è il gestore eventi che si attiverà quando l'utente seleziona un elemento nella ComboBox ' Questo è il gestore eventi che si attiverà quando l'utente seleziona un elemento nella ComboBox -- Handles DataGridView1.EditingControlShowing
Private Sub DataGridViewComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Private Sub DataGridViewComboBox_SelectedIndexChanged(sender As Object, e As EventArgs)
Dim comboBox As ComboBox = TryCast(sender, ComboBox) Dim comboBox As ComboBox = TryCast(sender, ComboBox)
If comboBox IsNot Nothing Then 'Dim comboBox As ComboBox = CMB
If Not IsNothing(comboBox) AndAlso Not IsNothing(comboBox.SelectedItem) Then
' Nuovo valore
Dim selectedValue As String = comboBox.SelectedItem.ToString() Dim selectedValue As String = comboBox.SelectedItem.ToString()
Dim currentRowIndex As Integer = DataGridView1.CurrentCell.RowIndex Dim currentRowIndex As Integer = DataGridView1.CurrentCell.RowIndex
' Precedente valore
Dim IDCamera As String = If(Not IsNothing(DataGridView1.Rows(currentRowIndex).Cells("ComboCamera").Value), DataGridView1.Rows(currentRowIndex).Cells("ComboCamera").Value.ToString(), String.Empty) Dim IDCamera As String = If(Not IsNothing(DataGridView1.Rows(currentRowIndex).Cells("ComboCamera").Value), DataGridView1.Rows(currentRowIndex).Cells("ComboCamera").Value.ToString(), String.Empty)
' Id della configurazione corrente
Dim IDCfg As String = DataGridView1.Rows(currentRowIndex).Cells("Config").Value.ToString()
If IDCamera <> selectedValue Then If IDCamera <> selectedValue Then
DataGridView1.Rows(currentRowIndex).Cells(4).Value = "Save*" ' Aggiorno l'elenco EnableCamList
If Not m_UpdatingDataSource Then
UpdateListOfEnableCamItem(IDCfg, selectedValue)
Else
UpdateListOfEnableCamItem(IDCfg, IDCamera)
End If
' Ricostruisco la DataGrid
UpdateDataGridView()
' Aggiorno il valore del bottone
DataGridView1.Rows(currentRowIndex).Cells(COLUMN.SAVE_CMD).Value = "Save*"
End If End If
End If End If
End Sub End Sub
' Tutti i click sulla datagrid passono da qui ' Selezione del valore di una cella: gestione dei bottoni SAVE & APPLY
Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
' Controlla che il click non sia sull'intestazione della colonna ' Controlla che il click non sia sull'intestazione della colonna
If e.RowIndex < 0 Then Return If e.RowIndex < 0 Then Return
DataGridView1.Rows(e.RowIndex).Selected = True
' seleziona la riga indicata
SelectCurrIndexRow(e.RowIndex)
If e.ColumnIndex < 0 Then Return If e.ColumnIndex < 0 Then Return
' recupero l'Id della configurazione e l'Id della camera
IndexCurrentRow = e.RowIndex Dim sIDConfig As String = DataGridView1.Rows(m_nCurrIndexRow).Cells("Config").Value.ToString()
IDConfig = DataGridView1.Rows(e.RowIndex).Cells("Config").Value.ToString() Dim sIDCamera As String = If(Not IsNothing(DataGridView1.Rows(m_nCurrIndexRow).Cells("ComboCamera").Value), DataGridView1.Rows(e.RowIndex).Cells("ComboCamera").Value.ToString(), String.Empty)
IDCamera = If(Not IsNothing(DataGridView1.Rows(e.RowIndex).Cells("ComboCamera").Value), DataGridView1.Rows(e.RowIndex).Cells("ComboCamera").Value.ToString(), String.Empty)
' Controlla se il click è avvenuto nella colonna dei bottoni (Usa il nome che hai dato alla colonna) ' Controlla se il click è avvenuto nella colonna dei bottoni (Usa il nome che hai dato alla colonna)
If Me.DataGridView1.Columns(e.ColumnIndex).Name = "SaveConfig" Then If Me.DataGridView1.Columns(e.ColumnIndex).Name = "SaveConfig" Then
If Not String.IsNullOrEmpty(IDConfig) And Not String.IsNullOrEmpty(IDCamera) Then If Not String.IsNullOrEmpty(sIDConfig) Then
SaveIDCamera(IDConfig, IDCamera) SaveIDCamera(sIDConfig, sIDCamera)
DataGridView1.Rows(e.RowIndex).Cells(4).Value = "Save" DataGridView1.Rows(m_nCurrIndexRow).Cells(COLUMN.SAVE_CMD).Value = "Save"
RefreshDataGrid(e.RowIndex) '' Aggiorno l'elenco EnableCamList
bIsSavedAll = True 'UpdateListOfEnableCamItem(sIDConfig, sIDCamera)
Else '' Ricostruisco la DataGrid SENZA forzare la selezione della riga
MessageBox.Show("Non è possibile salvare l'ID di una camera non connessa.", "Avviso", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) 'PopolateDataGrid(False)
End If
' Se la configurazione è applicata allora procedo ad aggiornare anche il programma
If m_sCurrAppliedIdCfg = sIDConfig Then
If Not ApplyCurrCfg(sIDConfig, True) Then Return
' seleziona la riga indicata
SelectCurrIndexRow(e.RowIndex)
' Aggiorno la camera in uso nel programma
Dim IndCamera As Integer = FrmMain.ComboBoxCameras.Items.IndexOf(sIDCamera)
If IndCamera > -1 Then FrmMain.ComboBoxCameras.SelectedIndex = IndCamera
Dim IndCameraCfg As Integer = FrmMain.ComboBoxCameraCfg.Items.IndexOf(sIDConfig)
If IndCameraCfg > -1 Then FrmMain.ComboBoxCameraCfg.SelectedIndex = IndCameraCfg
End If End If
ElseIf Me.DataGridView1.Columns(e.ColumnIndex).Name = "ApplyConfig" Then ElseIf Me.DataGridView1.Columns(e.ColumnIndex).Name = "ApplyConfig" Then
If Not (String.IsNullOrEmpty(IDConfig) And String.IsNullOrEmpty(IDCamera)) Then If Not String.IsNullOrEmpty(sIDConfig) And Not String.IsNullOrEmpty(sIDCamera) And sIDCamera <> IdCamEmpty Then
' verifico che non sia stato salvato l'id indicato ' Verifico che non ci sia una modifica attiva
If DataGridView1.Rows(e.RowIndex).Cells(4).Value.ToString().Contains("*"c) Then If DataGridView1.Rows(m_nCurrIndexRow).Cells(COLUMN.SAVE_CMD).Value.ToString().Contains("*"c) Then
MessageBox.Show("Salvare la configurazione prima di applicarla.", "Informazione", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) MessageBox.Show("Salvare la configurazione prima di applicarla.", "Informazione", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
Return Return
End If End If
Dim IndCamera As Integer = FrmMain.ComboBoxCameras.Items.IndexOf(IDCamera) If Not ApplyCurrCfg(sIDConfig) Then Return
FrmMain.ComboBoxCameras.SelectedIndex = IndCamera ' seleziona la riga indicata
Dim IndCameraCfg As Integer = FrmMain.ComboBoxCameraCfg.Items.IndexOf(IDConfig) SelectCurrIndexRow(e.RowIndex)
FrmMain.ComboBoxCameraCfg.SelectedIndex = IndCameraCfg ' Aggiorno la camera in uso nel programma
RefreshSelectedItemCfg(e.RowIndex) Dim IndCamera As Integer = FrmMain.ComboBoxCameras.Items.IndexOf(sIDCamera)
If IndCamera > -1 Then FrmMain.ComboBoxCameras.SelectedIndex = IndCamera
Dim IndCameraCfg As Integer = FrmMain.ComboBoxCameraCfg.Items.IndexOf(sIDConfig)
If IndCameraCfg > -1 Then FrmMain.ComboBoxCameraCfg.SelectedIndex = IndCameraCfg
Else
MessageBox.Show("Non è possibile applicare una configurazione di una camera non connessa.", "Avviso", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
End If End If
ElseIf Me.DataGridView1.Columns(e.ColumnIndex).Name = "ComboCamera" Then
' riconosco che è stata selezionata la combobox
End If End If
End Sub End Sub
' Chiusura della finestra
Private Sub SetConfig_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing Private Sub SetConfig_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
' 💡 FORZA LA FINE DELLA MODALITÀ DI MODIFICA ' FORZA LA FINE DELLA MODALITÀ DI MODIFICA
Me.Validate() Me.Validate()
Dim result As DialogResult Dim result As DialogResult
Dim ListOfIndexModifiedCfg As New List(Of Integer)
Dim bExit As Boolean = True
For IndexRow As Integer = 0 To DataGridView1.Rows.Count - 1 For IndexRow As Integer = 0 To DataGridView1.Rows.Count - 1
If DataGridView1.Rows(IndexRow).Cells(4).Value = "Save*" Then ' Verifico se ci sia nessuna modifica attiva
' Ci sono modifiche. Chiedi all'utente cosa fare. If DataGridView1.Rows(IndexRow).Cells(COLUMN.SAVE_CMD).Value = "Save*" Then
If bIsSavedAll Then ListOfIndexModifiedCfg.Add(IndexRow)
result = MessageBox.Show("Salvare tutte le configurazioni modificate o no?", "Attenzione", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning) bExit = False
End If
Select Case result
Case DialogResult.Yes
' Salvataggio
If DataGridView1.Rows(IndexRow).Cells(0).Value = "Default" Then DataGridView1.Rows(IndexRow).Cells(0).Value = String.Empty
SaveIDCamera(DataGridView1.Rows(IndexRow).Cells(0).Value, DataGridView1.Rows(IndexRow).Cells(2).Value)
DataGridView1.Rows(IndexRow).Cells(4).Value = "Save"
RefreshDataGrid(IndexRow)
bIsSavedAll = False
Case DialogResult.No
' La finestra si chiuderà normalmente. Non fare nulla.
bIsSavedAll = True
Return
Case DialogResult.Cancel
' L'utente ha annullato l'operazione. Annulla la chiusura della finestra.
bIsSavedAll = True
e.Cancel = True
End Select
End If End If
Next Next
bIsSavedAll = True ' Se non ci sono modifiche allora esco subito
If bExit Then Return
' Costruisco il messaggio in funzione del numero di elementi presenti
Dim sMsg As String = "Vuoi salvare la modifica corrente?"
If ListOfIndexModifiedCfg.Count > 1 Then
sMsg = "Vuoi salvare le modifiche correnti?"
End If
result = MessageBox.Show(sMsg, "Attenzione", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning)
Select Case result
Case DialogResult.Yes
' Salvataggio
For Each IndexRow As Integer In ListOfIndexModifiedCfg
' Salvataggio
SaveIDCamera(DataGridView1.Rows(IndexRow).Cells(COLUMN.ID_CFG).Value, DataGridView1.Rows(IndexRow).Cells(COLUMN.ID_CAM).Value)
Next
Case DialogResult.No
' La finestra si chiuderà normalmente. Non fare nulla.
Return
Case DialogResult.Cancel
' L'utente ha annullato l'operazione. Annulla la chiusura della finestra.
e.Cancel = True
End Select
' Al termine la finestra viene chiusa
End Sub End Sub
#End Region ' Events
End Class End Class
+15
View File
@@ -32,6 +32,11 @@ CameraMng
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
</summary> </summary>
</member> </member>
<member name="P:My.Resources.Resources.accept">
<summary>
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
</summary>
</member>
<member name="P:My.Resources.Resources.Blocchetti"> <member name="P:My.Resources.Resources.Blocchetti">
<summary> <summary>
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
@@ -62,6 +67,11 @@ CameraMng
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
</summary> </summary>
</member> </member>
<member name="P:My.Resources.Resources.cross">
<summary>
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
</summary>
</member>
<member name="P:My.Resources.Resources.DefAree"> <member name="P:My.Resources.Resources.DefAree">
<summary> <summary>
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
@@ -92,6 +102,11 @@ CameraMng
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
</summary> </summary>
</member> </member>
<member name="P:My.Resources.Resources.warning">
<summary>
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
</summary>
</member>
<member name="P:My.Resources.Resources.zoom_all_img"> <member name="P:My.Resources.Resources.zoom_all_img">
<summary> <summary>
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
+1 -1
View File
@@ -137,7 +137,7 @@ Public Class clsCamera
If _connected Then Disconnect() If _connected Then Disconnect()
If bodyID = "" Then If bodyID = "" Then
Connect(0) ' Connect(0)
Return Return
End If End If
@@ -1 +1 @@
80ba11b124538c7d3079f30cd12468109ae550e631cf8c94dfc5efc15b795614 69636ff66d10d465f87b29c6b3440534ee373b52aa51b9726c6ce7a90119bc6f
Binary file not shown.
@@ -1 +1 @@
6dfe2777d17f530c20a47946243d5514a0d9ccf3b3bc8a842d8aaf280d73ff42 e63cd9d1bff65e57a3ee15db15da52f89e1cb74102fae0c75198f4c36fa0c215
@@ -48,3 +48,4 @@ C:\EgtDev\cameramanager\CameraMng\obj\x64\Release\CameraMng.vbproj.Up2Date
C:\EgtDev\cameramanager\CameraMng\obj\x64\Release\CameraMng.exe C:\EgtDev\cameramanager\CameraMng\obj\x64\Release\CameraMng.exe
C:\EgtDev\cameramanager\CameraMng\obj\x64\Release\CameraMng.xml C:\EgtDev\cameramanager\CameraMng\obj\x64\Release\CameraMng.xml
C:\EgtDev\cameramanager\CameraMng\obj\x64\Release\CameraMng.pdb C:\EgtDev\cameramanager\CameraMng\obj\x64\Release\CameraMng.pdb
C:\EgtDev\cameramanager\CameraMng\obj\x64\Release\SetConfigForm.resources
+15
View File
@@ -32,6 +32,11 @@ CameraMng
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
</summary> </summary>
</member> </member>
<member name="P:My.Resources.Resources.accept">
<summary>
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
</summary>
</member>
<member name="P:My.Resources.Resources.Blocchetti"> <member name="P:My.Resources.Resources.Blocchetti">
<summary> <summary>
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
@@ -62,6 +67,11 @@ CameraMng
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
</summary> </summary>
</member> </member>
<member name="P:My.Resources.Resources.cross">
<summary>
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
</summary>
</member>
<member name="P:My.Resources.Resources.DefAree"> <member name="P:My.Resources.Resources.DefAree">
<summary> <summary>
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
@@ -92,6 +102,11 @@ CameraMng
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
</summary> </summary>
</member> </member>
<member name="P:My.Resources.Resources.warning">
<summary>
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
</summary>
</member>
<member name="P:My.Resources.Resources.zoom_all_img"> <member name="P:My.Resources.Resources.zoom_all_img">
<summary> <summary>
Cerca una risorsa localizzata di tipo System.Drawing.Bitmap. Cerca una risorsa localizzata di tipo System.Drawing.Bitmap.
Binary file not shown.
Binary file not shown.