"0018eVegolaiD resU elbatpircS-DUS!§Íͺÿþÿ 18.0.0f7097ÿþÿ 18.0.0f7097ÍͺÍͺÍͺÿþÿ DlgNonModal‡¦ÿþÿNon-Modal Dialogÿÿ ToSudFrameObÍͺÿþÿNon-Modal Dialogïoÿÿýÿÿÿþÿÿÿûÿÿûÿÿÿÿ÷ÿÿÿÿ€ÍͺÍͺÿþÿÿ+D'------------------------------------------------------------------------------- '-- SUD script file non-modal_dialog.sud '-- Author: Mark W Kiehl ' www.SavvyDiademSolutions.com ' http://www.savvysolutions.info/savvycodesolutions/ '-- Comment: ' ' This non-modal dialog box creates data in the Data Portal, and then ' allows the user to interactively select the channel group, and then ' two Y channels to be plotted in the View panel (the X channel is ' automatically determined). ' ' The Dialog 'ShowTitleMenu' property has been set to No. This prevents ' the Close icon (x) from appearing in the title bar. ' ' In a non-modal user dialog box you have only restricted access to REPORT objects ' through GraphObjOpen because these objects cannot be opened simultaneously from ' different places. Use the object-oriented REPORT interface instead. ' ' Note that the script that calls this non-modal dialog with SUDDlgCreate() does ' NOT contain transfer parameters that you can access in the dialog script using ' the methods GetArgument and SetArgument. ' ' http://zone.ni.com/reference/en-XX/help/370858N-01/genscript/genscript/sud_nonmodal/ ' http://zone.ni.com/reference/en-XX/help/370858N-01/procsud/procsud/procsud_nonmodal/ '------------------------------------------------------------------------------- Option Explicit Dim oChnX, oChnY1, oChnY2 Sub Dialog_EventInitialize(ByRef This) 'Created Event Handler Call LogFileWrite("Dialog_EventInitialize") 'Call LogFileWrite("Dialog.FilePath & Dialog.FileName = " & Dialog.FilePath & Dialog.FileName) 'Clear out the View panel Call WndShow("View") Call View.NewLayout() 'Create data in the Data Portal .. Call Data.Root.Clear() Portal.Visible = True Call bCreateSampleNumericData() End Sub Sub ChnGrp_EventInitialize(ByRef This) 'Created Event Handler Dim oGrp Call ChnGrp.Items.RemoveAll() For Each oGrp In Data.Root.ChannelGroups() Call ChnGrp.Items.Add(oGrp.Name, ChnGrp.Items.Count) Next Call ChnY1.Items.RemoveAll() ChnY1.Enable = False Call ChnY2.Items.RemoveAll() ChnY2.Enable = False End Sub Sub ChnGrp_EventChange(ByRef This) 'Created Event Handler Dim oChn If ChnGrp.Value >= 0 Then Call Data.Root.ChannelGroups(ChnGrp.Text).Activate() Set oChnX = Data.Root.ChannelGroups(ChnGrp.Text).Channels("Time") ChnY1.Enable = True Call ChnY1.Items.RemoveAll() ChnY2.Enable = False Call ChnY2.Items.RemoveAll() For Each oChn In Data.Root.ChannelGroups(ChnGrp.Text).Channels() If Not oChn.Name = oChnX.Name Then Call ChnY1.Items.Add(oChn.Name,ChnY1.Items.Count) End If Next End If End Sub Sub ChnY1_EventChange(ByRef This) 'Created Event Handler Dim oChn If ChnY1.Value >= 0 Then Set oChnY1 = Data.Root.ChannelGroups(ChnGrp.Text).Channels(ChnY1.Text) ChnY2.Enable = True Call ChnY2.Items.RemoveAll() For Each oChn In Data.Root.ChannelGroups(ChnGrp.Text).Channels() If oChn.Name = oChnX.Name OR oChn.Name = oChnY1.Name Then 'ignore Else Call ChnY2.Items.Add(oChn.Name,ChnY2.Items.Count) End If Next If ChnY2.Items.Count = 1 Then ChnY2.Value = 0 ChnY2.Enable = False Call PlotXY1Y2() End If End If End Sub Sub PlotXY1Y2() Dim oGrp, oElementList Set oGrp = Data.Root.ChannelGroups(ChnGrp.Text) Set oElementList = Data.CreateElementList() Call oElementList.Add(oGrp.Channels(oChnX.Name)) Call oElementList.Add(oGrp.Channels(oChnY1.Name)) Call oElementList.Add(oGrp.Channels(oChnY2.Name)) If Not b2dPlotToViewByElementList(oElementList) Then Call LogFileWrite("ERROR - b2dPlotToViewByElementList()") Call Dialog.Cancel() End If Set oElementList = Nothing: Set oGrp = Nothing End Sub Sub ChnY2_EventChange(ByRef This) 'Created Event Handler If ChnY2.Value >= 0 Then Set oChnY2 = Data.Root.ChannelGroups(ChnGrp.Text).Channels(ChnY2.Text) Call PlotXY1Y2() End If End Sub '<Verify whether to delete code>: Sub btn_SimulateErr_EventClick(ByRef This) 'Created Event Handler '<Verify whether to delete code>: Call Err.Raise(65535,,"Error # 65535 - simulated internal error") '<Verify whether to delete code>: End Sub '------------------------------------------------------------------------------- 'Call bCreateSampleNumericData() Function bCreateSampleNumericData() bCreateSampleNumericData = False Const iSamples = 25 Dim oFileProps, oGrpProps, oChnProps, sDate, dtDate Set oFileProps = CreateObject("Scripting.Dictionary") Set oGrpProps = CreateObject("Scripting.Dictionary") Set oChnProps = CreateObject("Scripting.Dictionary") dtDate = Now() sDate = str(dtDate,"#yyyymmdd-hhnnss") Call oFileProps.Add("description","simulated data created " & sDate & " 1 grps with 3 chns with " & iSamples & " samples") 'Call oFileProps.Add("title","AS_AnalyzeDataFile_ComparativeEval") Call oFileProps.Add("author", "Mark Kiehl") Call oFileProps.Add("sourceoriginalname", CurrentScriptName) Call oFileProps.Add("datetime",dtDate) Call oGrpProps.Add("description","explicit channels") Call oGrpProps.Add("sourceoriginalname","www.SavvyDiademSolutions.com") Call oChnProps.Add("description","numeric channel data") Call dCreateSampleNumericChnDataInDataPortal(iSamples, oFileProps, oGrpProps, oChnProps) Data.Root.Name = "numeric_" & sDate & "_2x3x" & Str(iSamples) Call oFileProps.RemoveAll(): Set oFileProps = Nothing Call oGrpProps.RemoveAll(): Set oGrpProps = Nothing Call oChnProps.RemoveAll(): Set oChnProps = Nothing bCreateSampleNumericData = True End Function 'bCreateSampleNumericData() Function dCreateSampleNumericChnDataInDataPortal(ByVal iSamples, ByVal oFileProps, ByVal oGrpProps, ByVal oChnProps) 'Creates simulated data in the Data Portal and returns the amount of 'time in seconds it took to do it. ' Const iGrps = 2 Call MsgLineDisp("Creating " & Str(iGrps) & " grps with 3 chns with " & iSamples & " samples") dCreateSampleNumericChnDataInDataPortal = 0.0 Call Data.Root.Clear() Const dpTimer = 25 Call StopWatchReset(dpTimer) Dim g, oGrp, oChnT, oChn, s, c, sPropName, vPropVal, dConst Dim oElementList, sChn, dValStart, dValEnd, dValStep, iRows, iRowFirst Dim bChnCommentOver bChnCommentOver = ChnCommentOver ChnCommentOver = False Call LoopInit() For g = 1 to iGrps Call Data.Root.ChannelGroups.Add("myGroup" & str(g)) Set oGrp = Data.Root.ChannelGroups(g) For Each sPropName in oGrpProps vPropVal = oGrpProps(sPropName) Select Case VarType(vPropVal) Case vbInteger, vbLong, vbByte Call oGrp.Properties.Add(sPropName, vPropVal, DataTypeInt32) Case vbSingle, vbDouble, vbCurrency, vbDecimal Call oGrp.Properties.Add(sPropName, vPropVal, DataTypeFloat64) Case vbDate Call oGrp.Properties.Add(sPropName, vPropVal, DataTypeDate) Case vbString Call oGrp.Properties.Add(sPropName, vPropVal, DataTypeString) Case Else 'vbEmpty, vbNull, vbObject, vbError, vbVariant, vbByte, vbArray Call LogFileWrite(vbTab & "ERROR - the VarType of '" & sPropName & "' is " & VarType(vPropVal) & vbTab & "'" & vPropVal & "'") End Select Next 'oGrpProps 'Create channels 'Create a new time channels with iSamples beginning 'from a value of 0.0 and ending with a value of 500.0 sChn = "[" & oGrp.Properties("index").Value & "]/Time" dValStart = 0.0 dValEnd = iSamples / g Set oElementList = ChnLinGen(sChn,dValStart,dValEnd,iSamples,"s") Set oChnT = oGrp.Channels(oElementList.Item(1).Name) If g = 1 Then For c = 1 To 2 Set oChn = oGrp.Channels.Add("myChn" & Str(c),DataTypeChnFloat64) For Each sPropName in oChnProps vPropVal = oChnProps(sPropName) Select Case VarType(vPropVal) Case vbInteger, vbLong, vbByte Call oChn.Properties.Add(sPropName, vPropVal, DataTypeInt32) Case vbSingle, vbDouble, vbCurrency, vbDecimal Call oChn.Properties.Add(sPropName, vPropVal, DataTypeFloat64) Case vbDate Call oChn.Properties.Add(sPropName, vPropVal, DataTypeDate) Case vbString Call oChn.Properties.Add(sPropName, vPropVal, DataTypeString) Case Else 'vbEmpty, vbNull, vbObject, vbError, vbVariant, vbByte, vbArray Call LogFileWrite(vbTab & "ERROR - the VarType of '" & sPropName & "' is " & VarType(vPropVal) & vbTab & "'" & vPropVal & "'") End Select Next 'oChnProps Select Case c Case 1 oChn.UnitSymbol = "bar" oChn.Name = "Pressure" Case 2 oChn.UnitSymbol = "K" oChn.Name = "Temperature" End Select Next 'c Else 'g=2 For c = 3 To 6 Set oChn = oGrp.Channels.Add("myChn" & Str(c),DataTypeChnFloat64) For Each sPropName in oChnProps vPropVal = oChnProps(sPropName) Select Case VarType(vPropVal) Case vbInteger, vbLong, vbByte Call oChn.Properties.Add(sPropName, vPropVal, DataTypeInt32) Case vbSingle, vbDouble, vbCurrency, vbDecimal Call oChn.Properties.Add(sPropName, vPropVal, DataTypeFloat64) Case vbDate Call oChn.Properties.Add(sPropName, vPropVal, DataTypeDate) Case vbString Call oChn.Properties.Add(sPropName, vPropVal, DataTypeString) Case Else 'vbEmpty, vbNull, vbObject, vbError, vbVariant, vbByte, vbArray Call LogFileWrite(vbTab & "ERROR - the VarType of '" & sPropName & "' is " & VarType(vPropVal) & vbTab & "'" & vPropVal & "'") End Select Next 'oChnProps Select Case c Case 3 oChn.UnitSymbol = "mph" oChn.Name = "Speed" dConst = 1500 Case 4 oChn.UnitSymbol = "m/s^2" oChn.Name = "Acceleration" dConst = 1.5 Case 5 oChn.UnitSymbol = "ft-lb" oChn.Name = "Torque" dConst = 200 Case 6 oChn.UnitSymbol = "kW" oChn.Name = "Power" dConst = 20 End Select Next 'c End If 'g Set oGrp = Nothing: Set oChnT = Nothing: Set oChn = Nothing Call LoopInc(Fix(g/iGrps*100)) Next 'g 'Create an additional channel group with the base data. Set oGrp = Data.Root.ChannelGroups.Add("TempGroup") 'Create the time channel sChn = "[" & oGrp.Properties("index").Value & "]/Time" dValStart = 0.0 dValEnd = 10 Call ChnLinGen(sChn,dValStart,dValEnd,iSamples,"s") 'Create the base data channel Set oChn = oGrp.Channels.Add("Data",DataTypeChnFloat64) dValStart = 1.0 dValEnd = 1000 sChn = oChn.GetReference(eRefTypeIndexIndex) Call ChnGeoGen(sChn,dValStart,dValEnd,iSamples) Call ChnNormalize(oChn,sChn) 'Create a noise channel Dim sFormula, arrSymbols, arrValues Set oChn = oGrp.Channels.Add("Noise",DataTypeChnFloat64) ReDim arrSymbols(1): ReDim arrValues(1) sFormula = "Noise = Sin(Time)" arrSymbols(0) = "Time" arrSymbols(1) = "Noise" Set arrValues(0) = oGrp.Channels("Time") Set arrValues(1) = oGrp.Channels("Noise") Call Calculate(sFormula, arrSymbols, arrValues) 'Combine the Data and Noise channels Call ChnSub(oGrp.Channels("Data"),oGrp.Channels("Noise"),sChn) Set oChn = oGrp.Channels("Data") Call Randomize() For s = 1 to iSamples oChn.Values(s) = oChn.Values(s) * Random(1) Next 'Offset the channel values so that they are all >= 0 Call ChnCharacter(oChn) Call ChnOffset(oChn, oChn, oChn.Size, "min. value offset") Set oChnT = Data.Root.ChannelGroups(1).Channels("Pressure") Call DataBlAppend(oChn,1,oChn.Size,oChnT) Call ChnCharacter(oChnT) '0.9653 to 28.0 bar Call ChnLinScale(oChnT,oChnT,20,MaxV(0.9653-oChnT.Minimum,0.9653)) Set oChnT = Data.Root.ChannelGroups(1).Channels("Temperature") Call DataBlAppend(oChn,1,oChn.Size,oChnT) Call ChnCharacter(oChnT) '273 to 373 K Call ChnLinScale(oChnT,oChnT,10,273) Call ChnReciprocal(oChnT, oChnT) Call ChnLinScale(oChnT,oChnT,100000,0) Call ChnOffset(oChnT, oChnT, 273-oChnT.Minimum, "free offset") oChnT.UnitSymbol = "K" Set oChnT = Data.Root.ChannelGroups(2).Channels("Speed") Call DataBlAppend(oChn,1,oChn.Size,oChnT) Call ChnCharacter(oChnT) '300 to 2500 rpm Call ChnLinScale(oChnT,oChnT,1000,MaxV(300-oChn.Minimum,300)) Set oChnT = Data.Root.ChannelGroups(2).Channels("Torque") Call DataBlAppend(oChn,1,oChn.Size,oChnT) Call ChnCharacter(oChnT) Call ChnLinScale(oChnT,oChnT,250,25) 'Modify the Data channel Call ChnLinScale(oChn, oChn, 50, 5) Call ChnReciprocal(oChn, oChn) Call ChnLinScale(oChn, oChn, 1000, 0) Set oChnT = Data.Root.ChannelGroups(2).Channels("Acceleration") Call DataBlAppend(oChn,1,oChn.Size,oChnT) Call ChnCharacter(oChnT) Call ChnLinScale(oChnT,oChnT,1,0) 'Modify the Noise channel Set oChn = Data.Root.ChannelGroups("TempGroup").Channels("Noise") Call ChnReciprocal(oChn, oChn) Call ChnOffset(oChn, oChn, oChn.Size, "min. value offset") Set oChnT = Data.Root.ChannelGroups(2).Channels("Power") Call DataBlAppend(oChn,1,oChn.Size,oChnT) Call ChnCharacter(oChnT) Set oChn = Nothing: Set oChnT = Nothing: Set oGrp = Nothing Call Data.Root.ChannelGroups("TempGroup").Channels.Remove("Noise") Call Data.Root.ChannelGroups("TempGroup").Channels.Remove("Data") Call Data.Root.ChannelGroups("TempGroup").Channels.Remove("Time") Call Data.Root.ChannelGroups.Remove("TempGroup") Call ChnCharacterAll() ChnCommentOver = bChnCommentOver Call LoopDeInit() 'Add the properties Call MsgLineDisp("Adding file properties..") For Each sPropName in oFileProps vPropVal = oFileProps(sPropName) Select Case VarType(vPropVal) Case vbInteger, vbLong, vbByte Call Data.Root.Properties.Add(sPropName, vPropVal, DataTypeInt32) Case vbSingle, vbDouble, vbCurrency, vbDecimal Call Data.Root.Properties.Add(sPropName, vPropVal, DataTypeFloat64) Case vbDate Call Data.Root.Properties.Add(sPropName, vPropVal, DataTypeDate) Case vbString Call Data.Root.Properties.Add(sPropName, vPropVal, DataTypeString) Case Else 'vbEmpty, vbNull, vbObject, vbError, vbVariant, vbByte, vbArray Call LogFileWrite(vbTab & "ERROR - the VarType of '" & sPropName & "' is " & VarType(vPropVal) & vbTab & "'" & vPropVal & "'") End Select Next Call StopWatchPause(dpTimer) dCreateSampleNumericChnDataInDataPortal = Round(StopWatch(dpTimer),1) Call MsgLineDisp(vbTab) End Function 'dCreateSampleNumericChnDataInDataPortal() '------------------------------------------------------------------------------- Function b2dPlotToViewByElementList(ByVal oElementList) 'Creates a 2D plot in View of the data channels in oElementList. 'oElementList must contain at least 2 channels, and one of them 'must be a Time, DateTime, or DataType = DataTypeChnDate. 'Returns TRUE if successful. b2dPlotToViewByElementList = False If Not IsObject(oElementList) Then Exit Function If oElementList.Count = 0 Then Exit Function Dim oElement, oChnX, iChns 'Find the x-axis channel within oElementList For Each oElement in oElementList If oElement.IsKindOf(eDataChannel) Then iChns = iChns + 1 If (Not IsObject(oChnX)) AND (oElement.Name = "Time" or oElement.Name = "DateTime" or oElement.DataType = DataTypeChnDate ) Then Set oChnX = oElement End If 'oElement.Name End If 'oElement.IsKindOf() Next 'oElement If Not IsObject(oChnX) Then Call LogFileWrite("ERROR - time / datetime channel not found in oElementList. Fn b2dPlotToViewByElementList()") Exit Function End If If iChns < 2 Then Call LogFileWrite("ERROR - insufficient channels passed in oElementList to Fn b2dPlotToViewByElementList()") Exit Function End If 'Delete any sheets that exist Call View.Sheets.RemoveAll() Call View.NewLayout() 'Add a single area with a 2D curve Dim oArea, oChnDateTime, oChn Set oArea = View.ActiveSheet.ActiveArea oArea.DisplayObjType = "CurveChart2D" 'Add channels to the curve For Each oElement in oElementList If oElement.IsKindOf(eDataChannel) Then If Not oElement.Name = oChnX.Name Then Call oArea.DisplayObj.Curves.Add(oChnX.GetReference(eRefTypeIndexIndex),oElement.GetReference(eRefTypeIndexIndex)) End If End If 'oElement.IsKindOf() Next 'oElement oArea.DisplayObj.YScaling = "n systems [phys.]" View.ActiveSheet.ActiveArea.DisplayObj.XScalingMode = "RangeFull" View.Refresh() Set oChnX = Nothing: Set oChn = Nothing: Set oArea = Nothing b2dPlotToViewByElementList = True End Function 'b2dPlotToViewByElementList() '------------------------------------------------------------------------------- ÍͺÿÿÿÿÍͺÿþÿÿÿ ToComboRtÍͺÿþÿChnY2H;ãJÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿChnY2_EventChangeÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÿÿÿþÿDefaultÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿÿÿÿÍͺÿþÿ ÍͺÿÿÿÿÿþÿÍͺÍͺÍͺÿþÿÿÿÿÿÍͺÍͺÍͺÍͺÍͺ€ÍͺÿþÿChnY1H"ã2Íͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿChnY1_EventChangeÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÿÿÿþÿDefaultÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿÿÿÿÍͺÿþÿ ÍͺÿÿÿÿÿþÿÍͺÍͺÍͺÿþÿÿÿÿÿÍͺÍͺÍͺÍͺÍͺ€ÍͺÿþÿChnGrpH ãÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿChnGrp_EventChangeÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿChnGrp_EventInitializeÿÿÿþÿÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿÿÿÿÍͺÿþÿ ÍͺÿÿÿÿÿþÿÍͺÍͺÍͺÿþÿÿÿÿÿÍͺÍͺÍͺÍͺÍͺÿÿ ToBtnRteObÍͺÿþÿCancel›VáeÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÿÿÿþÿÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿþÿCancelÍͺÿþÿÿÿÿÿÿÿÿÿÍͺÿþÿÿÿÿÿÍͺÍͺÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÍͺÍͺ€ÍͺÿþÿOKKU‘dÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÿÿÿþÿÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿþÿOKÍͺÿþÿÿÿÿÿÿÿÿÿÍͺÿþÿÿÿÿÿÍͺÍͺÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÍͺÍͺÿÿToStaticCtrlRtÍͺÿþÿlbl_Y2;KKÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÿÿÿþÿDefaultÍͺÿÿÍͺccÿÿÿÿÍͺccÿÿÿÿÍͺccÿÿÿÿÍͺccÿÿÿÿÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿÿÿÿcÿÿÿÿÍͺÿþÿ Y channel 2ÍͺÿþÿÍͺÍͺhÍͺÍͺÍͺÍͺ €Íͺÿþÿlbl_Y1"K2Íͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÿÿÿþÿDefaultÍͺÿÿÍͺccÿÿÿÿÍͺccÿÿÿÿÍͺccÿÿÿÿÍͺccÿÿÿÿÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿÿÿÿcÿÿÿÿÍͺÿþÿ Y channel 1ÍͺÿþÿÍͺÍͺhÍͺÍͺÍͺÍͺ €Íͺÿþÿ lbl_ChnGrp KÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿþÿ1¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÿÿÿþÿÍͺÿÿÍͺccÿÿÿÿÍͺccÿÿÿÿÍͺccÿÿÿÿÍͺccÿÿÿÿÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿÿÿÿcÿÿÿÿÍͺÿþÿ Channel GroupÍͺÿþÿÍͺÍͺYÍͺÍͺÍͺÍͺÿÿ ToSudViewObÍͺÿÿÿÿð?ÿÿXÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿDialog_EventInitializeÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿ(Declarations)Íͺÿþÿÿþÿÿþÿ DlgNonModalÍͺÿþÿDefaultÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿþÿ0.0¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÿÿÿÿÿþÿ¥¥¥¥ÿþÿÍͺÍͺ