From 031beaff14bd3dd27d4e3da3e4cd49f14d117063 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 24 Oct 2017 17:21:02 +0200 Subject: [PATCH] Spostato progetto IOB-WIN in repo dedicato MAPO-IOB-WIN --- IOB-WIN/CncLib/App/App.Native.Ini.vb | 113 - IOB-WIN/CncLib/CNC/CNC.FANUC/CNC.FANUC.vb | 1848 - .../CncLib/CNC/CNC.FANUC/_/CNC.FANUC.Err.vb | 65 - IOB-WIN/CncLib/CNC/CNC.FANUC/_/fwlib32.vb | 10952 ------ IOB-WIN/CncLib/CNC/CNC.OSAI/CNC.OSAI.vb | 910 - IOB-WIN/CncLib/CNC/CNC.OSAI/CNC.OSAI_SOAP.vb | 1154 - IOB-WIN/CncLib/CNC/CNC.Runtime.vb | 54 - IOB-WIN/CncLib/CNC/CNC.SIEMENS/CNC.SIEMENS.vb | 1147 - IOB-WIN/CncLib/CNC/CNC/CNC.CNC.vb | 239 - IOB-WIN/CncLib/CncLib.vbproj | 646 - IOB-WIN/CncLib/CndexLinkDotNet.dll | Bin 46080 -> 0 bytes IOB-WIN/CncLib/Config/Config.Options.vb | 294 - IOB-WIN/CncLib/Config/Config.Settings.vb | 698 - ...ens.Sinumerik.Operate.Services.Wrapper.dll | Bin 996200 -> 0 bytes .../Siemens.Sinumerik.Operate.Services.dll | Bin 230248 -> 0 bytes IOB-WIN/CncLib/Modules/Conversions.vb | 167 - IOB-WIN/CncLib/Modules/General.vb | 83 - .../CncLib/My Project/Application.Designer.vb | 13 - IOB-WIN/CncLib/My Project/Application.myapp | 10 - IOB-WIN/CncLib/My Project/AssemblyInfo.vb | 24 - .../CncLib/My Project/Resources.Designer.vb | 63 - IOB-WIN/CncLib/My Project/Resources.resx | 117 - .../CncLib/My Project/Settings.Designer.vb | 73 - IOB-WIN/CncLib/My Project/Settings.settings | 7 - .../CMSCncLib.OPENcontrol.AxesRefR.datasource | 10 - ...CMSCncLib.OPENcontrol.BootModeR.datasource | 10 - ...b.OPENcontrol.BootPhaseEnquiryR.datasource | 10 - ...SCncLib.OPENcontrol.BootRebootR.datasource | 10 - ...ncLib.OPENcontrol.BootShutDownR.datasource | 10 - ...ncLib.OPENcontrol.CheckHistoryR.datasource | 10 - .../CMSCncLib.OPENcontrol.CycleR.datasource | 10 - .../CMSCncLib.OPENcontrol.DncDataR.datasource | 10 - .../CMSCncLib.OPENcontrol.DncEofR.datasource | 10 - .../CMSCncLib.OPENcontrol.DncInitR.datasource | 10 - .../CMSCncLib.OPENcontrol.DncStopR.datasource | 10 - .../CMSCncLib.OPENcontrol.EseExR.datasource | 10 - .../CMSCncLib.OPENcontrol.EseR.datasource | 10 - .../CMSCncLib.OPENcontrol.ExeR.datasource | 10 - ...ENcontrol.GetActivePartProgramR.datasource | 10 - ...ntrol.GetAvailableCustomEventsR.datasource | 10 - ...Lib.OPENcontrol.GetAxOriginNumR.datasource | 10 - ...ncLib.OPENcontrol.GetAxesInfo3R.datasource | 10 - ...ib.OPENcontrol.GetAxesPositionR.datasource | 10 - ...cLib.OPENcontrol.GetBinaryFileR.datasource | 10 - ...MSCncLib.OPENcontrol.GetBlkNumR.datasource | 10 - ...ncLib.OPENcontrol.GetCNCRegKeyR.datasource | 10 - ...cLib.OPENcontrol.GetCodeNumberR.datasource | 10 - ...CncLib.OPENcontrol.GetDateTimeR.datasource | 10 - .../CMSCncLib.OPENcontrol.GetFileR.datasource | 10 - ...CMSCncLib.OPENcontrol.GetGCodeR.datasource | 10 - ...CMSCncLib.OPENcontrol.GetHWKeyR.datasource | 10 - ...CMSCncLib.OPENcontrol.GetMCodeR.datasource | 10 - ...cLib.OPENcontrol.GetMarkerInfoR.datasource | 10 - ...SCncLib.OPENcontrol.GetNcInfo1R.datasource | 10 - ...SCncLib.OPENcontrol.GetNcInfo2R.datasource | 10 - ...ENcontrol.GetOffsetTabRecordIIR.datasource | 10 - ...SCncLib.OPENcontrol.GetOptionsR.datasource | 10 - ...ENcontrol.GetOriginTabRecordIIR.datasource | 10 - ...cLib.OPENcontrol.GetPTechSizesR.datasource | 10 - ...PENcontrol.GetPartProgramLinesR.datasource | 10 - ...Lib.OPENcontrol.GetProcInInputR.datasource | 10 - ...b.OPENcontrol.GetProcVarDoubleR.datasource | 10 - ...Lib.OPENcontrol.GetProcVarWordR.datasource | 10 - ....OPENcontrol.GetProcessConfNumR.datasource | 10 - ...b.OPENcontrol.GetProcessStatusR.datasource | 10 - ...OPENcontrol.GetSelectedProcessR.datasource | 10 - ...ib.OPENcontrol.GetSerialNumberR.datasource | 10 - ...CncLib.OPENcontrol.GetServoParR.datasource | 10 - ...SCncLib.OPENcontrol.GetSysTickR.datasource | 10 - ...ncLib.OPENcontrol.GetToolNamesR.datasource | 10 - ...OPENcontrol.GetToolTabRecordIIR.datasource | 10 - ...OPENcontrol.GetUserTabRecordIIR.datasource | 10 - ...MSCncLib.OPENcontrol.GetVarJOGR.datasource | 10 - ...MSCncLib.OPENcontrol.GetVarRCMR.datasource | 10 - .../CMSCncLib.OPENcontrol.HoldR.datasource | 10 - ...MSCncLib.OPENcontrol.LoadPTechR.datasource | 10 - ...CncLib.OPENcontrol.LockTableIIR.datasource | 10 - ...cLib.OPENcontrol.LogFSAddDriveR.datasource | 10 - ...Ncontrol.LogFSChangeFileAttribR.datasource | 10 - ...Lib.OPENcontrol.LogFSCloseFileR.datasource | 10 - ...cLib.OPENcontrol.LogFSCopyFileR.datasource | 10 - ...Lib.OPENcontrol.LogFSCreateDirR.datasource | 10 - ...ib.OPENcontrol.LogFSCreateFileR.datasource | 10 - ...Lib.OPENcontrol.LogFSFindCloseR.datasource | 10 - ...Lib.OPENcontrol.LogFSFindFirstR.datasource | 10 - ...cLib.OPENcontrol.LogFSFindNextR.datasource | 10 - ....OPENcontrol.LogFSGetDriveListR.datasource | 10 - ....OPENcontrol.LogFSGetDrivePathR.datasource | 10 - ...OPENcontrol.LogFSGetFileAttribR.datasource | 10 - ...b.OPENcontrol.LogFSGetFileSizeR.datasource | 10 - ...ontrol.LogFSGetHiddenDriveListR.datasource | 10 - ...ncLib.OPENcontrol.LogFSGetInfoR.datasource | 10 - ...b.OPENcontrol.LogFSGetNumDriveR.datasource | 10 - ...Ncontrol.LogFSGetSecurityLevelR.datasource | 10 - ...OPENcontrol.LogFSLongFileNamesR.datasource | 10 - ...cLib.OPENcontrol.LogFSOpenFileR.datasource | 10 - ...ib.OPENcontrol.LogFSReadRecordR.datasource | 10 - ...ENcontrol.LogFSReloadDriveListR.datasource | 10 - ...Lib.OPENcontrol.LogFSRemoveDirR.datasource | 10 - ...b.OPENcontrol.LogFSRemoveDriveR.datasource | 10 - ...ib.OPENcontrol.LogFSRemoveFileR.datasource | 10 - ...CncLib.OPENcontrol.LogFSRenameR.datasource | 10 - ...OPENcontrol.LogFSSetFileAttribR.datasource | 10 - ...Ncontrol.LogFSSetSecurityLevelR.datasource | 10 - ...b.OPENcontrol.LogFSWriteRecordR.datasource | 10 - ....OPENcontrol.ManagePartProgramR.datasource | 10 - ...Lib.OPENcontrol.MonAddVariableR.datasource | 10 - ...ib.OPENcontrol.MonCloseChannelR.datasource | 10 - ....OPENcontrol.MonDeleteVariableR.datasource | 10 - ...Lib.OPENcontrol.MonGetVariableR.datasource | 10 - ...Lib.OPENcontrol.MonOpenChannelR.datasource | 10 - ...b.OPENcontrol.MonStartSamplingR.datasource | 10 - ...ib.OPENcontrol.MonStopSamplingR.datasource | 10 - ...cLib.OPENcontrol.PutBinaryFileR.datasource | 10 - .../CMSCncLib.OPENcontrol.PutFileR.datasource | 10 - ...Ncontrol.ReadCurrentAnomalyMsgR.datasource | 10 - ...PENcontrol.ReadCurrentEmergMsgR.datasource | 10 - ...PENcontrol.ReadCurrentErrorMsgR.datasource | 10 - ...SCncLib.OPENcontrol.ReadErrMsgR.datasource | 10 - ...Ncontrol.ReadHistoryAnomalyMsgR.datasource | 10 - ...PENcontrol.ReadHistoryEmergMsgR.datasource | 10 - ...PENcontrol.ReadHistoryErrorMsgR.datasource | 10 - ....OPENcontrol.ReadHistoryLogMsgR.datasource | 10 - ...OPENcontrol.ReadPartProgramMsgR.datasource | 10 - ...ENcontrol.ReadRemapDefinitionsR.datasource | 10 - ...cLib.OPENcontrol.ReadVarDoubleR.datasource | 10 - ...CncLib.OPENcontrol.ReadVarTextR.datasource | 10 - ...CncLib.OPENcontrol.ReadVarWordR.datasource | 10 - ...Lib.OPENcontrol.ReadWarningMsgR.datasource | 10 - .../CMSCncLib.OPENcontrol.ResetR.datasource | 10 - ...OPENcontrol.ResetSingleTableIIR.datasource | 10 - ...PENcontrol.RestoreBackupMemoryR.datasource | 10 - ...OPENcontrol.RestoreSingleTableR.datasource | 10 - ...b.OPENcontrol.SaveBackupMemoryR.datasource | 10 - ...ib.OPENcontrol.SaveSingleTableR.datasource | 10 - ...SCncLib.OPENcontrol.SaveTablesR.datasource | 10 - ...rol.SelectPartProgramFromDriveR.datasource | 10 - ....OPENcontrol.SelectPartProgramR.datasource | 10 - ...Lib.OPENcontrol.SelectProcAxisR.datasource | 10 - ...cLib.OPENcontrol.SelectProcessR.datasource | 10 - ...CncLib.OPENcontrol.SetDateTimeR.datasource | 10 - ...Lib.OPENcontrol.SetFeedManOverR.datasource | 10 - ...b.OPENcontrol.SetFeedRapidOverR.datasource | 10 - ...ib.OPENcontrol.SetFeedRateOverR.datasource | 10 - ...ncLib.OPENcontrol.SetIpAddressR.datasource | 10 - ...OPENcontrol.SetManMovDirectionR.datasource | 10 - ...ncLib.OPENcontrol.SetMdiStringR.datasource | 10 - ...ENcontrol.SetOffsetTabRecordIIR.datasource | 10 - ...ENcontrol.SetOriginTabRecordIIR.datasource | 10 - ...b.OPENcontrol.SetProcVarDoubleR.datasource | 10 - ...Lib.OPENcontrol.SetProcVarWordR.datasource | 10 - ...Lib.OPENcontrol.SetProcessModeR.datasource | 10 - ...CncLib.OPENcontrol.SetServoParR.datasource | 10 - ...b.OPENcontrol.SetSpeedRateOverR.datasource | 10 - ...OPENcontrol.SetToolTabRecordIIR.datasource | 10 - ...OPENcontrol.SetUserTabRecordIIR.datasource | 10 - ...MSCncLib.OPENcontrol.SetVarJOGR.datasource | 10 - ...MSCncLib.OPENcontrol.SetVarRCMR.datasource | 10 - ...MSCncLib.OPENcontrol.SetVarUASR.datasource | 10 - ...Lib.OPENcontrol.SkipPProgBlockR.datasource | 10 - ...Lib.OPENcontrol.SndProcInpDataR.datasource | 10 - ...CncLib.OPENcontrol.SyncroCycleR.datasource | 10 - ...cLib.OPENcontrol.UnLockTableIIR.datasource | 10 - ...Ncontrol.WriteRemapDefinitionsR.datasource | 10 - ...Lib.OPENcontrol.WriteVarDoubleR.datasource | 10 - ...ncLib.OPENcontrol.WriteVarTextR.datasource | 10 - ...ib.OPENcontrol.WriteVarWordBitR.datasource | 10 - ...ncLib.OPENcontrol.WriteVarWordR.datasource | 10 - .../OPENcontrol/OPENcontrol.wsdl | 5895 ---- .../OPENcontrol/Reference.svcmap | 30 - .../OPENcontrol/Reference.vb | 29126 ---------------- .../OPENcontrol/configuration.svcinfo | 10 - .../OPENcontrol/configuration91.svcinfo | 201 - IOB-WIN/CncLib/app.config | 33 - IOB-WIN/IOB-UT/BinaryFormatter.cs | 136 - IOB-WIN/IOB-UT/IOB-UT.csproj | 63 - IOB-WIN/IOB-UT/IniFile.cs | 247 - IOB-WIN/IOB-UT/NLog.config | 41 - IOB-WIN/IOB-UT/NLog.xsd | 3103 -- IOB-WIN/IOB-UT/Properties/AssemblyInfo.cs | 36 - IOB-WIN/IOB-UT/baseUtils.cs | 990 - IOB-WIN/IOB-UT/packages.config | 6 - IOB-WIN/IOB-WIN.sln | 82 - IOB-WIN/IOB-WIN/App.config | 75 - IOB-WIN/IOB-WIN/DATA/CONF/IOB.ini | 37 - IOB-WIN/IOB-WIN/DATA/DAT/PersistData.dat | 1 - IOB-WIN/IOB-WIN/DATA/DAT/SimData.dat | 959 - IOB-WIN/IOB-WIN/IOB-WIN.csproj | 154 - IOB-WIN/IOB-WIN/IobConfiguration.cs | 120 - IOB-WIN/IOB-WIN/IobDemo.cs | 21 - IOB-WIN/IOB-WIN/IobFanuc.cs | 255 - IOB-WIN/IOB-WIN/IobGeneric.cs | 1202 - IOB-WIN/IOB-WIN/IobSiemens.cs | 21 - IOB-WIN/IOB-WIN/MainForm.Designer.cs | 657 - IOB-WIN/IOB-WIN/MainForm.cs | 946 - IOB-WIN/IOB-WIN/MainForm.resx | 138 - IOB-WIN/IOB-WIN/NLog.config | 54 - IOB-WIN/IOB-WIN/NLog.xsd | 3103 -- IOB-WIN/IOB-WIN/Program.cs | 25 - IOB-WIN/IOB-WIN/Properties/AssemblyInfo.cs | 22 - .../IOB-WIN/Properties/Resources.Designer.cs | 71 - IOB-WIN/IOB-WIN/Properties/Resources.resx | 117 - .../IOB-WIN/Properties/Settings.Designer.cs | 30 - IOB-WIN/IOB-WIN/Properties/Settings.settings | 7 - IOB-WIN/IOB-WIN/Readme/ToDo.txt | 17 - IOB-WIN/IOB-WIN/Resources/SteamWare.ico | Bin 279582 -> 0 bytes IOB-WIN/IOB-WIN/dump/build.bat | 1 - IOB-WIN/IOB-WIN/dump/dump.c | 184 - IOB-WIN/IOB-WIN/dump/dump.exe | Bin 112128 -> 0 bytes IOB-WIN/IOB-WIN/logs/.placeholder.txt | 1 - IOB-WIN/IOB-WIN/packages.config | 7 - IOB-WIN/IOB-WIN/postBuildTgt.bat | 77 - IOB-WIN/IOB-WIN/setupTgt.bat | 84 - IOB-WIN/IOB-WIN/utils.cs | 108 - IOB-WIN/README.md | 39 - IOB-WIN/README.pdf | Bin 17031 -> 0 bytes IOB-WIN/VersGen/App.config | 6 - IOB-WIN/VersGen/Properties/AssemblyInfo.cs | 32 - IOB-WIN/VersGen/VersGen.cs | 11 - IOB-WIN/VersGen/VersGen.csproj | 77 - IOB-WIN/VersGen/VersGen.tt | 12 - 221 files changed, 68787 deletions(-) delete mode 100644 IOB-WIN/CncLib/App/App.Native.Ini.vb delete mode 100644 IOB-WIN/CncLib/CNC/CNC.FANUC/CNC.FANUC.vb delete mode 100644 IOB-WIN/CncLib/CNC/CNC.FANUC/_/CNC.FANUC.Err.vb delete mode 100644 IOB-WIN/CncLib/CNC/CNC.FANUC/_/fwlib32.vb delete mode 100644 IOB-WIN/CncLib/CNC/CNC.OSAI/CNC.OSAI.vb delete mode 100644 IOB-WIN/CncLib/CNC/CNC.OSAI/CNC.OSAI_SOAP.vb delete mode 100644 IOB-WIN/CncLib/CNC/CNC.Runtime.vb delete mode 100644 IOB-WIN/CncLib/CNC/CNC.SIEMENS/CNC.SIEMENS.vb delete mode 100644 IOB-WIN/CncLib/CNC/CNC/CNC.CNC.vb delete mode 100644 IOB-WIN/CncLib/CncLib.vbproj delete mode 100644 IOB-WIN/CncLib/CndexLinkDotNet.dll delete mode 100644 IOB-WIN/CncLib/Config/Config.Options.vb delete mode 100644 IOB-WIN/CncLib/Config/Config.Settings.vb delete mode 100644 IOB-WIN/CncLib/ExtLib/Siemens.Sinumerik.Operate.Services.Wrapper.dll delete mode 100644 IOB-WIN/CncLib/ExtLib/Siemens.Sinumerik.Operate.Services.dll delete mode 100644 IOB-WIN/CncLib/Modules/Conversions.vb delete mode 100644 IOB-WIN/CncLib/Modules/General.vb delete mode 100644 IOB-WIN/CncLib/My Project/Application.Designer.vb delete mode 100644 IOB-WIN/CncLib/My Project/Application.myapp delete mode 100644 IOB-WIN/CncLib/My Project/AssemblyInfo.vb delete mode 100644 IOB-WIN/CncLib/My Project/Resources.Designer.vb delete mode 100644 IOB-WIN/CncLib/My Project/Resources.resx delete mode 100644 IOB-WIN/CncLib/My Project/Settings.Designer.vb delete mode 100644 IOB-WIN/CncLib/My Project/Settings.settings delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.AxesRefR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootModeR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootPhaseEnquiryR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootRebootR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootShutDownR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.CheckHistoryR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.CycleR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncDataR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncEofR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncInitR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncStopR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.EseExR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.EseR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ExeR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetActivePartProgramR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAvailableCustomEventsR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAxOriginNumR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAxesInfo3R.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAxesPositionR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetBinaryFileR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetBlkNumR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetCNCRegKeyR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetCodeNumberR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetDateTimeR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetFileR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetGCodeR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetHWKeyR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetMCodeR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetMarkerInfoR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetNcInfo1R.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetNcInfo2R.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetOffsetTabRecordIIR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetOptionsR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetOriginTabRecordIIR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetPTechSizesR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetPartProgramLinesR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcInInputR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcVarDoubleR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcVarWordR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcessConfNumR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcessStatusR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetSelectedProcessR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetSerialNumberR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetServoParR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetSysTickR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetToolNamesR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetToolTabRecordIIR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetUserTabRecordIIR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetVarJOGR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetVarRCMR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.HoldR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LoadPTechR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LockTableIIR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSAddDriveR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSChangeFileAttribR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCloseFileR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCopyFileR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCreateDirR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCreateFileR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSFindCloseR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSFindFirstR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSFindNextR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetDriveListR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetDrivePathR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetFileAttribR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetFileSizeR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetHiddenDriveListR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetInfoR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetNumDriveR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetSecurityLevelR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSLongFileNamesR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSOpenFileR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSReadRecordR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSReloadDriveListR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRemoveDirR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRemoveDriveR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRemoveFileR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRenameR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSSetFileAttribR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSSetSecurityLevelR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSWriteRecordR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ManagePartProgramR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonAddVariableR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonCloseChannelR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonDeleteVariableR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonGetVariableR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonOpenChannelR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonStartSamplingR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonStopSamplingR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.PutBinaryFileR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.PutFileR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadCurrentAnomalyMsgR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadCurrentEmergMsgR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadCurrentErrorMsgR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadErrMsgR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryAnomalyMsgR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryEmergMsgR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryErrorMsgR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryLogMsgR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadPartProgramMsgR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadRemapDefinitionsR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadVarDoubleR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadVarTextR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadVarWordR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadWarningMsgR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ResetR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ResetSingleTableIIR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.RestoreBackupMemoryR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.RestoreSingleTableR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SaveBackupMemoryR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SaveSingleTableR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SaveTablesR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectPartProgramFromDriveR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectPartProgramR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectProcAxisR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectProcessR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetDateTimeR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetFeedManOverR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetFeedRapidOverR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetFeedRateOverR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetIpAddressR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetManMovDirectionR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetMdiStringR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetOffsetTabRecordIIR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetOriginTabRecordIIR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetProcVarDoubleR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetProcVarWordR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetProcessModeR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetServoParR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetSpeedRateOverR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetToolTabRecordIIR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetUserTabRecordIIR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetVarJOGR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetVarRCMR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetVarUASR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SkipPProgBlockR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SndProcInpDataR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SyncroCycleR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.UnLockTableIIR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteRemapDefinitionsR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarDoubleR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarTextR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarWordBitR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarWordR.datasource delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/OPENcontrol.wsdl delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/Reference.svcmap delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/Reference.vb delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/configuration.svcinfo delete mode 100644 IOB-WIN/CncLib/Service References/OPENcontrol/configuration91.svcinfo delete mode 100644 IOB-WIN/CncLib/app.config delete mode 100644 IOB-WIN/IOB-UT/BinaryFormatter.cs delete mode 100644 IOB-WIN/IOB-UT/IOB-UT.csproj delete mode 100644 IOB-WIN/IOB-UT/IniFile.cs delete mode 100644 IOB-WIN/IOB-UT/NLog.config delete mode 100644 IOB-WIN/IOB-UT/NLog.xsd delete mode 100644 IOB-WIN/IOB-UT/Properties/AssemblyInfo.cs delete mode 100644 IOB-WIN/IOB-UT/baseUtils.cs delete mode 100644 IOB-WIN/IOB-UT/packages.config delete mode 100644 IOB-WIN/IOB-WIN.sln delete mode 100644 IOB-WIN/IOB-WIN/App.config delete mode 100644 IOB-WIN/IOB-WIN/DATA/CONF/IOB.ini delete mode 100644 IOB-WIN/IOB-WIN/DATA/DAT/PersistData.dat delete mode 100644 IOB-WIN/IOB-WIN/DATA/DAT/SimData.dat delete mode 100644 IOB-WIN/IOB-WIN/IOB-WIN.csproj delete mode 100644 IOB-WIN/IOB-WIN/IobConfiguration.cs delete mode 100644 IOB-WIN/IOB-WIN/IobDemo.cs delete mode 100644 IOB-WIN/IOB-WIN/IobFanuc.cs delete mode 100644 IOB-WIN/IOB-WIN/IobGeneric.cs delete mode 100644 IOB-WIN/IOB-WIN/IobSiemens.cs delete mode 100644 IOB-WIN/IOB-WIN/MainForm.Designer.cs delete mode 100644 IOB-WIN/IOB-WIN/MainForm.cs delete mode 100644 IOB-WIN/IOB-WIN/MainForm.resx delete mode 100644 IOB-WIN/IOB-WIN/NLog.config delete mode 100644 IOB-WIN/IOB-WIN/NLog.xsd delete mode 100644 IOB-WIN/IOB-WIN/Program.cs delete mode 100644 IOB-WIN/IOB-WIN/Properties/AssemblyInfo.cs delete mode 100644 IOB-WIN/IOB-WIN/Properties/Resources.Designer.cs delete mode 100644 IOB-WIN/IOB-WIN/Properties/Resources.resx delete mode 100644 IOB-WIN/IOB-WIN/Properties/Settings.Designer.cs delete mode 100644 IOB-WIN/IOB-WIN/Properties/Settings.settings delete mode 100644 IOB-WIN/IOB-WIN/Readme/ToDo.txt delete mode 100644 IOB-WIN/IOB-WIN/Resources/SteamWare.ico delete mode 100644 IOB-WIN/IOB-WIN/dump/build.bat delete mode 100644 IOB-WIN/IOB-WIN/dump/dump.c delete mode 100644 IOB-WIN/IOB-WIN/dump/dump.exe delete mode 100644 IOB-WIN/IOB-WIN/logs/.placeholder.txt delete mode 100644 IOB-WIN/IOB-WIN/packages.config delete mode 100644 IOB-WIN/IOB-WIN/postBuildTgt.bat delete mode 100644 IOB-WIN/IOB-WIN/setupTgt.bat delete mode 100644 IOB-WIN/IOB-WIN/utils.cs delete mode 100644 IOB-WIN/README.md delete mode 100644 IOB-WIN/README.pdf delete mode 100644 IOB-WIN/VersGen/App.config delete mode 100644 IOB-WIN/VersGen/Properties/AssemblyInfo.cs delete mode 100644 IOB-WIN/VersGen/VersGen.cs delete mode 100644 IOB-WIN/VersGen/VersGen.csproj delete mode 100644 IOB-WIN/VersGen/VersGen.tt diff --git a/IOB-WIN/CncLib/App/App.Native.Ini.vb b/IOB-WIN/CncLib/App/App.Native.Ini.vb deleted file mode 100644 index 67bbb0a..0000000 --- a/IOB-WIN/CncLib/App/App.Native.Ini.vb +++ /dev/null @@ -1,113 +0,0 @@ -Namespace App - Namespace Native - Public Class Ini - ' API functions - Private Declare Ansi Function GetPrivateProfileString _ - Lib "kernel32.dll" Alias "GetPrivateProfileStringA" _ - (ByVal lpApplicationName As String, _ - ByVal lpKeyName As String, ByVal lpDefault As String, _ - ByVal lpReturnedString As System.Text.StringBuilder, _ - ByVal nSize As Integer, ByVal lpFileName As String) _ - As Integer - - Private Declare Ansi Function WritePrivateProfileString _ - Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _ - (ByVal lpApplicationName As String, _ - ByVal lpKeyName As String, ByVal lpString As String, _ - ByVal lpFileName As String) As Integer - - Private Declare Ansi Function GetPrivateProfileInt _ - Lib "kernel32.dll" Alias "GetPrivateProfileIntA" _ - (ByVal lpApplicationName As String, _ - ByVal lpKeyName As String, ByVal nDefault As Integer, _ - ByVal lpFileName As String) As Integer - - Private Declare Ansi Function FlushPrivateProfileString _ - Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _ - (ByVal lpApplicationName As Integer, _ - ByVal lpKeyName As Integer, ByVal lpString As Integer, _ - ByVal lpFileName As String) As Integer - - Dim strFilename As String - - ' Constructor, accepting a filename - Public Sub New(ByVal Filename As String) - - strFilename = Filename - - End Sub - - ' Read-only filename property - ReadOnly Property FileName() As String - Get - Return strFilename - End Get - End Property - - Public Function GetString(ByVal Section As String, ByVal Key As String, ByVal [Default] As String) As String - - ' Returns a string from your INI file - Dim intCharCount As Integer - Dim objResult As New System.Text.StringBuilder(256) - - intCharCount = GetPrivateProfileString(Section, Key, _ - [Default], objResult, objResult.Capacity, strFilename) - - If intCharCount > 0 Then - Return Left(objResult.ToString, intCharCount) - Else - Return "" - End If - - End Function - - Public Function GetInteger(ByVal Section As String, ByVal Key As String, ByVal [Default] As Integer) As Integer - - ' Returns an integer from your INI file - Return GetPrivateProfileInt(Section, Key, _ - [Default], strFilename) - - End Function - - Public Function GetBoolean(ByVal Section As String, ByVal Key As String, ByVal [Default] As Boolean) As Boolean - - ' Returns a boolean from your INI file - Return (GetPrivateProfileInt(Section, Key, _ - CInt([Default]), strFilename) = 1) - - End Function - - Public Sub WriteString(ByVal Section As String, ByVal Key As String, ByVal Value As String) - - ' Writes a string to your INI file - WritePrivateProfileString(Section, Key, Value, strFilename) - Flush() - - End Sub - - Public Sub WriteInteger(ByVal Section As String, ByVal Key As String, ByVal Value As Integer) - - ' Writes an integer to your INI file - WriteString(Section, Key, CStr(Value)) - Flush() - - End Sub - - Public Sub WriteBoolean(ByVal Section As String, ByVal Key As String, ByVal Value As Boolean) - - ' Writes a boolean to your INI file - WriteString(Section, Key, CStr(CInt(Value))) - Flush() - - End Sub - - Private Sub Flush() - - ' Stores all the cached changes to your INI file - FlushPrivateProfileString(0, 0, 0, strFilename) - - End Sub - End Class - - End Namespace -End Namespace \ No newline at end of file diff --git a/IOB-WIN/CncLib/CNC/CNC.FANUC/CNC.FANUC.vb b/IOB-WIN/CncLib/CNC/CNC.FANUC/CNC.FANUC.vb deleted file mode 100644 index 0b41332..0000000 --- a/IOB-WIN/CncLib/CNC/CNC.FANUC/CNC.FANUC.vb +++ /dev/null @@ -1,1848 +0,0 @@ -Imports CncLib.Config.Settings - -Namespace CNC - - Partial Public Class FANUC - Inherits CNC - - Const N_BYTE_TYPE = 0 - Const N_WORD_TYPE = 1 - Const N_DWORD_TYPE = 2 - Public Const G_PARAM = 0 - Public Const F_PARAM = 1 - Public Const Y_PARAM = 2 - Public Const X_PARAM = 3 - Public Const A_PARAM = 4 - Public Const R_PARAM = 5 - Public Const T_PARAM = 6 - Public Const K_PARAM = 7 - Public Const C_PARAM = 8 - Public Const D_PARAM = 9 - Public Const M_PARAM = 10 - Public Const N_PARAM = 11 - Public Const E_PARAM = 12 - Public Const Z_PARAM = 13 - Public Const CM_PARAM = 100 - - Const F_MAX_ITEM = 8 - Const F_MAX_MACRO = 5 - - - Public Enum MemType - G = 0 - F = 1 - Y = 2 - X = 3 - A = 4 - R = 5 - T = 6 - K = 7 - C = 8 - D = 9 - M = 10 - N = 11 - E = 12 - Z = 13 - CM = 100 - End Enum - - Private _connectionType As ConnectionType - Private _szIp As String - Private _nPortIp As Integer - Private _CncScreen_connectionType As ConnectionType - Private _nPathActive As Integer - Private _nMaxPath As Integer - Private _bMultiProcess As Boolean - Friend focas As Focas1 - Friend nLibHandle(1) As Integer - 'Private _err As New Err - - Private CncScreen_ProcessName As String - - Public Enum ConnectionType - Ethernet = 0 - Hssb = 1 - End Enum - - Private _Is16Series As Boolean - Public ReadOnly Property Is16Series() As Boolean - Get - Return _Is16Series - End Get - End Property - Private _Is30Series As Boolean = Not _Is16Series - Public ReadOnly Property Is30Series() As Boolean - Get - Return _Is30Series - End Get - End Property - - Public Overrides Property Licenza() As Integer - Get - Dim uiLicence As UInteger - 'leggo dal cn il valore - Me.F_RW_DWord(R, MemType.D, 7222, uiLicence) - Return UnsignedToInteger(uiLicence) - End Get - Set(ByVal value As Integer) - 'setto sul cn il valore - Dim uiLicence As UInteger = IntegerToUnsigned(value) - Me.F_RW_DWord(W, MemType.D, 7222, uiLicence) - End Set - End Property - - Public Overrides Property LicenzaScaduta() As Boolean - Get - Dim bLicenzaScaduta As Boolean - 'leggo dal cn il valore - Me.F_RW_Boolean(R, MemType.D, 7217, 5, bLicenzaScaduta) - Return bLicenzaScaduta - End Get - Set(ByVal value As Boolean) - 'setto sul cn il valore - Me.F_RW_Boolean(W, MemType.D, 7217, 5, value) - End Set - End Property - - Public Sub New(ByRef connectionType As ConnectionType, Optional ByRef szIp As String = "192.168.1.1", - Optional ByRef nPortIp As Integer = 8193, Optional ByRef CncScreenHssb As ConnectionType = FANUC.ConnectionType.Ethernet) - MyBase.New() - _Type = NcType.FANUC - - Try - focas = New Focas1 - Catch ex As Exception - MsgBox(ex.Message) - End Try - - _connectionType = connectionType - _szIp = szIp - _nPortIp = nPortIp - _CncScreen_connectionType = CncScreenHssb - - 'Inizializzo le variabili - Me._Descrizione = "NC FANUC" & vbNewLine - Select Case _connectionType - Case FANUC.ConnectionType.Ethernet - Me._Descrizione = Me._Descrizione & "Connection type: Ethernet" & vbNewLine & - "Ip address: " & _szIp & vbNewLine & - "Port: " & _nPortIp - Case FANUC.ConnectionType.Hssb - Me._Descrizione = Me._Descrizione & "Connection type: HSSB" & vbNewLine & - "Hssb node: " & Hssb_node.ToString - Case Else - Me._Descrizione = Me._Descrizione & "Connection type: " & _connectionType.ToString & " !!!" - End Select - - Select Case _CncScreen_connectionType - Case FANUC.ConnectionType.Ethernet - Me.CncScreen_ProcessName = "CNCScrnE" - Case FANUC.ConnectionType.Hssb - Me.CncScreen_ProcessName = "CNCScrn" - End Select - - End Sub - - Public Overrides Sub Connect(Optional ByRef szStatus As String = "") - Dim i As Integer - Dim nReturn As Integer - - Select Case _connectionType - Case ConnectionType.Ethernet - szStatus = "TRY cnc_allclibhndl3 Connect CNC.FANUC Ip=" & _szIp & " Port=" & _nPortIp - nReturn = Focas1.cnc_allclibhndl3(_szIp, _nPortIp, 5, nLibHandle(1)) - If F_CheckRetError_Cnc(nReturn, "cnc_allclibhndl3 Connect CNC.FANUC") Then - szStatus = "ERR cnc_allclibhndl3 Connect CNC.FANUC Return=" & nReturn - Focas1.cnc_freelibhndl(nLibHandle(1)) - _bConnected = False - Throw New NcException("ERR cnc_allclibhndl3 Connect CNC.FANUC") - Exit Sub - Else - 'leggo la serie del cnc - szStatus = "TRY F_GetCncSeries Connect CNC.FANUC" - F_GetCncSeries() - 'leggo il numero di processi e setto il primo - szStatus = "TRY cnc_getpath Connect CNC.FANUC" - nReturn = Focas1.cnc_getpath(nLibHandle(1), _nPathActive, _nMaxPath) - If F_CheckRetError_Cnc(nReturn, "cnc_getpath Connect CNC.FANUC") Then - szStatus = "ERR cnc_getpath Connect CNC.FANUC Return=" & nReturn - Focas1.cnc_freelibhndl(nLibHandle(1)) - _bConnected = False - Throw New NcException("ERR cnc_getpath Connect CNC.FANUC") - Exit Sub - Else - If _nMaxPath > 1 Then - _bMultiProcess = True - nReturn = Focas1.cnc_setpath(nLibHandle(1), 1) - If F_CheckRetError_Cnc(nReturn, "cnc_setpath Connect CNC.FANUC") Then - szStatus = "ERR cnc_setpath Connect CNC.FANUC Return=" & nReturn - Focas1.cnc_freelibhndl(nLibHandle(1)) - _bConnected = False - Throw New NcException("ERR cnc_setpath Connect CNC.FANUC") - Exit Sub - Else - ReDim Preserve nLibHandle(_nMaxPath) - For i = 2 To _nMaxPath - szStatus = "TRY cnc_allclibhndl3 Connect CNC.FANUC to Path " & i & " Ip=" & _szIp & " Port=" & _nPortIp - nReturn = Focas1.cnc_allclibhndl3(_szIp, _nPortIp, 5, nLibHandle(i)) - If F_CheckRetError_Cnc(nReturn, "cnc_allclibhndl3 Connect CNC.FANUC to Path " & i) Then - szStatus = "ERR cnc_allclibhndl3 Connect CNC.FANUC to Path " & i & " Return=" & nReturn - Focas1.cnc_freelibhndl(nLibHandle(i)) - _bConnected = False - Throw New NcException("ERR cnc_allclibhndl3 Connect CNC.FANUC to Path " & i) - Exit Sub - Else - nReturn = Focas1.cnc_setpath(nLibHandle(i), i) - If F_CheckRetError_Cnc(nReturn, "cnc_setpath Connect CNC.FANUCto Path " & i) Then - szStatus = "ERR cnc_setpath Connect CNC.FANUC to Path " & i & " Return=" & nReturn - Focas1.cnc_freelibhndl(nLibHandle(i)) - _bConnected = False - Throw New NcException("ERR cnc_setpath Connect CNC.FANUC to Path " & i) - Exit Sub - Else - _bConnected = True - End If - End If - Next i - End If - - Else - _bConnected = True - End If - End If - - End If - - Case ConnectionType.Hssb - Hssb_node = HSSB_DEFAULT_NODE - - szStatus = "TRY cnc_allclibhndl2 Connect CNC.FANUC" - nReturn = Focas1.cnc_allclibhndl2(Hssb_node, nLibHandle(1)) - If F_CheckRetError_Cnc(nReturn, "cnc_allclibhndl2 Connect CNC.FANUC") Then - szStatus = "ERR cnc_allclibhndl2 Connect CNC.FANUC Return=" & nReturn - Focas1.cnc_freelibhndl(nLibHandle(1)) - _bConnected = False - Throw New NcException("ERR cnc_allclibhndl2 Connect CNC.FANUC") - Exit Sub - Else - _bConnected = True - End If - End Select - - End Sub - - Public Overrides Sub Disconnect(Optional ByRef szStatus As String = "") - Dim i As Integer - Dim nReturn As Integer - - For i = 1 To UBound(nLibHandle) - nReturn = Focas1.cnc_freelibhndl(nLibHandle(i)) - If nReturn <> Focas1.EW_OK Then - _bConnected = False '? - Else - _bConnected = False - End If - Next i - End Sub - - ''' - ''' Get class series of CNC: 16 or 30 - ''' - ''' Series - ''' After, use Is16Series and Is30Series for discriminate - Public Function F_GetCncSeries() As Integer - Dim nReturn As Integer - Dim nOdb As Focas1.ODBSYS - Dim nSeries As Integer - - nOdb = New Focas1.ODBSYS - nReturn = Focas1.cnc_sysinfo(nLibHandle(1), nOdb) - If F_CheckRetError_Cnc(nReturn, "cnc_sysinfo F_GetCncSeries CNC.FANUC") Then - Throw New NcException("ERR cnc_sysinfo F_GetCncSeries CNC.FANUC") - Else - nSeries = Val(nOdb.cnc_type) - If nSeries >= 30 Then - _Is16Series = False - _Is30Series = True - Else - _Is16Series = True - _Is30Series = False - End If - End If - - Return nSeries - End Function - - ''' - ''' Legge le memorie di configurazione dal cn - ''' - Public Overrides Sub GetStaticData() - Dim usValue As UShort - Dim uiValue As UInteger - Dim cVal As Byte - - If Not bStaticDataReaded Then - - Try - 'Matricola - F_RW_Word(R, MemType.D, 4018, usValue) - Me._Matricola = usValue - 'Teste - F_RW_Word(R, MemType.D, 4032, usValue) - Me._Teste = usValue - 'Magazzini - F_RW_Word(R, MemType.D, 4036, usValue) - Me._Magazzini = usValue - - 'Manine per Magazzino - ReDim Me._ManineMagazzino(Me._Magazzini - 1) - Select Case Settings.MemoryMapping - Case MemoryMapping.ElsManager - Dim usValueA(8 - 1) As UShort - Dim cValueB(12 - 1) As Byte - F_RW_Word(R, MemType.D, 4038, usValueA) - F_RW_Byte(R, MemType.D, 6780, cValueB) - For i = 0 To Me._Magazzini - 1 - If i < 8 Then - _ManineMagazzino(i) = CInt(usValueA(i)) - Else - _ManineMagazzino(i) = CInt(cValueB(i)) - End If - Next - Case MemoryMapping.ToolManager, - MemoryMapping.ToolTable, - MemoryMapping.Default - Dim cValue(20 - 1) As Byte - F_RW_Byte(False, MemType.D, 3040, cValue) - For i = 0 To Me._Magazzini - 1 - Me._ManineMagazzino(i) = CInt(cValue(i)) - Next - End Select - - 'Magazzini Con Attrezzaggio Automatico (maschera) - F_RW_DWord(R, MemType.D, 8819, uiValue) - Me._MagazziniConAttrezzaggioAutomatico = UnsignedToInteger(uiValue) - - 'MaxUtensili - Dim odbtlinf As Focas1.ODBTLINF = New Focas1.ODBTLINF - 'Reads the memory type of tool offset, and the available number of it. - Focas1.cnc_rdtofsinfo(nLibHandle(1), odbtlinf) - If F_CheckRetError_Cnc(Focas1.cnc_rdtofsinfo(nLibHandle(1), odbtlinf), "cnc_rdtofsinfo GetStaticData CNC.FANUC") Then - Throw New NcException("ERR cnc_rdtofsinfo GetStaticData CNC.FANUC") - End If - - Me._MaxUtensiliGestibili = odbtlinf.use_no - Me._MaxIdUtensile = odbtlinf.use_no - - 'ZoomSpeed - Select Case Settings.MemoryMapping - Case MemoryMapping.ElsManager - F_RW_Byte(R, MemType.D, 6792, cVal) - Case MemoryMapping.ToolManager, - MemoryMapping.ToolTable, - MemoryMapping.Default - F_RW_Byte(R, MemType.D, 3330, cVal) - End Select - If cVal > 0 And cVal <= 100 Then - Me._ZoomSpeed = cVal - Else - Me._ZoomSpeed = 1 - End If - - bStaticDataReaded = True - - Catch ex As NcException - Me.CncException(ex.Message) - End Try - - End If - End Sub - - ''' - ''' Legge il numero del processo attivo - ''' - ''' Processo attivo - Public Function GetActivePath() As Integer - Dim bValue As Boolean - Dim nPathIdx As Integer - - nPathIdx = 1 - - F_RW_Boolean(R, MemType.G, 63, 0, bValue) - If bValue Then nPathIdx = nPathIdx + 1 - - F_RW_Boolean(R, MemType.G, 62, 7, bValue) - If bValue Then nPathIdx = nPathIdx + 2 - - F_RW_Boolean(R, MemType.G, 408, 1, bValue) - If bValue Then nPathIdx = nPathIdx + 4 - - F_RW_Boolean(R, MemType.G, 408, 2, bValue) - If bValue Then nPathIdx = nPathIdx + 8 - - Return nPathIdx - - ''leggo il numero del processo attivo - 'Dim nReturn, nPathActive, nMaxPath As Integer - 'nReturn = Focas1.cnc_getpath(FANUC_ref.nLibHandle(1), nPathActive, nMaxPath) - 'If nPathActive < 1 Or nPathActive > nMaxPath Then nPathActive = 1 - - '21/07/2015 Il codice sopra è ereditato da OpPaneled è funzionante - ' verificare se questo sopra commentato possa sostituirlo ed è più efficiente - End Function - - ''' - ''' Legge o scrive Boolean da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Fanuc - ''' Indice di memoria - ''' Bit della memoria - ''' Valore da scrivere su scrittura e letto su lettura - ''' True se andata a buon fine - Public Function F_RW_Boolean(ByVal bWrite As Boolean, ByVal MemType As MemType, ByVal MemIndex As Integer, ByVal MemBit As Integer, ByRef Value As Boolean) As Boolean - Dim iodb0 As Focas1.IODBPMC0 - Dim nlength As Integer - Dim nReturn As Integer - Dim nValue As Short - - iodb0 = New Focas1.IODBPMC0 - iodb0.type_a = MemType - iodb0.type_d = N_BYTE_TYPE - iodb0.datano_s = MemIndex - iodb0.datano_e = MemIndex - nlength = 8 + 1 - - 'leggo la memoria - nReturn = Focas1.pmc_rdpmcrng(nLibHandle(1), iodb0.type_a, iodb0.type_d, iodb0.datano_s, iodb0.datano_e, nlength, iodb0) - If F_CheckRetError_Pmc(nReturn, "pmc_rdpmcrng F_RW_Boolean CNC.FANUC") Then - Throw New NcException("ERR pmc_rdpmcrng F_RW_Boolean CNC.FANUC") - Return False - Else - nValue = iodb0.cdata(0) - - If bWrite Then ' *** Write - If Value Then 'True - nValue = nValue Or (2 ^ MemBit) - Else 'False - nValue = nValue And Not (2 ^ MemBit) - End If - iodb0.cdata(0) = nValue - nReturn = Focas1.pmc_wrpmcrng(nLibHandle(1), nlength, iodb0) - If nReturn = Focas1.EW_SOCKET Then - Throw New NcException("ERR pmc_wrpmcrng CNC.FANUC") - Return False - ElseIf nReturn <> Focas1.EW_OK Then - 'CncLib.App.Runtime.Log.WW("ERR pmc_wrpmcrng on F_RW_Boolean CNC.FANUC", "Return=" & nReturn, True) - Return False - End If - - Else ' ************* Read - If (nValue And (2 ^ MemBit)) = (2 ^ MemBit) Then 'True - Value = True - Else 'False - Value = False - End If - End If - End If - - Return True - End Function - - ''' - ''' Legge o scrive Byte da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Fanuc - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Byte(ByVal bWrite As Boolean, ByVal MemType As MemType, ByVal MemIndex As Integer, ByRef Value() As Byte) As Boolean - Dim iodb0 As Focas1.IODBPMC0 - Dim nlength As Integer - Dim nReturn As Integer - Dim nQta As Integer - Dim nBlock As Integer - Dim nMod As Integer - - If Value Is Nothing Then Throw New InvalidOperationException - - 'Calcolo la dimesione dell'array - nBlock = Value.Length \ F_MAX_ITEM - nMod = Value.Length Mod F_MAX_ITEM - If nMod > 0 Then nBlock += 1 - - For b = 0 To nBlock - 1 - If b < nBlock - 1 Then - nQta = F_MAX_ITEM - Else - nQta = IIf(nMod > 0, nMod, F_MAX_ITEM) - End If - - 'Setto il tipo di memoria - iodb0 = New Focas1.IODBPMC0 - iodb0.type_a = MemType - iodb0.type_d = N_BYTE_TYPE - iodb0.datano_s = MemIndex + b * F_MAX_ITEM - iodb0.datano_e = MemIndex + b * F_MAX_ITEM + nQta - 1 - nlength = 8 + nQta - - If bWrite Then ' *** Write - ReDim iodb0.cdata(8 - 1) - For i = 0 To nQta - 1 - iodb0.cdata(i) = Value(i + b * F_MAX_ITEM) - Next - nReturn = Focas1.pmc_wrpmcrng(nLibHandle(1), nlength, iodb0) - If F_CheckRetError_Pmc(nReturn, "pmc_wrpmcrng F_RW_Byte CNC.FANUC") Then - Throw New NcException("ERR pmc_wrpmcrng F_RW_Byte CNC.FANUC") - Return False - End If - - Else ' ************* Read - nReturn = Focas1.pmc_rdpmcrng(nLibHandle(1), iodb0.type_a, iodb0.type_d, iodb0.datano_s, iodb0.datano_e, nlength, iodb0) - If F_CheckRetError_Pmc(nReturn, "pmc_rdpmcrng F_RW_Byte CNC.FANUC") Then - Throw New NcException("ERR pmc_rdpmcrng F_RW_Byte CNC.FANUC") - Return False - Else - For i = 0 To nQta - 1 - Value(i + b * F_MAX_ITEM) = iodb0.cdata(i) - Next - End If - End If - Next - - Return True - End Function - - ''' - ''' Legge o scrive Byte da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Fanuc - ''' Indice di memoria - ''' Valore da scrivere su scrittura o letto su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Byte(ByVal bWrite As Boolean, ByVal MemType As MemType, ByVal MemIndex As Integer, ByRef Value As Byte) As Boolean - Dim bRet As Boolean - Dim cValue(0) As Byte - If bWrite Then cValue(0) = Value - bRet = F_RW_Byte(bWrite, MemType, MemIndex, cValue) - If Not bWrite Then Value = cValue(0) - Return bRet - End Function - - ''' - ''' Legge o scrive Word da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Fanuc - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Word(ByVal bWrite As Boolean, ByVal MemType As MemType, ByVal MemIndex As Integer, ByRef Value() As UShort) As Boolean - Dim iodb1 As Focas1.IODBPMC1 - Dim nlength As Integer - Dim nReturn As Integer - Dim nQta As Integer - Dim nBlock As Integer - Dim nMod As Integer - - If Value Is Nothing Then Throw New InvalidOperationException - - 'Calcolo la dimesione dell'array - nBlock = Value.Length \ F_MAX_ITEM - nMod = Value.Length Mod F_MAX_ITEM - If nMod > 0 Then nBlock += 1 - - For b = 0 To nBlock - 1 - If b < nBlock - 1 Then - nQta = F_MAX_ITEM - Else - nQta = IIf(nMod > 0, nMod, F_MAX_ITEM) - End If - - 'Setto il tipo di memoria - iodb1 = New Focas1.IODBPMC1 - iodb1.type_a = MemType - iodb1.type_d = N_WORD_TYPE - iodb1.datano_s = MemIndex + (b * F_MAX_ITEM * 2) - iodb1.datano_e = MemIndex + (b * F_MAX_ITEM * 2) + (nQta * 2) - 1 - nlength = 8 + (nQta * 2) - - If bWrite Then ' *** Write - ReDim iodb1.idata(8 - 1) - For i = 0 To nQta - 1 - iodb1.idata(i) = Value(i + b * F_MAX_ITEM) - Next - nReturn = Focas1.pmc_wrpmcrng(nLibHandle(1), nlength, iodb1) - If F_CheckRetError_Pmc(nReturn, "pmc_wrpmcrng F_RW_Word CNC.FANUC") Then - Throw New NcException("ERR pmc_wrpmcrng F_RW_Word CNC.FANUC") - Return False - End If - - Else ' ************* Read - nReturn = Focas1.pmc_rdpmcrng(nLibHandle(1), iodb1.type_a, iodb1.type_d, iodb1.datano_s, iodb1.datano_e, nlength, iodb1) - If F_CheckRetError_Pmc(nReturn, "pmc_rdpmcrng F_RW_Word CNC.FANUC") Then - Throw New NcException("ERR pmc_rdpmcrng F_RW_Word CNC.FANUC") - Return False - Else - For i = 0 To nQta - 1 - Value(i + b * F_MAX_ITEM) = iodb1.idata(i) - Next - End If - End If - Next - - Return True - End Function - - ''' - ''' Legge o scrive Short da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Fanuc - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Short(ByVal bWrite As Boolean, ByVal MemType As MemType, ByVal MemIndex As Integer, ByRef Value() As Short) As Boolean - Dim bReturn As Boolean - Dim usValue(Value.Length - 1) As UShort - - If bWrite Then ' *** Write - For i = 0 To Value.Length - 1 - usValue(i) = ShortToUnsigned(Value(i)) - Next - bReturn = F_RW_Word(bWrite, MemType, MemIndex, usValue) - - Else ' ************* Read - bReturn = F_RW_Word(bWrite, MemType, MemIndex, usValue) - For i = 0 To Value.Length - 1 - Value(i) = UnsignedToShort(usValue(i)) - Next - End If - - Return bReturn - End Function - - ''' - ''' Legge o scrive Word da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Fanuc - ''' Indice di memoria - ''' Valore da scrivere su scrittura o letto su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Word(ByVal bWrite As Boolean, ByVal MemType As MemType, ByVal MemIndex As Integer, ByRef Value As UShort) As Boolean - Dim bRet As Boolean - Dim usValue(0) As UShort - If bWrite Then usValue(0) = Value - bRet = F_RW_Word(bWrite, MemType, MemIndex, usValue) - If Not bWrite Then Value = usValue(0) - Return bRet - End Function - - ''' - ''' Legge o scrive Short da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Fanuc - ''' Indice di memoria - ''' Valore da scrivere su scrittura o letto su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Short(ByVal bWrite As Boolean, ByVal MemType As MemType, ByVal MemIndex As Integer, ByRef Value As Short) As Boolean - Dim bRet As Boolean - Dim sValue(0) As Short - If bWrite Then sValue(0) = Value - bRet = F_RW_Short(bWrite, MemType, MemIndex, sValue) - If Not bWrite Then Value = sValue(0) - Return bRet - End Function - - ''' - ''' Legge DWord da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Fanuc - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_DWord(ByVal bWrite As Boolean, ByVal MemType As MemType, ByVal MemIndex As Integer, ByRef Value() As UInteger) As Boolean - Dim iodb2 As Focas1.IODBPMC2 - Dim nlength As Integer - Dim nReturn As Integer - Dim nQta As Integer - Dim nBlock As Integer - Dim nMod As Integer - - If Value Is Nothing Then Throw New InvalidOperationException - - 'Calcolo la dimesione dell'array - nBlock = Value.Length \ F_MAX_ITEM - nMod = Value.Length Mod F_MAX_ITEM - If nMod > 0 Then nBlock += 1 - - For b = 0 To nBlock - 1 - If b < nBlock - 1 Then - nQta = F_MAX_ITEM - Else - nQta = IIf(nMod > 0, nMod, F_MAX_ITEM) - End If - - 'Setto il tipo di memoria - iodb2 = New Focas1.IODBPMC2 - iodb2.type_a = MemType - iodb2.type_d = N_DWORD_TYPE - iodb2.datano_s = MemIndex + (b * F_MAX_ITEM * 4) - iodb2.datano_e = MemIndex + (b * F_MAX_ITEM * 4) + (nQta * 4) - 1 - nlength = 8 + (nQta * 4) - - If bWrite Then ' *** Write - ReDim iodb2.ldata(8 - 1) - For i = 0 To nQta - 1 - iodb2.ldata(i) = Value(i + b * F_MAX_ITEM) - Next - nReturn = Focas1.pmc_wrpmcrng(nLibHandle(1), nlength, iodb2) - If F_CheckRetError_Pmc(nReturn, "pmc_wrpmcrng F_RW_DWord CNC.FANUC") Then - Throw New NcException("ERR pmc_wrpmcrng F_RW_DWord CNC.FANUC") - Return False - End If - - Else ' ************* Read - nReturn = Focas1.pmc_rdpmcrng(nLibHandle(1), iodb2.type_a, iodb2.type_d, iodb2.datano_s, iodb2.datano_e, nlength, iodb2) - If F_CheckRetError_Pmc(nReturn, "pmc_rdpmcrng F_RW_DWord CNC.FANUC") Then - Throw New NcException("ERR pmc_rdpmcrng F_RW_DWord CNC.FANUC") - Return False - Else - For i = 0 To nQta - 1 - Value(i + b * F_MAX_ITEM) = iodb2.ldata(i) - Next - End If - End If - Next - - Return True - End Function - - ''' - ''' Legge DWord da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Fanuc - ''' Indice di memoria - ''' Valore da scrivere su scrittura o letto su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_DWord(ByVal bWrite As Boolean, ByVal MemType As MemType, ByVal MemIndex As Integer, ByRef Value As UInteger) As Boolean - Dim bRet As Boolean - Dim uiValue(0) As UInteger - If bWrite Then uiValue(0) = Value - bRet = F_RW_DWord(bWrite, MemType, MemIndex, uiValue) - If Not bWrite Then Value = uiValue(0) - Return bRet - End Function - - ''' - ''' Legge Integer da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Fanuc - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Integer(ByVal bWrite As Boolean, ByVal MemType As MemType, ByVal MemIndex As Integer, ByRef Value() As Integer) As Boolean - Dim iodb2 As Focas1.IODBPMC2 - Dim nlength As Integer - Dim nReturn As Integer - Dim nQta As Integer - Dim nBlock As Integer - Dim nMod As Integer - - If Value Is Nothing Then Throw New InvalidOperationException - - 'Calcolo la dimesione dell'array - nBlock = Value.Length \ F_MAX_ITEM - nMod = Value.Length Mod F_MAX_ITEM - If nMod > 0 Then nBlock += 1 - - For b = 0 To nBlock - 1 - If b < nBlock - 1 Then - nQta = F_MAX_ITEM - Else - nQta = IIf(nMod > 0, nMod, F_MAX_ITEM) - End If - - 'Setto il tipo di memoria - iodb2 = New Focas1.IODBPMC2 - iodb2.type_a = MemType - iodb2.type_d = N_DWORD_TYPE - iodb2.datano_s = MemIndex + (b * F_MAX_ITEM * 4) - iodb2.datano_e = MemIndex + (b * F_MAX_ITEM * 4) + (nQta * 4) - 1 - nlength = 8 + (nQta * 4) - - If bWrite Then ' *** Write - ReDim iodb2.ldata(8 - 1) - For i = 0 To nQta - 1 - iodb2.ldata(i) = Value(i + b * F_MAX_ITEM) - Next - nReturn = Focas1.pmc_wrpmcrng(nLibHandle(1), nlength, iodb2) - If F_CheckRetError_Pmc(nReturn, "pmc_wrpmcrng F_RW_Integer CNC.FANUC") Then - Throw New NcException("ERR pmc_wrpmcrng F_RW_Integer CNC.FANUC") - Return False - End If - - Else ' ************* Read - nReturn = Focas1.pmc_rdpmcrng(nLibHandle(1), iodb2.type_a, iodb2.type_d, iodb2.datano_s, iodb2.datano_e, nlength, iodb2) - If F_CheckRetError_Pmc(nReturn, "pmc_rdpmcrng F_RW_Integer CNC.FANUC") Then - Throw New NcException("ERR pmc_rdpmcrng F_RW_Integer CNC.FANUC") - Return False - Else - For i = 0 To nQta - 1 - Value(i + b * F_MAX_ITEM) = WordsToInteger(iodb2.ldata(i) And &HFFFF, (iodb2.ldata(i) And &HFFFF0000) >> 16) - Next - End If - End If - Next - - Return True - End Function - - ''' - ''' Legge Integer da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Fanuc - ''' Indice di memoria - ''' Valore da scrivere su scrittura o letto su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Integer(ByVal bWrite As Boolean, ByVal MemType As MemType, ByVal MemIndex As Integer, ByRef Value As Integer) As Boolean - Dim bRet As Boolean - Dim iValue(0) As Integer - If bWrite Then iValue(0) = Value - bRet = F_RW_Integer(bWrite, MemType, MemIndex, iValue) - If Not bWrite Then Value = iValue(0) - Return bRet - End Function - - ''' - ''' Legge o scrive Length and Radius Offset da tabella Utensili CN - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Numero dell'offset utensile - Public Overloads Sub F_RW_ToolOffset(ByVal bWrite As Boolean, ByVal ToolOffsetNumber As Integer, ByRef CutterRadius_Wear As Double, ByRef CutterRadius_Geometry As Double, ByRef ToolLenght_Wear As Double, ByRef ToolLenght_Geometry As Double) - Dim iodbpsd_1 As Focas1.IODBPSD_1 - Dim odbtofs As Focas1.ODBTOFS - Dim nReturn As Integer - Dim bNcInInch As Boolean - Dim bTtInInch As Boolean - Dim valid_fig As Short - Dim dec_fig_in(31) As Short - Dim dec_fig_out(31) As Short - - iodbpsd_1 = New Focas1.IODBPSD_1 - odbtofs = New Focas1.ODBTOFS - - 'Leggo se il CN è impostato in Inch (parametro 0.2) - nReturn = Focas1.cnc_rdparam(nLibHandle(1), 0, 0, 4 + 1, iodbpsd_1) - If F_CheckRetError_Cnc(nReturn, "cnc_rdparam F_RW_LengthOffset CNC.FANUC") Then - Throw New NcException("ERR cnc_rdparam F_RW_LengthOffset CNC.FANUC") - End If - bNcInInch = (iodbpsd_1.cdata And MASK_BIT2) = MASK_BIT2 - - 'Leggo se ToolTable è impostato in Inch - bTtInInch = Config.Options.CurrentOptions.ToolTable_Inch - - 'leggo le cifre decimali - nReturn = Focas1.cnc_getfigure(nLibHandle(1), 1, valid_fig, dec_fig_in, dec_fig_out) - If F_CheckRetError_Cnc(nReturn, "cnc_getfigure F_RW_LengthOffset CNC.FANUC") Then - Throw New NcException("ERR cnc_getfigure F_RW_LengthOffset CNC.FANUC") - End If - - If bWrite Then ' *** Write - For i = 0 To 3 - Dim dblTmp As Double - Dim nTmp As Integer - Select Case i - Case 0 : dblTmp = CutterRadius_Wear - Case 1 : dblTmp = CutterRadius_Geometry - Case 2 : dblTmp = ToolLenght_Wear - Case 3 : dblTmp = ToolLenght_Geometry - End Select - 'moltiplico per le cifre decimali - dblTmp *= 10 ^ dec_fig_in(0) - 'riporto all'unità di misura di Nc - If bNcInInch And Not bTtInInch Then - nTmp = dblTmp / 25.4 - ElseIf Not bNcInInch And bTtInInch Then - nTmp = dblTmp * 25.4 - Else - nTmp = dblTmp - End If - nReturn = Focas1.cnc_wrtofs(nLibHandle(1), ToolOffsetNumber, i, 8, nTmp) - If F_CheckRetError_Pmc(nReturn, "cnc_wrtofs F_RW_ToolOffset CNC.FANUC") Then - Throw New NcException("ERR cnc_wrtofs F_RW_ToolOffset CNC.FANUC") - End If - Next - - Else ' ************* Read - For i = 0 To 3 - nReturn = Focas1.cnc_rdtofs(nLibHandle(1), ToolOffsetNumber, i, 8, odbtofs) - If F_CheckRetError_Pmc(nReturn, "cnc_rdtofs F_RW_ToolOffset CNC.FANUC") OrElse (odbtofs.datano <> ToolOffsetNumber Or odbtofs.type <> i) Then - Throw New NcException("ERR cnc_rdtofs F_RW_ToolOffset CNC.FANUC") - Else - Dim dblTmp As Double - 'riporto all'unità di misura di ToolTable - If bNcInInch And Not bTtInInch Then - dblTmp = odbtofs.data * 25.4 - ElseIf Not bNcInInch And bTtInInch Then - dblTmp = odbtofs.data / 25.4 - Else - dblTmp = odbtofs.data - End If - 'divido per le cifre decimali - dblTmp /= 10 ^ dec_fig_in(0) - 'memorizzo il dato - Select Case i - Case 0 : CutterRadius_Wear = dblTmp - Case 1 : CutterRadius_Geometry = dblTmp - Case 2 : ToolLenght_Wear = dblTmp - Case 3 : ToolLenght_Geometry = dblTmp - End Select - End If - Next - - End If - - End Sub - - ''' - ''' Cancella la tabella Utensili CN - ''' - Public Sub F_Clear_ToolOffsets() - - 'Memo di tipo C - - Dim nMaxUt As Integer - Dim iodbto_1_3 As Focas1.IODBTO_1_3 - Dim ofs_3 As Focas1.OFS_3 'OFS_3 Modificato per permettere di eleiminare tutti e 100 gli utensili - Dim nReturn As Integer - - iodbto_1_3 = New Focas1.IODBTO_1_3 - ofs_3 = New Focas1.OFS_3 - - nMaxUt = CncLib.CNC.Runtime.NC.MaxIdUtensile - - Dim n As Integer - n = nMaxUt \ 100 - n += IIf(nMaxUt Mod 100, 1, 0) - - - For j = 1 To n - - iodbto_1_3.datano_s = ((j - 1) * 100) + 1 - If nMaxUt < iodbto_1_3.datano_s + 100 Then - iodbto_1_3.datano_e = nMaxUt - Else - iodbto_1_3.datano_e = iodbto_1_3.datano_s + 99 - End If - iodbto_1_3.ofs = ofs_3 - - For i As Integer = 0 To 3 - iodbto_1_3.type = i - nReturn = Focas1.cnc_wrtofsr(nLibHandle(1), 8 + 4 * (iodbto_1_3.datano_e - iodbto_1_3.datano_s + 1), iodbto_1_3) - If F_CheckRetError_Pmc(nReturn, "cnc_wrtofsr F_Clear_ToolOffsets CNC.FANUC") Then - Throw New NcException("ERR cnc_wrtofsr F_Clear_ToolOffsets CNC.FANUC") - End If - Next - Next - - - End Sub - - - ''' - ''' Legge o scrive Parametri Interi - ''' - ''' Se True SCRIVE, se False LEGGE - ''' 0: assigns no axis, -1: assigns all axes - ''' Indice di memoria - ''' 1 byte, 2 word, 3 dword - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Param_Integer(ByVal bWrite As Boolean, ByVal Axis As Integer, ByVal ParamIndex As Integer, ByVal Size As Integer, ByRef Value() As Object) As Boolean - Dim iodbpsd1 As Focas1.IODBPSD_1 = Nothing - Dim iodbpsd3 As Focas1.IODBPSD_3 = Nothing - Dim nOdb As Focas1.ODBSYS - Dim nlength As Integer - Dim nQta As Integer - Dim nReturn As Integer - Dim nMemSize As Integer - - If bWrite And Value Is Nothing Then Throw New InvalidOperationException - - 'Seleziono la dimensione della memoria - Select Case Size - Case 1 : nMemSize = 1 - Case 2 : nMemSize = 2 - Case 3 : nMemSize = 4 - Case Else : Throw New InvalidOperationException - End Select - - 'Setto se parametro singolo o su ogni asse - If Axis >= 0 Then - iodbpsd1 = New Focas1.IODBPSD_1 - nQta = 1 - nlength = 4 + (nMemSize * nQta) - Else 'If Axis = -1 Then - iodbpsd3 = New Focas1.IODBPSD_3 - nOdb = New Focas1.ODBSYS - nReturn = Focas1.cnc_sysinfo(nLibHandle(1), nOdb) - nQta = nOdb.axes.Length - nlength = 4 + (nMemSize * nQta) - End If - - If bWrite Then ' *** Write - If nQta = 1 Then - iodbpsd1.datano = ParamIndex - Select Case Size - Case 1 : iodbpsd1.cdata = Value(0) - Case 2 : iodbpsd1.idata = Value(0) - Case 3 : iodbpsd1.ldata = Value(0) - End Select - Else - iodbpsd3.datano = ParamIndex - For i = 0 To nQta - 1 - Select Case Size - Case 1 : iodbpsd3.cdatas(i) = Value(i) - Case 2 : iodbpsd3.idatas(i) = Value(i) - Case 3 : iodbpsd3.ldatas(i) = Value(i) - End Select - Next - End If - - If nQta = 1 Then - nReturn = Focas1.cnc_wrparam(nLibHandle(1), nlength, iodbpsd1) - Else - nReturn = Focas1.cnc_wrparam(nLibHandle(1), nlength, iodbpsd3) - End If - If F_CheckRetError_Cnc(nReturn, "cnc_wrparam F_RW_Param_DWord CNC.FANUC") Then - Throw New NcException("ERR cnc_wrparam F_RW_Param_DWord CNC.FANUC") - Return False - End If - - Else ' ************* Read - If nQta = 1 Then - nReturn = Focas1.cnc_rdparam(nLibHandle(1), ParamIndex, Axis, nlength, iodbpsd1) - Else - nReturn = Focas1.cnc_rdparam(nLibHandle(1), ParamIndex, Axis, nlength, iodbpsd3) - End If - If F_CheckRetError_Pmc(nReturn, "cnc_rdparam F_RW_Param_DWord CNC.FANUC") Then - Throw New NcException("ERR cnc_rdparam F_RW_Param_DWord CNC.FANUC") - Return False - Else - If nQta = 1 Then - Select Case Size - Case 1 : Value(0) = iodbpsd1.cdata - Case 2 : Value(0) = iodbpsd1.idata - Case 3 : Value(0) = iodbpsd1.ldata - End Select - Else - For i = 0 To nQta - 1 - Select Case Size - Case 1 : Value(i) = iodbpsd3.cdatas - Case 2 : Value(i) = iodbpsd3.idatas - Case 3 : Value(i) = iodbpsd3.ldatas - End Select - Next - End If - End If - End If - - Return True - End Function - - ''' - ''' Legge o scrive Parametri Interi - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Indice di memoria - ''' 1 byte, 2 word, 3 dword - ''' Valore da scrivere su scrittura o letto su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Param_Integer(ByVal bWrite As Boolean, ByVal MemIndex As Integer, ByVal Size As Integer, ByRef Value As Object) As Boolean - Dim bRet As Boolean - Dim oValue(0) As Object - If bWrite Then oValue(0) = Value - bRet = F_RW_Param_Integer(bWrite, 0, MemIndex, Size, oValue) - If Not bWrite Then Value = oValue(0) - Return bRet - End Function - - - - ''' - ''' Legge o scrive le variabile Custom Macro - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Macro_Short(ByVal bWrite As Boolean, ByVal MacroIndex As Integer, ByRef Value() As Short) As Boolean - Dim iodbmr As Focas1.IODBMR - Dim nlength As Integer - Dim nReturn As Integer - Dim nQta As Integer - Dim nBlock As Integer - Dim nMod As Integer - Dim nActivePath As Integer - - If Value Is Nothing Then Throw New InvalidOperationException - - nActivePath = GetActivePath() - - 'Calcolo la dimesione dell'array - nBlock = Value.Length \ F_MAX_MACRO - nMod = Value.Length Mod F_MAX_MACRO - If nMod > 0 Then nBlock += 1 - - For b = 0 To nBlock - 1 - If b < nBlock - 1 Then - nQta = F_MAX_MACRO - Else - nQta = IIf(nMod > 0, nMod, F_MAX_MACRO) - End If - - 'Setto il tipo di memoria - iodbmr = New Focas1.IODBMR - iodbmr.datano_s = MacroIndex + (b * F_MAX_MACRO) - iodbmr.datano_e = MacroIndex + (b * F_MAX_MACRO) + nQta - 1 - nlength = 8 + (nQta * 8) - - If bWrite Then ' *** Write - iodbmr.data = New Focas1.IODBMR1 - iodbmr.data.data1 = New Focas1.IODBMR_data - iodbmr.data.data2 = New Focas1.IODBMR_data - iodbmr.data.data3 = New Focas1.IODBMR_data - iodbmr.data.data4 = New Focas1.IODBMR_data - iodbmr.data.data5 = New Focas1.IODBMR_data - - If nQta >= 1 Then iodbmr.data.data1.mcr_val = Value(0 + b * F_MAX_MACRO) - If nQta >= 2 Then iodbmr.data.data2.mcr_val = Value(1 + b * F_MAX_MACRO) - If nQta >= 3 Then iodbmr.data.data3.mcr_val = Value(2 + b * F_MAX_MACRO) - If nQta >= 4 Then iodbmr.data.data4.mcr_val = Value(3 + b * F_MAX_MACRO) - If nQta >= 5 Then iodbmr.data.data5.mcr_val = Value(4 + b * F_MAX_MACRO) - - nReturn = Focas1.cnc_wrmacror(nLibHandle(nActivePath), MacroIndex, iodbmr) - If F_CheckRetError_Cnc(nReturn, "cnc_wrmacror F_RW_Macro_Short CNC.FANUC") Then - Throw New NcException("ERR cnc_wrmacror F_RW_Macro_Short CNC.FANUC") - Return False - End If - - Else ' ************* Read - nReturn = Focas1.cnc_rdmacror(nLibHandle(nActivePath), iodbmr.datano_s, iodbmr.datano_e, nlength, iodbmr) - - If F_CheckRetError_Cnc(nReturn, "cnc_rdmacror F_RW_Macro_Short CNC.FANUC") Then - Throw New NcException("ERR cnc_rdmacror F_RW_Macro_Short CNC.FANUC") - Return False - Else - If nQta >= 1 Then Value(0 + b * F_MAX_MACRO) = iodbmr.data.data1.mcr_val / (10 ^ iodbmr.data.data1.dec_val) - If nQta >= 2 Then Value(1 + b * F_MAX_MACRO) = iodbmr.data.data2.mcr_val / (10 ^ iodbmr.data.data2.dec_val) - If nQta >= 3 Then Value(2 + b * F_MAX_MACRO) = iodbmr.data.data3.mcr_val / (10 ^ iodbmr.data.data3.dec_val) - If nQta >= 4 Then Value(3 + b * F_MAX_MACRO) = iodbmr.data.data4.mcr_val / (10 ^ iodbmr.data.data4.dec_val) - If nQta >= 5 Then Value(4 + b * F_MAX_MACRO) = iodbmr.data.data5.mcr_val / (10 ^ iodbmr.data.data5.dec_val) - End If - End If - Next - - Return True - End Function - - ''' - ''' Legge o scrive le variabile Custom Macro - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Macro_Short(ByVal bWrite As Boolean, ByVal MacroIndex As Integer, ByRef Value As Short) As Boolean - Dim bRet As Boolean - Dim sValue(0) As Short - If bWrite Then sValue(0) = Value - bRet = F_RW_Macro_Short(bWrite, MacroIndex, sValue) - If Not bWrite Then Value = sValue(0) - Return bRet - End Function - - Private Function GetNumDec(ByVal dVal As Double) As Short - ' Determino il numero di decimali più adatto, in base al valore - ' (per evitare l'overflow durante le operazioni di moltiplicazione) - If dVal < -99999999 Or dVal > 99999999 Then - GetNumDec = 0 - ElseIf dVal < -9999999 Or dVal > 9999999 Then - GetNumDec = 1 - ElseIf dVal < -999999 Or dVal > 999999 Then - GetNumDec = 2 - ElseIf dVal < -99999 Or dVal > 99999 Then - GetNumDec = 3 - ElseIf dVal < -9999 Or dVal > 9999 Then - GetNumDec = 4 - ElseIf dVal < -999 Or dVal > 999 Then - GetNumDec = 5 - ElseIf dVal < -99 Or dVal > 99 Then - GetNumDec = 6 - ElseIf dVal < -9 Or dVal > 9 Then - GetNumDec = 7 - Else - GetNumDec = 8 - End If - End Function - - - ''' - ''' Legge o scrive le variabile Custom Macro - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Macro_Double(ByVal bWrite As Boolean, ByVal MacroIndex As Integer, ByRef Value() As Double) As Boolean - Dim iodbmr As Focas1.IODBMR - Dim nlength As Integer - Dim nReturn As Integer - Dim nQta As Integer - Dim nBlock As Integer - Dim nMod As Integer - Dim nActivePath As Integer - - If Value Is Nothing Then Throw New InvalidOperationException - - nActivePath = GetActivePath() - - 'Calcolo la dimesione dell'array - nBlock = Value.Length \ F_MAX_MACRO - nMod = Value.Length Mod F_MAX_MACRO - If nMod > 0 Then nBlock += 1 - - For b = 0 To nBlock - 1 - If b < nBlock - 1 Then - nQta = F_MAX_MACRO - Else - nQta = IIf(nMod > 0, nMod, F_MAX_MACRO) - End If - - 'Setto il tipo di memoria - iodbmr = New Focas1.IODBMR - iodbmr.datano_s = MacroIndex + (b * F_MAX_MACRO) - iodbmr.datano_e = MacroIndex + (b * F_MAX_MACRO) + nQta - 1 - nlength = 8 + (nQta * 8) - - If bWrite Then ' *** Write - iodbmr.data = New Focas1.IODBMR1 - iodbmr.data.data1 = New Focas1.IODBMR_data - iodbmr.data.data2 = New Focas1.IODBMR_data - iodbmr.data.data3 = New Focas1.IODBMR_data - iodbmr.data.data4 = New Focas1.IODBMR_data - iodbmr.data.data5 = New Focas1.IODBMR_data - - ' Determino il numero di decimali più adatto, in base al valore - ' (per evitare l'overflow durante le operazioni di moltiplicazione) - If nQta >= 1 Then iodbmr.data.data1.dec_val = GetNumDec(Value(0 + b * F_MAX_MACRO)) - If nQta >= 2 Then iodbmr.data.data2.dec_val = GetNumDec(Value(1 + b * F_MAX_MACRO)) - If nQta >= 3 Then iodbmr.data.data3.dec_val = GetNumDec(Value(2 + b * F_MAX_MACRO)) - If nQta >= 4 Then iodbmr.data.data4.dec_val = GetNumDec(Value(3 + b * F_MAX_MACRO)) - If nQta >= 5 Then iodbmr.data.data5.dec_val = GetNumDec(Value(4 + b * F_MAX_MACRO)) - - If nQta >= 1 Then iodbmr.data.data1.mcr_val = Value(0 + b * F_MAX_MACRO) * (10 ^ iodbmr.data.data1.dec_val) - If nQta >= 2 Then iodbmr.data.data2.mcr_val = Value(1 + b * F_MAX_MACRO) * (10 ^ iodbmr.data.data2.dec_val) - If nQta >= 3 Then iodbmr.data.data3.mcr_val = Value(2 + b * F_MAX_MACRO) * (10 ^ iodbmr.data.data3.dec_val) - If nQta >= 4 Then iodbmr.data.data4.mcr_val = Value(3 + b * F_MAX_MACRO) * (10 ^ iodbmr.data.data4.dec_val) - If nQta >= 5 Then iodbmr.data.data5.mcr_val = Value(4 + b * F_MAX_MACRO) * (10 ^ iodbmr.data.data5.dec_val) - - nReturn = Focas1.cnc_wrmacror(nLibHandle(nActivePath), MacroIndex, iodbmr) - - If F_CheckRetError_Cnc(nReturn, "cnc_wrmacror F_RW_Macro_Double CNC.FANUC") Then - Throw New NcException("ERR cnc_wrmacror F_RW_Macro_Double CNC.FANUC") - Return False - End If - - Else ' ************* Read - nReturn = Focas1.cnc_rdmacror(nLibHandle(nActivePath), iodbmr.datano_s, iodbmr.datano_e, nlength, iodbmr) - - If F_CheckRetError_Cnc(nReturn, "cnc_rdmacror F_RW_Macro_Double CNC.FANUC") Then - Throw New NcException("ERR cnc_rdmacror F_RW_Macro_Double CNC.FANUC") - Return False - Else - If nQta >= 1 Then Value(0 + b * F_MAX_MACRO) = iodbmr.data.data1.mcr_val / (10 ^ iodbmr.data.data1.dec_val) - If nQta >= 2 Then Value(1 + b * F_MAX_MACRO) = iodbmr.data.data2.mcr_val / (10 ^ iodbmr.data.data2.dec_val) - If nQta >= 3 Then Value(2 + b * F_MAX_MACRO) = iodbmr.data.data3.mcr_val / (10 ^ iodbmr.data.data3.dec_val) - If nQta >= 4 Then Value(3 + b * F_MAX_MACRO) = iodbmr.data.data4.mcr_val / (10 ^ iodbmr.data.data4.dec_val) - If nQta >= 5 Then Value(4 + b * F_MAX_MACRO) = iodbmr.data.data5.mcr_val / (10 ^ iodbmr.data.data5.dec_val) - End If - End If - Next - - Return True - End Function - - ''' - ''' Legge o scrive le variabile Custom Macro - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_Macro_Double(ByVal bWrite As Boolean, ByVal MacroIndex As Integer, ByRef Value As Double) As Boolean - Dim bRet As Boolean - Dim sValue(0) As Double - If bWrite Then sValue(0) = Value - bRet = F_RW_Macro_Double(bWrite, MacroIndex, sValue) - If Not bWrite Then Value = sValue(0) - Return bRet - End Function - - ''' - ''' Legge o scrive le variabile P Code Macro - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_PCodeMacro_Short(ByVal bWrite As Boolean, ByVal MacroIndex As Integer, ByRef Value() As Short) As Boolean - Dim iodbpr As Focas1.IODBPR - Dim nlength As Integer - Dim nReturn As Integer - Dim nQta As Integer - Dim nBlock As Integer - Dim nMod As Integer - Dim nActivePath As Integer - - If Value Is Nothing Then Throw New InvalidOperationException - - nActivePath = GetActivePath() - - 'Calcolo la dimesione dell'array - nBlock = Value.Length \ F_MAX_MACRO - nMod = Value.Length Mod F_MAX_MACRO - If nMod > 0 Then nBlock += 1 - - For b = 0 To nBlock - 1 - If b < nBlock - 1 Then - nQta = F_MAX_MACRO - Else - nQta = IIf(nMod > 0, nMod, F_MAX_MACRO) - End If - - 'Setto il tipo di memoria - iodbpr = New Focas1.IODBPR - iodbpr.datano_s = MacroIndex + (b * F_MAX_MACRO) - iodbpr.datano_e = MacroIndex + (b * F_MAX_MACRO) + nQta - 1 - nlength = 12 + (nQta * 8) - - If bWrite Then ' *** Write - iodbpr.data = New Focas1.IODBPR1 - iodbpr.data.data1 = New Focas1.IODBPR_data - iodbpr.data.data2 = New Focas1.IODBPR_data - iodbpr.data.data3 = New Focas1.IODBPR_data - iodbpr.data.data4 = New Focas1.IODBPR_data - iodbpr.data.data5 = New Focas1.IODBPR_data - - If nQta >= 1 Then iodbpr.data.data1.mcr_val = Value(0 + b * F_MAX_MACRO) - If nQta >= 2 Then iodbpr.data.data2.mcr_val = Value(1 + b * F_MAX_MACRO) - If nQta >= 3 Then iodbpr.data.data3.mcr_val = Value(2 + b * F_MAX_MACRO) - If nQta >= 4 Then iodbpr.data.data4.mcr_val = Value(3 + b * F_MAX_MACRO) - If nQta >= 5 Then iodbpr.data.data5.mcr_val = Value(4 + b * F_MAX_MACRO) - - nReturn = Focas1.cnc_wrpmacror(nLibHandle(nActivePath), MacroIndex, iodbpr) - If F_CheckRetError_Cnc(nReturn, "cnc_wrpmacror F_RW_PCodeMacro_Short CNC.FANUC") Then - Throw New NcException("ERR cnc_wrpmacror F_RW_PCodeMacro_Short CNC.FANUC") - Return False - End If - - Else ' ************* Read - nReturn = Focas1.cnc_rdpmacror(nLibHandle(nActivePath), iodbpr.datano_s, iodbpr.datano_e, nlength, iodbpr) - - If F_CheckRetError_Cnc(nReturn, "cnc_rdmacror F_RW_Macro_Short CNC.FANUC") Then - Throw New NcException("ERR cnc_rdmacror F_RW_Macro_Short CNC.FANUC") - Return False - Else - If nQta >= 1 Then Value(0 + b * F_MAX_MACRO) = iodbpr.data.data1.mcr_val / (10 ^ iodbpr.data.data1.dec_val) - If nQta >= 2 Then Value(1 + b * F_MAX_MACRO) = iodbpr.data.data2.mcr_val / (10 ^ iodbpr.data.data2.dec_val) - If nQta >= 3 Then Value(2 + b * F_MAX_MACRO) = iodbpr.data.data3.mcr_val / (10 ^ iodbpr.data.data3.dec_val) - If nQta >= 4 Then Value(3 + b * F_MAX_MACRO) = iodbpr.data.data4.mcr_val / (10 ^ iodbpr.data.data4.dec_val) - If nQta >= 5 Then Value(4 + b * F_MAX_MACRO) = iodbpr.data.data5.mcr_val / (10 ^ iodbpr.data.data5.dec_val) - End If - End If - Next - - Return True - End Function - - - ''' - ''' Legge o scrive le variabile P Code Macro - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Function F_RW_PCodeMacro_Short(ByVal bWrite As Boolean, ByVal MacroIndex As Integer, ByRef Value As Short) As Boolean - Dim bRet As Boolean - Dim sValue(0) As Short - If bWrite Then sValue(0) = Value - bRet = F_RW_PCodeMacro_Short(bWrite, MacroIndex, sValue) - If Not bWrite Then Value = sValue(0) - Return bRet - End Function - - - Public Overloads Function F_CheckRetError_Cnc(ByVal nReturn As Short, ByVal Position As String) As Boolean - Dim szErrorDesc As String - - If nReturn <> Focas1.EW_OK Then - 'Seleziono il messaggio - Select Case nReturn - Case Focas1.EW_PROTOCOL : szErrorDesc = "Protocol error (Ethernet version only)" - Case Focas1.EW_SOCKET : szErrorDesc = "Socket error (Ethernet version only)" - Case Focas1.EW_NODLL : szErrorDesc = "DLL file error" - Case Focas1.EW_BUS : szErrorDesc = "Bus error (HSSB version only)" - Case Focas1.EW_SYSTEM2 : szErrorDesc = "System error (2) (HSSB version only)" - Case Focas1.EW_HSSB : szErrorDesc = "Communication error of HSSB (HSSB version only)" - Case Focas1.EW_HANDLE : szErrorDesc = "Handle number error" - Case Focas1.EW_VERSION : szErrorDesc = "Version mismatch between the CNC/PMC and library" - Case Focas1.EW_UNEXP : szErrorDesc = "Abnormal library state" - Case Focas1.EW_SYSTEM : szErrorDesc = "System error (HSSB version only)" - Case Focas1.EW_PARITY : szErrorDesc = "Shared RAM parity error (HSSB version only)" - Case Focas1.EW_MMCSYS : szErrorDesc = "FANUC drivers installation error (HSSB version only)" - Case Focas1.EW_RESET : szErrorDesc = "Reset or stop request" - Case Focas1.EW_BUSY : szErrorDesc = "Busy" - Case Focas1.EW_OK : szErrorDesc = "Normal termination" - Case Focas1.EW_FUNC : szErrorDesc = "Error(function is not executed, or not available)" - Case Focas1.EW_LENGTH : szErrorDesc = "Error(data block length error, error of number of data)" - Case Focas1.EW_NUMBER : szErrorDesc = "Error(data number error)" - Case Focas1.EW_ATTRIB : szErrorDesc = "Error(data attribute error)" - Case Focas1.EW_DATA : szErrorDesc = "Error(data error)" - Case Focas1.EW_NOOPT : szErrorDesc = "Error(no option)" - Case Focas1.EW_PROT : szErrorDesc = "Error(write protection)" - Case Focas1.EW_OVRFLOW : szErrorDesc = "Error(memory overflow)" - Case Focas1.EW_PARAM : szErrorDesc = "Error(CNC parameter error)" - Case Focas1.EW_BUFFER : szErrorDesc = "Error(buffer empty/full)" - Case Focas1.EW_PATH : szErrorDesc = "Error(path number error)" - Case Focas1.EW_MODE : szErrorDesc = "Error(CNC mode error)" - Case Focas1.EW_REJECT : szErrorDesc = "Error(CNC execution rejection)" - Case Focas1.EW_DTSRVR : szErrorDesc = "Error(Data server error)" - Case Focas1.EW_ALARM : szErrorDesc = "Error(alarm)" - Case Focas1.EW_STOP : szErrorDesc = "Error(stop)" - Case Focas1.EW_PASSWD : szErrorDesc = "Error(State of data protection)" - Case Else : szErrorDesc = "- ERRORE CNC INESISTENTE -" - End Select - - 'Stampo il messaggio - 'If Config.Settings.Settings.Debug > 0 Then - ' impostato a true x mostrare errore - If False Then - 'If nReturn <> Focas1.EW_SOCKET Then 'tranne su errore di connessione - 'CncLib.App.Runtime..Log.WW("ERR pmc_wrpmcrng on F_RW_DWord CNC.FANUC", "Return=" & nReturn, True) - MsgBox(szErrorDesc & vbLf & "Occurred in: " & Position, MsgBoxStyle.Exclamation + MsgBoxStyle.ApplicationModal, "Error on Fanuc CNC Data Window") - 'End If - End If - - Return True 'presenza errore - End If - - Return False 'assenza errori - End Function - - Public Overloads Function F_CheckRetError_Pmc(ByVal nReturn As Short, ByVal Position As String) As Boolean - Dim szErrorDesc As String - - If nReturn <> Focas1.EW_OK Then - 'Seleziono il messaggio - Select Case nReturn - Case Focas1.EW_PROTOCOL : szErrorDesc = "Protocol error (Ethernet version only)" - Case Focas1.EW_SOCKET : szErrorDesc = "Socket error (Ethernet version only)" - Case Focas1.EW_NODLL : szErrorDesc = "DLL file error" - Case Focas1.EW_BUS : szErrorDesc = "Bus error (HSSB version only)" - Case Focas1.EW_SYSTEM2 : szErrorDesc = "System error (2) (HSSB version only)" - Case Focas1.EW_HSSB : szErrorDesc = "Communication error of HSSB (HSSB version only)" - Case Focas1.EW_HANDLE : szErrorDesc = "Handle number error" - Case Focas1.EW_VERSION : szErrorDesc = "Version mismatch between the CNC/PMC and library" - Case Focas1.EW_UNEXP : szErrorDesc = "Abnormal library state" - Case Focas1.EW_SYSTEM : szErrorDesc = "System error (HSSB version only)" - Case Focas1.EW_PARITY : szErrorDesc = "Shared RAM parity error (HSSB version only)" - Case Focas1.EW_MMCSYS : szErrorDesc = "FANUC drivers installation error (HSSB version only)" - Case Focas1.EW_OK : szErrorDesc = "Normal termination" - Case Focas1.EW_NOPMC : szErrorDesc = "Error(No PMC)" - Case Focas1.EW_LENGTH : szErrorDesc = "Error(data block length error)" - Case Focas1.EW_RANGE : szErrorDesc = "Error(address range error)" - Case Focas1.EW_TYPE : szErrorDesc = "Error(address type/data type error)" - Case Focas1.EW_DATA : szErrorDesc = "Error(data error)" - Case Focas1.EW_NOOPT : szErrorDesc = "Error(no option)" - Case Focas1.EW_BUFFER : szErrorDesc = "Error(buffer empty/full)" - Case Focas1.EW_PASSWD : szErrorDesc = "Error(State of data protection)" - Case Else : szErrorDesc = "- ERRORE PMC INESISTENTE -" - End Select - - ''Stampo il messaggio - 'If (Config.Settings.Settings.Debug > 0) Then - ' 'If nReturn <> Focas1.EW_SOCKET Then 'tranne su errore di connessione - ' 'CncLib.App.Runtime..Log.WW("ERR pmc_wrpmcrng on F_RW_DWord CNC.FANUC", "Return=" & nReturn, True) - ' MsgBox(szErrorDesc & vbLf & "Occurred in: " & Position, MsgBoxStyle.Exclamation + MsgBoxStyle.ApplicationModal, "Error on Fanuc CNC Data Window") - ' 'End If - 'End If - Return True 'presenza errore - End If - - Return False 'assenza errori - End Function - -#Region "Funzioni specifiche IOT" - - - Public Function getPrgName() As Focas1.ODBEXEPRG - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Position\cnc_rdposition.htm - - Dim nPathIdx As Integer - Dim nReturn As Integer - - Dim prgName As Focas1.ODBEXEPRG - - prgName = New Focas1.ODBEXEPRG - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - - If Is30Series Then - - ' leggo tutto!!! - nReturn = Focas1.cnc_exeprgname(nLibHandle(nPathIdx), prgName) - - If F_CheckRetError_Cnc(nReturn, "cnc_exeprgname CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_exeprgname CNC.FANUC.CncLib") - End If - End If - - Return prgName - - End Function - - Public Function getAllAxisPos() As Focas1.ODBPOS - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Position\cnc_rdposition.htm - - Dim nPathIdx As Integer - Dim nNumAxisRead As Integer - Dim nReturn As Integer - - Dim posizAssi As Focas1.ODBPOS - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - 'leggo num max assi dal cn - nNumAxisRead = Focas1.MAX_AXIS - - If Is30Series Then - - ' leggo tutto!!! - nReturn = Focas1.cnc_rdposition(nLibHandle(nPathIdx), -1, nNumAxisRead, posizAssi) - - If F_CheckRetError_Cnc(nReturn, "cnc_rdposition RefreshAxisPosition CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_rdposition RefreshAxisPosition CNC.FANUC.CncLib") - End If - End If - - Return posizAssi - - End Function - - Public Function getAllAxisLoad() As Focas1.ODBSVLOAD - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Position\cnc_rdsvmeter.htm - - Dim nPathIdx As Integer - Dim nNumAxisRead As Integer - Dim nReturn As Integer - - Dim caricoAssi As Focas1.ODBSVLOAD - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - 'leggo num max assi dal cn - nNumAxisRead = Focas1.MAX_AXIS - - If Is30Series Then - - ' leggo tutto!!! - nReturn = Focas1.cnc_rdsvmeter(nLibHandle(nPathIdx), nNumAxisRead, caricoAssi) - - If F_CheckRetError_Cnc(nReturn, "cnc_rdsvmeter RefreshAxisMeter CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_rdsvmeter RefreshAxisMeter CNC.FANUC.CncLib") - End If - End If - - Return caricoAssi - - End Function - - Public Function getGlobalFeedrate() As Focas1.ODBACT - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Position\cnc_actf.htm - - Dim nPathIdx As Integer - Dim nNumAxisRead As Integer - Dim nReturn As Integer - - Dim feedData As Focas1.ODBACT - ' inizializzo - feedData = New Focas1.ODBACT - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - 'leggo num max assi dal cn - nNumAxisRead = Focas1.MAX_AXIS - - If Is30Series Then - - ' leggo feed globale - nReturn = Focas1.cnc_actf(nLibHandle(nPathIdx), feedData) - - If F_CheckRetError_Cnc(nReturn, "cnc_actf RefreshActFeedRate CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_actf RefreshActFeedRate CNC.FANUC.CncLib") - End If - End If - - Return feedData - - End Function - - Public Function getSpindleLoad() As Focas1.ODBSPN - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Position\cnc_rdspload.htm - ' RICHIEDE DRIVER ESTESO!!! NON VA!!! - - Dim nPathIdx As Integer - Dim nNumAxisRead As Integer - Dim nReturn As Integer - - Dim allData As Focas1.ODBSPN - ' inizializzo - allData = New Focas1.ODBSPN - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - 'leggo num max assi dal cn - nNumAxisRead = Focas1.MAX_AXIS - - If Is30Series Then - - ' leggo feed globale - nReturn = Focas1.cnc_rdspload(nLibHandle(nPathIdx), -1, allData) - - If F_CheckRetError_Cnc(nReturn, "cnc_rdspload RefreshAllSpindleLoad CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_rdspload RefreshAllSpindleLoad CNC.FANUC.CncLib") - End If - End If - - Return allData - - End Function - - Public Function getAllDynData() As Focas1.ODBDY2_1 - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Position\cnc_rddynamic2.htm - - Dim nPathIdx As Integer - Dim nNumAxisRead As Integer - Dim nReturn As Integer - - Dim allData As Focas1.ODBDY2_1 - ' inizializzo - allData = New Focas1.ODBDY2_1 - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - 'leggo num max assi dal cn - nNumAxisRead = Focas1.MAX_AXIS - - If Is30Series Then - - nReturn = Focas1.cnc_rddynamic2(nLibHandle(nPathIdx), 1, 28 + 4 * (4 * 1), allData) - '!!! non funziona: con -1 LEGGE 1 SOLO ASSE!!! - 'nReturn = Focas1.cnc_rddynamic2(nLibHandle(nPathIdx), -1, 28 + 4 * (4 * nNumAxisRead), allData) - - If F_CheckRetError_Cnc(nReturn, "cnc_rddynamic2 RefreshAllData CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_rddynamic2 RefreshAllData CNC.FANUC.CncLib") - End If - End If - - Return allData - - End Function - - Public Function getCncAlarm() As Focas1.ODBALMMSG2 - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Misc\cnc_rdalmmsg2.htm - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Misc\cnc_rdalminfo.htm - - Dim nPathIdx As Integer - Dim nNumAxisRead As Integer - Dim nReturn As Integer - - Dim allData As Focas1.ODBALMMSG2 - ' inizializzo - allData = New Focas1.ODBALMMSG2 - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - 'leggo num max assi dal cn - nNumAxisRead = Focas1.MAX_AXIS - - ' vettore num allarmi MAX da leggere...... - Dim numAllarmi As Int16 - numAllarmi = 512 - - If Is30Series Then - - Try - ' leggo tutto!!! - nReturn = Focas1.cnc_rdalmmsg2(nLibHandle(nPathIdx), -1, numAllarmi, allData) - - If F_CheckRetError_Cnc(nReturn, "cnc_rdalmmsg2 GetCncAlarm CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_rdalmmsg2 GetCncAlarm CNC.FANUC.CncLib") - Return New Focas1.ODBALMMSG2 - End If - Catch ex As Exception - - End Try - - End If - - Return allData - - End Function - - Public Function getPathGCodeMod() As Focas1.ODBGCD - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Misc\cnc_rdgcode.htm - - Dim nPathIdx As Integer - Dim nNumAxisRead As Integer - Dim nReturn As Integer - - Dim actGCode As Focas1.ODBGCD - ' inizializzo - actGCode = New Focas1.ODBGCD - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - 'leggo num max assi dal cn - nNumAxisRead = Focas1.MAX_AXIS - - If Is30Series Then - - ' leggo tutto!!! 0-27 (28 elementi) - nReturn = Focas1.cnc_rdgcode(nLibHandle(nPathIdx), -1, 1, 37, actGCode) - - If F_CheckRetError_Cnc(nReturn, "cnc_rdgcode RefreshPathGCode CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_rdgcode RefreshPathGCode CNC.FANUC.CncLib") - End If - End If - - Return actGCode - - End Function - - Public Function getPathGCode1Shot() As Focas1.ODBGCD - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Misc\cnc_rdgcode.htm - - Dim nPathIdx As Integer - Dim nNumAxisRead As Integer - Dim nReturn As Integer - - Dim actGCode As Focas1.ODBGCD - ' inizializzo - actGCode = New Focas1.ODBGCD - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - 'leggo num max assi dal cn - nNumAxisRead = Focas1.MAX_AXIS - - If Is30Series Then - - ' leggo tutto!!! 0-27 (28 elementi) - nReturn = Focas1.cnc_rdgcode(nLibHandle(nPathIdx), -2, 1, 4, actGCode) - - If F_CheckRetError_Cnc(nReturn, "cnc_rdgcode RefreshPathGCode CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_rdgcode RefreshPathGCode CNC.FANUC.CncLib") - End If - End If - - Return actGCode - - End Function - - Public Function getPathTTCoord() As Focas1.ODB5AXMAN - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Position\cnc_rd5axmandt.htm - - Dim nPathIdx As Integer - Dim nNumAxisRead As Integer - Dim nReturn As Integer - - Dim ttCoord As Focas1.ODB5AXMAN - ' inizializzo - ttCoord = New Focas1.ODB5AXMAN - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - 'leggo num max assi dal cn - nNumAxisRead = Focas1.MAX_AXIS - - If Is30Series Then - - ' leggo tutto!!! - nReturn = Focas1.cnc_rd5axmandt(nLibHandle(nPathIdx), ttCoord) - - If F_CheckRetError_Cnc(nReturn, "cnc_rd3dtooltip RefreshPathTTCoord CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_rd3dtooltip RefreshPathTTCoord CNC.FANUC.CncLib") - End If - End If - - Return ttCoord - - End Function - - Public Function getSpindleSpeed() As Focas1.ODBSPEED - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Position\cnc_rdspeed.htm - - Dim nPathIdx As Integer - Dim nNumAxisRead As Integer - Dim nReturn As Integer - - Dim speedAssi As Focas1.ODBSPEED - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - 'leggo num max assi dal cn - nNumAxisRead = Focas1.MAX_AXIS - - If Is30Series Then - - ' leggo tutto!!! - nReturn = Focas1.cnc_rdspeed(nLibHandle(nPathIdx), -1, speedAssi) - - If F_CheckRetError_Cnc(nReturn, "cnc_rdspeed RefreshAxisSpeed CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_rdspeed RefreshAxisSpeed CNC.FANUC.CncLib") - End If - End If - - Return speedAssi - - End Function - -#End Region - - End Class - -End Namespace \ No newline at end of file diff --git a/IOB-WIN/CncLib/CNC/CNC.FANUC/_/CNC.FANUC.Err.vb b/IOB-WIN/CncLib/CNC/CNC.FANUC/_/CNC.FANUC.Err.vb deleted file mode 100644 index 8a0b9fb..0000000 --- a/IOB-WIN/CncLib/CNC/CNC.FANUC/_/CNC.FANUC.Err.vb +++ /dev/null @@ -1,65 +0,0 @@ -Namespace CNC - - Partial Public Class FANUC - 'Private Class Err - - ' Private _Errors As Dictionary(Of Integer, String) 'Hashtable - - ' Public Sub New() - ' _Errors = New Dictionary(Of Integer, String) 'Hashtable - ' _Errors.Add(Focas1.EW_PROTOCOL, "protocol error") '-17 - ' _Errors.Add(Focas1.EW_SOCKET, "Windows socket error") '-16 - ' _Errors.Add(Focas1.EW_NODLL, "DLL not exist error") '-15 - ' _Errors.Add(Focas1.EW_BUS, "bus error") '-11 - ' _Errors.Add(Focas1.EW_SYSTEM2, "system error") '-10 - ' _Errors.Add(Focas1.EW_HSSB, "hssb communication error") '-9 - ' _Errors.Add(Focas1.EW_HANDLE, "Windows library handle error") '-8 - ' _Errors.Add(Focas1.EW_VERSION, "CNC/PMC version missmatch") '-7 - ' _Errors.Add(Focas1.EW_UNEXP, "abnormal error") '-6 - ' _Errors.Add(Focas1.EW_SYSTEM, "system error") '-5 - ' _Errors.Add(Focas1.EW_PARITY, "shared RAM parity error") '-4 - ' _Errors.Add(Focas1.EW_MMCSYS, "emm386 or mmcsys install error") '-3 - ' _Errors.Add(Focas1.EW_RESET, "reset or stop occured error") '-2 - ' _Errors.Add(Focas1.EW_BUSY, "busy error") '-1 - ' _Errors.Add(Focas1.EW_OK, "no problem") '0 - ' '_Errors.Add(Focas1.EW_FUNC, "command prepare error") '1 - ' '_Errors.Add(Focas1.EW_NOPMC, "pmc not exist") '1 - ' _Errors.Add(1, "command prepare error OR pmc not exist") '1 - ' _Errors.Add(Focas1.EW_LENGTH, "data block length error") '2 - ' '_Errors.Add(Focas1.EW_NUMBER, "data number error") '3 - ' '_Errors.Add(Focas1.EW_RANGE, "address range error") '3 - ' _Errors.Add(3, "data number error OR address range error") '3 - ' '_Errors.Add(Focas1.EW_ATTRIB, "data attribute error") '4 - ' '_Errors.Add(Focas1.EW_TYPE, "data type error") '4 - ' _Errors.Add(4, "data attribute error OR data type error") '4 - ' _Errors.Add(Focas1.EW_DATA, "data error") '5 - ' _Errors.Add(Focas1.EW_NOOPT, "no option error") '6 - ' _Errors.Add(Focas1.EW_PROT, "write protect error") '7 - ' _Errors.Add(Focas1.EW_OVRFLOW, "memory overflow error") '8 - ' _Errors.Add(Focas1.EW_PARAM, "cnc parameter not correct error") '9 - ' _Errors.Add(Focas1.EW_BUFFER, "buffer error") '10 - ' _Errors.Add(Focas1.EW_PATH, "path error") '11 - ' _Errors.Add(Focas1.EW_MODE, "cnc mode error") '12 - ' _Errors.Add(Focas1.EW_REJECT, "execution rejected error") '13 - ' _Errors.Add(Focas1.EW_DTSRVR, "data server error") '14 - ' _Errors.Add(Focas1.EW_ALARM, "alarm has been occurred") '15 - ' _Errors.Add(Focas1.EW_STOP, "CNC is not running") '16 - ' _Errors.Add(Focas1.EW_PASSWD, "protection data error") '17 - ' End Sub - - ' ''' - ' ''' Restituisce una stringa con la descrizione dell'errore - ' ''' - ' Public Function GetInfo(ByVal nError As Integer) As String - ' Try - ' Return String.Format("({0}) ""{1}""", nError, _Errors(nError)) 'es: (0) "no problem" - ' Catch ex As Exception - ' Return "!!! Error Info not available !!!" - ' End Try - ' End Function - - 'End Class - End Class - -End Namespace - diff --git a/IOB-WIN/CncLib/CNC/CNC.FANUC/_/fwlib32.vb b/IOB-WIN/CncLib/CNC/CNC.FANUC/_/fwlib32.vb deleted file mode 100644 index 94e6d90..0000000 --- a/IOB-WIN/CncLib/CNC/CNC.FANUC/_/fwlib32.vb +++ /dev/null @@ -1,10952 +0,0 @@ -'------------------------------------------------------- -' fwlib32.vb -' -' CNC/PMC Data Window Library for FOCAS1/Ethernet -' -' Copyright (C) 2003 by FANUC LTD. All rights reserved. -' -'------------------------------------------------------- -Imports System -Imports System.Runtime.InteropServices - - -Public Class Focas1 - ' Axis define -#If FS30D Then - Public Const MAX_AXIS = 32 -#Else - #If M_AXIS2 Then - Public Const MAX_AXIS = 24 - #Else - #If FS15D Then - Public Const MAX_AXIS = 10 - #Else - Public Const MAX_AXIS = 8 - #End If - #End If -#End If - - Public Const ALL_AXES = (-1) - Public Const ALL_SPINDLES = (-1) - - ' Error Codes - Public Const EW_PROTOCOL = (-17) ' protocol error - Public Const EW_SOCKET = (-16) ' Windows socket error - Public Const EW_NODLL = (-15) ' DLL not exist error - Public Const EW_BUS = (-11) ' bus error - Public Const EW_SYSTEM2 = (-10) ' system error - Public Const EW_HSSB = (-9) ' hssb communication error - Public Const EW_HANDLE = (-8) ' Windows library handle error - Public Const EW_VERSION = (-7) ' CNC/PMC version missmatch - Public Const EW_UNEXP = (-6) ' abnormal error - Public Const EW_SYSTEM = (-5) ' system error - Public Const EW_PARITY = (-4) ' shared RAM parity error - Public Const EW_MMCSYS = (-3) ' emm386 or mmcsys install error - Public Const EW_RESET = (-2) ' reset or stop occured error - Public Const EW_BUSY = (-1) ' busy error - Public Const EW_OK = 0 ' no problem - Public Const EW_FUNC = 1 ' command prepare error - Public Const EW_NOPMC = 1 ' pmc not exist - Public Const EW_LENGTH = 2 ' data block length error - Public Const EW_NUMBER = 3 ' data number error - Public Const EW_RANGE = 3 ' address range error - Public Const EW_ATTRIB = 4 ' data attribute error - Public Const EW_TYPE = 4 ' data type error - Public Const EW_DATA = 5 ' data error - Public Const EW_NOOPT = 6 ' no option error - Public Const EW_PROT = 7 ' write protect error - Public Const EW_OVRFLOW = 8 ' memory overflow error - Public Const EW_PARAM = 9 ' cnc parameter not correct error - Public Const EW_BUFFER = 10 ' buffer error - Public Const EW_PATH = 11 ' path error - Public Const EW_MODE = 12 ' cnc mode error - Public Const EW_REJECT = 13 ' execution rejected error - Public Const EW_DTSRVR = 14 ' data server error - Public Const EW_ALARM = 15 ' alarm has been occurred - Public Const EW_STOP = 16 ' CNC is not running - Public Const EW_PASSWD = 17 ' protection data error - - ' Result codes of DNC operation - - Public Const DNC_NORMAL = (-1) ' normal completed - Public Const DNC_CANCEL = (-32768) ' DNC operation was canceled by CNC - Public Const DNC_OPENERR = (-514) ' file open error - Public Const DNC_NOFILE = (-516) ' file not found - Public Const DNC_READERR = (-517) ' read error - - '-------------------- - ' - ' Structure Template - ' - '-------------------- - '------------------------------------- - ' CNC: Control axis / spindle related - '------------------------------------- - - ' cnc_actf:read actual axis feedrate(F) - ' cnc_acts:read actual spindle speed(S) - - Public Structure ODBACT - - Public dummy As Short() ' dummy - Public data As Integer ' actual feed / actual spindle - End Structure 'ODBACT - - ' cnc_acts2:read actual spindle speed(S) - ' (All or specified ) - - Public Structure ODBACT2 - Public datano As Short ' spindle number - Public type As Short ' dummy - - Public data As Integer() ' spindle data - End Structure 'ODBACT2 - - ' cnc_absolute:read absolute axis position - ' cnc_machine:read machine axis position - ' cnc_relative:read relative axis position - ' cnc_distance:read distance to go - ' cnc_skip:read skip position - ' cnc_srvdelay:read servo delay value - ' cnc_accdecdly:read acceleration/deceleration delay value - ' cnc_absolute2:read absolute axis position 2 - ' cnc_relative2:read relative axis position 2 - - Public Structure ODBAXIS - Public dummy As Short ' dummy - Public type As Short ' axis number - - Public data As Integer() ' data value - End Structure 'ODBAXIS - - ' cnc_rddynamic:read all dynamic data - - Public Structure FAXIS - - Public absolute As Integer() ' absolute position - - Public machine As Integer() ' machine position - - Public relative As Integer() ' relative position - - Public distance As Integer() ' distance to go - End Structure 'FAXIS - - Public Structure OAXIS - Public absolute As Integer ' absolute position - Public machine As Integer ' machine position - Public relative As Integer ' relative position - Public distance As Integer ' distance to go - End Structure -#If ONO8D = Nothing Then - - Public Structure ODBDY_1 - Public dummy As Short - Public axis As Short ' axis number - Public alarm As Short ' alarm status - Public prgnum As Short ' current program number - Public prgmnum As Short ' main program number - Public seqnum As Integer ' current sequence number - Public actf As Integer ' actual feedrate - Public acts As Integer ' actual spindle speed - Public pos As FAXIS - End Structure - - - Public Structure ODBDY_2 - Public dummy As Short - Public axis As Short ' axis number - Public alarm As Short ' alarm status - Public prgnum As Short ' current program number - Public prgmnum As Short ' main program number - Public seqnum As Integer ' current sequence number - Public actf As Integer ' actual feedrate - Public acts As Integer ' actual spindle speed - Public pos As OAXIS - End Structure -#Else - _ - Public Structure ODBDY_1 - Public dummy As Short - Public axis As Short ' axis number - Public alarm As Short ' alarm status - Public prgnum As Integer ' current program number - Public prgmnum As Integer ' main program number - Public seqnum As Integer ' current sequence number - Public actf As Integer ' actual feedrate - Public acts As Integer ' actual spindle speed - Public pos As FAXIS - End Structure - _ - Public Structure ODBDY_2 - Public dummy As Short - Public axis As Short ' axis number - Public alarm As Short ' alarm status - Public prgnum As Integer ' current program number - Public prgmnum As Integer ' main program number - Public seqnum As Integer ' current sequence number - Public actf As Integer ' actual feedrate - Public acts As Integer ' actual spindle speed - Public pos As OAXIS - End Structure -#End If - - ' cnc_rddynamic2:read all dynamic data - - Public Structure ODBDY2_1 - Public dummy As Short - Public axis As Short ' axis number - Public alarm As Integer ' alarm status - Public prgnum As Integer ' current program number - Public prgmnum As Integer ' main program number - Public seqnum As Integer ' current sequence number - Public actf As Integer ' actual feedrate - Public acts As Integer ' actual spindle speed - Public pos As FAXIS - End Structure - - Public Structure ODBDY2_2 - Public dummy As Short - Public axis As Short ' axis number - Public alarm As Integer ' alarm status - Public prgnum As Integer ' current program number - Public prgmnum As Integer ' main program number - Public seqnum As Integer ' current sequence number - Public actf As Integer ' actual feedrate - Public acts As Integer ' actual spindle speed - Public pos As OAXIS ' In case of 1 axis - End Structure - - ' cnc_wrrelpos:set origin / preset relative axis position - - Public Structure IDBWRR - Public datano As Short ' dummy - Public type As Short ' axis number - - Public data As Integer() ' preset data - End Structure - - ' cnc_prstwkcd:preset work coordinate - - Public Structure IDBWRA - Public datano As Short ' dummy - Public type As Short ' axis number - - Public data As Integer() ' preset data - End Structure - - ' cnc_rdmovrlap:read manual overlapped motion value - - Public Structure IODBOVL - Public datano As Short ' dummy - Public type As Short ' axis number - - Public data As Integer() ' data value:[2][MAX_AXIS] - End Structure - - ' cnc_rdspload:read load information of serial spindle - ' cnc_rdspmaxrpm:read maximum r.p.m. ratio of serial spindle - ' cnc_rdspgear:read gear ratio of serial spindle - - Public Structure ODBSPN - Public datano As Short ' dummy - Public type As Short ' axis number - - Public data As Short() ' preset data - End Structure - - ' cnc_rdposition:read tool position - - Public Structure POSELM - Public data As Integer ' position data - Public dec As Short ' place of decimal point of position data - Public unit As Short ' unit of position data - Public disp As Short ' status of display - Public name As Char ' axis name - Public suff As Char ' axis name preffix - End Structure - - - Public Structure POSELMALL - Public abs As POSELM - Public mach As POSELM - Public rel As POSELM - Public dist As POSELM - End Structure -#If FS30D Then - - Public Structure ODBPOS - Public p1 As POSELMALL - Public p2 As POSELMALL - Public p3 As POSELMALL - Public p4 As POSELMALL - Public p5 As POSELMALL - Public p6 As POSELMALL - Public p7 As POSELMALL - Public p8 As POSELMALL - Public p9 As POSELMALL - Public p10 As POSELMALL - Public p11 As POSELMALL - Public p12 As POSELMALL - Public p13 As POSELMALL - Public p14 As POSELMALL - Public p15 As POSELMALL - Public p16 As POSELMALL - Public p17 As POSELMALL - Public p18 As POSELMALL - Public p19 As POSELMALL - Public p20 As POSELMALL - Public p21 As POSELMALL - Public p22 As POSELMALL - Public p23 As POSELMALL - Public p24 As POSELMALL - Public p25 As POSELMALL - Public p26 As POSELMALL - Public p27 As POSELMALL - Public p28 As POSELMALL - Public p29 As POSELMALL - Public p30 As POSELMALL - Public p31 As POSELMALL - Public p32 As POSELMALL - ' In case of 32 axes. - ' if you need the more information, you must be add the member. - End Structure -#Else - #If M_AXIS2 Then - _ - Public Structure ODBPOS - Public p1 As POSELMALL - Public p2 As POSELMALL - Public p3 As POSELMALL - Public p4 As POSELMALL - Public p5 As POSELMALL - Public p6 As POSELMALL - Public p7 As POSELMALL - Public p8 As POSELMALL - Public p9 As POSELMALL - Public p10 As POSELMALL - Public p11 As POSELMALL - Public p12 As POSELMALL - Public p13 As POSELMALL - Public p14 As POSELMALL - Public p15 As POSELMALL - Public p16 As POSELMALL - Public p17 As POSELMALL - Public p18 As POSELMALL - Public p19 As POSELMALL - Public p20 As POSELMALL - Public p21 As POSELMALL - Public p22 As POSELMALL - Public p23 As POSELMALL - Public p24 As POSELMALL - ' In case of 24 axes. - ' if you need the more information, you must be add the member. - End Structure - #Else - #If FS15D Then - _ - Public Structure ODBPOS - Public p1 As POSELMALL - Public p2 As POSELMALL - Public p3 As POSELMALL - Public p4 As POSELMALL - Public p5 As POSELMALL - Public p6 As POSELMALL - Public p7 As POSELMALL - Public p8 As POSELMALL - Public p9 As POSELMALL - Public p10 As POSELMALL - ' In case of 10 axes. - ' if you need the more information, you must be add the member. - End Structure - #Else - _ - Public Structure ODBPOS - Public p1 As POSELMALL - Public p2 As POSELMALL - Public p3 As POSELMALL - Public p4 As POSELMALL - Public p5 As POSELMALL - Public p6 As POSELMALL - Public p7 As POSELMALL - Public p8 As POSELMALL - ' In case of 8 axes. - ' if you need the more information, you must be add the member. - End Structure - #End If - #End If -#End If - - ' cnc_rdhndintrpt:read handle interruption - - Public Structure ODBHND_data - Public input As POSELM ' input unit - Public output As POSELM ' output unit - End Structure -#If FS30D Then - - Public Structure ODBHND - Public p1 As ODBHND_data - Public p2 As ODBHND_data - Public p3 As ODBHND_data - Public p4 As ODBHND_data - Public p5 As ODBHND_data - Public p6 As ODBHND_data - Public p7 As ODBHND_data - Public p8 As ODBHND_data - Public p9 As ODBHND_data - Public p10 As ODBHND_data - Public p11 As ODBHND_data - Public p12 As ODBHND_data - Public p13 As ODBHND_data - Public p14 As ODBHND_data - Public p15 As ODBHND_data - Public p16 As ODBHND_data - Public p17 As ODBHND_data - Public p18 As ODBHND_data - Public p19 As ODBHND_data - Public p20 As ODBHND_data - Public p21 As ODBHND_data - Public p22 As ODBHND_data - Public p23 As ODBHND_data - Public p24 As ODBHND_data - Public p25 As ODBHND_data - Public p26 As ODBHND_data - Public p27 As ODBHND_data - Public p28 As ODBHND_data - Public p29 As ODBHND_data - Public p30 As ODBHND_data - Public p31 As ODBHND_data - Public p32 As ODBHND_data - ' In case of 32 axes. - ' if you need the more information, you must be add the member. - End Structure -#Else -#If M_AXIS2 Then - _ - Public Structure ODBHND - Public p1 As ODBHND_data - Public p2 As ODBHND_data - Public p3 As ODBHND_data - Public p4 As ODBHND_data - Public p5 As ODBHND_data - Public p6 As ODBHND_data - Public p7 As ODBHND_data - Public p8 As ODBHND_data - Public p9 As ODBHND_data - Public p10 As ODBHND_data - Public p11 As ODBHND_data - Public p12 As ODBHND_data - Public p13 As ODBHND_data - Public p14 As ODBHND_data - Public p15 As ODBHND_data - Public p16 As ODBHND_data - Public p17 As ODBHND_data - Public p18 As ODBHND_data - Public p19 As ODBHND_data - Public p20 As ODBHND_data - Public p21 As ODBHND_data - Public p22 As ODBHND_data - Public p23 As ODBHND_data - Public p24 As ODBHND_data - ' In case of 24 axes. - ' if you need the more information, you must be add the member. - End Structure -#Else -#If FS15D Then - _ - Public Structure ODBHND - Public p1 As ODBHND_data - Public p2 As ODBHND_data - Public p3 As ODBHND_data - Public p4 As ODBHND_data - Public p5 As ODBHND_data - Public p6 As ODBHND_data - Public p7 As ODBHND_data - Public p8 As ODBHND_data - Public p9 As ODBHND_data - Public p10 As ODBHND_data - ' In case of 10 axes. - ' if you need the more information, you must be add the member. - End Structure -#Else - _ - Public Structure ODBHND - Public p1 As ODBHND_data - Public p2 As ODBHND_data - Public p3 As ODBHND_data - Public p4 As ODBHND_data - Public p5 As ODBHND_data - Public p6 As ODBHND_data - Public p7 As ODBHND_data - Public p8 As ODBHND_data - ' In case of 8 axes. - ' if you need the more information, you must be add the member. - End Structure -#End If -#End If -#End If - - ' cnc_rdspeed:read current speed - - Public Structure SPEEDELM - Public data As Integer ' speed data - Public dec As Short ' decimal position - Public unit As Short ' data unit - Public disp As Short ' display flag - Public name As Byte ' name of data - Public suff As Byte ' suffix - End Structure - - - Public Structure ODBSPEED - Public actf As SPEEDELM ' actual feed rate - Public acts As SPEEDELM ' actual spindle speed - End Structure - - ' cnc_rdsvmeter:read servo load meter - ' cnc_rdspmeter:read spindle load meter - - Public Structure LOADELM - Public data As Integer ' load meter - Public dec As Short ' decimal position - Public unit As Short ' unit - Public name As Byte ' name of data - Public suff1 As Byte ' suffix - Public suff2 As Byte ' suffix - Public reserve As Byte ' reserve - End Structure -#If FS30D Then - - Public Structure ODBSVLOAD - Public svload1 As LOADELM ' servo load meter - Public svload2 As LOADELM ' servo load meter - Public svload3 As LOADELM ' servo load meter - Public svload4 As LOADELM ' servo load meter - Public svload5 As LOADELM ' servo load meter - Public svload6 As LOADELM ' servo load meter - Public svload7 As LOADELM ' servo load meter - Public svload8 As LOADELM ' servo load meter - Public svload9 As LOADELM ' servo load meter - Public svload10 As LOADELM ' servo load meter - Public svload11 As LOADELM ' servo load meter - Public svload12 As LOADELM ' servo load meter - Public svload13 As LOADELM ' servo load meter - Public svload14 As LOADELM ' servo load meter - Public svload15 As LOADELM ' servo load meter - Public svload16 As LOADELM ' servo load meter - Public svload17 As LOADELM ' servo load meter - Public svload18 As LOADELM ' servo load meter - Public svload19 As LOADELM ' servo load meter - Public svload20 As LOADELM ' servo load meter - Public svload21 As LOADELM ' servo load meter - Public svload22 As LOADELM ' servo load meter - Public svload23 As LOADELM ' servo load meter - Public svload24 As LOADELM ' servo load meter - Public svload25 As LOADELM ' servo load meter - Public svload26 As LOADELM ' servo load meter - Public svload27 As LOADELM ' servo load meter - Public svload28 As LOADELM ' servo load meter - Public svload29 As LOADELM ' servo load meter - Public svload30 As LOADELM ' servo load meter - Public svload31 As LOADELM ' servo load meter - Public svload32 As LOADELM ' servo load meter - End Structure -#Else -#If M_AXIS2 Then - _ - Public Structure ODBSVLOAD - Public svload1 As LOADELM ' servo load meter - Public svload2 As LOADELM ' servo load meter - Public svload3 As LOADELM ' servo load meter - Public svload4 As LOADELM ' servo load meter - Public svload5 As LOADELM ' servo load meter - Public svload6 As LOADELM ' servo load meter - Public svload7 As LOADELM ' servo load meter - Public svload8 As LOADELM ' servo load meter - Public svload9 As LOADELM ' servo load meter - Public svload10 As LOADELM ' servo load meter - Public svload11 As LOADELM ' servo load meter - Public svload12 As LOADELM ' servo load meter - Public svload13 As LOADELM ' servo load meter - Public svload14 As LOADELM ' servo load meter - Public svload15 As LOADELM ' servo load meter - Public svload16 As LOADELM ' servo load meter - Public svload17 As LOADELM ' servo load meter - Public svload18 As LOADELM ' servo load meter - Public svload19 As LOADELM ' servo load meter - Public svload20 As LOADELM ' servo load meter - Public svload21 As LOADELM ' servo load meter - Public svload22 As LOADELM ' servo load meter - Public svload23 As LOADELM ' servo load meter - Public svload24 As LOADELM ' servo load meter - End Structure -#Else -#If FS15D Then - _ - Public Structure ODBSVLOAD - Public svload1 As LOADELM ' servo load meter - Public svload2 As LOADELM ' servo load meter - Public svload3 As LOADELM ' servo load meter - Public svload4 As LOADELM ' servo load meter - Public svload5 As LOADELM ' servo load meter - Public svload6 As LOADELM ' servo load meter - Public svload7 As LOADELM ' servo load meter - Public svload8 As LOADELM ' servo load meter - Public svload9 As LOADELM ' servo load meter - Public svload10 As LOADELM ' servo load meter - End Structure -#Else - _ - Public Structure ODBSVLOAD - Public svload1 As LOADELM ' servo load meter - Public svload2 As LOADELM ' servo load meter - Public svload3 As LOADELM ' servo load meter - Public svload4 As LOADELM ' servo load meter - Public svload5 As LOADELM ' servo load meter - Public svload6 As LOADELM ' servo load meter - Public svload7 As LOADELM ' servo load meter - Public svload8 As LOADELM ' servo load meter - End Structure -#End If -#End If -#End If - - - Public Structure ODBSPLOAD_data - Public spload As LOADELM ' spindle load meter - Public spspeed As LOADELM ' spindle speed - End Structure - - Public Structure ODBSPLOAD - Public spload1 As ODBSPLOAD_data ' spindle load - Public spload2 As ODBSPLOAD_data ' spindle load - Public spload3 As ODBSPLOAD_data ' spindle load - Public spload4 As ODBSPLOAD_data ' spindle load - End Structure - - ' cnc_rdexecpt:read execution program pointer - - Public Structure PRGPNT - Public prog_no As Integer ' program number - Public blk_no As Integer ' block number - End Structure - - ' cnc_rd5axmandt:read manual feed for 5-axis machining - - Public Structure ODB5AXMAN - Public type1 As Short - Public type2 As Short - Public type3 As Short - Public data1 As Integer - Public data2 As Integer - Public data3 As Integer - Public c1 As Integer - Public c2 As Integer - Public dummy As Integer - Public td As Integer - Public r1 As Integer - Public r2 As Integer - Public vr As Integer - Public h1 As Integer - Public h2 As Integer - End Structure - - '---------------------- - ' CNC: Program related - '---------------------- - - ' cnc_rddncdgndt:read the diagnosis data of DNC operation - - Public Structure ODBDNCDGN - Public ctrl_word As Short - Public can_word As Short - - Public nc_file As Char() - Public read_ptr As Short - Public write_ptr As Short - Public empty_cnt As Short - Public total_size As Integer - End Structure - - ' cnc_upload:upload NC program - ' cnc_cupload:upload NC program(conditional) - - Public Structure ODBUP - - Public dummy As Short() ' dummy - - Public data As String ' data - End Structure ' In case that the number of data is 256 - - ' cnc_buff:read buffer status for downloading/verification NC program - - Public Structure ODBBUF - - Public dummy As Short() ' dummy - Public data As Short ' buffer status - End Structure - - ' cnc_rdprogdir:read program directory - - Public Structure PRGDIR - - Public prg_data As Char() ' directory data - End Structure ' In case that the number of data is 256 - - ' cnc_rdproginfo:read program information - - Public Structure ODBNC_1 - Public reg_prg As Short ' registered program number - Public unreg_prg As Short ' unregistered program number - Public used_mem As Integer ' used memory area - Public unused_mem As Integer ' unused memory area - End Structure - - - Public Structure ODBNC_2 - - Public asc As Char() ' ASCII string type - End Structure - - ' cnc_rdprgnum:read program number under execution -#If ONO8D = Nothing Then - - Public Structure ODBPRO - - Public dummy As Short() ' dummy - Public data As Short ' running program number - Public mdata As Short ' main program number - End Structure -#Else - _ - Public Structure ODBPRO - _ - Public dummy As Short() ' dummy - Public data As Integer ' running program number - Public mdata As Integer ' main program number - End Structure -#End If - - ' cnc_exeprgname:read program name under execution - - Public Structure ODBEXEPRG - - Public name As Char() ' running program name - Public o_num As Integer ' running program number - End Structure - - ' cnc_rdseqnum:read sequence number under execution - - Public Structure ODBSEQ - - Public dummy As Short() ' dummy - Public data As Integer ' sequence number - End Structure - - ' cnc_rdmdipntr:read execution pointer for MDI operation -#If ONO8D = Nothing Then - - Public Structure ODBMDIP - Public mdiprog As Short ' exec. program number - Public mdipntr As Integer ' exec. pointer - Public crntprog As Short ' prepare program number - Public crntpntr As Integer ' prepare pointer - End Structure -#Else - _ - Public Structure ODBMDIP - Public mdiprog As Integer ' exec. program number - Public mdipntr As Integer ' exec. pointer - Public crntprog As Integer ' prepare program number - Public crntpntr As Integer ' prepare pointer - End Structure -#End If - - ' cnc_rdaxisdata:read various axis data - - Public Structure ODBAXDT_data - - Public name As String ' data - Public data As Integer ' position data - Public dec As Short ' decimal position - Public unit As Short ' data unit - Public flag As Short ' flags - Public reserve As Short ' reserve - End Structure - - - Public Structure ODBAXDT - Public data1 As ODBAXDT_data - Public data2 As ODBAXDT_data - Public data3 As ODBAXDT_data - Public data4 As ODBAXDT_data - Public data5 As ODBAXDT_data - Public data6 As ODBAXDT_data - Public data7 As ODBAXDT_data - Public data8 As ODBAXDT_data - Public data9 As ODBAXDT_data - Public data10 As ODBAXDT_data - Public data11 As ODBAXDT_data - Public data12 As ODBAXDT_data - Public data13 As ODBAXDT_data - Public data14 As ODBAXDT_data - Public data15 As ODBAXDT_data - Public data16 As ODBAXDT_data - Public data17 As ODBAXDT_data - Public data18 As ODBAXDT_data - Public data19 As ODBAXDT_data - Public data20 As ODBAXDT_data - Public data21 As ODBAXDT_data - Public data22 As ODBAXDT_data - Public data23 As ODBAXDT_data - Public data24 As ODBAXDT_data - Public data25 As ODBAXDT_data - Public data26 As ODBAXDT_data - Public data27 As ODBAXDT_data - Public data28 As ODBAXDT_data - Public data29 As ODBAXDT_data - Public data30 As ODBAXDT_data - Public data31 As ODBAXDT_data - Public data32 As ODBAXDT_data - Public data33 As ODBAXDT_data - Public data34 As ODBAXDT_data - Public data35 As ODBAXDT_data - Public data36 As ODBAXDT_data - Public data37 As ODBAXDT_data - Public data38 As ODBAXDT_data - Public data39 As ODBAXDT_data - Public data40 As ODBAXDT_data - Public data41 As ODBAXDT_data - Public data42 As ODBAXDT_data - Public data43 As ODBAXDT_data - Public data44 As ODBAXDT_data - Public data45 As ODBAXDT_data - Public data46 As ODBAXDT_data - Public data47 As ODBAXDT_data - Public data48 As ODBAXDT_data - Public data49 As ODBAXDT_data - Public data50 As ODBAXDT_data - Public data51 As ODBAXDT_data - Public data52 As ODBAXDT_data - Public data53 As ODBAXDT_data - Public data54 As ODBAXDT_data - Public data55 As ODBAXDT_data - Public data56 As ODBAXDT_data - Public data57 As ODBAXDT_data - Public data58 As ODBAXDT_data - Public data59 As ODBAXDT_data - Public data60 As ODBAXDT_data - Public data61 As ODBAXDT_data - Public data62 As ODBAXDT_data - Public data63 As ODBAXDT_data - Public data64 As ODBAXDT_data - Public data65 As ODBAXDT_data - Public data66 As ODBAXDT_data - Public data67 As ODBAXDT_data - Public data68 As ODBAXDT_data - Public data69 As ODBAXDT_data - Public data70 As ODBAXDT_data - Public data71 As ODBAXDT_data - Public data72 As ODBAXDT_data - Public data73 As ODBAXDT_data - Public data74 As ODBAXDT_data - Public data75 As ODBAXDT_data - Public data76 As ODBAXDT_data - Public data77 As ODBAXDT_data - Public data78 As ODBAXDT_data - Public data79 As ODBAXDT_data - Public data80 As ODBAXDT_data - Public data81 As ODBAXDT_data - Public data82 As ODBAXDT_data - Public data83 As ODBAXDT_data - Public data84 As ODBAXDT_data - Public data85 As ODBAXDT_data - Public data86 As ODBAXDT_data - Public data87 As ODBAXDT_data - Public data88 As ODBAXDT_data - Public data89 As ODBAXDT_data - Public data90 As ODBAXDT_data - Public data91 As ODBAXDT_data - Public data92 As ODBAXDT_data - Public data93 As ODBAXDT_data - Public data94 As ODBAXDT_data - Public data95 As ODBAXDT_data - Public data96 As ODBAXDT_data - Public data97 As ODBAXDT_data - Public data98 As ODBAXDT_data - Public data99 As ODBAXDT_data - Public data100 As ODBAXDT_data - Public data101 As ODBAXDT_data - Public data102 As ODBAXDT_data - Public data103 As ODBAXDT_data - Public data104 As ODBAXDT_data - Public data105 As ODBAXDT_data - Public data106 As ODBAXDT_data - Public data107 As ODBAXDT_data - Public data108 As ODBAXDT_data - Public data109 As ODBAXDT_data - Public data110 As ODBAXDT_data - Public data111 As ODBAXDT_data - Public data112 As ODBAXDT_data - Public data113 As ODBAXDT_data - Public data114 As ODBAXDT_data - Public data115 As ODBAXDT_data - Public data116 As ODBAXDT_data - Public data117 As ODBAXDT_data - Public data118 As ODBAXDT_data - Public data119 As ODBAXDT_data - Public data120 As ODBAXDT_data - Public data121 As ODBAXDT_data - Public data122 As ODBAXDT_data - Public data123 As ODBAXDT_data - Public data124 As ODBAXDT_data - Public data125 As ODBAXDT_data - Public data126 As ODBAXDT_data - Public data127 As ODBAXDT_data - Public data128 As ODBAXDT_data - End Structure - - ' cnc_rdspcss:read constant surface speed data - - Public Structure ODBCSS - Public srpm As Integer ' order spindle speed - Public sspm As Integer ' order constant spindle speed - Public smax As Integer ' order maximum spindle speed - End Structure - - ' cnc_rdpdf_drive:read program drive directory - - Public Structure ODBPDFDRV - Public max_num As Short ' maximum drive number - Public dummy As Short - - Public drive1 As String - - Public drive2 As String - - Public drive3 As String - - Public drive4 As String - - Public drive5 As String - - Public drive6 As String - - Public drive7 As String - - Public drive8 As String - - Public drive9 As String - - Public drive10 As String - - Public drive11 As String - - Public drive12 As String - - Public drive13 As String - - Public drive14 As String - - Public drive15 As String - - Public drive16 As String - End Structure - - ' cnc_rdpdf_inf:read program drive information - - Public Structure ODBPDFINF - Public used_page As Integer ' used capacity - Public all_page As Integer ' all capacity - Public used_dir As Integer ' used directory number - Public all_dir As Integer ' all directory number - End Structure - - ' cnc_rdpdf_subdir:read directory (sub directories) - - Public Structure IDBPDFSDIR - - Public path As String ' path name - Public req_num As Short ' entry number - Public dummy As Short - End Structure - - ' cnc_rdpdf_subdir:read directory (sub directories) - - Public Structure ODBPDFSDIR - Public sub_exist As Short ' existence of sub directory - Public dummy As Short - - Public d_f As String ' directory name - End Structure - - ' cnc_rdpdf_alldir:read directory (all files) - - Public Structure IDBPDFADIR - - Public path As String ' path name - Public req_num As Short ' entry number - Public size_kind As Short ' kind of size - Public type As Short ' kind of format - Public dummy As Short - End Structure - - ' cnc_rdpdf_alldir:read directory (all files) - - Public Structure ODBPDFADIR - Public data_kind As Short ' kinf of data - Public year As Short ' last date and time - Public mon As Short ' last date and time - Public day As Short ' last date and time - Public hour As Short ' last date and time - Public min As Short ' last date and time - Public sec As Short ' last date and time - Public dummy As Short - Public dummy2 As Integer - Public size As Integer ' size - Public attr As Integer ' attribute - - Public d_f As String ' path name - - Public comment As String ' comment - - Public o_time As String ' comment - End Structure - - ' cnc_rdpdf_subdirn:read file count the directory has - - Public Structure ODBPDFNFIL - Public dir_num As Short ' directory - Public file_num As Short ' file - End Structure - - ' cnc_wrpdf_attr:change attribute of program file and directory - - Public Structure IDBPDFTDIR - Public slct As Integer ' selection - Public attr As Integer ' data - End Structure - - '--------------------------- - ' CNC: NC file data related - '--------------------------- - - ' cnc_rdtofs:read tool offset value - - Public Structure ODBTOFS - Public datano As Short ' data number - Public type As Short ' data type - Public data As Integer ' data - End Structure - - ' cnc_rdtofsr:read tool offset value(area specified) - ' cnc_wrtofsr:write tool offset value(area specified) - - Public Structure OFS_1 - - Public m_ofs As Integer() ' M Each - - Public m_ofs_a As Integer() ' M-A All - - Public t_tip As Short() ' T Each, 2-byte - - Public t_ofs As Integer() ' T Each, 4-byte - End Structure ' In case that the number of data is 5 - - Public Structure OFS_2 - - Public m_ofs_b As Integer() ' M-B All - End Structure ' In case that the number of data is 5 - - Public Structure OFS_3 - ' _ - - Public m_ofs_c As Integer() ' M-C All - End Structure ' In case that the number of data is 5 - - Public Structure T_OFS_A - Public tip As Short - - Public data As Integer() - End Structure ' T-A All - - Public Structure T_OFS_A_data - Public data1 As T_OFS_A - Public data2 As T_OFS_A - Public data3 As T_OFS_A - Public data4 As T_OFS_A - Public data5 As T_OFS_A - End Structure ' In case that the number of data is 5 - - Public Structure T_OFS_B - Public tip As Short - - Public data As Integer() - End Structure ' T-B All - - Public Structure T_OFS_B_data - Public data1 As T_OFS_B - Public data2 As T_OFS_B - Public data3 As T_OFS_B - Public data4 As T_OFS_B - Public data5 As T_OFS_B - End Structure ' In case that the number of data is 5 - - Public Structure IODBTO_1_1 - Public datano_s As Short ' start offset number - Public type As Short ' offset type - Public datano_e As Short ' end offset number - Public ofs As OFS_1 - End Structure - - Public Structure IODBTO_1_2 - Public datano_s As Short ' start offset number - Public type As Short ' offset type - Public datano_e As Short ' end offset number - Public ofs As OFS_2 - End Structure - - Public Structure IODBTO_1_3 - Public datano_s As Short ' start offset number - Public type As Short ' offset type - Public datano_e As Short ' end offset number - Public ofs As OFS_3 - End Structure - - Public Structure IODBTO_2 - Public datano_s As Short ' start offset number - Public type As Short ' offset type - Public datano_e As Short ' end offset number - Public tofsa As T_OFS_A_data - End Structure - - Public Structure IODBTO_3 - Public datano_s As Short ' start offset number - Public type As Short ' offset type - Public datano_e As Short ' end offset number - Public tofsb As T_OFS_B_data - End Structure - - ' cnc_rdzofs:read work zero offset value - ' cnc_wrzofs:write work zero offset value - - Public Structure IODBZOFS - Public datano As Short ' offset NO. - Public type As Short ' axis number - - Public data As Integer() ' data value - End Structure - - ' cnc_rdzofsr:read work zero offset value(area specified) - ' cnc_wrzofsr:write work zero offset value(area specified) - - Public Structure IODBZOR - Public datano_s As Short ' start offset number - Public type As Short ' axis number - Public datano_e As Short ' end offset number - - Public data As Integer() ' offset value - End Structure ' In case that the number of axes is MAX_AXIS, the number of data is 7 - - ' cnc_rdmsptype:read mesured point value - ' cnc_wrmsptype:write mesured point value - - Public Structure IODBMSTP - Public datano_s As Short ' start offset number - Public dummy As Short ' dummy - Public datano_e As Short ' end offset number - - Public data As SByte() ' mesured point value - End Structure - - ' cnc_rdparam:read parameter - ' cnc_wrparam:write parameter - ' cnc_rdset:read setting data - ' cnc_wrset:write setting data - ' cnc_rdparar:read parameter(area specified) - ' cnc_wrparas:write parameter(plural specified) - ' cnc_rdsetr:read setting data(area specified) - ' cnc_wrsets:write setting data(plural specified) - - Public Structure REALPRM - Public prm_val As Integer ' data of real parameter - Public dec_val As Integer ' decimal point of real parameter - End Structure -#If FS30D Then - - Public Structure REALPRMS - Public rdata1 As REALPRM - Public rdata2 As REALPRM - Public rdata3 As REALPRM - Public rdata4 As REALPRM - Public rdata5 As REALPRM - Public rdata6 As REALPRM - Public rdata7 As REALPRM - Public rdata8 As REALPRM - Public rdata9 As REALPRM - Public rdata10 As REALPRM - Public rdata11 As REALPRM - Public rdata12 As REALPRM - Public rdata13 As REALPRM - Public rdata14 As REALPRM - Public rdata15 As REALPRM - Public rdata16 As REALPRM - Public rdata17 As REALPRM - Public rdata18 As REALPRM - Public rdata19 As REALPRM - Public rdata20 As REALPRM - Public rdata21 As REALPRM - Public rdata22 As REALPRM - Public rdata23 As REALPRM - Public rdata24 As REALPRM - Public rdata25 As REALPRM - Public rdata26 As REALPRM - Public rdata27 As REALPRM - Public rdata28 As REALPRM - Public rdata29 As REALPRM - Public rdata30 As REALPRM - Public rdata31 As REALPRM - Public rdata32 As REALPRM - End Structure ' In case that the number of alarm is 32 -#Else -#If M_AXIS2 Then - _ - Public Structure REALPRMS - Public rdata1 As REALPRM - Public rdata2 As REALPRM - Public rdata3 As REALPRM - Public rdata4 As REALPRM - Public rdata5 As REALPRM - Public rdata6 As REALPRM - Public rdata7 As REALPRM - Public rdata8 As REALPRM - Public rdata9 As REALPRM - Public rdata10 As REALPRM - Public rdata11 As REALPRM - Public rdata12 As REALPRM - Public rdata13 As REALPRM - Public rdata14 As REALPRM - Public rdata15 As REALPRM - Public rdata16 As REALPRM - Public rdata17 As REALPRM - Public rdata18 As REALPRM - Public rdata19 As REALPRM - Public rdata20 As REALPRM - Public rdata21 As REALPRM - Public rdata22 As REALPRM - Public rdata23 As REALPRM - Public rdata24 As REALPRM - End Structure ' In case that the number of alarm is 24 -#Else -#If FS15D Then - _ - Public Structure REALPRMS - Public rdata1 As REALPRM - Public rdata2 As REALPRM - Public rdata3 As REALPRM - Public rdata4 As REALPRM - Public rdata5 As REALPRM - Public rdata6 As REALPRM - Public rdata7 As REALPRM - Public rdata8 As REALPRM - Public rdata9 As REALPRM - Public rdata10 As REALPRM - End Structure ' In case that the number of alarm is 10 -#Else - _ - Public Structure REALPRMS - Public rdata1 As REALPRM - Public rdata2 As REALPRM - Public rdata3 As REALPRM - Public rdata4 As REALPRM - Public rdata5 As REALPRM - Public rdata6 As REALPRM - Public rdata7 As REALPRM - Public rdata8 As REALPRM - End Structure ' In case that the number of alarm is 8 -#End If -#End If -#End If - - - Public Structure IODBPSD_1 - - Public datano As Short ' data number - - Public type As Short ' axis number - - Public cdata As Byte ' parameter / setting data - - Public idata As Short - - Public ldata As Integer - End Structure - - Public Structure IODBPSD_2 - Public datano As Short ' data number - Public type As Short ' axis number - Public rdata As REALPRM - End Structure - - Public Structure IODBPSD_3 - - Public datano As Short ' data number - - Public type As Short ' axis number - - Public cdatas As Byte() - - Public idatas As Short() - - Public ldatas As Integer() - End Structure - - Public Structure IODBPSD_4 - Public datano As Short ' data number - Public type As Short ' axis number - Public rdatas As REALPRMS - End Structure - - Public Structure IODBPSD_A - Public data1 As IODBPSD_1 - Public data2 As IODBPSD_1 - Public data3 As IODBPSD_1 - Public data4 As IODBPSD_1 - Public data5 As IODBPSD_1 - Public data6 As IODBPSD_1 - Public data7 As IODBPSD_1 - End Structure ' (sample) must be modified - - Public Structure IODBPSD_B - Public data1 As IODBPSD_2 - Public data2 As IODBPSD_2 - Public data3 As IODBPSD_2 - Public data4 As IODBPSD_2 - Public data5 As IODBPSD_2 - Public data6 As IODBPSD_2 - Public data7 As IODBPSD_2 - End Structure ' (sample) must be modified - - Public Structure IODBPSD_C - Public data1 As IODBPSD_3 - Public data2 As IODBPSD_3 - Public data3 As IODBPSD_3 - Public data4 As IODBPSD_3 - Public data5 As IODBPSD_3 - Public data6 As IODBPSD_3 - Public data7 As IODBPSD_3 - End Structure ' (sample) must be modified - - Public Structure IODBPSD_D - Public data1 As IODBPSD_4 - Public data2 As IODBPSD_4 - Public data3 As IODBPSD_4 - Public data4 As IODBPSD_4 - Public data5 As IODBPSD_4 - Public data6 As IODBPSD_4 - Public data7 As IODBPSD_4 - End Structure ' (sample) must be modified - - ' cnc_rdparam_ext:read parameAers - ' cnc_rddiag_ext:read diagnosis data - ' cnc_start_async_wrparam:async parameter write start - - Public Structure IODBPRMNO - - Public prm As Integer() - End Structure - - Public Structure IODBPRM_data - Public prm_val As Integer ' parameter / setting data - Public dec_val As Integer - End Structure - - Public Structure IODBPRM1 - Public data1 As IODBPRM_data - Public data2 As IODBPRM_data - Public data3 As IODBPRM_data - Public data4 As IODBPRM_data - Public data5 As IODBPRM_data - Public data6 As IODBPRM_data - Public data7 As IODBPRM_data - Public data8 As IODBPRM_data - Public data9 As IODBPRM_data - Public data10 As IODBPRM_data - Public data11 As IODBPRM_data - Public data12 As IODBPRM_data - Public data13 As IODBPRM_data - Public data14 As IODBPRM_data - Public data15 As IODBPRM_data - Public data16 As IODBPRM_data - Public data17 As IODBPRM_data - Public data18 As IODBPRM_data - Public data19 As IODBPRM_data - Public data20 As IODBPRM_data - Public data21 As IODBPRM_data - Public data22 As IODBPRM_data - Public data23 As IODBPRM_data - Public data24 As IODBPRM_data - Public data25 As IODBPRM_data - Public data26 As IODBPRM_data - Public data27 As IODBPRM_data - Public data28 As IODBPRM_data - Public data29 As IODBPRM_data - Public data30 As IODBPRM_data - Public data31 As IODBPRM_data - Public data32 As IODBPRM_data - End Structure - - Public Structure IODBPRM2 - Public datano As Integer ' data number - Public type As Short ' data type - Public axis As Short ' axis information - Public info As Short ' misc information - Public unit As Short ' unit information - Public data As IODBPRM1 - End Structure - - Public Structure IODBPRM - Public prm1 As IODBPRM2 - Public prm2 As IODBPRM2 - Public prm3 As IODBPRM2 - Public prm4 As IODBPRM2 - Public prm5 As IODBPRM2 - Public prm6 As IODBPRM2 - Public prm7 As IODBPRM2 - Public prm8 As IODBPRM2 - Public prm9 As IODBPRM2 - Public prm10 As IODBPRM2 - End Structure ' In case that the number of alarm is 10 - - ' cnc_rdpitchr:read pitch error compensation data(area specified) - ' cnc_wrpitchr:write pitch error compensation data(area specified) - - Public Structure IODBPI - Public datano_s As Short ' start pitch number - Public dummy As Short ' dummy - Public datano_e As Short ' end pitch number - - Public data As SByte() ' offset value - End Structure ' In case that the number of data is 5 - - ' cnc_rdmacro:read custom macro variable - - Public Structure ODBM - Public datano As Short ' variable number - Public dummy As Short ' dummy - Public mcr_val As Integer ' macro variable - Public dec_val As Short ' decimal point - End Structure - - ' cnc_rdmacror:read custom macro variables(area specified) - ' cnc_wrmacror:write custom macro variables(area specified) - - Public Structure IODBMR_data - Public mcr_val As Integer ' macro variable - Public dec_val As Short ' decimal point - End Structure - - Public Structure IODBMR1 - Public data1 As IODBMR_data - Public data2 As IODBMR_data - Public data3 As IODBMR_data - Public data4 As IODBMR_data - Public data5 As IODBMR_data - End Structure ' In case that the number of data is 5 - - Public Structure IODBMR - Public datano_s As Short ' start macro number - Public dummy As Short ' dummy - Public datano_e As Short ' end macro number - Public data As IODBMR1 - End Structure - - ' cnc_rdpmacro:read P code macro variable - - Public Structure ODBPM - Public datano As Integer ' variable number - Public dummy As Short ' dummy - Public mcr_val As Integer ' macro variable - Public dec_val As Short ' decimal point - End Structure - - ' cnc_rdpmacror:read P code macro variables(area specified) - ' cnc_wrpmacror:write P code macro variables(area specified) - Public Structure IODBPR_data - Public mcr_val As Integer ' macro variable - Public dec_val As Short ' decimal point - End Structure - - Public Structure IODBPR1 - Public data1 As IODBPR_data - Public data2 As IODBPR_data - Public data3 As IODBPR_data - Public data4 As IODBPR_data - Public data5 As IODBPR_data - End Structure ' In case that the number of data is 5 - - Public Structure IODBPR - Public datano_s As Integer ' start macro number - Public dummy As Short ' dummy - Public datano_e As Integer ' end macro number - Public data As IODBPR1 - End Structure - - ' cnc_rdtofsinfo:read tool offset information - - Public Structure ODBTLINF - Public ofs_type As Short - Public use_no As Short - End Structure - - ' cnc_rdtofsinfo2:read tool offset information(2) - - Public Structure ODBTLINF2 - Public ofs_type As Short - Public use_no As Short - Public ofs_enable As Short - End Structure - - ' cnc_rdmacroinfo:read custom macro variable information - - Public Structure ODBMVINF - Public use_no1 As Short - Public use_no2 As Short - End Structure - - ' cnc_rdpmacroinfo:read P code macro variable information - - Public Structure ODBPMINF - Public use_no1 As Short -#If PCD_UWORD Then - Public use_no2 As Short ' C# ushort -#Else - Public use_no2 As Short -#End If - Public v2_type As Short - End Structure - - ' cnc_tofs_rnge:read validity of tool offset - - Public Structure ODBDATRNG - Public data_min As Integer ' lower limit - Public data_max As Integer ' upper limit - Public status As Integer ' status of setting - End Structure - - ' cnc_rdhsprminfo:read the information for function cnc_rdhsparam() - - Public Structure HSPINFO_data - - Public data1 As Byte() - - Public data2 As Byte() - - Public data3 As Byte() - - Public data4 As Byte() - - Public data5 As Byte() - - Public data6 As Byte() - - Public data7 As Byte() - - Public data8 As Byte() - End Structure - - - Public Structure HSPINFO - Public prminfo1 As HSPINFO_data - Public prminfo2 As HSPINFO_data - Public prminfo3 As HSPINFO_data - Public prminfo4 As HSPINFO_data - Public prminfo5 As HSPINFO_data - Public prminfo6 As HSPINFO_data - Public prminfo7 As HSPINFO_data - Public prminfo8 As HSPINFO_data - Public prminfo9 As HSPINFO_data - Public prminfo10 As HSPINFO_data - End Structure ' In case that the number of data is 10 - - ' cnc_rdhsparam:read parameters at the high speed - - Public Structure HSPDATA_1 - - Public cdatas1 As Byte() - - Public cdatas2 As Byte() - - Public cdatas3 As Byte() - - Public cdatas4 As Byte() - - Public cdatas5 As Byte() - - Public cdatas6 As Byte() - - Public cdatas7 As Byte() - - Public cdatas8 As Byte() - - Public cdatas9 As Byte() - - Public cdatas10 As Byte() - End Structure ' In case that the number of data is 10 - - - Public Structure HSPDATA_2 - - Public idatas1 As Short() - - Public idatas2 As Short() - - Public idatas3 As Short() - - Public idatas4 As Short() - - Public idatas5 As Short() - - Public idatas6 As Short() - - Public idatas7 As Short() - - Public idatas8 As Short() - - Public idatas9 As Short() - - Public idatas10 As Short() - End Structure ' In case that the number of data is 10 - - - Public Structure HSPDATA_3 - - Public ldatas1 As Integer() - - Public ldatas2 As Integer() - - Public ldatas3 As Integer() - - Public ldatas4 As Integer() - - Public ldatas5 As Integer() - - Public ldatas6 As Integer() - - Public ldatas7 As Integer() - - Public ldatas8 As Integer() - - Public ldatas9 As Integer() - - Public ldatas10 As Integer() - End Structure ' In case that the number of data is 10 - - '---------------------------------------- - ' CNC: Tool life management data related - '---------------------------------------- - - ' cnc_rdgrpid:read tool life management data(tool group number) - - Public Structure ODBTLIFE1 - Public dummy As Short ' dummy - Public type As Short ' data type - Public data As Integer ' data - End Structure - - ' cnc_rdngrp:read tool life management data(number of tool groups) - - Public Structure ODBTLIFE2 - - Public dummy As Short() ' dummy - Public data As Integer ' data - End Structure - - ' cnc_rdntool:read tool life management data(number of tools) - ' cnc_rdlife:read tool life management data(tool life) - ' cnc_rdcount:read tool life management data(tool lift counter) - - Public Structure ODBTLIFE3 - Public datano As Short ' data number - Public dummy As Short ' dummy - Public data As Integer ' data - End Structure - - ' cnc_rd1length:read tool life management data(tool length number-1) - ' cnc_rd2length:read tool life management data(tool length number-2) - ' cnc_rd1radius:read tool life management data(cutter compensation no.-1) - ' cnc_rd2radius:read tool life management data(cutter compensation no.-2) - ' cnc_t1info:read tool life management data(tool information-1) - ' cnc_t2info:read tool life management data(tool information-2) - ' cnc_toolnum:read tool life management data(tool number) - - Public Structure ODBTLIFE4 - Public datano As Short ' data number - Public type As Short ' data type - Public data As Integer ' data - End Structure - - ' cnc_rdgrpid2:read tool life management data(tool group number) 2 - - Public Structure ODBTLIFE5 - Public dummy As Integer ' dummy - Public type As Integer ' data type - Public data As Integer ' data - End Structure - - ' cnc_rdtoolrng:read tool life management data(tool number, tool life, tool life counter)(area specified) - - Public Structure IODBTR_data - Public ntool As Integer ' tool number - Public life As Integer ' tool life - Public count As Integer ' tool life counter - End Structure - - Public Structure IODBTR1 - Public data1 As IODBTR_data - Public data2 As IODBTR_data - Public data3 As IODBTR_data - Public data4 As IODBTR_data - Public data5 As IODBTR_data - End Structure ' In case that the number of data is 5 - - Public Structure IODBTR - Public datano_s As Short ' start group number - Public dummy As Short ' dummy - Public datano_e As Short ' end group number - Public data As IODBTR1 - End Structure - - ' cnc_rdtoolgrp:read tool life management data(all data within group) - - Public Structure ODBTG_data - Public tuse_num As Integer ' tool number - Public tool_num As Integer ' tool life - Public length_num As Integer ' tool life counter - Public radius_num As Integer ' tool life counter - Public tinfo As Integer ' tool life counter - End Structure - - Public Structure ODBTG1 - Public data1 As ODBTG_data - Public data2 As ODBTG_data - Public data3 As ODBTG_data - Public data4 As ODBTG_data - Public data5 As ODBTG_data - End Structure ' In case that the number of data is 5 - - Public Structure ODBTG - Public grp_num As Short ' start group number - - Public dummy As Short() ' dummy - Public ntool As Integer ' tool number - Public life As Integer ' tool life - Public count As Integer ' tool life counter - Public data As ODBTG1 - End Structure - - ' cnc_wrcountr:write tool life management data(tool life counter) (area specified) - - Public Structure IDBWRC_data - - Public dummy As Integer() ' dummy - Public count As Integer ' tool life counter - End Structure - - Public Structure IDBWRC1 - Public data1 As IDBWRC_data - Public data2 As IDBWRC_data - Public data3 As IDBWRC_data - Public data4 As IDBWRC_data - Public data5 As IDBWRC_data - End Structure ' In case that the number of data is 5 - - Public Structure IDBWRC - Public datano_s As Short ' start group number - Public dummy As Short ' dummy - Public datano_e As Short ' end group number - Public data As IDBWRC1 - End Structure - - ' cnc_rdusegrpid:read tool life management data(used tool group number) - - Public Structure ODBUSEGR - Public datano As Short ' dummy - Public type As Short ' dummy - Public iNext As Integer ' next use group number - Public use As Integer ' using group number - Public slct As Integer ' selecting group number - End Structure - - ' cnc_rdmaxgrp:read tool life management data(max. number of tool groups) - ' cnc_rdmaxtool:read tool life management data(maximum number of tool within group) - - Public Structure ODBLFNO - Public datano As Short ' dummy - Public type As Short ' dummy - Public data As Short ' number of data - End Structure - - ' cnc_rdusetlno:read tool life management data(used tool no within group) - - Public Structure ODBTLUSE - Public s_grp As Short ' start group number - Public dummy As Short ' dummy - Public e_grp As Short ' end group number - - Public data As Integer() ' tool using number - End Structure ' In case that the number of group is 5 - - ' cnc_rd1tlifedata:read tool life management data(tool data1) - ' cnc_rd2tlifedata:read tool life management data(tool data2) - ' cnc_wr1tlifedata:write tool life management data(tool data1) - ' cnc_wr2tlifedata:write tool life management data(tool data2) - - Public Structure IODBTD - Public datano As Short ' tool group number - Public type As Short ' tool using number - Public tool_num As Integer ' tool number - Public h_code As Integer ' H code - Public d_code As Integer ' D code - Public tool_inf As Integer ' tool information - End Structure - - ' cnc_rd1tlifedat2:read tool life management data(tool data1) 2 - ' cnc_wr1tlifedat2:write tool life management data(tool data1) 2 - - Public Structure IODBTD2 - Public datano As Short ' tool group number - Public dummy As Short ' dummy - Public type As Integer ' tool using number - Public tool_num As Integer ' tool number - Public h_code As Integer ' H code - Public d_code As Integer ' D code - Public tool_inf As Integer ' tool information - End Structure - - ' cnc_rdgrpinfo:read tool life management data(tool group information) - ' cnc_wrgrpinfo:write tool life management data(tool group information) - - Public Structure IODBTGI_data - Public n_tool As Integer ' number of tool - Public count_value As Integer ' tool life - Public counter As Integer ' tool life counter - Public count_type As Integer ' tool life counter type - End Structure - - Public Structure IODBTGI1 - Public data1 As IODBTGI_data - Public data2 As IODBTGI_data - Public data3 As IODBTGI_data - Public data4 As IODBTGI_data - Public data5 As IODBTGI_data - End Structure ' In case that the number of data is 5 - - Public Structure IODBTGI - Public s_grp As Short ' start group number - Public dummy As Short ' dummy - Public e_grp As Short ' end group number - Public data As IODBTGI1 - End Structure - - ' cnc_rdgrpinfo2:read tool life management data(tool group information 2) - ' cnc_wrgrpinfo2:write tool life management data(tool group information 2) - - Public Structure IODBTGI2 - Public s_grp As Short ' start group number - Public dummy As Short ' dummy - Public e_grp As Short ' end group number - - Public opt_grpno As Integer() ' optional group number of tool - End Structure ' In case that the number of group is 5 - - ' cnc_rdgrpinfo3:read tool life management data(tool group information 3) - ' cnc_wrgrpinfo3:write tool life management data(tool group information 3) - - Public Structure IODBTGI3 - Public s_grp As Short ' start group number - Public dummy As Short ' dummy - Public e_grp As Short ' end group number - - Public life_rest As Integer() ' tool life rest count - End Structure ' In case that the number of group is 5 - - ' cnc_rdgrpinfo4:read tool life management data(tool group information 4) - - Public Structure IODBTGI4 - Public grp_no As Short - Public n_tool As Integer - Public count_value As Integer - Public counter As Integer - Public count_type As Integer - Public opt_grpno As Integer - Public life_rest As Integer - End Structure - - ' cnc_instlifedt:insert tool life management data(tool data) - - Public Structure IDBITD - Public datano As Short ' tool group number - Public type As Short ' tool using number - Public data As Integer ' tool number - End Structure - - ' cnc_rdtlinfo:read tool life management data - - Public Structure ODBTLINFO - Public max_group As Integer ' maximum number of tool groups - Public max_tool As Integer ' maximum number of tool within group - Public max_minute As Integer ' maximum number of life count (minutes) - Public max_cycle As Integer ' maximum number of life count (cycles) - End Structure - - ' cnc_rdtlusegrp:read tool life management data(used tool group number) - - Public Structure ODBUSEGRP - Public iNext As Integer ' next use group number - Public use As Integer ' using group number - Public slct As Integer ' selecting group number - Public opt_next As Integer ' next use optional group number - Public opt_use As Integer ' using optional group number - Public opt_slct As Integer ' selecting optional group number - End Structure - - ' cnc_rdtlgrp:read tool life management data(tool group information 2) - - Public Structure IODBTLGRP_data - Public ntool As Integer ' number of all tool - Public nfree As Integer ' number of free tool - Public life As Integer ' tool life - Public count As Integer ' tool life counter - Public use_tool As Integer ' using tool number - Public opt_grpno As Integer ' optional group number - Public life_rest As Integer ' tool life rest count - Public rest_sig As Short ' tool life rest signal - Public count_type As Short ' tool life counter type - End Structure - - Public Structure IODBTLGRP - Public data1 As IODBTLGRP_data - Public data2 As IODBTLGRP_data - Public data3 As IODBTLGRP_data - Public data4 As IODBTLGRP_data - Public data5 As IODBTLGRP_data - End Structure ' In case that the number of group is 5 - - ' cnc_rdtltool:read tool life management data (tool data1) - - Public Structure IODBTLTOOL_data - Public tool_num As Integer ' tool number - Public h_code As Integer ' H code - Public d_code As Integer ' D code - Public tool_inf As Integer ' tool information - End Structure - - Public Structure IODBTLTOOL - Public data1 As IODBTLTOOL_data - Public data2 As IODBTLTOOL_data - Public data3 As IODBTLTOOL_data - Public data4 As IODBTLTOOL_data - Public data5 As IODBTLTOOL_data - End Structure ' In case that the number of group is 5 - - - Public Structure ODBEXGP_data - Public grp_no As Integer ' group number - Public opt_grpno As Integer ' optional group number - End Structure - - - Public Structure ODBEXGP - Public data1 As ODBEXGP_data - Public data2 As ODBEXGP_data - Public data3 As ODBEXGP_data - Public data4 As ODBEXGP_data - Public data5 As ODBEXGP_data - Public data6 As ODBEXGP_data - Public data7 As ODBEXGP_data - Public data8 As ODBEXGP_data - Public data9 As ODBEXGP_data - Public data10 As ODBEXGP_data - Public data11 As ODBEXGP_data - Public data12 As ODBEXGP_data - Public data13 As ODBEXGP_data - Public data14 As ODBEXGP_data - Public data15 As ODBEXGP_data - Public data16 As ODBEXGP_data - Public data17 As ODBEXGP_data - Public data18 As ODBEXGP_data - Public data19 As ODBEXGP_data - Public data20 As ODBEXGP_data - Public data21 As ODBEXGP_data - Public data22 As ODBEXGP_data - Public data23 As ODBEXGP_data - Public data24 As ODBEXGP_data - Public data25 As ODBEXGP_data - Public data26 As ODBEXGP_data - Public data27 As ODBEXGP_data - Public data28 As ODBEXGP_data - Public data29 As ODBEXGP_data - Public data30 As ODBEXGP_data - Public data31 As ODBEXGP_data - Public data32 As ODBEXGP_data - End Structure - - '----------------------------------- - ' CNC: Tool management data related - '----------------------------------- - - ' cnc_regtool:new registration of tool management data - ' cnc_rdtool:lead of tool management data - ' cnc_wrtool:write of tool management data - - Public Structure IODBTLMNG_data - Public T_code As Integer - Public life_count As Integer - Public max_life As Integer - Public rest_life As Integer - Public life_stat As Byte - Public cust_bits As Byte - Public tool_info As Short ' C# ushort - Public H_code As Short - Public D_code As Short - Public spindle_speed As Integer - Public feedrate As Integer - Public magazine As Short - Public pot As Short - Public G_code As Short - Public W_code As Short - Public gno As Short - Public m_ofs As Short - - Public reserved As Integer() - Public custom1 As Integer - Public custom2 As Integer - Public custom3 As Integer - Public custom4 As Integer - Public custom5 As Integer - Public custom6 As Integer - Public custom7 As Integer - Public custom8 As Integer - Public custom9 As Integer - Public custom10 As Integer - Public custom11 As Integer - Public custom12 As Integer - Public custom13 As Integer - Public custom14 As Integer - Public custom15 As Integer - Public custom16 As Integer - Public custom17 As Integer - Public custom18 As Integer - Public custom19 As Integer - Public custom20 As Integer - End Structure - - Public Structure IODBTLMNG - Public data1 As IODBTLMNG_data - Public data2 As IODBTLMNG_data - Public data3 As IODBTLMNG_data - Public data4 As IODBTLMNG_data - Public data5 As IODBTLMNG_data - End Structure ' In case that the number of group is 5 - - ' cnc_regtool_f2:new registration of tool management data - ' cnc_rdtool_f2:lead of tool management data - - Public Structure IODBTLMNG_F2_data - Public T_code As Integer - Public life_count As Integer - Public max_life As Integer - Public rest_life As Integer - Public life_stat As Byte - Public cust_bits As Byte - Public tool_info As Short ' C# ushort - Public H_code As Short - Public D_code As Short - Public spindle_speed As Integer - Public feedrate As Integer - Public magazine As Short - Public pot As Short - Public G_code As Short - Public W_code As Short - Public gno As Short - Public m_ofs As Short - - Public reserved As Integer() - Public custom1 As Integer - Public custom2 As Integer - Public custom3 As Integer - Public custom4 As Integer - Public custom5 As Integer - Public custom6 As Integer - Public custom7 As Integer - Public custom8 As Integer - Public custom9 As Integer - Public custom10 As Integer - Public custom11 As Integer - Public custom12 As Integer - Public custom13 As Integer - Public custom14 As Integer - Public custom15 As Integer - Public custom16 As Integer - Public custom17 As Integer - Public custom18 As Integer - Public custom19 As Integer - Public custom20 As Integer - Public custom21 As Integer - Public custom22 As Integer - Public custom23 As Integer - Public custom24 As Integer - Public custom25 As Integer - Public custom26 As Integer - Public custom27 As Integer - Public custom28 As Integer - Public custom29 As Integer - Public custom30 As Integer - Public custom31 As Integer - Public custom32 As Integer - Public custom33 As Integer - Public custom34 As Integer - Public custom35 As Integer - Public custom36 As Integer - Public custom37 As Integer - Public custom38 As Integer - Public custom39 As Integer - Public custom40 As Integer - End Structure - - Public Structure IODBTLMNG_F2 - Public data1 As IODBTLMNG_F2_data - Public data2 As IODBTLMNG_F2_data - Public data3 As IODBTLMNG_F2_data - Public data4 As IODBTLMNG_F2_data - Public data5 As IODBTLMNG_F2_data - End Structure ' In case that the number of group is 5 - - ' cnc_wrtool2:write of individual data of tool management data - - Public Structure IDBTLM_item - - Public data1 As SByte - - Public data2 As Short - - Public data4 As Integer - End Structure - - Public Structure IDBTLM - Public data_id As Short - Public item As IDBTLM_item - End Structure - - ' cnc_regmagazine:new registration of magazine management data - ' cnc_rdmagazine:lead of magazine management data - - Public Structure IODBTLMAG_data - Public magazine As Short - Public pot As Short - Public tool_index As Short - End Structure - - Public Structure IODBTLMAG - Public data1 As IODBTLMAG_data - Public data2 As IODBTLMAG_data - Public data3 As IODBTLMAG_data - Public data4 As IODBTLMAG_data - Public data5 As IODBTLMAG_data - End Structure ' In case that the number of group is 5 - - ' cnc_delmagazine:deletion of magazine management data - - Public Structure IODBTLMAG2_data - Public magazine As Short - Public pot As Short - End Structure - - Public Structure IODBTLMAG2 - Public data1 As IODBTLMAG2_data - Public data2 As IODBTLMAG2_data - Public data3 As IODBTLMAG2_data - Public data4 As IODBTLMAG2_data - Public data5 As IODBTLMAG2_data - End Structure ' In case that the number of group is 5 - - - '------------------------------------- - ' CNC: Operation history data related - '------------------------------------- - - ' cnc_rdophistry:read operation history data - - Public Structure REC_ALM - Public rec_type As Short ' record type - Public alm_grp As Short ' alarm group - Public alm_no As Short ' alarm number - Public axis_no As SByte ' axis number - Public dummy As SByte - End Structure - - Public Structure REC_MDI - Public rec_type As Short ' record type - Public key_code As Byte ' key code - Public pw_flag As Byte ' power on flag - - Public dummy As SByte() - End Structure - - Public Structure REC_SGN - Public rec_type As Short ' record type - Public sig_name As SByte ' signal name - Public sig_old As Byte ' old signal bit pattern - Public sig_new As Byte ' new signal bit pattern - Public dummy As SByte - Public sig_no As Short ' signal number - End Structure - - Public Structure REC_DATE - Public rec_type As Short ' record type - Public year As SByte ' year - Public month As SByte ' month - Public day As SByte ' day - Public pw_flag As SByte ' power on flag - - Public dummy As SByte() - End Structure - - Public Structure REC_TIME - Public rec_type As Short ' record flag - Public hour As SByte ' hour - Public minute As SByte ' minute - Public second As SByte ' second - Public pw_flag As SByte ' power on flag - - Public dummy As SByte() - End Structure - - Public Structure ODBHIS_data - ' record type - - Public rec_type As Short ' record type - - ' alarm record - - Public alm_rec_type As Short ' record type - - Public alm_alm_grp As Short ' alarm group - - Public alm_alm_no As Short ' alarm number - - Public alm_axis_no As SByte ' axis number - - Public alm_dummy As SByte - - ' mdi record - - Public mdi_rec_type As Short ' record type - - Public mdi_key_code As Byte ' key code - - Public mdi_pw_flag As Byte ' power on flag - - Public mdi_dummy1 As SByte - - Public mdi_dummy2 As SByte - - Public mdi_dummy3 As SByte - - Public mdi_dummy4 As SByte - - ' sign record - - Public sgn_rec_type As Short ' record type - - Public sgn_sig_name As SByte ' signal name - - Public sgn_sig_old As Byte ' old signal bit pattern - - Public sgn_sig_new As Byte ' new signal bit pattern - - Public sgn_dummy As SByte - - Public sgn_sig_no As Short ' signal number - - ' date record - - Public date_rec_type As Short ' record type - - Public date_year As SByte ' year - - Public date_month As SByte ' month - - Public date_day As SByte ' day - - Public date_pw_flag As SByte ' power on flag - - Public date_dummy1 As SByte - - Public date_dummy2 As SByte - - ' time record - - Public time_rec_type As Short ' record flag - - Public time_hour As SByte ' hour - - Public time_minute As SByte ' minute - - Public time_second As SByte ' second - - Public time_pw_flag As SByte ' power on flag - - Public time_dummy1 As SByte - - Public time_dummy2 As SByte - End Structure - - Public Structure ODBHIS1 - Public data1 As ODBHIS_data - Public data2 As ODBHIS_data - Public data3 As ODBHIS_data - Public data4 As ODBHIS_data - Public data5 As ODBHIS_data - Public data6 As ODBHIS_data - Public data7 As ODBHIS_data - Public data8 As ODBHIS_data - Public data9 As ODBHIS_data - Public data10 As ODBHIS_data - End Structure ' In case that the number of data is 10 - - Public Structure ODBHIS - Public s_no As Short ' start number C# ushort - Public type As Short ' dummy - Public e_no As Short ' end number C# ushort - Public data As ODBHIS1 - End Structure - - ' cnc_rdophistry2:read operation history data - - Public Structure REC_MDI2 - Public key_code As Byte ' key code - Public pw_flag As Byte ' power on flag - Public dummy As Short - End Structure - - Public Structure REC_MDI2_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_MDI2 - End Structure - - Public Structure REC_SGN2 - Public sig_name As Short ' signal name - Public sig_no As Short ' signal number - Public sig_old As Byte ' old signal bit pattern - Public sig_new As Byte ' new signal bit pattern - Public dummy As Short - End Structure - - Public Structure REC_SGN2_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_SGN2 - End Structure - - Public Structure REC_ALM2 - Public alm_grp As Short ' alarm group - Public alm_no As Short ' alarm number - Public axis_no As Short ' axis number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public dummy As Short - End Structure - - Public Structure REC_ALM2_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_ALM2 - End Structure - - Public Structure REC_DATE2 - Public evnt_type As Short ' event type - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public dummy As Short - End Structure - - Public Structure REC_DATE2_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_DATE2 - End Structure - - Public Structure ODBOPHIS - - Public rec_mdi As REC_MDI2_data - - Public rec_sgn As REC_SGN2_data - - Public rec_alm As REC_ALM2_data - - Public rec_date As REC_DATE2_data - End Structure - - ' cnc_rdophistry4:read operation history data - - Public Structure REC_MDI4 - Public key_code As Char ' key code - Public pw_flag As Char ' power on flag - Public pth_no As Short ' path index - Public ex_flag As Short ' kxternal key flag - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - End Structure - - Public Structure REC_MDI4_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_MDI4 - End Structure - - Public Structure REC_SGN4 - Public sig_name As Short ' signal name - Public sig_no As Short ' signal number - Public sig_old As Char ' old signal bit pattern - Public sig_new As Char ' new signal bit pattern - Public pmc_no As Short ' pmc index - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public dummy As Short - End Structure - - Public Structure REC_SGN4_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_SGN4 - End Structure - - Public Structure REC_ALM4 - Public alm_grp As Short ' alarm group - Public alm_no As Short ' alarm number - Public axis_no As Short ' axis number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public pth_no As Short ' path index - End Structure - - Public Structure REC_ALM4_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_ALM4 - End Structure - - Public Structure REC_DATE4 - Public evnt_type As Short ' event type - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public dummy As Short - End Structure - - Public Structure REC_DATE4_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_DATE4 - End Structure - - Public Structure REC_IAL4 - Public alm_grp As Short ' alarm group - Public alm_no As Short ' alarm number - Public axis_no As Short ' axis number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public pth_no As Short ' path index - Public sys_alm As Short ' sys alarm - Public dsp_flg As Short ' message dsp flag - Public axis_num As Short ' axis num - - Public g_modal As Integer() ' G code Modal - - Public g_dp As Char() ' #7:1 Block #6`#0 dp - - Public a_modal As Integer() ' B,D,E,F,H,M,N,O,S,T code Modal - - Public a_dp As Char() ' #7:1 Block #6`#0 dp - - Public abs_pos As Integer() ' Abs pos - - Public abs_dp As Char() ' Abs dp - - Public mcn_pos As Integer() ' Mcn pos - - Public mcn_dp As Char() ' Mcn dp - End Structure - - Public Structure REC_IAL4_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_IAL4 - End Structure - - Public Structure REC_MAL4 - Public alm_grp As Short ' alarm group - Public alm_no As Short ' alarm number - Public axis_no As Short ' axis number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public pth_no As Short ' path index - Public sys_alm As Short ' sys alarm - Public dsp_flg As Short ' message dsp flag - Public axis_num As Short ' axis num - - Public alm_msg As Char() ' alarm message - - Public g_modal As Integer() ' G code Modal - - Public g_dp As Char() ' #7:1 Block #6`#0 dp - - Public a_modal As Integer() ' B,D,E,F,H,M,N,O,S,T code Modal - - Public a_dp As Char() ' #7:1 Block #6`#0 dp - - Public abs_pos As Integer() ' Abs pos - - Public abs_dp As Char() ' Abs dp - - Public mcn_pos As Integer() ' Mcn pos - - Public mcn_dp As Char() ' Mcn dp - End Structure - - Public Structure REC_MAL4_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_MAL4 - End Structure - - Public Structure REC_OPM4 - Public dsp_flg As Short ' Dysplay flag(ON/OFF) - Public om_no As Short ' message number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - - Public ope_msg As Char() ' alarm message - End Structure - - Public Structure REC_OPM4_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_OPM4 - End Structure - - Public Structure REC_OFS4 - Public ofs_grp As Short ' Tool offset group - Public ofs_no As Short ' Tool offset number - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public pth_no As Short ' path index - Public ofs_old As Integer ' old data - Public ofs_new As Integer ' new data - Public old_dp As Short ' old data decimal point - Public new_dp As Short ' new data decimal point - End Structure - - Public Structure REC_OFS4_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_OFS4 - End Structure - - Public Structure REC_PRM4 - Public prm_grp As Short ' paramater group - Public prm_num As Short ' paramater number - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public prm_len As Short ' paramater data length - Public prm_no As Integer ' paramater no - Public prm_old As Integer ' old data - Public prm_new As Integer ' new data - Public old_dp As Short ' old data decimal point - Public new_dp As Short ' new data decimal point - End Structure - - Public Structure REC_PRM4_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_PRM4 - End Structure - - Public Structure REC_WOF4 - Public ofs_grp As Short ' Work offset group - Public ofs_no As Short ' Work offset number - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public pth_no As Short ' path index - Public axis_no As Short ' path axis num - Public dummy As Short - Public ofs_old As Integer ' old data - Public ofs_new As Integer ' new data - Public old_dp As Short ' old data decimal point - Public new_dp As Short ' new data decimal point - End Structure - - Public Structure REC_WOF4_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_WOF4 - End Structure - - Public Structure REC_MAC4 - Public mac_no As Short ' macro val number - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public pth_no As Short ' path index - Public mac_old As Integer ' old data - Public mac_new As Integer ' new data - Public old_dp As Short ' old data decimal point - Public new_dp As Short ' new data decimal point - End Structure - - Public Structure REC_MAC4_data - Public rec_len As Short ' length - Public rec_type As Short ' record type - Public data As REC_MAC4 - End Structure - - - Public Structure ODBOPHIS4_1 - Public rec_mdi1 As REC_MDI4_data - Public rec_mdi2 As REC_MDI4_data - Public rec_mdi3 As REC_MDI4_data - Public rec_mdi4 As REC_MDI4_data - Public rec_mdi5 As REC_MDI4_data - Public rec_mdi6 As REC_MDI4_data - Public rec_mdi7 As REC_MDI4_data - Public rec_mdi8 As REC_MDI4_data - Public rec_mdi9 As REC_MDI4_data - Public rec_mdi10 As REC_MDI4_data - End Structure ' In case that the number of data is 10 - - - Public Structure ODBOPHIS4_2 - Public rec_sgn1 As REC_SGN4_data - Public rec_sgn2 As REC_SGN4_data - Public rec_sgn3 As REC_SGN4_data - Public rec_sgn4 As REC_SGN4_data - Public rec_sgn5 As REC_SGN4_data - Public rec_sgn6 As REC_SGN4_data - Public rec_sgn7 As REC_SGN4_data - Public rec_sgn8 As REC_SGN4_data - Public rec_sgn9 As REC_SGN4_data - Public rec_sgn10 As REC_SGN4_data - End Structure ' In case that the number of data is 10 - - - Public Structure ODBOPHIS4_3 - Public rec_alm1 As REC_ALM4_data - Public rec_alm2 As REC_ALM4_data - Public rec_alm3 As REC_ALM4_data - Public rec_alm4 As REC_ALM4_data - Public rec_alm5 As REC_ALM4_data - Public rec_alm6 As REC_ALM4_data - Public rec_alm7 As REC_ALM4_data - Public rec_alm8 As REC_ALM4_data - Public rec_alm9 As REC_ALM4_data - Public rec_alm10 As REC_ALM4_data - End Structure ' In case that the number of data is 10 - - - Public Structure ODBOPHIS4_4 - Public rec_date1 As REC_DATE4_data - Public rec_date2 As REC_DATE4_data - Public rec_date3 As REC_DATE4_data - Public rec_date4 As REC_DATE4_data - Public rec_date5 As REC_DATE4_data - Public rec_date6 As REC_DATE4_data - Public rec_date7 As REC_DATE4_data - Public rec_date8 As REC_DATE4_data - Public rec_date9 As REC_DATE4_data - Public rec_date10 As REC_DATE4_data - End Structure ' In case that the number of data is 10 - - - Public Structure ODBOPHIS4_5 - Public rec_ial1 As REC_IAL4_data - Public rec_ial2 As REC_IAL4_data - Public rec_ial3 As REC_IAL4_data - Public rec_ial4 As REC_IAL4_data - Public rec_ial5 As REC_IAL4_data - Public rec_ial6 As REC_IAL4_data - Public rec_ial7 As REC_IAL4_data - Public rec_ial8 As REC_IAL4_data - Public rec_ial9 As REC_IAL4_data - Public rec_ial10 As REC_IAL4_data - End Structure ' In case that the number of data is 10 - - - Public Structure ODBOPHIS4_6 - Public rec_mal1 As REC_MAL4_data - Public rec_mal2 As REC_MAL4_data - Public rec_mal3 As REC_MAL4_data - Public rec_mal4 As REC_MAL4_data - Public rec_mal5 As REC_MAL4_data - Public rec_mal6 As REC_MAL4_data - Public rec_mal7 As REC_MAL4_data - Public rec_mal8 As REC_MAL4_data - Public rec_mal9 As REC_MAL4_data - Public rec_mal10 As REC_MAL4_data - End Structure ' In case that the number of data is 10 - - - Public Structure ODBOPHIS4_7 - Public rec_opm1 As REC_OPM4_data - Public rec_opm2 As REC_OPM4_data - Public rec_opm3 As REC_OPM4_data - Public rec_opm4 As REC_OPM4_data - Public rec_opm5 As REC_OPM4_data - Public rec_opm6 As REC_OPM4_data - Public rec_opm7 As REC_OPM4_data - Public rec_opm8 As REC_OPM4_data - Public rec_opm9 As REC_OPM4_data - Public rec_opm10 As REC_OPM4_data - End Structure ' In case that the number of data is 10 - - - Public Structure ODBOPHIS4_8 - Public rec_ofs1 As REC_OFS4_data - Public rec_ofs2 As REC_OFS4_data - Public rec_ofs3 As REC_OFS4_data - Public rec_ofs4 As REC_OFS4_data - Public rec_ofs5 As REC_OFS4_data - Public rec_ofs6 As REC_OFS4_data - Public rec_ofs7 As REC_OFS4_data - Public rec_ofs8 As REC_OFS4_data - Public rec_ofs9 As REC_OFS4_data - Public rec_ofs10 As REC_OFS4_data - End Structure ' In case that the number of data is 10 - - - Public Structure ODBOPHIS4_9 - Public rec_prm1 As REC_PRM4_data - Public rec_prm2 As REC_PRM4_data - Public rec_prm3 As REC_PRM4_data - Public rec_prm4 As REC_PRM4_data - Public rec_prm5 As REC_PRM4_data - Public rec_prm6 As REC_PRM4_data - Public rec_prm7 As REC_PRM4_data - Public rec_prm8 As REC_PRM4_data - Public rec_prm9 As REC_PRM4_data - Public rec_prm10 As REC_PRM4_data - End Structure ' In case that the number of data is 10 - - - Public Structure ODBOPHIS4_10 - Public rec_wof1 As REC_WOF4_data - Public rec_wof2 As REC_WOF4_data - Public rec_wof3 As REC_WOF4_data - Public rec_wof4 As REC_WOF4_data - Public rec_wof5 As REC_WOF4_data - Public rec_wof6 As REC_WOF4_data - Public rec_wof7 As REC_WOF4_data - Public rec_wof8 As REC_WOF4_data - Public rec_wof9 As REC_WOF4_data - Public rec_wof10 As REC_WOF4_data - End Structure ' In case that the number of data is 10 - - - Public Structure ODBOPHIS4_11 - Public rec_mac1 As REC_MAC4_data - Public rec_mac2 As REC_MAC4_data - Public rec_mac3 As REC_MAC4_data - Public rec_mac4 As REC_MAC4_data - Public rec_mac5 As REC_MAC4_data - Public rec_mac6 As REC_MAC4_data - Public rec_mac7 As REC_MAC4_data - Public rec_mac8 As REC_MAC4_data - Public rec_mac9 As REC_MAC4_data - Public rec_mac10 As REC_MAC4_data - End Structure ' In case that the number of data is 10 - - ' cnc_rdalmhistry:read alarm history data - - Public Structure ALM_HIS_data - Public dummy As Short - Public alm_grp As Short ' alarm group - Public alm_no As Short ' alarm number - Public axis_no As Byte ' axis number - Public year As Byte ' year - Public month As Byte ' month - Public day As Byte ' day - Public hour As Byte ' hour - Public minute As Byte ' minute - Public second As Byte ' second - Public dummy2 As Byte - Public len_msg As Short ' alarm message length - - Public alm_msg As String ' alarm message - End Structure - - Public Structure ALM_HIS1 - Public data1 As ALM_HIS_data - Public data2 As ALM_HIS_data - Public data3 As ALM_HIS_data - Public data4 As ALM_HIS_data - Public data5 As ALM_HIS_data - Public data6 As ALM_HIS_data - Public data7 As ALM_HIS_data - Public data8 As ALM_HIS_data - Public data9 As ALM_HIS_data - Public data10 As ALM_HIS_data - End Structure ' In case that the number of data is 10 - - Public Structure ODBAHIS - Public s_no As Short ' start number C# ushort - Public type As Short ' dummy - Public e_no As Short ' end number C# ushort - Public alm_his As ALM_HIS1 - End Structure - - ' cnc_rdalmhistry2:read alarm history data - - Public Structure ALM_HIS2_data - Public alm_grp As Short ' alarm group - Public alm_no As Short ' alarm number - Public axis_no As Short ' axis number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public len_msg As Short ' alarm message length - - Public alm_msg As String ' alarm message - End Structure - - Public Structure ALM_HIS2 - Public data1 As ALM_HIS2_data - Public data2 As ALM_HIS2_data - Public data3 As ALM_HIS2_data - Public data4 As ALM_HIS2_data - Public data5 As ALM_HIS2_data - Public data6 As ALM_HIS2_data - Public data7 As ALM_HIS2_data - Public data8 As ALM_HIS2_data - Public data9 As ALM_HIS2_data - Public data10 As ALM_HIS2_data - End Structure ' In case that the number of data is 10 - - Public Structure ODBAHIS2 - Public s_no As Short ' start number C# ushort - Public e_no As Short ' end number C# ushort - Public alm_his As ALM_HIS2 - End Structure - - ' cnc_rdalmhistry3:read alarm history data - - Public Structure ALM_HIS3_data - Public alm_grp As Short ' alarm group - Public alm_no As Short ' alarm number - Public axis_no As Short ' axis number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public len_msg As Short ' alarm message length - Public pth_no As Short ' path index - Public dummy As Short - - Public alm_msg As String ' alarm message - End Structure - - Public Structure ALM_HIS3 - Public data1 As ALM_HIS3_data - Public data2 As ALM_HIS3_data - Public data3 As ALM_HIS3_data - Public data4 As ALM_HIS3_data - Public data5 As ALM_HIS3_data - Public data6 As ALM_HIS3_data - Public data7 As ALM_HIS3_data - Public data8 As ALM_HIS3_data - Public data9 As ALM_HIS3_data - Public data10 As ALM_HIS3_data - End Structure ' In case that the number of data is 10 - - Public Structure ODBAHIS3 - Public s_no As Short ' start number C# ushort - Public e_no As Short ' end number C# ushort - Public alm_his As ALM_HIS3 - End Structure - - ' cnc_rdalmhistry5:read alarm history data - - Public Structure ALM_HIS5_data - Public alm_grp As Short ' alarm group - Public alm_no As Short ' alarm number - Public axis_no As Short ' axis number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public len_msg As Short ' alarm message length - Public pth_no As Short ' path index - Public sys_alm As Short ' sys alarm - Public dsp_flg As Short ' message dsp flag - Public axis_num As Short ' sum axis num - - Public alm_msg As String ' alarm message - - Public g_modal As Integer() ' G code Modal - - Public g_dp As Char() ' #7:1 Block #6`#0 dp - - Public a_modal As Integer() ' B,D,E,F,H,M,N,O,S,T code Modal - - Public a_dp As Char() ' #7:1 Block #6`#0 dp - - Public abs_pos As Integer() ' Abs pos - - Public abs_dp As Char() ' Abs dp - - Public mcn_pos As Integer() ' Mcn pos - - Public mcn_dp As Char() ' Mcn dp - End Structure - - Public Structure ALM_HIS5 - Public data1 As ALM_HIS5_data - Public data2 As ALM_HIS5_data - Public data3 As ALM_HIS5_data - Public data4 As ALM_HIS5_data - Public data5 As ALM_HIS5_data - Public data6 As ALM_HIS5_data - Public data7 As ALM_HIS5_data - Public data8 As ALM_HIS5_data - Public data9 As ALM_HIS5_data - Public data10 As ALM_HIS5_data - End Structure ' In case that the number of data is 10 - - Public Structure ODBAHIS5 - Public s_no As Short ' start number C# ushort - Public e_no As Short ' end number C# ushort - Public alm_his As ALM_HIS5 - End Structure - - ' cnc_rdomhistry2:read operater message history data - - Public Structure ODBOMHIS2_data - Public dsp_flg As Short ' Dysplay flag(ON/OFF) - Public om_no As Short ' operater message number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' Hour - Public minute As Short ' Minute - Public second As Short ' Second - - Public alm_msg As String ' Messege - End Structure - - Public Structure OPM_HIS - Public data1 As ODBOMHIS2_data - Public data2 As ODBOMHIS2_data - Public data3 As ODBOMHIS2_data - Public data4 As ODBOMHIS2_data - Public data5 As ODBOMHIS2_data - Public data6 As ODBOMHIS2_data - Public data7 As ODBOMHIS2_data - Public data8 As ODBOMHIS2_data - Public data9 As ODBOMHIS2_data - Public data10 As ODBOMHIS2_data - End Structure - - Public Structure ODBOMHIS2 - Public s_no As Short ' start number - Public e_no As Short ' end number - Public opm_his As OPM_HIS - End Structure - - ' cnc_rdhissgnl:read signals related operation history - ' cnc_wrhissgnl:write signals related operation history - - Public Structure IODBSIG_data - Public ent_no As Short ' entry number - Public sig_no As Short ' signal number - Public sig_name As Byte ' signal name - Public mask_pat As Byte ' signal mask pattern - End Structure - - Public Structure IODBSIG1 - Public data1 As IODBSIG_data - Public data2 As IODBSIG_data - Public data3 As IODBSIG_data - Public data4 As IODBSIG_data - Public data5 As IODBSIG_data - Public data6 As IODBSIG_data - Public data7 As IODBSIG_data - Public data8 As IODBSIG_data - Public data9 As IODBSIG_data - Public data10 As IODBSIG_data - Public data11 As IODBSIG_data - Public data12 As IODBSIG_data - Public data13 As IODBSIG_data - Public data14 As IODBSIG_data - Public data15 As IODBSIG_data - Public data16 As IODBSIG_data - Public data17 As IODBSIG_data - Public data18 As IODBSIG_data - Public data19 As IODBSIG_data - Public data20 As IODBSIG_data - End Structure - - Public Structure IODBSIG - Public datano As Short ' dummy - Public type As Short ' dummy - Public data As IODBSIG1 - End Structure - - ' cnc_rdhissgnl2:read signals related operation history 2 - ' cnc_wrhissgnl2:write signals related operation history 2 - - Public Structure _IODBSIG2_data - Public ent_no As Short ' entry number - Public sig_no As Short ' signal number - Public sig_name As Byte ' signal name - Public mask_pat As Byte ' signal mask pattern - End Structure - - Public Structure IODBSIG2_data - Public data1 As _IODBSIG2_data - Public data2 As _IODBSIG2_data - Public data3 As _IODBSIG2_data - Public data4 As _IODBSIG2_data - Public data5 As _IODBSIG2_data - Public data6 As _IODBSIG2_data - Public data7 As _IODBSIG2_data - Public data8 As _IODBSIG2_data - Public data9 As _IODBSIG2_data - Public data10 As _IODBSIG2_data - Public data11 As _IODBSIG2_data - Public data12 As _IODBSIG2_data - Public data13 As _IODBSIG2_data - Public data14 As _IODBSIG2_data - Public data15 As _IODBSIG2_data - Public data16 As _IODBSIG2_data - Public data17 As _IODBSIG2_data - Public data18 As _IODBSIG2_data - Public data19 As _IODBSIG2_data - Public data20 As _IODBSIG2_data - Public data21 As _IODBSIG2_data - Public data22 As _IODBSIG2_data - Public data23 As _IODBSIG2_data - Public data24 As _IODBSIG2_data - Public data25 As _IODBSIG2_data - Public data26 As _IODBSIG2_data - Public data27 As _IODBSIG2_data - Public data28 As _IODBSIG2_data - Public data29 As _IODBSIG2_data - Public data30 As _IODBSIG2_data - Public data31 As _IODBSIG2_data - Public data32 As _IODBSIG2_data - Public data33 As _IODBSIG2_data - Public data34 As _IODBSIG2_data - Public data35 As _IODBSIG2_data - Public data36 As _IODBSIG2_data - Public data37 As _IODBSIG2_data - Public data38 As _IODBSIG2_data - Public data39 As _IODBSIG2_data - Public data40 As _IODBSIG2_data - Public data41 As _IODBSIG2_data - Public data42 As _IODBSIG2_data - Public data43 As _IODBSIG2_data - Public data44 As _IODBSIG2_data - Public data45 As _IODBSIG2_data - End Structure - - Public Structure IODBSIG2 - Public datano As Short ' dummy - Public type As Short ' dummy - Public data As IODBSIG2_data - End Structure - - ' cnc_rdhissgnl3:read signals related operation history - ' cnc_wrhissgnl3:write signals related operation history - - Public Structure _IODBSIG3_data - Public ent_no As Short ' entry number - Public pmc_no As Short ' pmc number - Public sig_no As Short ' signal number - Public sig_name As Byte ' signal name - Public mask_pat As Byte ' signal mask pattern - End Structure - - Public Structure IODBSIG3_data - Public data1 As _IODBSIG3_data - Public data2 As _IODBSIG3_data - Public data3 As _IODBSIG3_data - Public data4 As _IODBSIG3_data - Public data5 As _IODBSIG3_data - Public data6 As _IODBSIG3_data - Public data7 As _IODBSIG3_data - Public data8 As _IODBSIG3_data - Public data9 As _IODBSIG3_data - Public data10 As _IODBSIG3_data - Public data11 As _IODBSIG3_data - Public data12 As _IODBSIG3_data - Public data13 As _IODBSIG3_data - Public data14 As _IODBSIG3_data - Public data15 As _IODBSIG3_data - Public data16 As _IODBSIG3_data - Public data17 As _IODBSIG3_data - Public data18 As _IODBSIG3_data - Public data19 As _IODBSIG3_data - Public data20 As _IODBSIG3_data - Public data21 As _IODBSIG3_data - Public data22 As _IODBSIG3_data - Public data23 As _IODBSIG3_data - Public data24 As _IODBSIG3_data - Public data25 As _IODBSIG3_data - Public data26 As _IODBSIG3_data - Public data27 As _IODBSIG3_data - Public data28 As _IODBSIG3_data - Public data29 As _IODBSIG3_data - Public data30 As _IODBSIG3_data - Public data31 As _IODBSIG3_data - Public data32 As _IODBSIG3_data - Public data33 As _IODBSIG3_data - Public data34 As _IODBSIG3_data - Public data35 As _IODBSIG3_data - Public data36 As _IODBSIG3_data - Public data37 As _IODBSIG3_data - Public data38 As _IODBSIG3_data - Public data39 As _IODBSIG3_data - Public data40 As _IODBSIG3_data - Public data41 As _IODBSIG3_data - Public data42 As _IODBSIG3_data - Public data43 As _IODBSIG3_data - Public data44 As _IODBSIG3_data - Public data45 As _IODBSIG3_data - Public data46 As _IODBSIG3_data - Public data47 As _IODBSIG3_data - Public data48 As _IODBSIG3_data - Public data49 As _IODBSIG3_data - Public data50 As _IODBSIG3_data - Public data51 As _IODBSIG3_data - Public data52 As _IODBSIG3_data - Public data53 As _IODBSIG3_data - Public data54 As _IODBSIG3_data - Public data55 As _IODBSIG3_data - Public data56 As _IODBSIG3_data - Public data57 As _IODBSIG3_data - Public data58 As _IODBSIG3_data - Public data59 As _IODBSIG3_data - Public data60 As _IODBSIG3_data - End Structure - - Public Structure IODBSIG3 - Public datano As Short ' dummy - Public type As Short ' dummy - Public data As IODBSIG3_data - End Structure - - '------------- - ' CNC: Others - '------------- - - ' cnc_sysinfo:read CNC system information - - Public Structure ODBSYS - Public addinfo As Short - Public max_axis As Short - - Public cnc_type As Char() - - Public mt_type As Char() - - Public series As Char() - - Public version As Char() - - Public axes As Char() - End Structure - -#If FS15D Then - ' cnc_statinfo:read CNC status information - _ - Public Structure ODBST - _ - Public dummy As Short() ' dummy - Public aut As Short ' selected automatic mode - Public manual As Short ' selected manual mode - Public run As Short ' running status - Public edit As Short ' editting status - Public motion As Short ' axis, dwell status - Public mstb As Short ' m, s, t, b status - Public emergency As Short ' emergency stop status - Public write As Short ' writting status - Public labelskip As Short ' label skip status - Public alarm As Short ' alarm status - Public warning As Short ' warning status - Public battery As Short ' battery status - End Structure -#Else - ' cnc_statinfo:read CNC status information - - Public Structure ODBST - Public dummy As Short ' dummy - Public tmmode As Short ' T/M mode - Public aut As Short ' selected automatic mode - Public run As Short ' running status - Public motion As Short ' axis, dwell status - Public mstb As Short ' m, s, t, b status - Public emergency As Short ' emergency stop status - Public alarm As Short ' alarm status - Public edit As Short ' editting status - End Structure -#End If - - ' cnc_alarm:read alarm status - - Public Structure ODBALM - - Public dummy As Short() - Public data As Short ' C# ushort - End Structure - - ' cnc_rdalminfo:read alarm information -#If M_AXIS2 Then - _ - Public Structure ALMINFO1_data - Public axis As Integer - Public alm_no As Short - End Structure - - _ - Public Structure ALMINFO2_data - Public axis As Integer - Public alm_no As Short - Public msg_len As Short - _ - Public alm_msg As String ' alarm message - End Structure -#Else - - Public Structure ALMINFO1_data - Public axis As Short - Public alm_no As Short - End Structure - - - Public Structure ALMINFO2_data - Public axis As Short - Public alm_no As Short - Public msg_len As Short - - Public alm_msg As String ' alarm message - End Structure -#End If - - Public Structure ALMINFO_1 - Public msg1 As ALMINFO1_data - Public msg2 As ALMINFO1_data - Public msg3 As ALMINFO1_data - Public msg4 As ALMINFO1_data - Public msg5 As ALMINFO1_data - Public data_end As Short - End Structure ' In case that the number of alarm is 5 - - - Public Structure ALMINFO_2 - Public msg1 As ALMINFO2_data - Public msg2 As ALMINFO2_data - Public msg3 As ALMINFO2_data - Public msg4 As ALMINFO2_data - Public msg5 As ALMINFO2_data - Public dataend As Short - End Structure ' In case that the number of alarm is 5 - - ' cnc_rdalmmsg:read alarm messages - - Public Structure ODBALMMSG_data - Public alm_no As Integer - Public type As Short - Public axis As Short - Public dummy As Short - Public msg_len As Short - - Public alm_msg As String ' alarm message - End Structure - - Public Structure ODBALMMSG - Public msg1 As ODBALMMSG_data - Public msg2 As ODBALMMSG_data - Public msg3 As ODBALMMSG_data - Public msg4 As ODBALMMSG_data - Public msg5 As ODBALMMSG_data - Public msg6 As ODBALMMSG_data - Public msg7 As ODBALMMSG_data - Public msg8 As ODBALMMSG_data - Public msg9 As ODBALMMSG_data - Public msg10 As ODBALMMSG_data - End Structure ' In case that the number of alarm is 10 - - ' cnc_rdalmmsg2:read alarm messages - - Public Structure ODBALMMSG2_data - Public alm_no As Integer - Public type As Short - Public axis As Short - Public dummy As Short - Public msg_len As Short - - Public alm_msg As String ' alarm message - End Structure - - Public Structure ODBALMMSG2 - Public msg1 As ODBALMMSG2_data - Public msg2 As ODBALMMSG2_data - Public msg3 As ODBALMMSG2_data - Public msg4 As ODBALMMSG2_data - Public msg5 As ODBALMMSG2_data - Public msg6 As ODBALMMSG2_data - Public msg7 As ODBALMMSG2_data - Public msg8 As ODBALMMSG2_data - Public msg9 As ODBALMMSG2_data - Public msg10 As ODBALMMSG2_data - End Structure ' In case that the number of alarm is 10 - - ' cnc_modal:read modal data - - Public Structure MODAL_AUX_data - Public aux_data As Integer - Public flag1 As Byte - Public flag2 As Byte - End Structure - - Public Structure MODAL_RAUX1_data - Public data1 As MODAL_AUX_data - Public data2 As MODAL_AUX_data - Public data3 As MODAL_AUX_data - Public data4 As MODAL_AUX_data - Public data5 As MODAL_AUX_data - Public data6 As MODAL_AUX_data - Public data7 As MODAL_AUX_data - Public data8 As MODAL_AUX_data - Public data9 As MODAL_AUX_data - Public data10 As MODAL_AUX_data - Public data11 As MODAL_AUX_data - Public data12 As MODAL_AUX_data - Public data13 As MODAL_AUX_data - Public data14 As MODAL_AUX_data - Public data15 As MODAL_AUX_data - Public data16 As MODAL_AUX_data - Public data17 As MODAL_AUX_data - Public data18 As MODAL_AUX_data - Public data19 As MODAL_AUX_data - Public data20 As MODAL_AUX_data - Public data21 As MODAL_AUX_data - Public data22 As MODAL_AUX_data - Public data23 As MODAL_AUX_data - Public data24 As MODAL_AUX_data - Public data25 As MODAL_AUX_data - Public data26 As MODAL_AUX_data - Public data27 As MODAL_AUX_data - End Structure -#If FS30D Then - - Public Structure MODAL_RAUX2_data - Public data1 As MODAL_AUX_data - Public data2 As MODAL_AUX_data - Public data3 As MODAL_AUX_data - Public data4 As MODAL_AUX_data - Public data5 As MODAL_AUX_data - Public data6 As MODAL_AUX_data - Public data7 As MODAL_AUX_data - Public data8 As MODAL_AUX_data - Public data9 As MODAL_AUX_data - Public data10 As MODAL_AUX_data - Public data11 As MODAL_AUX_data - Public data12 As MODAL_AUX_data - Public data13 As MODAL_AUX_data - Public data14 As MODAL_AUX_data - Public data15 As MODAL_AUX_data - Public data16 As MODAL_AUX_data - Public data17 As MODAL_AUX_data - Public data18 As MODAL_AUX_data - Public data19 As MODAL_AUX_data - Public data20 As MODAL_AUX_data - Public data21 As MODAL_AUX_data - Public data22 As MODAL_AUX_data - Public data23 As MODAL_AUX_data - Public data24 As MODAL_AUX_data - Public data25 As MODAL_AUX_data - Public data26 As MODAL_AUX_data - Public data27 As MODAL_AUX_data - Public data28 As MODAL_AUX_data - Public data29 As MODAL_AUX_data - Public data30 As MODAL_AUX_data - Public data31 As MODAL_AUX_data - Public data32 As MODAL_AUX_data - End Structure -#Else -#If M_AXIS2 Then - _ - Public Structure MODAL_RAUX2_data - Public data1 As MODAL_AUX_data - Public data2 As MODAL_AUX_data - Public data3 As MODAL_AUX_data - Public data4 As MODAL_AUX_data - Public data5 As MODAL_AUX_data - Public data6 As MODAL_AUX_data - Public data7 As MODAL_AUX_data - Public data8 As MODAL_AUX_data - Public data9 As MODAL_AUX_data - Public data10 As MODAL_AUX_data - Public data11 As MODAL_AUX_data - Public data12 As MODAL_AUX_data - Public data13 As MODAL_AUX_data - Public data14 As MODAL_AUX_data - Public data15 As MODAL_AUX_data - Public data16 As MODAL_AUX_data - Public data17 As MODAL_AUX_data - Public data18 As MODAL_AUX_data - Public data19 As MODAL_AUX_data - Public data20 As MODAL_AUX_data - Public data21 As MODAL_AUX_data - Public data22 As MODAL_AUX_data - Public data23 As MODAL_AUX_data - Public data24 As MODAL_AUX_data - End Structure -#Else -#If FS15D Then - _ - Public Structure MODAL_RAUX2_data - Public data1 As MODAL_AUX_data - Public data2 As MODAL_AUX_data - Public data3 As MODAL_AUX_data - Public data4 As MODAL_AUX_data - Public data5 As MODAL_AUX_data - Public data6 As MODAL_AUX_data - Public data7 As MODAL_AUX_data - Public data8 As MODAL_AUX_data - Public data9 As MODAL_AUX_data - Public data10 As MODAL_AUX_data - End Structure -#Else - _ - Public Structure MODAL_RAUX2_data - Public data1 As MODAL_AUX_data - Public data2 As MODAL_AUX_data - Public data3 As MODAL_AUX_data - Public data4 As MODAL_AUX_data - Public data5 As MODAL_AUX_data - Public data6 As MODAL_AUX_data - Public data7 As MODAL_AUX_data - Public data8 As MODAL_AUX_data - End Structure -#End If -#End If -#End If - - - Public Structure ODBMDL_1 - - Public datano As Short - - Public type As Short - - Public g_data As Char - End Structure - - Public Structure ODBMDL_2 - - Public datano As Short - - Public type As Short - - Public g_1shot As Byte() - - Public g_rdata As Byte() - End Structure - - Public Structure ODBMDL_3 - Public datano As Short - Public type As Short - Public aux As MODAL_AUX_data - End Structure - - Public Structure ODBMDL_4 - Public datano As Short - Public type As Short - Public raux1 As MODAL_RAUX1_data - End Structure - - Public Structure ODBMDL_5 - Public datano As Short - Public type As Short - Public raux2 As MODAL_RAUX2_data - End Structure - - ' cnc_rdgcode: read G code - - Public Structure ODBGCD_data - Public group As Short - Public flag As Short - - Public code As String - End Structure - - Public Structure ODBGCD - Public gcd0 As ODBGCD_data - Public gcd1 As ODBGCD_data - Public gcd2 As ODBGCD_data - Public gcd3 As ODBGCD_data - Public gcd4 As ODBGCD_data - Public gcd5 As ODBGCD_data - Public gcd6 As ODBGCD_data - Public gcd7 As ODBGCD_data - Public gcd8 As ODBGCD_data - Public gcd9 As ODBGCD_data - Public gcd10 As ODBGCD_data - Public gcd11 As ODBGCD_data - Public gcd12 As ODBGCD_data - Public gcd13 As ODBGCD_data - Public gcd14 As ODBGCD_data - Public gcd15 As ODBGCD_data - Public gcd16 As ODBGCD_data - Public gcd17 As ODBGCD_data - Public gcd18 As ODBGCD_data - Public gcd19 As ODBGCD_data - Public gcd20 As ODBGCD_data - Public gcd21 As ODBGCD_data - Public gcd22 As ODBGCD_data - Public gcd23 As ODBGCD_data - Public gcd24 As ODBGCD_data - Public gcd25 As ODBGCD_data - Public gcd26 As ODBGCD_data - Public gcd27 As ODBGCD_data - End Structure - - ' cnc_rdcommand: read command value - - Public Structure ODBCMD_data - Public adrs As Byte - Public num As Byte - Public flag As Short - Public cmd_val As Integer - Public dec_val As Integer - End Structure - - Public Structure ODBCMD - Public cmd0 As ODBCMD_data - Public cmd1 As ODBCMD_data - Public cmd2 As ODBCMD_data - Public cmd3 As ODBCMD_data - Public cmd4 As ODBCMD_data - Public cmd5 As ODBCMD_data - Public cmd6 As ODBCMD_data - Public cmd7 As ODBCMD_data - Public cmd8 As ODBCMD_data - Public cmd9 As ODBCMD_data - Public cmd10 As ODBCMD_data - Public cmd11 As ODBCMD_data - Public cmd12 As ODBCMD_data - Public cmd13 As ODBCMD_data - Public cmd14 As ODBCMD_data - Public cmd15 As ODBCMD_data - Public cmd16 As ODBCMD_data - Public cmd17 As ODBCMD_data - Public cmd18 As ODBCMD_data - Public cmd19 As ODBCMD_data - Public cmd20 As ODBCMD_data - Public cmd21 As ODBCMD_data - Public cmd22 As ODBCMD_data - Public cmd23 As ODBCMD_data - Public cmd24 As ODBCMD_data - Public cmd25 As ODBCMD_data - Public cmd26 As ODBCMD_data - Public cmd27 As ODBCMD_data - Public cmd28 As ODBCMD_data - Public cmd29 As ODBCMD_data - End Structure - - ' cnc_diagnoss:read diagnosis data - ' cnc_diagnosr:read diagnosis data(area specified) - - Public Structure REALDGN - Public dgn_val As Integer ' data of real diagnoss - Public dec_val As Integer ' decimal point of real diagnoss - End Structure -#If FS30D Then - - Public Structure REALDGNS - Public rdata1 As REALDGN - Public rdata2 As REALDGN - Public rdata3 As REALDGN - Public rdata4 As REALDGN - Public rdata5 As REALDGN - Public rdata6 As REALDGN - Public rdata7 As REALDGN - Public rdata8 As REALDGN - Public rdata9 As REALDGN - Public rdata10 As REALDGN - Public rdata11 As REALDGN - Public rdata12 As REALDGN - Public rdata13 As REALDGN - Public rdata14 As REALDGN - Public rdata15 As REALDGN - Public rdata16 As REALDGN - Public rdata17 As REALDGN - Public rdata18 As REALDGN - Public rdata19 As REALDGN - Public rdata20 As REALDGN - Public rdata21 As REALDGN - Public rdata22 As REALDGN - Public rdata23 As REALDGN - Public rdata24 As REALDGN - Public rdata25 As REALDGN - Public rdata26 As REALDGN - Public rdata27 As REALDGN - Public rdata28 As REALDGN - Public rdata29 As REALDGN - Public rdata30 As REALDGN - Public rdata31 As REALDGN - Public rdata32 As REALDGN - End Structure ' In case that the number of alarm is 24 -#Else -#If M_AXIS2 Then - _ - Public Structure REALDGNS - Public rdata1 As REALDGN - Public rdata2 As REALDGN - Public rdata3 As REALDGN - Public rdata4 As REALDGN - Public rdata5 As REALDGN - Public rdata6 As REALDGN - Public rdata7 As REALDGN - Public rdata8 As REALDGN - Public rdata9 As REALDGN - Public rdata10 As REALDGN - Public rdata11 As REALDGN - Public rdata12 As REALDGN - Public rdata13 As REALDGN - Public rdata14 As REALDGN - Public rdata15 As REALDGN - Public rdata16 As REALDGN - Public rdata17 As REALDGN - Public rdata18 As REALDGN - Public rdata19 As REALDGN - Public rdata20 As REALDGN - Public rdata21 As REALDGN - Public rdata22 As REALDGN - Public rdata23 As REALDGN - Public rdata24 As REALDGN - End Structure ' In case that the number of alarm is 24 -#Else -#If FS15D Then - _ - Public Structure REALDGNS - Public rdata1 As REALDGN - Public rdata2 As REALDGN - Public rdata3 As REALDGN - Public rdata4 As REALDGN - Public rdata5 As REALDGN - Public rdata6 As REALDGN - Public rdata7 As REALDGN - Public rdata8 As REALDGN - Public rdata9 As REALDGN - Public rdata10 As REALDGN - End Structure ' In case that the number of alarm is 10 -#Else - _ - Public Structure REALDGNS - Public rdata1 As REALDGN - Public rdata2 As REALDGN - Public rdata3 As REALDGN - Public rdata4 As REALDGN - Public rdata5 As REALDGN - Public rdata6 As REALDGN - Public rdata7 As REALDGN - Public rdata8 As REALDGN - End Structure ' In case that the number of alarm is 8 -#End If -#End If -#End If - - - Public Structure ODBDGN_1 - - Public datano As Short ' data number - - Public type As Short ' axis number - - Public cdata As Byte ' parameter / setting data - - Public idata As Short - - Public ldata As Integer - End Structure - - Public Structure ODBDGN_2 - Public datano As Short ' data number - Public type As Short ' axis number - Public rdata As REALDGN - End Structure - - Public Structure ODBDGN_3 - - Public datano As Short ' data number - - Public type As Short ' axis number - - Public cdatas As Byte() - - Public idatas As Short() - - Public ldatas As Integer() - End Structure - - Public Structure ODBDGN_4 - Public datano As Short ' data number - Public type As Short ' axis number - Public rdatas As REALDGNS - End Structure - - Public Structure ODBDGN_A - Public data1 As ODBDGN_1 - Public data2 As ODBDGN_1 - Public data3 As ODBDGN_1 - Public data4 As ODBDGN_1 - Public data5 As ODBDGN_1 - Public data6 As ODBDGN_1 - Public data7 As ODBDGN_1 - End Structure ' (sample) must be modified - - Public Structure ODBDGN_B - Public data1 As ODBDGN_2 - Public data2 As ODBDGN_2 - Public data3 As ODBDGN_2 - Public data4 As ODBDGN_2 - Public data5 As ODBDGN_2 - Public data6 As ODBDGN_2 - Public data7 As ODBDGN_2 - End Structure ' (sample) must be modified - - Public Structure ODBDGN_C - Public data1 As ODBDGN_3 - Public data2 As ODBDGN_3 - Public data3 As ODBDGN_3 - Public data4 As ODBDGN_3 - Public data5 As ODBDGN_3 - Public data6 As ODBDGN_3 - Public data7 As ODBDGN_3 - End Structure ' (sample) must be modified - - Public Structure ODBDGN_D - Public data1 As ODBDGN_4 - Public data2 As ODBDGN_4 - Public data3 As ODBDGN_4 - Public data4 As ODBDGN_4 - Public data5 As ODBDGN_4 - Public data6 As ODBDGN_4 - Public data7 As ODBDGN_4 - End Structure ' (sample) must be modified - - ' cnc_adcnv:read A/D conversion data - - Public Structure ODBAD - Public datano As Short ' input analog voltage type - Public type As Short ' analog voltage type - Public data As Short ' digital voltage data - End Structure - -#If FS15D Then - ' cnc_rdopmsg:read operator's message - _ - Public Structure OPMSG_data - Public datano As Short ' operator's message number - Public type As Short ' operator's message type - Public char_num As Short ' message string length - _ - Public data As String ' operator's message string - End Structure ' In case that the data length is 129 -#Else - - Public Structure OPMSG_data - Public datano As Short ' operator's message number - Public type As Short ' operator's message type - Public char_num As Short ' message string length - - Public data As String ' operator's message string - End Structure ' In case that the data length is 256 -#End If - - Public Structure OPMSG - Public msg1 As OPMSG_data - Public msg2 As OPMSG_data - Public msg3 As OPMSG_data - Public msg4 As OPMSG_data - Public msg5 As OPMSG_data - End Structure - - ' cnc_rdopmsg2:read operator's message - - Public Structure OPMSG2_data - Public datano As Short ' operator's message number - Public type As Short ' operator's message type - Public char_num As Short ' message string length - - Public data As String ' operator's message string - End Structure ' In case that the data length is 64 - - Public Structure OPMSG2 - Public msg1 As OPMSG2_data - Public msg2 As OPMSG2_data - Public msg3 As OPMSG2_data - Public msg4 As OPMSG2_data - Public msg5 As OPMSG2_data - End Structure - - ' cnc_rdopmsg3:read operator's message - - Public Structure OPMSG3_data - Public datano As Short ' operator's message number - Public type As Short ' operator's message type - Public char_num As Short ' message string length - - Public data As String ' operator's message string - End Structure ' In case that the data length is 256 - - Public Structure OPMSG3 - Public msg1 As OPMSG3_data - Public msg2 As OPMSG3_data - Public msg3 As OPMSG3_data - Public msg4 As OPMSG3_data - Public msg5 As OPMSG3_data - End Structure - - ' cnc_sysconfig:read CNC configuration information - - Public Structure ODBSYSC - - Public slot_no_p As Byte() - - Public slot_no_l As Byte() - - Public mod_id As Short() - - Public soft_id As Short() - - Public s_series1 As String - - Public s_series2 As String - - Public s_series3 As String - - Public s_series4 As String - - Public s_series5 As String - - Public s_series6 As String - - Public s_series7 As String - - Public s_series8 As String - - Public s_series9 As String - - Public s_series10 As String - - Public s_series11 As String - - Public s_series12 As String - - Public s_series13 As String - - Public s_series14 As String - - Public s_series15 As String - - Public s_series16 As String - - Public s_version1 As String - - Public s_version2 As String - - Public s_version3 As String - - Public s_version4 As String - - Public s_version5 As String - - Public s_version6 As String - - Public s_version7 As String - - Public s_version8 As String - - Public s_version9 As String - - Public s_version10 As String - - Public s_version11 As String - - Public s_version12 As String - - Public s_version13 As String - - Public s_version14 As String - - Public s_version15 As String - - Public s_version16 As String - - Public dummy As Byte() - Public m_rom As Short - Public s_rom As Short - - Public svo_soft As Char() - - Public pmc_soft As Char() - - Public lad_soft As Char() - - Public mcr_soft As Char() - - Public spl1_soft As Char() - - Public spl2_soft As Char() - Public frmmin As Short - Public drmmin As Short - Public srmmin As Short - Public pmcmin As Short - Public crtmin As Short - Public sv1min As Short - Public sv3min As Short - Public sicmin As Short - Public posmin As Short - Public drmmrc As Short - Public drmarc As Short - Public pmcmrc As Short - Public dmaarc As Short - Public iopt As Short - Public hdiio As Short - Public frmsub As Short - Public drmsub As Short - Public srmsub As Short - Public sv5sub As Short - Public sv7sub As Short - Public sicsub As Short - Public possub As Short - Public hamsub As Short - Public gm2gr1 As Short - Public crtgr2 As Short - Public gm1gr2 As Short - Public gm2gr2 As Short - Public cmmrb As Short - Public sv5axs As Short - Public sv7axs As Short - Public sicaxs As Short - Public posaxs As Short - Public hanaxs As Short - Public romr64 As Short - Public srmr64 As Short - Public dr1r64 As Short - Public dr2r64 As Short - Public iopio2 As Short - Public hdiio2 As Short - Public cmmrb2 As Short - Public romfap As Short - Public srmfap As Short - Public drmfap As Short - End Structure - - ' cnc_rdprstrinfo:read program restart information - - Public Structure ODBPRS - Public datano As Short ' dummy - Public type As Short ' dummy - - Public data_info As Short() ' data setting information - Public rstr_bc As Integer ' block counter - - Public rstr_m As Integer() ' M code value - - Public rstr_t As Integer() ' T code value - Public rstr_s As Integer ' S code value - Public rstr_b As Integer ' B code value - - Public dest As Integer() ' program re-start position - - Public dist As Integer() ' program re-start distance - End Structure - -#If FS15D Then - ' cnc_rdopnlsgnl:read output signal image of software operator's panel - ' cnc_wropnlsgnl:write output signal of software operator's panel - _ - Public Structure IODBSGNL - Public datano As Short ' dummy - Public type As Short ' data select flag - Public mode As Short ' mode signal - Public hndl_ax As Short ' Manual handle feed axis selection signal - Public hndl_mv As Short ' Manual handle feed travel distance selection signal - Public rpd_ovrd As Short ' rapid traverse override signal - Public jog_ovrd As Short ' manual feedrate override signal - Public feed_ovrd As Short ' feedrate override signal - Public spdl_ovrd As Short ' spindle override signal - Public blck_del As Short ' optional block skip signal - Public sngl_blck As Short ' single block signal - Public machn_lock As Short' machine lock signal - Public dry_run As Short ' dry run signal - Public mem_prtct As Short ' memory protection signal - Public feed_hold As Short ' automatic operation halt signal - Public manual_rpd As Short' (not used) - _ - Public dummy As Short() ' (not used) - End Structure -#Else - ' cnc_rdopnlsgnl:read output signal image of software operator's panel - ' cnc_wropnlsgnl:write output signal of software operator's panel - - Public Structure IODBSGNL - Public datano As Short ' dummy - Public type As Short ' data select flag - Public mode As Short ' mode signal - Public hndl_ax As Short ' Manual handle feed axis selection signal - Public hndl_mv As Short ' Manual handle feed travel distance selection signal - Public rpd_ovrd As Short ' rapid traverse override signal - Public jog_ovrd As Short ' manual feedrate override signal - Public feed_ovrd As Short ' feedrate override signal - Public spdl_ovrd As Short ' (not used) - Public blck_del As Short ' optional block skip signal - Public sngl_blck As Short ' single block signal - Public machn_lock As Short ' machine lock signal - Public dry_run As Short ' dry run signal - Public mem_prtct As Short ' memory protection signal - Public feed_hold As Short ' automatic operation halt signal - End Structure -#End If - - ' cnc_rdopnlgnrl:read general signal image of software operator's panel - ' cnc_wropnlgnrl:write general signal image of software operator's panel - - Public Structure IODBGNRL - Public datano As Short ' dummy - Public type As Short ' data select flag - Public sgnal As Byte ' general signal - End Structure - - ' cnc_rdopnlgsname:read general signal name of software operator's panel - ' cnc_wropnlgsname:write general signal name of software operator's panel - - Public Structure IODBRDNA - Public datano As Short ' dummy - Public type As Short ' data select flag - - Public sgnl1_name As String ' general signal 1 name - - Public sgnl2_name As String ' general signal 2 name - - Public sgnl3_name As String ' general signal 3 name - - Public sgnl4_name As String ' general signal 4 name - - Public sgnl5_name As String ' general signal 5 name - - Public sgnl6_name As String ' general signal 6 name - - Public sgnl7_name As String ' general signal 7 name - - Public sgnl8_name As String ' general signal 8 name - End Structure - - ' cnc_getdtailerr:get detail error - - Public Structure ODBERR - Public err_no As Short - Public err_dtno As Short - End Structure - - - ' cnc_rdparainfo:read informations of CNC parameter - - Public Structure ODBPARAIF_info - Public prm_no As Short - Public prm_type As Short - End Structure - - Public Structure ODBPARAIF1 - Public info1 As ODBPARAIF_info - Public info2 As ODBPARAIF_info - Public info3 As ODBPARAIF_info - Public info4 As ODBPARAIF_info - Public info5 As ODBPARAIF_info - Public info6 As ODBPARAIF_info - Public info7 As ODBPARAIF_info - Public info8 As ODBPARAIF_info - Public info9 As ODBPARAIF_info - Public info10 As ODBPARAIF_info - End Structure ' In case that the number of data is 10 - - Public Structure ODBPARAIF - Public info_no As Short ' C# ushort - Public prev_no As Short - Public next_no As Short - Public info As ODBPARAIF1 - End Structure - - ' cnc_rdsetinfo:read informations of CNC setting data - - Public Structure ODBSETIF_info - Public set_no As Short - Public set_type As Short - End Structure - - Public Structure ODBSETIF1 - Public info1 As ODBSETIF_info - Public info2 As ODBSETIF_info - Public info3 As ODBSETIF_info - Public info4 As ODBSETIF_info - Public info5 As ODBSETIF_info - Public info6 As ODBSETIF_info - Public info7 As ODBSETIF_info - Public info8 As ODBSETIF_info - Public info9 As ODBSETIF_info - Public info10 As ODBSETIF_info - End Structure ' In case that the number of data is 10 - - Public Structure ODBSETIF - Public info_no As Short 'C# ushort - Public prev_no As Short - Public next_no As Short - Public info As ODBSETIF1 - End Structure - - ' cnc_rddiaginfo:read informations of CNC diagnose data - - Public Structure ODBDIAGIF_info - Public diag_no As Short - Public diag_type As Short - End Structure - - Public Structure ODBDIAGIF1 - Public info1 As ODBDIAGIF_info - Public info2 As ODBDIAGIF_info - Public info3 As ODBDIAGIF_info - Public info4 As ODBDIAGIF_info - Public info5 As ODBDIAGIF_info - Public info6 As ODBDIAGIF_info - Public info7 As ODBDIAGIF_info - Public info8 As ODBDIAGIF_info - Public info9 As ODBDIAGIF_info - Public info10 As ODBDIAGIF_info - End Structure ' In case that the number of data is 10 - - Public Structure ODBDIAGIF - Public info_no As Short ' C# ushort - Public prev_no As Short - Public next_no As Short - Public info As ODBDIAGIF1 - End Structure - - ' cnc_rdparanum:read maximum, minimum and total number of CNC parameter - - Public Structure ODBPARANUM - Public para_min As Short ' C# ushort - Public para_max As Short ' C# ushort - Public total_no As Short ' C# ushort - End Structure - - ' cnc_rdsetnum:read maximum, minimum and total number of CNC setting data - - Public Structure ODBSETNUM - Public set_min As Short ' C# ushort - Public set_max As Short ' C# ushort - Public total_no As Short ' C# ushort - End Structure - - ' cnc_rddiagnum:read maximum, minimum and total number of CNC diagnose data - - Public Structure ODBDIAGNUM - Public diag_min As Short ' C# ushort - Public diag_max As Short ' C# ushort - Public total_no As Short ' C# ushort - End Structure - - ' cnc_rdfrominfo:read F-ROM information on CNC - - Public Structure ODBFINFO_info - - Public sysname As String ' F-ROM SYSTEM data Name - Public fromsize As Integer ' F-ROM Size - End Structure - - Public Structure ODBFINFO1 - Public info1 As ODBFINFO_info - Public info2 As ODBFINFO_info - Public info3 As ODBFINFO_info - Public info4 As ODBFINFO_info - Public info5 As ODBFINFO_info - Public info6 As ODBFINFO_info - Public info7 As ODBFINFO_info - Public info8 As ODBFINFO_info - Public info9 As ODBFINFO_info - Public info10 As ODBFINFO_info - Public info11 As ODBFINFO_info - Public info12 As ODBFINFO_info - Public info13 As ODBFINFO_info - Public info14 As ODBFINFO_info - Public info15 As ODBFINFO_info - Public info16 As ODBFINFO_info - Public info17 As ODBFINFO_info - Public info18 As ODBFINFO_info - Public info19 As ODBFINFO_info - Public info20 As ODBFINFO_info - Public info21 As ODBFINFO_info - Public info22 As ODBFINFO_info - Public info23 As ODBFINFO_info - Public info24 As ODBFINFO_info - Public info25 As ODBFINFO_info - Public info26 As ODBFINFO_info - Public info27 As ODBFINFO_info - Public info28 As ODBFINFO_info - Public info29 As ODBFINFO_info - Public info30 As ODBFINFO_info - Public info31 As ODBFINFO_info - Public info32 As ODBFINFO_info - End Structure - - Public Structure ODBFINFO - - Public slotname As String ' Slot Name - Public fromnum As Integer ' Number of F-ROM SYSTEM data - Public info As ODBFINFO1 - End Structure - - ' cnc_getfrominfo:read F-ROM information on CNC - - Public Structure ODBFINFORM_info - - Public sysname As String ' F-ROM SYSTEM data Name - Public fromsize As Integer ' F-ROM Size - Public fromattrib As Integer ' F-ROM data attribute - End Structure - - Public Structure ODBFINFORM1 - Public info1 As ODBFINFORM_info - Public info2 As ODBFINFORM_info - Public info3 As ODBFINFORM_info - Public info4 As ODBFINFORM_info - Public info5 As ODBFINFORM_info - Public info6 As ODBFINFORM_info - Public info7 As ODBFINFORM_info - Public info8 As ODBFINFORM_info - Public info9 As ODBFINFORM_info - Public info10 As ODBFINFORM_info - Public info11 As ODBFINFORM_info - Public info12 As ODBFINFORM_info - Public info13 As ODBFINFORM_info - Public info14 As ODBFINFORM_info - Public info15 As ODBFINFORM_info - Public info16 As ODBFINFORM_info - Public info17 As ODBFINFORM_info - Public info18 As ODBFINFORM_info - Public info19 As ODBFINFORM_info - Public info20 As ODBFINFORM_info - Public info21 As ODBFINFORM_info - Public info22 As ODBFINFORM_info - Public info23 As ODBFINFORM_info - Public info24 As ODBFINFORM_info - Public info25 As ODBFINFORM_info - Public info26 As ODBFINFORM_info - Public info27 As ODBFINFORM_info - Public info28 As ODBFINFORM_info - Public info29 As ODBFINFORM_info - Public info30 As ODBFINFORM_info - Public info31 As ODBFINFORM_info - Public info32 As ODBFINFORM_info - End Structure - - Public Structure ODBFINFORM - Public slotno As Integer ' Slot Number - - Public slotname As String ' Slot Name - Public fromnum As Integer ' Number of F-ROM SYSTEM data - Public info As ODBFINFORM1 - End Structure - - ' cnc_rdsraminfo:read S-RAM information on CNC - ' cnc_getsraminfo:read S-RAM information on CNC - - Public Structure ODBSINFO_info - - Public sramname As String ' S-RAM data Name - Public sramsize As Integer ' S-RAM data Size - Public divnumber As Short ' Division number of S-RAM file - - Public fname1 As String ' S-RAM data Name1 - - Public fname2 As String ' S-RAM data Name2 - - Public fname3 As String ' S-RAM data Name3 - - Public fname4 As String ' S-RAM data Name4 - - Public fname5 As String ' S-RAM data Name5 - - Public fname6 As String ' S-RAM data Name6 - End Structure - - Public Structure ODBSINFO1 - Public info1 As ODBSINFO_info - Public info2 As ODBSINFO_info - Public info3 As ODBSINFO_info - Public info4 As ODBSINFO_info - Public info5 As ODBSINFO_info - Public info6 As ODBSINFO_info - Public info7 As ODBSINFO_info - Public info8 As ODBSINFO_info - End Structure - - Public Structure ODBSINFO - Public sramnum As Integer ' Number of S-RAM data - Public info As ODBSINFO1 - End Structure - - ' cnc_rdsramaddr:read S-RAM address on CNC - - Public Structure SRAMADDR - Public type As Short ' SRAM data type - Public size As Integer ' SRAM data size - Public offset As Integer ' offset from top address of SRAM - End Structure - - ' cnc_dtsvrdpgdir:read file directory in Data Server - - Public Structure ODBDSDIR_data - - Public file_name As String - - Public comment As String - Public size As Integer - - Public sDate As String - End Structure - - Public Structure ODBDSDIR1 - Public data1 As ODBDSDIR_data - Public data2 As ODBDSDIR_data - Public data3 As ODBDSDIR_data - Public data4 As ODBDSDIR_data - Public data5 As ODBDSDIR_data - Public data6 As ODBDSDIR_data - Public data7 As ODBDSDIR_data - Public data8 As ODBDSDIR_data - Public data9 As ODBDSDIR_data - Public data10 As ODBDSDIR_data - Public data11 As ODBDSDIR_data - Public data12 As ODBDSDIR_data - Public data13 As ODBDSDIR_data - Public data14 As ODBDSDIR_data - Public data15 As ODBDSDIR_data - Public data16 As ODBDSDIR_data - Public data17 As ODBDSDIR_data - Public data18 As ODBDSDIR_data - Public data19 As ODBDSDIR_data - Public data20 As ODBDSDIR_data - Public data21 As ODBDSDIR_data - Public data22 As ODBDSDIR_data - Public data23 As ODBDSDIR_data - Public data24 As ODBDSDIR_data - Public data25 As ODBDSDIR_data - Public data26 As ODBDSDIR_data - Public data27 As ODBDSDIR_data - Public data28 As ODBDSDIR_data - Public data29 As ODBDSDIR_data - Public data30 As ODBDSDIR_data - Public data31 As ODBDSDIR_data - Public data32 As ODBDSDIR_data - End Structure - - Public Structure ODBDSDIR - Public file_num As Integer - Public remainder As Integer - Public data_num As Short - Public data As ODBDSDIR1 - End Structure - - ' cnc_dtsvrdset:read setting data for Data Server - ' cnc_dtsvwrset:write setting data for Data Server - - Public Structure IODBDSSET - - Public host_ip As String - - Public host_uname As String - - Public host_passwd As String - - Public host_dir As String - - Public dtsv_mac As String - - Public dtsv_ip As String - - Public dtsv_mask As String - End Structure - - ' cnc_dtsvmntinfo:read maintenance information for Data Server - - Public Structure ODBDSMNT - Public empty_cnt As Integer - Public total_size As Integer - Public read_ptr As Integer - Public write_ptr As Integer - End Structure - - ' cnc_rdposerrs2:read the position deviation S1 and S2 - - Public Structure ODBPSER - Public poserr1 As Integer - Public poserr2 As Integer - End Structure - - ' cnc_rdctrldi:read the control input signal - - Public Structure ODBSPDI_data - Public sgnl1 As Byte - Public sgnl2 As Byte - Public sgnl3 As Byte - Public sgnl4 As Byte - End Structure - - Public Structure ODBSPDI - Public di1 As ODBSPDI_data - Public di2 As ODBSPDI_data - Public di3 As ODBSPDI_data - Public di4 As ODBSPDI_data - End Structure - - ' cnc_rdctrldo:read the control output signal - - Public Structure ODBSPDO_data - Public sgnl1 As Byte - Public sgnl2 As Byte - Public sgnl3 As Byte - Public sgnl4 As Byte - End Structure - - Public Structure ODBSPDO - Public do1 As ODBSPDO_data - Public do2 As ODBSPDO_data - Public do3 As ODBSPDO_data - Public do4 As ODBSPDO_data - End Structure - - ' cnc_rdwaveprm:read the parameter of wave diagnosis - ' cnc_wrwaveprm:write the parameter of wave diagnosis - - Public Structure IODBWAVE_io - Public adr As Byte - Public bit As Byte - Public no As Short - End Structure - - Public Structure IODBWAVE_axis - Public axis As Short - End Structure - - Public Structure IODBWAVE_u - - Public io As IODBWAVE_io - - Public axis As IODBWAVE_axis - End Structure - - Public Structure IODBWAVE_ch_data - Public kind As Short - Public u As IODBWAVE_u - End Structure - - Public Structure IODBWAVE_ch - Public ch1 As IODBWAVE_ch_data - Public ch2 As IODBWAVE_ch_data - Public ch3 As IODBWAVE_ch_data - Public ch4 As IODBWAVE_ch_data - Public ch5 As IODBWAVE_ch_data - Public ch6 As IODBWAVE_ch_data - Public ch7 As IODBWAVE_ch_data - Public ch8 As IODBWAVE_ch_data - Public ch9 As IODBWAVE_ch_data - Public ch10 As IODBWAVE_ch_data - Public ch11 As IODBWAVE_ch_data - Public ch12 As IODBWAVE_ch_data - End Structure - - Public Structure IODBWAVE - Public condition As Short - Public trg_adr As Char - Public trg_bit As Byte - Public trg_no As Short - Public delay As Short - Public t_range As Short - Public ch As IODBWAVE_ch - End Structure - - ' cnc_rdwaveprm2:read the parameter of wave diagnosis 2 - ' cnc_wrwaveprm2:write the parameter of wave diagnosis 2 - - Public Structure IODBWVPRM_io - Public adr As Byte - Public bit As Byte - Public no As Short - End Structure - - Public Structure IODBWVPRM_axis - Public axis As Short - End Structure - - Public Structure IODBWVPRM_u - - Public io As IODBWVPRM_io - - Public axis As IODBWVPRM_axis - End Structure - - Public Structure IODBWVPRM_ch_data - Public kind As Short - Public u As IODBWVPRM_u - Public reserve2 As Integer - End Structure - - Public Structure IODBWVPRM_ch - Public ch1 As IODBWVPRM_ch_data - Public ch2 As IODBWVPRM_ch_data - Public ch3 As IODBWVPRM_ch_data - Public ch4 As IODBWVPRM_ch_data - Public ch5 As IODBWVPRM_ch_data - Public ch6 As IODBWVPRM_ch_data - Public ch7 As IODBWVPRM_ch_data - Public ch8 As IODBWVPRM_ch_data - Public ch9 As IODBWVPRM_ch_data - Public ch10 As IODBWVPRM_ch_data - Public ch11 As IODBWVPRM_ch_data - Public ch12 As IODBWVPRM_ch_data - End Structure - - Public Structure IODBWVPRM - Public condition As Short - Public trg_adr As Byte - Public trg_bit As Byte - Public trg_no As Short - Public reserve1 As Short - Public delay As Integer - Public t_range As Integer - Public ch As IODBWVPRM_ch - End Structure - - ' cnc_rdwavedata:read the data of wave diagnosis - - Public Structure ODBWVDT_io - Public adr As Byte - Public bit As Byte - Public no As Short - End Structure - - Public Structure ODBWVDT_axis - Public axis As Short - End Structure - - Public Structure ODBWVDT_u - - Public io As ODBWVDT_io - - Public axis As ODBWVDT_axis - End Structure - - Public Structure ODBWVDT - Public channel As Short - Public kind As Short - Public u As ODBWVDT_u - Public year As Byte - Public month As Byte - Public day As Byte - Public hour As Byte - Public minute As Byte - Public second As Byte - Public t_cycle As Short - - Public data As Short() - End Structure - - ' cnc_rdrmtwaveprm:read the parameter of wave diagnosis for remort diagnosis - ' cnc_wrrmtwaveprm:write the parameter of wave diagnosis for remort diagnosis - - Public Structure IODBRMTPRM_alm - Public no As Short - Public axis As SByte - Public type As Byte - End Structure - - Public Structure IODBRMTPRM_io - Public adr As Char - Public bit As Byte - Public no As Short - End Structure - - Public Structure IODBRMTPRM_trg - - Public alm As IODBRMTPRM_alm - - Public io As IODBRMTPRM_alm - End Structure - - Public Structure IODBRMTPRM_smpl - Public adr As Char - Public bit As Byte - Public no As Short - End Structure - - Public Structure IODBRMTPRM1 - Public ampl1 As IODBRMTPRM_smpl - Public ampl2 As IODBRMTPRM_smpl - Public ampl3 As IODBRMTPRM_smpl - Public ampl4 As IODBRMTPRM_smpl - Public ampl5 As IODBRMTPRM_smpl - Public ampl6 As IODBRMTPRM_smpl - Public ampl7 As IODBRMTPRM_smpl - Public ampl8 As IODBRMTPRM_smpl - Public ampl9 As IODBRMTPRM_smpl - Public ampl10 As IODBRMTPRM_smpl - Public ampl11 As IODBRMTPRM_smpl - Public ampl12 As IODBRMTPRM_smpl - Public ampl13 As IODBRMTPRM_smpl - Public ampl14 As IODBRMTPRM_smpl - Public ampl15 As IODBRMTPRM_smpl - Public ampl16 As IODBRMTPRM_smpl - Public ampl17 As IODBRMTPRM_smpl - Public ampl18 As IODBRMTPRM_smpl - Public ampl19 As IODBRMTPRM_smpl - Public ampl20 As IODBRMTPRM_smpl - Public ampl21 As IODBRMTPRM_smpl - Public ampl22 As IODBRMTPRM_smpl - Public ampl23 As IODBRMTPRM_smpl - Public ampl24 As IODBRMTPRM_smpl - Public ampl25 As IODBRMTPRM_smpl - Public ampl26 As IODBRMTPRM_smpl - Public ampl27 As IODBRMTPRM_smpl - Public ampl28 As IODBRMTPRM_smpl - Public ampl29 As IODBRMTPRM_smpl - Public ampl30 As IODBRMTPRM_smpl - Public ampl31 As IODBRMTPRM_smpl - Public ampl32 As IODBRMTPRM_smpl - End Structure - - Public Structure IODBRMTPRM - Public condition As Short - Public reserve As Short - Public trg As IODBRMTPRM_trg - Public delay As Integer - Public wv_intrvl As Short - Public io_intrvl As Short - Public kind1 As Short - Public kind2 As Short - Public ampl As IODBRMTPRM1 - End Structure - - ' cnc_rdrmtwavedt:read the data of wave diagnosis for remort diagnosis - - Public Structure ODBRMTDT - Public channel As Short - Public kind As Short - Public year As Byte - Public month As Byte - Public day As Byte - Public hour As Byte - Public minute As Byte - Public second As Byte - Public t_intrvl As Short - Public trg_data As Short - Public ins_ptr As Integer - Public t_delta As Short - - Public data As Short() - End Structure - - ' cnc_rdsavsigadr:read of address for PMC signal batch save - ' cnc_wrsavsigadr:write of address for PMC signal batch save - - Public Structure IODBSIGAD - Public adr As Byte - Public reserve As Byte - Public no As Short - Public size As Short - End Structure - - ' cnc_rdmgrpdata:read M-code group data - - Public Structure ODBMGRP_data - Public m_code As Integer - Public grp_no As Short - - Public m_name As String - Public dummy As Byte - End Structure - - Public Structure ODBMGRP - Public mgrp1 As ODBMGRP_data - Public mgrp2 As ODBMGRP_data - Public mgrp3 As ODBMGRP_data - Public mgrp4 As ODBMGRP_data - Public mgrp5 As ODBMGRP_data - Public mgrp6 As ODBMGRP_data - Public mgrp7 As ODBMGRP_data - Public mgrp8 As ODBMGRP_data - Public mgrp9 As ODBMGRP_data - Public mgrp10 As ODBMGRP_data - End Structure - - ' cnc_wrmgrpdata:write M-code group data - - Public Structure IDBMGRP - Public s_no As Short - Public dummy As Short - Public num As Short - - Public group As Short() - End Structure - - ' cnc_rdexecmcode:read executing M-code group data - - Public Structure ODBEXEM_data - Public no As Integer - Public flag As Short - End Structure - - Public Structure ODBEXEM1 - Public m_code1 As ODBEXEM_data - Public m_code2 As ODBEXEM_data - Public m_code3 As ODBEXEM_data - Public m_code4 As ODBEXEM_data - Public m_code5 As ODBEXEM_data - End Structure - - Public Structure ODBEXEM - Public grp_no As Short - Public mem_no As Short - Public m_code As ODBEXEM1 - - Public m_name As String - Public dummy As Byte - End Structure - - ' cnc_rdrstrmcode:read program restart M-code group data - - Public Structure M_CODE_data - Public no As Integer - Public flag As Short - End Structure - - Public Structure M_CODE1 - Public m_code1 As M_CODE_data - Public m_code2 As M_CODE_data - Public m_code3 As M_CODE_data - Public m_code4 As M_CODE_data - Public m_code5 As M_CODE_data - End Structure - - Public Structure ODBRSTRM - Public grp_no As Short - Public mem_no As Short - Public m_code As M_CODE1 - End Structure - - ' cnc_rdproctime:read processing time stamp data - - Public Structure ODBPTIME_data - Public prg_no As Integer - Public hour As Short - Public minute As Byte - Public second As Byte - End Structure - - Public Structure ODBPTIME1 - Public data1 As ODBPTIME_data - Public data2 As ODBPTIME_data - Public data3 As ODBPTIME_data - Public data4 As ODBPTIME_data - Public data5 As ODBPTIME_data - Public data6 As ODBPTIME_data - Public data7 As ODBPTIME_data - Public data8 As ODBPTIME_data - Public data9 As ODBPTIME_data - Public data10 As ODBPTIME_data - End Structure ' In case that the number of data is 10 - - Public Structure ODBPTIME - Public num As Short - Public data As ODBPTIME1 - End Structure - - ' cnc_rdprgdirtime:read program directory for processing time data - - Public Structure PRGDIRTM_data - Public prg_no As Integer - - Public m_name As String - - Public cuttime As String - End Structure - - Public Structure PRGDIRTM - Public data1 As PRGDIRTM_data - Public data2 As PRGDIRTM_data - Public data3 As PRGDIRTM_data - Public data4 As PRGDIRTM_data - Public data5 As PRGDIRTM_data - Public data6 As PRGDIRTM_data - Public data7 As PRGDIRTM_data - Public data8 As PRGDIRTM_data - Public data9 As PRGDIRTM_data - Public data10 As PRGDIRTM_data - End Structure ' In case that the number of data is 10 - - ' cnc_rdprogdir2:read program directory 2 -#If ONO8D = Nothing Then - - Public Structure PRGDIR2_data - Public number As Short - Public length As Integer - - Public comment As String - Public dummy As Byte - End Structure -#Else - _ - Public Structure PRGDIR2_data - Public number As Integer - Public length As Integer - _ - Public comment As String - Public dummy As Byte - End Structure -#End If - - Public Structure PRGDIR2 - Public dir1 As PRGDIR2_data - Public dir2 As PRGDIR2_data - Public dir3 As PRGDIR2_data - Public dir4 As PRGDIR2_data - Public dir5 As PRGDIR2_data - Public dir6 As PRGDIR2_data - Public dir7 As PRGDIR2_data - Public dir8 As PRGDIR2_data - Public dir9 As PRGDIR2_data - Public dir10 As PRGDIR2_data - End Structure ' In case that the number of data is 10 - - ' cnc_rdprogdir3:read program directory 3 - - Public Structure DIR3_MDATE - Public year As Short - Public month As Short - Public day As Short - Public hour As Short - Public minute As Short - Public dummy As Short - End Structure - - Public Structure DIR3_CDATE - Public year As Short - Public month As Short - Public day As Short - Public hour As Short - Public minute As Short - Public dummy As Short - End Structure - - Public Structure PRGDIR3_data - Public number As Integer - Public length As Integer - Public page As Integer - - Public comment As String - Public mdate As DIR3_MDATE - Public cdate1 As DIR3_CDATE - End Structure - - Public Structure PRGDIR3 - Public dir1 As PRGDIR3_data - Public dir2 As PRGDIR3_data - Public dir3 As PRGDIR3_data - Public dir4 As PRGDIR3_data - Public dir5 As PRGDIR3_data - Public dir6 As PRGDIR3_data - Public dir7 As PRGDIR3_data - Public dir8 As PRGDIR3_data - Public dir9 As PRGDIR3_data - Public dir10 As PRGDIR3_data - End Structure ' In case that the number of data is 10 - - ' cnc_rdprogdir4:read program directory 4 - - Public Structure DIR4_MDATE - Public year As Short - Public month As Short - Public day As Short - Public hour As Short - Public minute As Short - Public dummy As Short - End Structure - - Public Structure DIR4_CDATE - Public year As Short - Public month As Short - Public day As Short - Public hour As Short - Public minute As Short - Public dummy As Short - End Structure - - Public Structure PRGDIR4_data - Public number As Integer - Public length As Integer - Public page As Integer - - Public comment As String - Public mdate As DIR3_MDATE - Public cdate1 As DIR3_CDATE - End Structure - - Public Structure PRGDIR4 - Public dir1 As PRGDIR4_data - Public dir2 As PRGDIR4_data - Public dir3 As PRGDIR4_data - Public dir4 As PRGDIR4_data - Public dir5 As PRGDIR4_data - Public dir6 As PRGDIR4_data - Public dir7 As PRGDIR4_data - Public dir8 As PRGDIR4_data - Public dir9 As PRGDIR4_data - Public dir10 As PRGDIR4_data - End Structure ' In case that the number of data is 10 - - ' cnc_rdcomparam:read communication parameter for DNC1, DNC2, OSI-Ethernet - ' cnc_wrcomparam:write communication parameter for DNC1, DNC2, OSI-Ethernet - - Public Structure IODBCPRM - - Public NcApli As String - Public Dummy1 As Byte - - Public HostApli As String - Public Dummy2 As Byte - Public StatPstv As Integer ' C# uint - Public StatNgtv As Integer ' C# uint - Public Statmask As Integer ' C# uint - Public AlarmStat As Integer ' C# uint - Public PsclHaddr As Integer ' C# uint - Public PsclLaddr As Integer ' C# uint - Public SvcMode1 As Short ' C# ushort - Public SvcMode2 As Short ' C# ushort - Public FileTout As Integer - Public RemTout As Integer - End Structure - - ' cnc_rdintchk:read interference check - ' cnc_wrintchk:write interference check - - Public Structure IODBINT - Public datano_s As Short ' start offset No. - Public type As Short ' kind of position - Public datano_e As Short ' end offset No. - - Public data As Integer() ' position value of area for not attach - End Structure - - ' cnc_rdwkcdshft:read work coordinate shift - ' cnc_wrwkcdshft:write work coordinate shift - ' cnc_rdwkcdsfms:read work coordinate shift measure - ' cnc_wrwkcdsfms:write work coordinate shift measure - - Public Structure IODBWCSF - Public datano As Short ' datano - Public type As Short ' axis number - - Public data As Integer() ' data - End Structure - - ' cnc_rdomhisinfo:read operator message history information - - Public Structure ODBOMIF - Public om_max As Short ' maximum operator message history C# ushort - Public om_sum As Short ' actually operator message history C# ushort - Public om_char As Short ' maximum character (include NULL) C# ushort - End Structure - - ' cnc_rdomhistry:read operator message history - - Public Structure ODBOMHIS_data - Public om_no As Short ' operator message number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' mimute - Public second As Short ' second - - Public om_msg As String - End Structure - - Public Structure ODBOMHIS - Public omhis1 As ODBOMHIS_data - Public omhis2 As ODBOMHIS_data - Public omhis3 As ODBOMHIS_data - Public omhis4 As ODBOMHIS_data - Public omhis5 As ODBOMHIS_data - Public omhis6 As ODBOMHIS_data - Public omhis7 As ODBOMHIS_data - Public omhis8 As ODBOMHIS_data - Public omhis9 As ODBOMHIS_data - Public omhis10 As ODBOMHIS_data - End Structure ' In case that the number of data is 10 - - ' cnc_rdbtofsr:read b-axis tool offset value(area specified) - ' cnc_wrbtofsr:write b-axis tool offset value(area specified) - - Public Structure IODBBTO - Public datano_s As Short ' start offset number - Public type As Short ' offset type - Public datano_e As Short ' end offset number - - Public ofs As Integer() ' offset - End Structure ' In case that the number of data is 9 (B type) - - ' cnc_rdbtofsinfo:read b-axis tool offset information - - Public Structure ODBBTLINF - Public ofs_type As Short ' memory type - Public use_no As Short ' sum of b-axis offset - Public sub_no As Short ' sub function number of offset cancel - End Structure - - ' cnc_rdbaxis:read b-axis command - - Public Structure ODBBAXIS - Public flag As Short ' b-axis command exist or not - Public command As Short ' b-axis command - Public speed As Short ' b-axis speed C# ushort - Public sub_data As Integer ' b-axis sub data - End Structure - - ' cnc_rdsyssoft:read CNC system soft series and version - - Public Structure ODBSYSS - - Public slot_no_p As Byte() - - Public slot_no_l As Byte() - - Public module_id As Short() - - Public soft_id As Short() - - Public soft_series1 As String - - Public soft_series2 As String - - Public soft_series3 As String - - Public soft_series4 As String - - Public soft_series5 As String - - Public soft_series6 As String - - Public soft_series7 As String - - Public soft_series8 As String - - Public soft_series9 As String - - Public soft_series10 As String - - Public soft_series11 As String - - Public soft_series12 As String - - Public soft_series13 As String - - Public soft_series14 As String - - Public soft_series15 As String - - Public soft_series16 As String - - Public soft_version1 As String - - Public soft_version2 As String - - Public soft_version3 As String - - Public soft_version4 As String - - Public soft_version5 As String - - Public soft_version6 As String - - Public soft_version7 As String - - Public soft_version8 As String - - Public soft_version9 As String - - Public soft_version10 As String - - Public soft_version11 As String - - Public soft_version12 As String - - Public soft_version13 As String - - Public soft_version14 As String - - Public soft_version15 As String - - Public soft_version16 As String - Public soft_inst As Short - - Public boot_ser As String - - Public boot_ver As String - - Public servo_ser As String - - Public servo_ver As String - - Public pmc_ser As String - - Public pmc_ver As String - - Public ladder_ser As String - - Public ladder_ver As String - - Public mcrlib_ser As String - - Public mcrlib_ver As String - - Public mcrapl_ser As String - - Public mcrapl_ver As String - - Public spl1_ser As String - - Public spl1_ver As String - - Public spl2_ser As String - - Public spl2_ver As String - - Public spl3_ser As String - - Public spl3_ver As String - - Public c_exelib_ser As String - - Public c_exelib_ver As String - - Public c_exeapl_ser As String - - Public c_exeapl_ver As String - - Public int_vga_ser As String - - Public int_vga_ver As String - - Public out_vga_ser As String - - Public out_vga_ver As String - - Public pmm_ser As String - - Public pmm_ver As String - - Public pmc_mng_ser As String - - Public pmc_mng_ver As String - - Public pmc_shin_ser As String - - Public pmc_shin_ver As String - - Public pmc_shout_ser As String - - Public pmc_shout_ver As String - - Public pmc_c_ser As String - - Public pmc_c_ver As String - - Public pmc_edit_ser As String - - Public pmc_edit_ver As String - - Public lddr_mng_ser As String - - Public lddr_mng_ver As String - - Public lddr_apl_ser As String - - Public lddr_apl_ver As String - - Public spl4_ser As String - - Public spl4_ver As String - - Public mcr2_ser As String - - Public mcr2_ver As String - - Public mcr3_ser As String - - Public mcr3_ver As String - - Public eth_boot_ser As String - - Public eth_boot_ver As String - - Public reserve As Byte() - End Structure - - ' cnc_rdsyssoft2:read CNC system soft series and version (2) - - Public Structure ODBSYSS2 - - Public slot_no_p As Byte() - - Public slot_no_l As Byte() - - Public module_id As Short() - - Public soft_id As Short() - - Public soft_series1 As String - - Public soft_series2 As String - - Public soft_series3 As String - - Public soft_series4 As String - - Public soft_series5 As String - - Public soft_series6 As String - - Public soft_series7 As String - - Public soft_series8 As String - - Public soft_series9 As String - - Public soft_series10 As String - - Public soft_series11 As String - - Public soft_series12 As String - - Public soft_series13 As String - - Public soft_series14 As String - - Public soft_series15 As String - - Public soft_series16 As String - - Public soft_version1 As String - - Public soft_version2 As String - - Public soft_version3 As String - - Public soft_version4 As String - - Public soft_version5 As String - - Public soft_version6 As String - - Public soft_version7 As String - - Public soft_version8 As String - - Public soft_version9 As String - - Public soft_version10 As String - - Public soft_version11 As String - - Public soft_version12 As String - - Public soft_version13 As String - - Public soft_version14 As String - - Public soft_version15 As String - - Public soft_version16 As String - Public soft_inst As Short - - Public boot_ser As String - - Public boot_ver As String - - Public servo_ser As String - - Public servo_ver As String - - Public pmc_ser As String - - Public pmc_ver As String - - Public ladder_ser As String - - Public ladder_ver As String - - Public mcrlib_ser As String - - Public mcrlib_ver As String - - Public mcrapl_ser As String - - Public mcrapl_ver As String - - Public spl1_ser As String - - Public spl1_ver As String - - Public spl2_ser As String - - Public spl2_ver As String - - Public spl3_ser As String - - Public spl3_ver As String - - Public c_exelib_ser As String - - Public c_exelib_ver As String - - Public c_exeapl_ser As String - - Public c_exeapl_ver As String - - Public int_vga_ser As String - - Public int_vga_ver As String - - Public out_vga_ser As String - - Public out_vga_ver As String - - Public pmm_ser As String - - Public pmm_ver As String - - Public pmc_mng_ser As String - - Public pmc_mng_ver As String - - Public pmc_shin_ser As String - - Public pmc_shin_ver As String - - Public pmc_shout_ser As String - - Public pmc_shout_ver As String - - Public pmc_c_ser As String - - Public pmc_c_ver As String - - Public pmc_edit_ser As String - - Public pmc_edit_ver As String - - Public lddr_mng_ser As String - - Public lddr_mng_ver As String - - Public lddr_apl_ser As String - - Public lddr_apl_ver As String - - Public spl4_ser As String - - Public spl4_ver As String - - Public mcr2_ser As String - - Public mcr2_ver As String - - Public mcr3_ser As String - - Public mcr3_ver As String - - Public eth_boot_ser As String - - Public eth_boot_ver As String - - Public reserve As Byte() - - Public embEthe_ser As String - - Public embEthe_ver As String - - Public reserve2 As Byte() - End Structure - - '@cnc_rdsyssoft3:read CNC system soft series and version (3) - - Public Structure ODBSYSS3_data - Public soft_id As Short - - Public soft_series As Char() - - Public soft_edition As Char() - End Structure - - - Public Structure ODBSYSS3 - Public p1 As ODBSYSS3_data - Public p2 As ODBSYSS3_data - Public p3 As ODBSYSS3_data - Public p4 As ODBSYSS3_data - Public p5 As ODBSYSS3_data - Public p6 As ODBSYSS3_data - Public p7 As ODBSYSS3_data - Public p8 As ODBSYSS3_data - Public p9 As ODBSYSS3_data - Public p10 As ODBSYSS3_data - Public p11 As ODBSYSS3_data - Public p12 As ODBSYSS3_data - Public p13 As ODBSYSS3_data - Public p14 As ODBSYSS3_data - Public p15 As ODBSYSS3_data - Public p16 As ODBSYSS3_data - Public p17 As ODBSYSS3_data - Public p18 As ODBSYSS3_data - Public p19 As ODBSYSS3_data - Public p20 As ODBSYSS3_data - Public p21 As ODBSYSS3_data - Public p22 As ODBSYSS3_data - Public p23 As ODBSYSS3_data - Public p24 As ODBSYSS3_data - Public p25 As ODBSYSS3_data - Public p26 As ODBSYSS3_data - Public p27 As ODBSYSS3_data - Public p28 As ODBSYSS3_data - Public p29 As ODBSYSS3_data - Public p30 As ODBSYSS3_data - Public p31 As ODBSYSS3_data - Public p32 As ODBSYSS3_data - Public p33 As ODBSYSS3_data - Public p34 As ODBSYSS3_data - Public p35 As ODBSYSS3_data - Public p36 As ODBSYSS3_data - Public p37 As ODBSYSS3_data - Public p38 As ODBSYSS3_data - Public p39 As ODBSYSS3_data - Public p40 As ODBSYSS3_data - End Structure - - ' cnc_rdsyshard:read CNC system hard info - - Public Structure ODBSYSH_data - Public id1 As Integer - Public id2 As Integer - Public group_id As Short - Public hard_id As Short - Public hard_num As Short - Public slot_no As Short - Public id1_format As Short - Public id2_format As Short - End Structure - - Public Structure ODBSYSH - Public data1 As ODBSYSH_data - Public data2 As ODBSYSH_data - Public data3 As ODBSYSH_data - Public data4 As ODBSYSH_data - Public data5 As ODBSYSH_data - Public data6 As ODBSYSH_data - Public data7 As ODBSYSH_data - Public data8 As ODBSYSH_data - Public data9 As ODBSYSH_data - Public data10 As ODBSYSH_data - Public data11 As ODBSYSH_data - Public data12 As ODBSYSH_data - Public data13 As ODBSYSH_data - Public data14 As ODBSYSH_data - Public data15 As ODBSYSH_data - Public data16 As ODBSYSH_data - Public data17 As ODBSYSH_data - Public data18 As ODBSYSH_data - Public data19 As ODBSYSH_data - Public data20 As ODBSYSH_data - Public data21 As ODBSYSH_data - Public data22 As ODBSYSH_data - Public data23 As ODBSYSH_data - Public data24 As ODBSYSH_data - Public data25 As ODBSYSH_data - End Structure - - ' cnc_rdmdlconfig:read CNC module configuration information - - Public Structure ODBMDLC - Public from As Short - Public dram As Short - Public sram As Short - Public pmc As Short - Public crtc As Short - Public servo12 As Short - Public servo34 As Short - Public servo56 As Short - Public servo78 As Short - Public sic As Short - Public pos_lsi As Short - Public hi_aio As Short - - Public reserve As Short() - Public drmmrc As Short - Public drmarc As Short - Public pmcmrc As Short - Public dmaarc As Short - Public iopt As Short - Public hdiio As Short - Public gm2gr1 As Short - Public crtgr2 As Short - Public gm1gr2 As Short - Public gm2gr2 As Short - Public cmmrb As Short - Public sv5axs As Short - Public sv7axs As Short - Public sicaxs As Short - Public posaxs As Short - Public hamaxs As Short - Public romr64 As Short - Public srmr64 As Short - Public dr1r64 As Short - Public dr2r64 As Short - Public iopio2 As Short - Public hdiio2 As Short - Public cmmrb2 As Short - Public romfap As Short - Public srmfap As Short - Public drmfap As Short - Public drmare As Short - Public pmcmre As Short - Public dmaare As Short - Public frmbgg As Short - Public drmbgg As Short - Public asrbgg As Short - Public edtpsc As Short - Public slcpsc As Short - - Public reserve2 As Short() - End Structure - - ' cnc_rdpscdproc:read processing condition file (processing data) - ' cnc_wrpscdproc:write processing condition file (processing data) - - Public Structure IODBPSCD_data - Public slct As Short - Public feed As Integer - Public power As Short - Public freq As Short - Public duty As Short - Public g_press As Short - Public g_kind As Short - Public g_ready_t As Short - Public displace As Short - Public supple As Integer - Public edge_slt As Short - Public appr_slt As Short - - Public reserve As Short() - End Structure - - Public Structure IODBPSCD - Public data1 As IODBPSCD_data - Public data2 As IODBPSCD_data - Public data3 As IODBPSCD_data - Public data4 As IODBPSCD_data - Public data5 As IODBPSCD_data - Public data6 As IODBPSCD_data - Public data7 As IODBPSCD_data - Public data8 As IODBPSCD_data - Public data9 As IODBPSCD_data - Public data10 As IODBPSCD_data - End Structure ' In case that the number of data is 10 - - ' cnc_rdpscdpirc:read processing condition file (piercing data) - ' cnc_wrpscdpirc:write processing condition file (piercing data) - - Public Structure IODBPIRC_data - Public slct As Short - Public power As Short - Public freq As Short - Public duty As Short - Public i_freq As Short - Public i_duty As Short - Public step_t As Short - Public step_sum As Short - Public pier_t As Integer - Public g_press As Short - Public g_kind As Short - Public g_time As Short - Public def_pos As Short - - Public reserve As Short() - End Structure - - Public Structure IODBPIRC - Public data1 As IODBPIRC_data - Public data2 As IODBPIRC_data - Public data3 As IODBPIRC_data - End Structure - - ' cnc_rdpscdedge:read processing condition file (edging data) - ' cnc_wrpscdedge:write processing condition file (edging data) - - Public Structure IODBEDGE_data - Public slct As Short - Public angle As Short - Public power As Short - Public freq As Short - Public duty As Short - Public pier_t As Integer - Public g_press As Short - Public g_kind As Short - Public r_len As Integer - Public r_feed As Short - Public r_freq As Short - Public r_duty As Short - - Public reserve As Short() - End Structure - - Public Structure IODBEDGE - Public data1 As IODBEDGE_data - Public data2 As IODBEDGE_data - Public data3 As IODBEDGE_data - Public data4 As IODBEDGE_data - Public data5 As IODBEDGE_data - End Structure - - ' cnc_rdpscdslop:read processing condition file (slope data) - ' cnc_wrpscdslop:write processing condition file (slope data) - - Public Structure IODBSLOP_data - Public slct As Integer - Public upleng As Integer - - Public upsp As Short() - Public dwleng As Integer - - Public dwsp As Short() - - Public reserve As Short() - End Structure - - Public Structure IODBSLOP - Public data1 As IODBSLOP_data - Public data2 As IODBSLOP_data - Public data3 As IODBSLOP_data - Public data4 As IODBSLOP_data - Public data5 As IODBSLOP_data - End Structure - - ' cnc_rdlpwrdty:read power controll duty data - ' cnc_wrlpwrdty:write power controll duty data - - Public Structure IODBLPWDT - Public slct As Short - Public dty_const As Short - Public dty_min As Short - - Public reserve As Short() - End Structure - - ' cnc_rdlpwrdat:read laser power data - - Public Structure ODBLOPDT - Public slct As Short - Public pwr_mon As Short - Public pwr_ofs As Short - Public pwr_act As Short - Public feed_act As Integer - - Public reserve As Short() - End Structure - - ' cnc_rdlagslt:read laser assist gas selection - ' cnc_wrlagslt:write laser assist gas selection - - Public Structure IODBLAGSL - Public slct As Short - Public ag_slt As Short - Public agflow_slt As Short - - Public reserve As Short() - End Structure - - ' cnc_rdlagst:read laser assist gas flow - ' cnc_wrlagst:write laser assist gas flow - - Public Structure GASFLOW - Public slct As Short - Public pre_time As Short - Public pre_press As Short - Public proc_press As Short - Public end_time As Short - Public end_press As Short - - Public reserve As Short() - End Structure - - Public Structure IODBLAGST - Public data1 As GASFLOW - Public data2 As GASFLOW - Public data3 As GASFLOW - End Structure - - ' cnc_rdledgprc:read laser power for edge processing - ' cnc_wrledgprc:write laser power for edge processing - - Public Structure IODBLEGPR - Public slct As Short - Public power As Short - Public freq As Short - Public duty As Short - - Public reserve As Short() - End Structure - - ' cnc_rdlprcprc:read laser power for piercing - ' cnc_wrlprcprc:write laser power for piercing - - Public Structure IODBLPCPR - Public slct As Short - Public power As Short - Public freq As Short - Public duty As Short - Public time As Integer - - Public reserve As Short() - End Structure - - ' cnc_rdlcmddat:read laser command data - - Public Structure ODBLCMDT - Public slct As Short - Public feed As Integer - Public power As Short - Public freq As Short - Public duty As Short - Public g_kind As Short - Public g_ready_t As Short - Public g_press As Short - Public error1 As Short - Public dsplc As Integer - - Public reserve As Short() - End Structure - - ' cnc_rdlactnum:read active number - - Public Structure ODBLACTN - Public slct As Short - Public act_proc As Short - Public act_pirce As Short - Public act_slop As Short - - Public reserve As Short() - End Structure - - ' cnc_rdlcmmt:read laser comment - - Public Structure ODBLCMMT - - Public comment As String - End Structure - - ' cnc_rdpwofsthis:read power correction factor history data - - Public Structure ODBPWOFST_data - Public pwratio As Integer - Public rfvolt As Integer - Public year As Short ' C# ushort - Public month As Short ' C# ushort - Public day As Short ' C# ushort - Public hour As Short ' C# ushort - Public minute As Short ' C# ushort - Public second As Short ' C# ushort - End Structure - - Public Structure ODBPWOFST - Public data1 As ODBPWOFST_data - Public data2 As ODBPWOFST_data - Public data3 As ODBPWOFST_data - Public data4 As ODBPWOFST_data - Public data5 As ODBPWOFST_data - Public data6 As ODBPWOFST_data - Public data7 As ODBPWOFST_data - Public data8 As ODBPWOFST_data - Public data9 As ODBPWOFST_data - Public data10 As ODBPWOFST_data - Public data11 As ODBPWOFST_data - Public data12 As ODBPWOFST_data - Public data13 As ODBPWOFST_data - Public data14 As ODBPWOFST_data - Public data15 As ODBPWOFST_data - Public data16 As ODBPWOFST_data - Public data17 As ODBPWOFST_data - Public data18 As ODBPWOFST_data - Public data19 As ODBPWOFST_data - Public data20 As ODBPWOFST_data - Public data21 As ODBPWOFST_data - Public data22 As ODBPWOFST_data - Public data23 As ODBPWOFST_data - Public data24 As ODBPWOFST_data - Public data25 As ODBPWOFST_data - Public data26 As ODBPWOFST_data - Public data27 As ODBPWOFST_data - Public data28 As ODBPWOFST_data - Public data29 As ODBPWOFST_data - Public data30 As ODBPWOFST_data - End Structure - - ' cnc_rdmngtime:read management time - ' cnc_wrmngtime:write management time - - Public Structure IODBMNGTIME_data - Public life As Integer ' C# uint - Public tota As Integer ' C# uint - End Structure - - Public Structure IODBMNGTIME - Public data1 As IODBMNGTIME_data - Public data2 As IODBMNGTIME_data - Public data3 As IODBMNGTIME_data - Public data4 As IODBMNGTIME_data - Public data5 As IODBMNGTIME_data - Public data6 As IODBMNGTIME_data - Public data7 As IODBMNGTIME_data - Public data8 As IODBMNGTIME_data - Public data9 As IODBMNGTIME_data - Public data10 As IODBMNGTIME_data - End Structure ' In case that the number of data is 10 - - ' cnc_rddischarge:read data related to electrical discharge at power correction ends - - Public Structure ODBDISCHRG - Public aps As Short ' C# ushort - Public year As Short ' C# ushort - Public month As Short ' C# ushort - Public day As Short ' C# ushort - Public hour As Short ' C# ushort - Public minute As Short ' C# ushort - Public second As Short ' C# ushort - Public hpc As Short - Public hfq As Short - Public hdt As Short - Public hpa As Short - Public hce As Integer - - Public rfi As Integer() - - Public rfv As Integer() - - Public dci As Integer() - - Public dcv As Integer() - - Public dcw As Integer() - End Structure - - ' cnc_rddischrgalm:read alarm history data related to electrical discharg - - Public Structure ODBDISCHRGALM_data - Public year As Short ' C# ushort - Public month As Short ' C# ushort - Public day As Short ' C# ushort - Public hour As Short ' C# ushort - Public minute As Short ' C# ushort - Public second As Short ' C# ushort - Public almnum As Integer - Public psec As Integer ' C# uint - Public hpc As Short - Public hfq As Short - Public hdt As Short - Public hpa As Short - Public hce As Integer - Public asq As Short ' C# ushort - Public psu As Short ' C# ushort - Public aps As Short ' C# ushort - Public dummy As Short - - Public rfi As Integer() - - Public rfv As Integer() - - Public dci As Integer() - - Public dcv As Integer() - - Public dcw As Integer() - - Public almcd As Short() - End Structure - - Public Structure ODBDISCHRGALM - Public data1 As ODBDISCHRGALM_data - Public data2 As ODBDISCHRGALM_data - Public data3 As ODBDISCHRGALM_data - Public data4 As ODBDISCHRGALM_data - Public data5 As ODBDISCHRGALM_data - End Structure - - ' cnc_gettimer:get date and time from cnc - ' cnc_settimer:set date and time for cnc - - Public Structure TIMER_DATE - Public year As Short - Public month As Short - Public date1 As Short - End Structure - - Public Structure TIMER_TIME - Public hour As Short - Public minute As Short - Public second As Short - End Structure - - Public Structure IODBTIMER - - Public type As Short - - Public dummy As Short - - Public date1 As TIMER_DATE - - Public time As TIMER_TIME - End Structure - - ' cnc_rdtimer:read timer data from cnc - ' cnc_wrtimer:write timer data for cnc - - Public Structure IODBTIME - Public minute As Integer - Public msec As Integer - End Structure - - ' cnc_rdtlctldata: read tool controll data - ' cnc_wrtlctldata: write tool controll data - - Public Structure IODBTLCTL - Public slct As Short - Public used_tool As Short - Public turret_indx As Short - Public zero_tl_no As Integer - Public t_axis_move As Integer - - Public total_punch As Integer() - - Public reserve As Short() - End Structure - - ' cnc_rdtooldata: read tool data - ' cnc_wrtooldata: read tool data - - Public Structure IODBTLDT_data - Public slct As Short - Public tool_no As Integer - Public x_axis_ofs As Integer - Public y_axis_ofs As Integer - Public turret_pos As Integer - Public chg_tl_no As Integer - Public punch_count As Integer - Public tool_life As Integer - Public m_tl_radius As Integer - Public m_tl_angle As Integer - Public tl_shape As Byte - Public tl_size_i As Integer - Public tl_size_j As Integer - Public tl_angle As Integer - - Public reserve As Integer() - End Structure - - Public Structure IODBTLDT - Public data1 As IODBTLDT_data - Public data2 As IODBTLDT_data - Public data3 As IODBTLDT_data - Public data4 As IODBTLDT_data - Public data5 As IODBTLDT_data - Public data6 As IODBTLDT_data - Public data7 As IODBTLDT_data - Public data8 As IODBTLDT_data - Public data9 As IODBTLDT_data - Public data10 As IODBTLDT_data - End Structure ' In case that the number of data is 10 - - ' cnc_rdmultitldt: read multi tool data - ' cnc_wrmultitldt: write multi tool data - - Public Structure IODBMLTTL_data - Public slct As Short - Public m_tl_no As Short - Public m_tl_radius As Integer - Public m_tl_angle As Integer - Public x_axis_ofs As Integer - Public y_axis_ofs As Integer - Public tl_shape As Byte - Public tl_size_i As Integer - Public tl_size_j As Integer - Public tl_angle As Integer - - Public reserve As Integer() - End Structure - - Public Structure IODBMLTTL - Public data1 As IODBMLTTL_data - Public data2 As IODBMLTTL_data - Public data3 As IODBMLTTL_data - Public data4 As IODBMLTTL_data - Public data5 As IODBMLTTL_data - Public data6 As IODBMLTTL_data - Public data7 As IODBMLTTL_data - Public data8 As IODBMLTTL_data - Public data9 As IODBMLTTL_data - Public data10 As IODBMLTTL_data - End Structure ' In case that the number of data is 10 - - ' cnc_rdmtapdata: read multi tap data - ' cnc_wrmtapdata: write multi tap data - - Public Structure IODBMTAP_data - Public slct As Short - Public tool_no As Integer - Public x_axis_ofs As Integer - Public y_axis_ofs As Integer - Public punch_count As Integer - Public tool_life As Integer - - Public reserve As Integer() - End Structure - - Public Structure IODBMTAP - Public data1 As IODBMTAP_data - Public data2 As IODBMTAP_data - Public data3 As IODBMTAP_data - Public data4 As IODBMTAP_data - Public data5 As IODBMTAP_data - Public data6 As IODBMTAP_data - Public data7 As IODBMTAP_data - Public data8 As IODBMTAP_data - Public data9 As IODBMTAP_data - Public data10 As IODBMTAP_data - End Structure - - ' cnc_rdtoolinfo: read tool information - - Public Structure ODBPTLINF - Public tld_max As Short - Public mlt_max As Short - Public reserve As Short - - Public tld_size As Short() - - Public mlt_size As Short() - - Public reserves As Short() - End Structure - - ' cnc_rdsafetyzone: read safetyzone data - ' cnc_wrsafetyzone: write safetyzone data - - Public Structure IODBSAFE_data - Public slct As Short - - Public data As Integer() - End Structure - - Public Structure IODBSAFE - Public data1 As IODBSAFE_data - Public data2 As IODBSAFE_data - Public data3 As IODBSAFE_data - Public data4 As IODBSAFE_data - End Structure ' In case that the number of data is 4 - - ' cnc_rdtoolzone: read toolzone data - ' cnc_wrtoolzone: write toolzone data - - Public Structure IODBTLZN_data - Public slct As Short - - Public data As Integer() - End Structure - - Public Structure IODBTLZN - Public data1 As IODBTLZN_data - Public data2 As IODBTLZN_data - Public data3 As IODBTLZN_data - Public data4 As IODBTLZN_data - Public data5 As IODBTLZN_data - Public data6 As IODBTLZN_data - Public data7 As IODBTLZN_data - Public data8 As IODBTLZN_data - Public data9 As IODBTLZN_data - Public data10 As IODBTLZN_data - Public data11 As IODBTLZN_data - Public data12 As IODBTLZN_data - End Structure ' In case that the number of data is 12 - - ' cnc_rdacttlzone: read active toolzone data - - Public Structure ODBACTTLZN - Public act_no As Short - - Public data As Integer() - End Structure - - ' cnc_rdbrstrinfo:read block restart information - - Public Structure ODBBRS - - Public dest As Integer() - - Public dist As Integer() - End Structure ' In case that the number of axes is MAX_AXIS - - ' cnc_rdradofs:read tool radius offset for position data - - Public Structure ODBROFS - Public mode As Short - - Public pln_axes As Short() - - Public ofsvct As Integer() - End Structure - - ' cnc_rdlenofs:read tool length offset for position data - - Public Structure ODBLOFS - Public mode As Short - - Public ofsvct As Integer() - End Structure ' In case that the number of axes is MAX_AXIS - - ' cnc_rdfixcycle:read fixed cycle for position data - - Public Structure ODBFIX - Public mode As Short - - Public pln_axes As Short() - Public drl_axes As Short - Public i_pos As Integer - Public r_pos As Integer - Public z_pos As Integer - Public cmd_cnt As Integer - Public act_cnt As Integer - Public cut As Integer - - Public shift As Integer() - End Structure - - ' cnc_rdcdrotate:read coordinate rotate for position data - - Public Structure ODBROT - Public mode As Short - - Public pln_axes As Short() - - Public center As Integer() - Public angle As Integer - End Structure - - ' cnc_rd3dcdcnv:read 3D coordinate convert for position data - - Public Structure ODB3DCD - Public mode As Short - Public dno As Short - - Public cd_axes As Short() - - Public center As Integer() - - Public direct As Integer() - - Public angle As Integer() - End Structure - - ' cnc_rdmirimage:read programable mirror image for position data - - Public Structure ODBMIR - Public mode As Short - Public mir_flag As Integer - - Public mir_pos As Integer() - End Structure ' In case that the number of axes is MAX_AXIS - - ' cnc_rdscaling:read scaling data for position data - - Public Structure ODBSCL - Public mode As Short - - Public center As Integer() - - Public magnif As Integer() - End Structure ' In case that the number of axes is MAX_AXIS - - ' cnc_rd3dtofs:read 3D tool offset for position data - - Public Structure ODB3DTO - Public mode As Short - - Public ofs_axes As Short() - - Public ofsvct As Integer() - End Structure - - ' cnc_rdposofs:read tool position offset for position data - - Public Structure ODBPOFS - Public mode As Short - - Public ofsvct As Integer() - End Structure ' In case that the number of axes is MAX_AXIS - - ' cnc_rdhpccset:read hpcc setting data - ' cnc_wrhpccset:write hpcc setting data - - Public Structure IODBHPST - Public slct As Short - Public hpcc As Short - Public multi As Short - Public ovr1 As Short - Public ign_f As Short - Public foward As Short - Public max_f As Integer - Public ovr2 As Short - Public ovr3 As Short - Public ovr4 As Short - - Public reserve As Integer() - End Structure - - ' cnc_rdhpcctupr:read hpcc tuning data ( parameter input ) - ' cnc_wrhpcctupr:write hpcc tuning data ( parameter input ) - - Public Structure IODBHPPR_tune - Public slct As Short - Public diff As Short - Public fine As Short - Public acc_lv As Short - Public max_f As Integer - Public bipl As Short - Public aipl As Short - Public corner As Integer - Public clamp As Short - Public radius As Integer - Public max_cf As Integer - Public min_cf As Integer - Public foward As Integer - - Public reserve As Integer() - End Structure - - Public Structure IODBHPPR - Public tune1 As IODBHPPR_tune - Public tune2 As IODBHPPR_tune - Public tune3 As IODBHPPR_tune - End Structure - - ' cnc_rdhpcctuac:read hpcc tuning data ( acc input ) - ' cnc_wrhpcctuac:write hpcc tuning data ( acc input ) - - Public Structure IODBHPAC_tune - Public slct As Short - Public diff As Short - Public fine As Short - Public acc_lv As Short - Public bipl As Integer - Public aipl As Short - Public corner As Integer - Public clamp As Integer - Public c_acc As Integer - Public foward As Integer - - Public reserve As Integer() - End Structure - - Public Structure IODBHPAC - Public tune1 As IODBHPAC_tune - Public tune2 As IODBHPAC_tune - Public tune3 As IODBHPAC_tune - End Structure - - ' cnc_rd3dtooltip:read tip of tool for 3D handle - ' cnc_rd3dmovrlap:read move overrlap of tool for 3D handle - - Public Structure ODB3DHDL_data - - Public axes As Short() - - Public data As Integer() - End Structure - - Public Structure ODB3DHDL - Public data1 As ODB3DHDL_data - Public data2 As ODB3DHDL_data - End Structure - - ' cnc_rd3dpulse:read pulse for 3D handle - - Public Structure ODB3DPLS_data - Public right_angle_x As Integer - Public right_angle_y As Integer - Public tool_axis As Integer - Public tool_tip_a_b As Integer - Public tool_tip_c As Integer - End Structure - - Public Structure ODB3DPLS - Public pls1 As ODB3DPLS_data - Public pls2 As ODB3DPLS_data - End Structure - - ' cnc_rdaxisname: read axis name - - Public Structure ODBAXISNAME_data - Public name As Byte ' axis name - Public suff As Byte ' suffix - End Structure -#If FS30D Then - - Public Structure ODBAXISNAME - Public data1 As ODBAXISNAME_data - Public data2 As ODBAXISNAME_data - Public data3 As ODBAXISNAME_data - Public data4 As ODBAXISNAME_data - Public data5 As ODBAXISNAME_data - Public data6 As ODBAXISNAME_data - Public data7 As ODBAXISNAME_data - Public data8 As ODBAXISNAME_data - Public data9 As ODBAXISNAME_data - Public data10 As ODBAXISNAME_data - Public data11 As ODBAXISNAME_data - Public data12 As ODBAXISNAME_data - Public data13 As ODBAXISNAME_data - Public data14 As ODBAXISNAME_data - Public data15 As ODBAXISNAME_data - Public data16 As ODBAXISNAME_data - Public data17 As ODBAXISNAME_data - Public data18 As ODBAXISNAME_data - Public data19 As ODBAXISNAME_data - Public data20 As ODBAXISNAME_data - Public data21 As ODBAXISNAME_data - Public data22 As ODBAXISNAME_data - Public data23 As ODBAXISNAME_data - Public data24 As ODBAXISNAME_data - Public data25 As ODBAXISNAME_data - Public data26 As ODBAXISNAME_data - Public data27 As ODBAXISNAME_data - Public data28 As ODBAXISNAME_data - Public data29 As ODBAXISNAME_data - Public data30 As ODBAXISNAME_data - Public data31 As ODBAXISNAME_data - Public data32 As ODBAXISNAME_data - End Structure -#Else -#If M_AXIS2 Then - _ - Public Structure ODBAXISNAME - Public data1 As ODBAXISNAME_data - Public data2 As ODBAXISNAME_data - Public data3 As ODBAXISNAME_data - Public data4 As ODBAXISNAME_data - Public data5 As ODBAXISNAME_data - Public data6 As ODBAXISNAME_data - Public data7 As ODBAXISNAME_data - Public data8 As ODBAXISNAME_data - Public data9 As ODBAXISNAME_data - Public data10 As ODBAXISNAME_data - Public data11 As ODBAXISNAME_data - Public data12 As ODBAXISNAME_data - Public data13 As ODBAXISNAME_data - Public data14 As ODBAXISNAME_data - Public data15 As ODBAXISNAME_data - Public data16 As ODBAXISNAME_data - Public data17 As ODBAXISNAME_data - Public data18 As ODBAXISNAME_data - Public data19 As ODBAXISNAME_data - Public data20 As ODBAXISNAME_data - Public data21 As ODBAXISNAME_data - Public data22 As ODBAXISNAME_data - Public data23 As ODBAXISNAME_data - Public data24 As ODBAXISNAME_data - End Structure -#Else -#If FS15D Then - _ - Public Structure ODBAXISNAME - Public data1 As ODBAXISNAME_data - Public data2 As ODBAXISNAME_data - Public data3 As ODBAXISNAME_data - Public data4 As ODBAXISNAME_data - Public data5 As ODBAXISNAME_data - Public data6 As ODBAXISNAME_data - Public data7 As ODBAXISNAME_data - Public data8 As ODBAXISNAME_data - Public data9 As ODBAXISNAME_data - Public data10 As ODBAXISNAME_data - End Structure -#Else - _ - Public Structure ODBAXISNAME - Public data1 As ODBAXISNAME_data - Public data2 As ODBAXISNAME_data - Public data3 As ODBAXISNAME_data - Public data4 As ODBAXISNAME_data - Public data5 As ODBAXISNAME_data - Public data6 As ODBAXISNAME_data - Public data7 As ODBAXISNAME_data - Public data8 As ODBAXISNAME_data - End Structure -#End If -#End If -#End If - - ' cnc_rdspdlname: read spindle name - - Public Structure ODBSPDLNAME_data - Public name As Byte ' spindle name - Public suff1 As Byte ' suffix - Public suff2 As Byte ' suffix - Public suff3 As Byte ' suffix - End Structure - - Public Structure ODBSPDLNAME - Public data1 As ODBSPDLNAME_data - Public data2 As ODBSPDLNAME_data - Public data3 As ODBSPDLNAME_data - Public data4 As ODBSPDLNAME_data - End Structure - - ' cnc_exaxisname: read spindle name - - Public Structure ODBEXAXISNAME - - Public axname1 As String - - Public axname2 As String - - Public axname3 As String - - Public axname4 As String - - Public axname5 As String - - Public axname6 As String - - Public axname7 As String - - Public axname8 As String - - Public axname9 As String - - Public axname10 As String - - Public axname11 As String - - Public axname12 As String - - Public axname13 As String - - Public axname14 As String - - Public axname15 As String - - Public axname16 As String - - Public axname17 As String - - Public axname18 As String - - Public axname19 As String - - Public axname20 As String - - Public axname21 As String - - Public axname22 As String - - Public axname23 As String - - Public axname24 As String - - Public axname25 As String - - Public axname26 As String - - Public axname27 As String - - Public axname28 As String - - Public axname29 As String - - Public axname30 As String - - Public axname31 As String - - Public axname32 As String - End Structure - - ' cnc_wrunsolicprm: Set the unsolicited message parameters - ' cnc_rdunsolicprm: Get the unsolicited message parameters - - Public Structure IODBUNSOLIC_pmc - Public type As Short - Public rdaddr As Short - Public rdno As Short - Public rdsize As Short - End Structure - - Public Structure IODBUNSOLIC_dmy - Public type As Short - Public dummy1 As Integer - Public dummy2 As Short - End Structure - - Public Structure IODBUNSOLIC_rddata - - Public pmc As IODBUNSOLIC_pmc - - Public dmy As IODBUNSOLIC_dmy - End Structure - - - Public Structure IODBUNSOLIC - - Public ipaddr As String - Public port As Short ' C# ushort - Public reqaddr As Short - Public pmcno As Short - Public retry As Short - Public timeout As Short - Public alivetime As Short - Public setno As Short - Public rddata1 As IODBUNSOLIC_rddata - Public rddata2 As IODBUNSOLIC_rddata - Public rddata3 As IODBUNSOLIC_rddata - End Structure - - ' cnc_rdunsolicmsg: Reads the unsolicited message data - - Public Structure IDBUNSOLICMSG_msg - Public rdsize As Short - - Public data As Object - End Structure - - Public Structure IDBUNSOLICMSG1 - Public msg1 As IDBUNSOLICMSG_msg - Public msg2 As IDBUNSOLICMSG_msg - Public msg3 As IDBUNSOLICMSG_msg - End Structure - - Public Structure IDBUNSOLICMSG - Public getno As Short - Public msg As IDBUNSOLICMSG1 - End Structure - - ' cnc_rdpm_cncitem: read cnc maintenance item - ' cnc_rdpm_mcnitem: read machine specific maintenance item - ' cnc_wrpm_mcnitem: write machine specific maintenance item - - Public Structure IODBITEM - - Public name1 As String - - Public name2 As String - - Public name3 As String - - Public name4 As String - - Public name5 As String - - Public name6 As String - - Public name7 As String - - Public name8 As String - - Public name9 As String - - Public name10 As String - End Structure - - ' cnc_rdpm_item:read maintenance item status - - Public Structure IODBPMAINTE_data - - Public name As String ' name - Public type As Integer ' life count type - Public total As Integer ' total life time (minite basis) - Public remain As Integer ' life rest time - Public stat As Integer ' life state - End Structure - - - Public Structure IODBPMAINTE - Public data1 As IODBPMAINTE_data - Public data2 As IODBPMAINTE_data - Public data3 As IODBPMAINTE_data - Public data4 As IODBPMAINTE_data - Public data5 As IODBPMAINTE_data - Public data6 As IODBPMAINTE_data - Public data7 As IODBPMAINTE_data - Public data8 As IODBPMAINTE_data - Public data9 As IODBPMAINTE_data - Public data10 As IODBPMAINTE_data - End Structure - - ' cnc_sysinfo_ex:read CNC system path information - - Public Structure ODBSYSEX_path - Public system As Short - Public group As Short - Public attrib As Short - Public ctrl_axis As Short - Public ctrl_srvo As Short - Public ctrl_spdl As Short - Public mchn_no As Short - Public reserved As Short - End Structure - - - Public Structure ODBSYSEX_data - Public data1 As ODBSYSEX_path - Public data2 As ODBSYSEX_path - Public data3 As ODBSYSEX_path - Public data4 As ODBSYSEX_path - Public data5 As ODBSYSEX_path - Public data6 As ODBSYSEX_path - Public data7 As ODBSYSEX_path - Public data8 As ODBSYSEX_path - Public data9 As ODBSYSEX_path - Public data10 As ODBSYSEX_path - End Structure - - - Public Structure ODBSYSEX - Public max_axis As Short - Public max_spdl As Short - Public max_path As Short - Public max_mchn As Short - Public ctrl_axis As Short - Public ctrl_srvo As Short - Public ctrl_spdl As Short - Public ctrl_path As Short - Public ctrl_mchn As Short - - Public reserved As Short() - Public path As ODBSYSEX_data - End Structure - - '------------------ - ' CNC : SERCOS I/F - '------------------ - - ' cnc_srcsrdidinfo:Read ID information of SERCOS I/F - ' cnc_srcswridinfo:Write ID information of SERCOS I/F - - Public Structure IODBIDINF - Public id_no As Integer - Public drv_no As Short - Public acc_element As Short - Public err_general As Short - Public err_id_no As Short - Public err_id_name As Short - Public err_attr As Short - Public err_unit As Short - Public err_min_val As Short - Public err_max_val As Short - Public id_name_len As Short - Public id_name_max As Short - - Public id_name As String - Public attr As Integer - Public unit_len As Short - Public unit_max As Short - - Public unit As Byte() - Public min_val As Integer - Public max_val As Integer - End Structure - - ' cnc_srcsrdexstat:Get execution status of reading/writing operation data of SERCOS I/F - - Public Structure ODBSRCSST - Public acc_element As Short - Public err_general As Short - Public err_id_no As Short - Public err_attr As Short - Public err_op_data As Short - End Structure - - ' cnc_srcsrdlayout:Read drive assign of SERCOS I/F - - Public Structure ODBSRCSLYT - - Public spndl As Short() - - Public servo As Short() - - Public axis_name As String - End Structure - - '---------------------------- - ' CNC : Servo Guide - '---------------------------- - ' cnc_sdsetchnl:Servo Guide (Channel data set) - - Public Structure IDBCHAN_data - Public chno As Byte - Public axis As SByte - Public datanum As Integer - Public datainf As Short ' C# ushort - Public dataadr As Short - End Structure - - Public Structure IDBCHAN - Public data1 As IDBCHAN_data - Public data2 As IDBCHAN_data - Public data3 As IDBCHAN_data - Public data4 As IDBCHAN_data - Public data5 As IDBCHAN_data - Public data6 As IDBCHAN_data - Public data7 As IDBCHAN_data - Public data8 As IDBCHAN_data - End Structure - - ' cnc_sdsetchnl:Servo Guide (read Sampling data) - ' cnc_sfbreadsmpl:Servo feedback data (read Sampling data) - - Public Structure ODBSD - Public chadata As IntPtr - Public count As IntPtr - End Structure - - ' cnc_sfbsetchnl:Servo feedback data (Channel data set) - - Public Structure IDBSFBCHAN - Public chno As Byte - Public axis As SByte - Public shift As Short ' C# ushort - End Structure - - - '------------------------- - ' CNC : FS18-LN function - '------------------------- - - ' cnc_allowcnd:read allowanced state - - Public Structure ODBCAXIS - Public dummy As Short ' dummy - Public type As Short ' axis number - - Public data As SByte() ' data value - End Structure - - - '--------------------------------- - ' CNC : C-EXE SRAM file function - '--------------------------------- - - ' read C-EXE SRAM disk directory - - Public Structure CFILEINFO_data - - Public fname As String ' file name - Public file_size As Integer ' file size (bytes) - Public file_attr As Integer ' attribute - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' mimute - Public second As Short ' second - End Structure - - Public Structure CFILEINFO - Public data1 As CFILEINFO_data - Public data2 As CFILEINFO_data - Public data3 As CFILEINFO_data - Public data4 As CFILEINFO_data - Public data5 As CFILEINFO_data - Public data6 As CFILEINFO_data - Public data7 As CFILEINFO_data - Public data8 As CFILEINFO_data - Public data9 As CFILEINFO_data - Public data10 As CFILEINFO_data - End Structure - - '----- - ' PMC - '----- - - ' pmc_rdpmcrng:read PMC data(area specified) - ' pmc_wrpmcrng:write PMC data(area specified) - - Public Structure IODBPMC0 - - Public type_a As Short ' PMC address type - - Public type_d As Short ' PMC data type - - Public datano_s As Short ' start PMC address - - Public datano_e As Short ' end PMC address - - Public cdata As Byte() ' PMC data - End Structure ' In case that the number of data is 8 - - Public Structure IODBPMC1 - - Public type_a As Short ' PMC address type - - Public type_d As Short ' PMC data type - - Public datano_s As Short ' start PMC address - - Public datano_e As Short ' end PMC address - - Public idata As UShort() - End Structure ' In case that the number of data is 8 - - Public Structure IODBPMC2 - - Public type_a As Short ' PMC address type - - Public type_d As Short ' PMC data type - - Public datano_s As Short ' start PMC address - - Public datano_e As Short ' end PMC address - - Public ldata As UInteger() - End Structure ' In case that the number of data is 8 - - ' pmc_rdpmcinfo:read informations of PMC data - - Public Structure ODBPMCINF_info - Public pmc_adr As Char - Public adr_attr As Byte - Public top_num As Short ' C# ushort - Public last_num As Short ' C# ushort - End Structure - - Public Structure ODBPMCINF1 - Public info1 As ODBPMCINF_info - Public info2 As ODBPMCINF_info - Public info3 As ODBPMCINF_info - Public info4 As ODBPMCINF_info - Public info5 As ODBPMCINF_info - Public info6 As ODBPMCINF_info - Public info7 As ODBPMCINF_info - Public info8 As ODBPMCINF_info - Public info9 As ODBPMCINF_info - Public info10 As ODBPMCINF_info - Public info11 As ODBPMCINF_info - Public info12 As ODBPMCINF_info - Public info13 As ODBPMCINF_info - Public info14 As ODBPMCINF_info - Public info15 As ODBPMCINF_info - Public info16 As ODBPMCINF_info - Public info17 As ODBPMCINF_info - Public info18 As ODBPMCINF_info - Public info19 As ODBPMCINF_info - Public info20 As ODBPMCINF_info - Public info21 As ODBPMCINF_info - Public info22 As ODBPMCINF_info - Public info23 As ODBPMCINF_info - Public info24 As ODBPMCINF_info - Public info25 As ODBPMCINF_info - Public info26 As ODBPMCINF_info - Public info27 As ODBPMCINF_info - Public info28 As ODBPMCINF_info - Public info29 As ODBPMCINF_info - Public info30 As ODBPMCINF_info - Public info31 As ODBPMCINF_info - Public info32 As ODBPMCINF_info - Public info33 As ODBPMCINF_info - Public info34 As ODBPMCINF_info - Public info35 As ODBPMCINF_info - Public info36 As ODBPMCINF_info - Public info37 As ODBPMCINF_info - Public info38 As ODBPMCINF_info - Public info39 As ODBPMCINF_info - Public info40 As ODBPMCINF_info - Public info41 As ODBPMCINF_info - Public info42 As ODBPMCINF_info - Public info43 As ODBPMCINF_info - Public info44 As ODBPMCINF_info - Public info45 As ODBPMCINF_info - Public info46 As ODBPMCINF_info - Public info47 As ODBPMCINF_info - Public info48 As ODBPMCINF_info - Public info49 As ODBPMCINF_info - Public info50 As ODBPMCINF_info - Public info51 As ODBPMCINF_info - Public info52 As ODBPMCINF_info - Public info53 As ODBPMCINF_info - Public info54 As ODBPMCINF_info - Public info55 As ODBPMCINF_info - Public info56 As ODBPMCINF_info - Public info57 As ODBPMCINF_info - Public info58 As ODBPMCINF_info - Public info59 As ODBPMCINF_info - Public info60 As ODBPMCINF_info - Public info61 As ODBPMCINF_info - Public info62 As ODBPMCINF_info - Public info63 As ODBPMCINF_info - Public info64 As ODBPMCINF_info - End Structure - - Public Structure ODBPMCINF - Public datano As Short - Public info As ODBPMCINF1 - End Structure - - ' pmc_rdcntldata:read PMC parameter data table control data - ' pmc_wrcntldata:write PMC parameter data table control data - - Public Structure IODBPMCCNTL_info - Public tbl_prm As Byte - Public data_type As Byte - Public data_size As Short ' C# ushort - Public data_dsp As Short ' C# ushort - Public dummy As Short - End Structure - - Public Structure IODBPMCCNTL1 - Public info1 As IODBPMCCNTL_info - Public info2 As IODBPMCCNTL_info - Public info3 As IODBPMCCNTL_info - Public info4 As IODBPMCCNTL_info - Public info5 As IODBPMCCNTL_info - Public info6 As IODBPMCCNTL_info - Public info7 As IODBPMCCNTL_info - Public info8 As IODBPMCCNTL_info - Public info9 As IODBPMCCNTL_info - Public info10 As IODBPMCCNTL_info - Public info11 As IODBPMCCNTL_info - Public info12 As IODBPMCCNTL_info - Public info13 As IODBPMCCNTL_info - Public info14 As IODBPMCCNTL_info - Public info15 As IODBPMCCNTL_info - Public info16 As IODBPMCCNTL_info - Public info17 As IODBPMCCNTL_info - Public info18 As IODBPMCCNTL_info - Public info19 As IODBPMCCNTL_info - Public info20 As IODBPMCCNTL_info - Public info21 As IODBPMCCNTL_info - Public info22 As IODBPMCCNTL_info - Public info23 As IODBPMCCNTL_info - Public info24 As IODBPMCCNTL_info - Public info25 As IODBPMCCNTL_info - Public info26 As IODBPMCCNTL_info - Public info27 As IODBPMCCNTL_info - Public info28 As IODBPMCCNTL_info - Public info29 As IODBPMCCNTL_info - Public info30 As IODBPMCCNTL_info - Public info31 As IODBPMCCNTL_info - Public info32 As IODBPMCCNTL_info - Public info33 As IODBPMCCNTL_info - Public info34 As IODBPMCCNTL_info - Public info35 As IODBPMCCNTL_info - Public info36 As IODBPMCCNTL_info - Public info37 As IODBPMCCNTL_info - Public info38 As IODBPMCCNTL_info - Public info39 As IODBPMCCNTL_info - Public info40 As IODBPMCCNTL_info - Public info41 As IODBPMCCNTL_info - Public info42 As IODBPMCCNTL_info - Public info43 As IODBPMCCNTL_info - Public info44 As IODBPMCCNTL_info - Public info45 As IODBPMCCNTL_info - Public info46 As IODBPMCCNTL_info - Public info47 As IODBPMCCNTL_info - Public info48 As IODBPMCCNTL_info - Public info49 As IODBPMCCNTL_info - Public info50 As IODBPMCCNTL_info - Public info51 As IODBPMCCNTL_info - Public info52 As IODBPMCCNTL_info - Public info53 As IODBPMCCNTL_info - Public info54 As IODBPMCCNTL_info - Public info55 As IODBPMCCNTL_info - Public info56 As IODBPMCCNTL_info - Public info57 As IODBPMCCNTL_info - Public info58 As IODBPMCCNTL_info - Public info59 As IODBPMCCNTL_info - Public info60 As IODBPMCCNTL_info - Public info61 As IODBPMCCNTL_info - Public info62 As IODBPMCCNTL_info - Public info63 As IODBPMCCNTL_info - Public info64 As IODBPMCCNTL_info - Public info65 As IODBPMCCNTL_info - Public info66 As IODBPMCCNTL_info - Public info67 As IODBPMCCNTL_info - Public info68 As IODBPMCCNTL_info - Public info69 As IODBPMCCNTL_info - Public info70 As IODBPMCCNTL_info - Public info71 As IODBPMCCNTL_info - Public info72 As IODBPMCCNTL_info - Public info73 As IODBPMCCNTL_info - Public info74 As IODBPMCCNTL_info - Public info75 As IODBPMCCNTL_info - Public info76 As IODBPMCCNTL_info - Public info77 As IODBPMCCNTL_info - Public info78 As IODBPMCCNTL_info - Public info79 As IODBPMCCNTL_info - Public info80 As IODBPMCCNTL_info - Public info81 As IODBPMCCNTL_info - Public info82 As IODBPMCCNTL_info - Public info83 As IODBPMCCNTL_info - Public info84 As IODBPMCCNTL_info - Public info85 As IODBPMCCNTL_info - Public info86 As IODBPMCCNTL_info - Public info87 As IODBPMCCNTL_info - Public info88 As IODBPMCCNTL_info - Public info89 As IODBPMCCNTL_info - Public info90 As IODBPMCCNTL_info - Public info91 As IODBPMCCNTL_info - Public info92 As IODBPMCCNTL_info - Public info93 As IODBPMCCNTL_info - Public info94 As IODBPMCCNTL_info - Public info95 As IODBPMCCNTL_info - Public info96 As IODBPMCCNTL_info - Public info97 As IODBPMCCNTL_info - Public info98 As IODBPMCCNTL_info - Public info99 As IODBPMCCNTL_info - Public info100 As IODBPMCCNTL_info - End Structure - - Public Structure IODBPMCCNTL - Public datano_s As Short - Public dummy As Short - Public datano_e As Short - Public info As IODBPMCCNTL1 - End Structure - - ' pmc_rdalmmsg:read PMC alarm message - - Public Structure ODBPMCALM_data - - Public almmsg As String ' alarm message - End Structure - - Public Structure ODBPMCALM - Public msg1 As ODBPMCALM_data - Public msg2 As ODBPMCALM_data - Public msg3 As ODBPMCALM_data - Public msg4 As ODBPMCALM_data - Public msg5 As ODBPMCALM_data - Public msg6 As ODBPMCALM_data - Public msg7 As ODBPMCALM_data - Public msg8 As ODBPMCALM_data - Public msg9 As ODBPMCALM_data - Public msg10 As ODBPMCALM_data - End Structure ' In case that the number of data is 10 - - ' pmc_getdtailerr:get detail error for pmc - - Public Structure ODBPMCERR - Public err_no As Short - Public err_dtno As Short - End Structure - - ' pmc_rdpmctitle:read pmc title data - - Public Structure ODBPMCTITLE - - Public mtb As String - - Public machine As String - - Public type As String - - Public prgno As String - - Public prgvers As String - - Public prgdraw As String - - Public date1 As String - - Public design As String - - Public written As String - - Public remarks As String - End Structure - - ' pmc_rdpmcrng_ext:read PMC data - - Public Structure IODBPMCEXT - Public type_a As Short ' PMC address type - Public type_d As Short ' PMC data type - Public datano_s As Short ' start PMC address - Public datano_e As Short ' end PMC address - Public err_code As Short ' error code - Public reserved As Short ' reserved - - Public data As Object ' pointer to buffer - End Structure - - ' pmc_rdpmcaddr:read PMC address information - - Public Structure ODBPMCADR_info - Public pmc_adr As Byte - Public adr_attr As Byte - Public offset As Short ' C# ushort - Public top As Short ' C# ushort - Public num As Short ' C# ushort - End Structure - - Public Structure ODBPMCADR1 - Public info1 As ODBPMCADR_info - Public info2 As ODBPMCADR_info - Public info3 As ODBPMCADR_info - Public info4 As ODBPMCADR_info - Public info5 As ODBPMCADR_info - Public info6 As ODBPMCADR_info - Public info7 As ODBPMCADR_info - Public info8 As ODBPMCADR_info - Public info9 As ODBPMCADR_info - Public info10 As ODBPMCADR_info - Public info11 As ODBPMCADR_info - Public info12 As ODBPMCADR_info - Public info13 As ODBPMCADR_info - Public info14 As ODBPMCADR_info - Public info15 As ODBPMCADR_info - Public info16 As ODBPMCADR_info - Public info17 As ODBPMCADR_info - Public info18 As ODBPMCADR_info - Public info19 As ODBPMCADR_info - Public info20 As ODBPMCADR_info - Public info21 As ODBPMCADR_info - Public info22 As ODBPMCADR_info - Public info23 As ODBPMCADR_info - Public info24 As ODBPMCADR_info - Public info25 As ODBPMCADR_info - Public info26 As ODBPMCADR_info - Public info27 As ODBPMCADR_info - Public info28 As ODBPMCADR_info - Public info29 As ODBPMCADR_info - Public info30 As ODBPMCADR_info - Public info31 As ODBPMCADR_info - Public info32 As ODBPMCADR_info - Public info33 As ODBPMCADR_info - Public info34 As ODBPMCADR_info - Public info35 As ODBPMCADR_info - Public info36 As ODBPMCADR_info - Public info37 As ODBPMCADR_info - Public info38 As ODBPMCADR_info - Public info39 As ODBPMCADR_info - Public info40 As ODBPMCADR_info - Public info41 As ODBPMCADR_info - Public info42 As ODBPMCADR_info - Public info43 As ODBPMCADR_info - Public info44 As ODBPMCADR_info - Public info45 As ODBPMCADR_info - Public info46 As ODBPMCADR_info - Public info47 As ODBPMCADR_info - Public info48 As ODBPMCADR_info - Public info49 As ODBPMCADR_info - Public info50 As ODBPMCADR_info - Public info51 As ODBPMCADR_info - Public info52 As ODBPMCADR_info - Public info53 As ODBPMCADR_info - Public info54 As ODBPMCADR_info - Public info55 As ODBPMCADR_info - Public info56 As ODBPMCADR_info - Public info57 As ODBPMCADR_info - Public info58 As ODBPMCADR_info - Public info59 As ODBPMCADR_info - Public info60 As ODBPMCADR_info - Public info61 As ODBPMCADR_info - Public info62 As ODBPMCADR_info - Public info63 As ODBPMCADR_info - Public info64 As ODBPMCADR_info - End Structure - - Public Structure ODBPMCADR - Public io_adr As Integer ' C# uint - Public datano As Short - Public info As ODBPMCADR1 - End Structure - - - '-------------------------- - ' PROFIBUS function - '-------------------------- - - ' pmc_prfrdconfig:read PROFIBUS configration data - - Public Structure ODBPRFCNF - - Public master_ser As String - - Public master_ver As String - - Public slave_ser As String - - Public slave_ver As String - - Public cntl_ser As String - - Public cntl_ver As String - End Structure - - ' pmc_prfrdbusprm:read bus parameter for master function - ' pmc_prfwrbusprm:write bus parameter for master function - - Public Structure IODBBUSPRM - Public fdl_add As SByte - Public baudrate As SByte - Public tsl As Short ' C# ushort - Public min_tsdr As Short ' C# ushort - Public max_tsdr As Short ' C# ushort - Public tqui As Byte - Public tset As Byte - Public ttr As Integer - Public gap As SByte - Public hsa As SByte - Public max_retry As SByte - Public bp_flag As Byte - Public min_slv_int As Short ' C# ushort - Public poll_tout As Short ' C# ushort - Public data_cntl As Short ' C# ushort - - Public reserve1 As Byte() - - Public cls2_name As Byte() - Public user_dlen As Short - - Public user_data As Byte() - - Public reserve2 As Byte() - End Structure - - ' pmc_prfrdslvprm:read slave parameter for master function - ' pmc_prfwrslvprm:write slave parameter for master function - - Public Structure IODBSLVPRM - Public dis_enb As Short - Public ident_no As Short ' C# ushort - Public slv_flag As Byte - Public slv_type As Byte - - Public reserve1 As Byte() - Public slv_stat As Byte - Public wd_fact1 As Byte - Public wd_fact2 As Byte - Public min_tsdr As Byte - Public reserve2 As Char - Public grp_ident As Byte - Public user_plen As Short - - Public user_pdata As Byte() - Public cnfg_dlen As Short - - Public cnfg_data As Byte() - Public slv_ulen As Short - - Public slv_udata As Byte() - - Public reserve3 As Byte() - End Structure - - - Public Structure IODBSLVPRM2 - Public dis_enb As Short - Public ident_no As Short ' C# ushort - Public slv_flag As Byte - Public slv_type As Byte - - Public reserve1 As Byte() - Public slv_stat As Byte - Public wd_fact1 As Byte - Public wd_fact2 As Byte - Public min_tsdr As Byte - Public reserve2 As SByte - Public grp_ident As Byte - Public user_plen As Short - - Public user_pdata As Byte() - Public cnfg_dlen As Short - - Public cnfg_data As Byte() - Public slv_ulen As Short - - Public slv_udata As Byte() - - Public reserve3 As Byte() - End Structure - - ' pmc_prfrdallcadr:read allocation address for master function - ' pmc_prfwrallcadr:set allocation address for master function - - Public Structure IODBPRFADR - Public di_size As Byte - Public di_type As Byte - Public di_addr As Short ' C# ushort - Public reserve1 As Short - Public do_size As Byte - Public do_type As Byte - Public do_addr As Short ' C# ushort - Public reserve2 As Short - Public dgn_size As Byte - Public dgn_type As Byte - Public dgn_addr As Short ' C# ushort - End Structure - - ' pmc_prfrdslvaddr:read allocation address for slave function - ' pmc_prfwrslvaddr:set allocation address for slave function - - Public Structure IODBSLVADR - Public slave_no As Byte - Public di_size As Byte - Public di_type As Byte - Public di_addr As Short ' C# ushort - Public do_size As Byte - Public do_type As Byte - Public do_addr As Short ' C# ushort - - Public reserve As Byte() - End Structure - - ' pmc_prfrdslvstat:read status for slave function - - Public Structure ODBSLVST - Public cnfg_stat As Byte - Public prm_stat As Byte - Public wdg_stat As SByte - Public live_stat As Byte - Public ident_no As Short - End Structure - - ' pmc_prfwrslvid:Writes slave index data of master function - - Public Structure IODBSLVID - Public dis_enb As Short - Public slave_no As Short - Public nsl As Short - Public dgn_size As Byte - Public dgn_type As Char - Public dgn_addr As Short - End Structure - - ' pmc_prfrdslvprm2:Reads slave parameter of master function(2) - ' pmc_prfwrslvprm2:Writes slave parameter of master function(2) - - Public Structure IODBSLVPRM3 - Public ident_no As Short - Public slv_flag As Byte - Public slv_type As Byte - - Public reserve1 As Byte() - Public slv_stat As Byte - Public wd_fact1 As Byte - Public wd_fact2 As Byte - Public min_tsdr As Byte - Public reserve2 As Char - Public grp_ident As Byte - Public user_plen As Short - - Public user_pdata As Byte() - Public slv_ulen As Short - - Public slv_udata As Byte() - End Structure - - ' pmc_prfrddido:Reads DI/DO parameter of master function - ' pmc_prfwrdido:Writes DI/DO parameter of master function - - Public Structure IODBDIDO - Public slave_no As Short - Public slot_no As Short - Public di_size As Byte - Public di_type As Char - Public di_addr As Short - Public do_size As Byte - Public do_type As Char - Public do_addr As Short - Public shift As Short - Public module_dlen As Byte - - Public module_data As Byte() - End Structure - - ' pmc_prfrdindiadr:Reads indication address of master function - ' pmc_prfwrindiadr:Writes indication address of master function - - Public Structure IODBINDEADR - Public dummy As Byte - Public indi_type As Char - 'Public indi_type As Byte - Public indi_addr As Short - End Structure - - '----------------------------------------------- - ' DS : Data server & Ethernet board function - '----------------------------------------------- - - ' etb_rdparam : read@the parameter of the Ethernet board - ' etb_wrparam : write the parameter of the Ethernet board - - Public Structure TCPPRM - - Public OwnIPAddress As String - - Public SubNetMask As String - - Public RouterIPAddress As String - End Structure - - - Public Structure HOSTPRM - Public DataServerPort As Short - - Public DataServerIPAddress As String - - Public DataServerUserName As String - - Public DataServerPassword As String - - Public DataServerLoginDirectory As String - End Structure - - - Public Structure FTPPRM - - Public FTPServerUserName As String - - Public FTPServerPassword As String - - Public FTPServerLoginDirectory As String - End Structure - - - Public Structure ETBPRM - - Public OwnMACAddress As String - Public MaximumChannel As Short - Public HDDExistence As Short - Public NumberOfScreens As Short - End Structure - - - - Public Structure IODBETP_TCP - Public ParameterType As Short - Public tcp As TCPPRM - End Structure - - - Public Structure IODBETP_HOST - Public ParameterType As Short - Public host As HOSTPRM - End Structure - - - Public Structure IODBETP_FTP - Public ParameterType As Short - Public ftp As FTPPRM - End Structure - - - Public Structure IODBETP_ETB - Public ParameterType As Short - Public etb As ETBPRM - End Structure - - - Public Structure ODBETMSG - - Public title As String - - Public message As String - End Structure - - ' ds_rdhddinfo : read information of the Data Server's HDD - - Public Structure ODBHDDINF - Public file_num As Integer - Public remainder_l As Integer - Public remainder_h As Integer - - Public current_dir As Byte() - End Structure - - - Public Structure ODBHDDDIR_data - - Public file_name As String - - Public comment As String - Public attribute As Short - Public reserved As Short - Public size As Integer - - Public dates As String - End Structure - - Public Structure ODBHDDDIR - Public data1 As ODBHDDDIR_data - Public data2 As ODBHDDDIR_data - Public data3 As ODBHDDDIR_data - Public data4 As ODBHDDDIR_data - Public data5 As ODBHDDDIR_data - Public data6 As ODBHDDDIR_data - Public data7 As ODBHDDDIR_data - Public data8 As ODBHDDDIR_data - Public data9 As ODBHDDDIR_data - Public data10 As ODBHDDDIR_data - Public data11 As ODBHDDDIR_data - Public data12 As ODBHDDDIR_data - Public data13 As ODBHDDDIR_data - Public data14 As ODBHDDDIR_data - Public data15 As ODBHDDDIR_data - Public data16 As ODBHDDDIR_data - Public data17 As ODBHDDDIR_data - Public data18 As ODBHDDDIR_data - Public data19 As ODBHDDDIR_data - Public data20 As ODBHDDDIR_data - Public data21 As ODBHDDDIR_data - Public data22 As ODBHDDDIR_data - Public data23 As ODBHDDDIR_data - Public data24 As ODBHDDDIR_data - Public data25 As ODBHDDDIR_data - Public data26 As ODBHDDDIR_data - Public data27 As ODBHDDDIR_data - Public data28 As ODBHDDDIR_data - Public data29 As ODBHDDDIR_data - Public data30 As ODBHDDDIR_data - Public data31 As ODBHDDDIR_data - Public data32 As ODBHDDDIR_data - End Structure - - ' ds_rdhostdir : read the file list of the host - - Public Structure ODBHOSTDIR_data - - Public host_file As String - 'Public host_file As Char() - End Structure - - Public Structure ODBHOSTDIR - Public data1 As ODBHOSTDIR_data - Public data2 As ODBHOSTDIR_data - Public data3 As ODBHOSTDIR_data - Public data4 As ODBHOSTDIR_data - Public data5 As ODBHOSTDIR_data - Public data6 As ODBHOSTDIR_data - Public data7 As ODBHOSTDIR_data - Public data8 As ODBHOSTDIR_data - Public data9 As ODBHOSTDIR_data - Public data10 As ODBHOSTDIR_data - Public data11 As ODBHOSTDIR_data - Public data12 As ODBHOSTDIR_data - Public data13 As ODBHOSTDIR_data - Public data14 As ODBHOSTDIR_data - Public data15 As ODBHOSTDIR_data - Public data16 As ODBHOSTDIR_data - Public data17 As ODBHOSTDIR_data - Public data18 As ODBHOSTDIR_data - Public data19 As ODBHOSTDIR_data - Public data20 As ODBHOSTDIR_data - Public data21 As ODBHOSTDIR_data - Public data22 As ODBHOSTDIR_data - Public data23 As ODBHOSTDIR_data - Public data24 As ODBHOSTDIR_data - Public data25 As ODBHOSTDIR_data - Public data26 As ODBHOSTDIR_data - Public data27 As ODBHOSTDIR_data - Public data28 As ODBHOSTDIR_data - Public data29 As ODBHOSTDIR_data - Public data30 As ODBHOSTDIR_data - Public data31 As ODBHOSTDIR_data - Public data32 As ODBHOSTDIR_data - End Structure - - ' ds_rdmntinfo : read maintenance information - - Public Structure DSMNTINFO - Public empty_cnt As Short - Public total_size As Integer - Public ReadPtr As Short - Public WritePtr As Short - End Structure - - - '-------------------------- - ' HSSB multiple connection - '-------------------------- - - ' cnc_rdnodeinfo:read node informations - - Public Structure ODBNODE - Public node_no As Integer - Public io_base As Integer - Public status As Integer - Public cnc_type As Integer - - Public node_name As String - End Structure - - - '------------------------------------- - ' CNC: Control axis / spindle related - '------------------------------------- - - ' read actual axis feedrate(F) - Declare Function cnc_actf Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBACT) As Short - - ' read absolute axis position - Declare Function cnc_absolute Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short - - ' read machine axis position - Declare Function cnc_machine Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short - - ' read relative axis position - Declare Function cnc_relative Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short - - ' read distance to go - Declare Function cnc_distance Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short - - ' read skip position - Declare Function cnc_skip Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short - - ' read servo delay value - Declare Function cnc_srvdelay Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short - - ' read acceleration/deceleration delay value - Declare Function cnc_accdecdly Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short - - ' read all dynamic data -#If ONO8D = Nothing Then - Declare Function cnc_rddynamic Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBDY_1) As Short - Declare Function cnc_rddynamic Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBDY_2) As Short -#Else - Declare Function cnc_rddynamico8 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBDY_1) As Short - Declare Function cnc_rddynamico8 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBDY_2) As Short -#End If - - ' read all dynamic data - Declare Function cnc_rddynamic2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBDY2_1) As Short - Declare Function cnc_rddynamic2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBDY2_2) As Short - - ' read actual spindle speed(S) - Declare Function cnc_acts Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBACT) As Short - - ' read actual spindle speed(S) (All or spesified) - Declare Function cnc_acts2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBACT2) As Short - - ' set origin / preset relative axis position - Declare Function cnc_wrrelpos Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBWRR) As Short - - ' preset work coordinate - Declare Function cnc_prstwkcd Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBWRA) As Short - - ' read manual overlapped motion value - Declare Function cnc_rdmovrlap Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBOVL) As Short - - ' cancel manual overlapped motion value - Declare Function cnc_canmovrlap Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read load information of serial spindle - Declare Function cnc_rdspload Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBSPN) As Short - - ' read maximum r.p.m. ratio of serial spindle - Declare Function cnc_rdspmaxrpm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBSPN) As Short - - ' read gear ratio of serial spindle - Declare Function cnc_rdspgear Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBSPN) As Short - - ' read absolute axis position 2 - Declare Function cnc_absolute2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short - - ' read relative axis position 2 - Declare Function cnc_relative2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short - - ' set wire vertival position - Declare Function cnc_setvrtclpos Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' set wire threading position - Declare Function cnc_setthrdngpos Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read tool position - Declare Function cnc_rdposition Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBPOS) As Short - - ' read current speed - Declare Function cnc_rdspeed Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBSPEED) As Short - - ' read servo load meter - Declare Function cnc_rdsvmeter Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As ODBSVLOAD) As Short - - ' read spindle load meter - Declare Function cnc_rdspmeter Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBSPLOAD) As Short - - ' read handle interruption - Declare Function cnc_rdhndintrpt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBHND) As Short - - ' read manual feed for 5-axis machining - Declare Function cnc_rd5axmandt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODB5AXMAN) As Short - - ' read amount of machine axes movement of manual feed for 5-axis machining - Declare Function cnc_rd5axovrlap Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short - - ' clear pulse values of manual feed for 5-axis machining - Declare Function cnc_clr5axpls Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read constant surface speed - Declare Function cnc_rdspcss Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBCSS) As Short - - ' read execution program pointer - Declare Function cnc_rdexecpt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As PRGPNT, ByRef b As PRGPNT) As Short - - ' read various axis data - Declare Function cnc_rdaxisdata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b() As Short, ByVal c As Short, ByRef d As Short, ByRef c As ODBAXDT) As Short - - '---------------------- - ' CNC: Program related - '---------------------- - - ' start downloading NC program - Declare Function cnc_dwnstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' download NC program - Declare Function cnc_download Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short) As Short - - ' download NC program(conditional) - Declare Function cnc_cdownload Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short) As Short - - ' end of downloading NC program - Declare Function cnc_dwnend Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' end of downloading NC program 2 - Declare Function cnc_dwnend2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' start downloading NC program 3 - Declare Function cnc_dwnstart3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' start downloading NC program 3 special - Declare Function cnc_dwnstart3_f Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As String, ByVal c As String) As Short - - ' download NC program 3 - Declare Function cnc_download3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByVal b As String) As Short - - ' end of downloading NC program 3 - Declare Function cnc_dwnend3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' start downloading NC program 4 - Declare Function cnc_dwnstart4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String) As Short - - ' download NC program 4 - Declare Function cnc_download4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByVal b As String) As Short - - ' end of downloading NC program 4 - Declare Function cnc_dwnend4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' start verification of NC program - Declare Function cnc_vrfstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' verify NC program - Declare Function cnc_verify Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short) As Short - - ' verify NC program(conditional) - Declare Function cnc_cverify Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short) As Short - - ' end of verification - Declare Function cnc_vrfend Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' start verification of NC program - Declare Function cnc_vrfstart4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' verify NC program - Declare Function cnc_verify4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, <[In], Out> ByVal a() As Char) As Short - - ' end of verification - Declare Function cnc_vrfend4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' start downloading DNC program - Declare Function cnc_dncstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' download DNC program - Declare Function cnc_dnc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer) As Short - - ' download DNC program(conditional) - Declare Function cnc_cdnc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer) As Short - - ' end of downloading DNC program - Declare Function cnc_dncend Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' start downloading DNC program 2 - Declare Function cnc_dncstart2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char) As Short - - ' download DNC program 2 - Declare Function cnc_dnc2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByVal b As String) As Short - - ' end of downloading DNC program 2 - Declare Function cnc_dncend2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read the diagnosis data of DNC operation - Declare Function cnc_rddncdgndt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBDNCDGN) As Short - - ' start uploading NC program -#If ONO8D = Nothing Then - Declare Function cnc_upstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short -#Else - Declare Function cnc_upstart Lib "FWLIB32.DLL" Alias "cnc_upstarto8" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short -#End If - - ' upload NC program - Declare Function cnc_upload Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBUP, ByRef b As Integer) As Short - - ' upload NC program(conditional) - Declare Function cnc_cupload Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBUP, ByRef b As Integer) As Short - - ' end of uploading NC program - Declare Function cnc_upend Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' start uploading NC program 3 - Declare Function cnc_upstart3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByVal c As Integer) As Short - - ' start uploading NC program special 3 - Declare Function cnc_upstart3_f Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As String, ByVal c As String) As Short - - ' upload NC program 3 - Declare Function cnc_upload3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, <[In], Out> ByVal c() As Char) As Short - - ' end of uploading NC program 3 - Declare Function cnc_upend3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' start uploading NC program 4 - Declare Function cnc_upstart4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String) As Short - - ' upload NC program 4 - Declare Function cnc_upload4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, <[In], Out> ByVal b() As Char) As Short - - ' end of uploading NC program 4 - Declare Function cnc_upend4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read buffer status for downloading/verification NC program - Declare Function cnc_buff Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBBUF) As Short - - ' search specified program -#If ONO8D = Nothing Then - Declare Function cnc_search Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short -#Else - Declare Function cnc_search Lib "FWLIB32.DLL" Alias "cnc_searcho8" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short -#End If - - ' search specified program - Declare Function cnc_search2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer) As Short - - ' delete all programs - Declare Function cnc_delall Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' delete specified program -#If ONO8D = Nothing Then - Declare Function cnc_delete Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short -#Else - Declare Function cnc_delete Lib "FWLIB32.DLL" Alias "cnc_deleteo8" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short -#End If - - ' delete program (area specified) - Declare Function cnc_delrange Lib "FWLIB32.DLL" Alias "cnc_delrange" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer) As Short - - ' read program directory -#If ONO8D = Nothing Then - Declare Function cnc_rdprogdir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Integer, ByRef e As PRGDIR) As Short -#Else - Declare Function cnc_rdprogdir Lib "FWLIB32.DLL" Alias "cnc_rdprogdiro8" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Integer, ByRef e As PRGDIR) As Short -#End If - - ' read program information - Declare Function cnc_rdproginfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBNC_1) As Short - Declare Function cnc_rdproginfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBNC_2) As Short - - ' read program number under execution -#If ONO8D = Nothing Then - Declare Function cnc_rdprgnum Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPRO) As Short -#Else - Declare Function cnc_rdprgnum Lib "FWLIB32.DLL" Alias "cnc_rdprgnumo8" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPRO ) As Short -#End If - - ' read program name under execution - Declare Function cnc_exeprgname Lib "FWLIB32.DLL" Alias "cnc_exeprgname" _ - (ByVal FlibHndl As Integer, ByRef a As ODBEXEPRG) As Short - - ' read sequence number under execution - Declare Function cnc_rdseqnum Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSEQ) As Short - - ' search specified sequence number - Declare Function cnc_seqsrch Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer) As Short - - ' search specified sequence number (2) - Declare Function cnc_seqsrch2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer) As Short - - ' rewind cursor of NC program - Declare Function cnc_rewind Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read block counter - Declare Function cnc_rdblkcount Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - '' read program under execution - 'Declare Function cnc_rdexecprog Lib "FWLIB32.DLL" _ - ' (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Short, <[In], Out> ByVal c() As Char) As Short - ' read program under execution - Declare Function cnc_rdexecprog Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Integer, <[In](), Out()> ByVal c() As Char) As Short - - ' read program for MDI operation - Declare Function cnc_rdmdiprog Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal c() As Char) As Short - - ' write program for MDI operation - Declare Function cnc_wrmdiprog Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String) As Short - - ' read execution pointer for MDI operation -#If ONO8D = Nothing Then - Declare Function cnc_rdmdipntr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBMDIP) As Short -#Else - Declare Function cnc_rdmdipntr Lib "FWLIB32.DLL" Alias "cnc_rdmdipntro8" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBMDIP ) As Short -#End If - - ' write execution pointer for MDI operation - Declare Function cnc_wrmdipntr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer) As Short - - ' register new program - Declare Function cnc_newprog Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer) As Short - - ' copy program - Declare Function cnc_copyprog Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer) As Short - - ' rename program - Declare Function cnc_renameprog Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer) As Short - - ' condense program - Declare Function cnc_condense Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer) As Short - - ' merge program - Declare Function cnc_mergeprog Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByVal c As Integer, ByVal d As Integer) As Short - - ' read current program and its pointer - Declare Function cnc_rdactpt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Integer) As Short - - ' read current program and its pointer and UV macro pointer - Declare Function cnc_rduvactpt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Integer, ByRef c As Integer) As Short - - ' set current program and its pointer - Declare Function cnc_wractpt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Short, ByRef c As Integer) As Short - - ' line edit (read program) - Declare Function cnc_rdprogline Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByVal b As Integer, <[In], Out> ByVal c() As Char, ByRef d As Integer, ByRef e As Integer) As Short - - ' line edit (read program) - Declare Function cnc_rdprogline2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByVal b As Integer, <[In], Out> ByVal c() As Char, ByRef d As Integer, ByRef e As Integer) As Short - - ' line edit (write program) - Declare Function cnc_wrprogline Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As String, ByVal d As Integer) As Short - - ' line edit (delete line in program) - Declare Function cnc_delprogline Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) As Short - - ' line edit (search string) - Declare Function cnc_searchword Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByVal b As Integer, ByVal c As Short, ByVal d As Short, ByVal e As Integer, ByVal f As String) As Short - - ' line edit (search string) - Declare Function cnc_searchresult Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' line edit (read program by file name) - Declare Function cnc_rdpdf_line Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer, <[In], Out> ByVal c() As Char, ByRef d As Integer, ByRef e As Integer) As Short - - ' program lock - Declare Function cnc_setpglock Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer) As Short - - ' program unlock - Declare Function cnc_resetpglock Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer) As Short - - ' read the status of the program lock - Declare Function cnc_rdpglockstat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Integer) As Short - - ' create file or directory - Declare Function cnc_pdf_add Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' condense program file - Declare Function cnc_pdf_cond Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' change attribute of program file and directory - Declare Function cnc_wrpdf_attr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByRef b As IDBPDFTDIR) As Short - - ' copy program file - Declare Function cnc_pdf_copy Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short - - ' delete file or directory - Declare Function cnc_pdf_del Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' line edit (write program by file name) - Declare Function cnc_wrpdf_line Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer, ByVal c As String, ByVal d As Integer) As Short - - ' line edit (delete line by file name) - Declare Function cnc_pdf_delline Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer, ByVal c As Integer) As Short - - ' move program file - Declare Function cnc_pdf_move Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short - - ' read current program and its pointer - Declare Function cnc_pdf_rdactpt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char, ByRef b As Integer) As Short - - ' read selected file name - Declare Function cnc_pdf_rdmain Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char) As Short - - ' rename file or directory - Declare Function cnc_pdf_rename Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short - - ' line edit (search string) - Declare Function cnc_pdf_searchword Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByVal f As String) As Short - - ' line edit (search string) - Declare Function cnc_pdf_searchresult Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' select program file - Declare Function cnc_pdf_slctmain Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' set current program and its pointer - Declare Function cnc_pdf_wractpt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short, ByRef c As Integer) As Short - - ' read program drive information - Declare Function cnc_rdpdf_inf Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short, ByRef c As ODBPDFINF) As Short - - ' read program drive directory - Declare Function cnc_rdpdf_drive Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPDFDRV) As Short - - ' read current directory - Declare Function cnc_rdpdf_curdir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, <[In], Out> ByVal b() As Char) As Short - - ' set current directory - Declare Function cnc_wrpdf_curdir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, <[In], Out> ByVal b() As Char) As Short - - ' read directory (sub directories) - Declare Function cnc_rdpdf_subdir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IDBPDFSDIR, ByRef b As ODBPDFSDIR) As Short - - ' read directory (all files) - Declare Function cnc_rdpdf_alldir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IDBPDFADIR, ByRef c As ODBPDFADIR) As Short - - ' read file count in directory - Declare Function cnc_rdpdf_subdirn Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByRef b As ODBPDFNFIL) As Short - - '--------------------------- - ' CNC: NC file data related - '--------------------------- - - ' read tool offset value - Declare Function cnc_rdtofs Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBTOFS) As Short - - ' write tool offset value - Declare Function cnc_wrtofs Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Integer) As Short - - ' read tool offset value(area specified) - Declare Function cnc_rdtofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBTO_1_1) As Short - Declare Function cnc_rdtofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBTO_1_2) As Short - Declare Function cnc_rdtofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBTO_1_3) As Short - Declare Function cnc_rdtofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBTO_2) As Short - Declare Function cnc_rdtofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBTO_3) As Short - - ' write tool offset value(area specified) - Declare Function cnc_wrtofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_1_1) As Short - Declare Function cnc_wrtofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_1_2) As Short - Declare Function cnc_wrtofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_1_3) As Short - Declare Function cnc_wrtofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_2) As Short - Declare Function cnc_wrtofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_3) As Short - - ' read work zero offset value - Declare Function cnc_rdzofs Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBZOFS) As Short - - ' write work zero offset value - Declare Function cnc_wrzofs Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOFS) As Short - - ' read work zero offset value(area specified) - Declare Function cnc_rdzofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBZOR) As Short - - ' write work zero offset value(area specified) - Declare Function cnc_wrzofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOR) As Short - - ' read mesured point value - Declare Function cnc_rdmsptype Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBMSTP) As Short - - ' write mesured point value - Declare Function cnc_wrmsptype Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef d As IODBMSTP) As Short - - ' read parameter - Declare Function cnc_rdparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_1) As Short - Declare Function cnc_rdparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_2) As Short - Declare Function cnc_rdparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_3) As Short - Declare Function cnc_rdparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_4) As Short - - ' write parameter - Declare Function cnc_wrparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_1) As Short - Declare Function cnc_wrparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_2) As Short - Declare Function cnc_wrparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_3) As Short - Declare Function cnc_wrparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_4) As Short - - ' read parameter - Declare Function cnc_rdparam3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBPSD_1) As Short - Declare Function cnc_rdparam3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBPSD_2) As Short - Declare Function cnc_rdparam3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBPSD_3) As Short - Declare Function cnc_rdparam3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBPSD_4) As Short - - ' read parameter(area specified) - Declare Function cnc_rdparar Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_A) As Short - Declare Function cnc_rdparar Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_B) As Short - Declare Function cnc_rdparar Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_C) As Short - Declare Function cnc_rdparar Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_D) As Short - - ' write parameter(area specified) - Declare Function cnc_wrparas Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_A) As Short - Declare Function cnc_wrparas Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_B) As Short - Declare Function cnc_wrparas Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_C) As Short - Declare Function cnc_wrparas Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_D) As Short - - ' read setting data - Declare Function cnc_rdset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_1) As Short - Declare Function cnc_rdset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_2) As Short - Declare Function cnc_rdset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_3) As Short - Declare Function cnc_rdset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_4) As Short - - ' write setting data - Declare Function cnc_wrset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_1) As Short - Declare Function cnc_wrset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_2) As Short - Declare Function cnc_wrset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_3) As Short - Declare Function cnc_wrset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_4) As Short - - ' read setting data(area specified) - Declare Function cnc_rdsetr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_A) As Short - Declare Function cnc_rdsetr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_B) As Short - Declare Function cnc_rdsetr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_C) As Short - Declare Function cnc_rdsetr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_D) As Short - - ' write setting data(area specified) - Declare Function cnc_wrsets Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_A) As Short - Declare Function cnc_wrsets Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_B) As Short - Declare Function cnc_wrsets Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_C) As Short - Declare Function cnc_wrsets Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_D) As Short - - ' read parameters - Declare Function cnc_rdparam_ext Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBPRMNO, ByVal b As Short, ByRef c As IODBPRM) As Short - - ' async parameter write start - Declare Function cnc_start_async_wrparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBPRM) As Short - - ' async parameter write end - Declare Function cnc_end_async_wrparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read cause of busy for async parameter write - Declare Function cnc_async_busy_state Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read diagnosis data - Declare Function cnc_rddiag_ext Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBPRMNO, ByVal b As Short, ByRef c As IODBPRM) As Short - - ' read pitch error compensation data(area specified) - Declare Function cnc_rdpitchr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPI) As Short - - ' write pitch error compensation data(area specified) - Declare Function cnc_wrpitchr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPI) As Short - - ' read custom macro variable - Declare Function cnc_rdmacro Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBM) As Short - - ' write custom macro variable - Declare Function cnc_wrmacro Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Short) As Short - - ' read custom macro variables(area specified) - Declare Function cnc_rdmacror Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBMR) As Short - - ' write custom macro variables(area specified) - Declare Function cnc_wrmacror Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBMR) As Short - - ' read custom macro variables(IEEE double version) - Declare Function cnc_rdmacror2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, <[In], Out> ByRef c() As Double) As Short - - ' write custom macro variables(IEEE double version) - Declare Function cnc_wrmacror2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, <[In], Out> ByVal c() As Double) As Short - - ' read P code macro variable - Declare Function cnc_rdpmacro Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As ODBPM) As Short - - ' write P code macro variable - Declare Function cnc_wrpmacro Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Short) As Short - - ' read P code macro variables(area specified) - Declare Function cnc_rdpmacror Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByVal b As Integer, ByVal c As Integer, ByRef d As IODBPR) As Short - - ' write P code macro variables(area specified) - Declare Function cnc_wrpmacror Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As IODBPR) As Short - - ' read P code macro variables(IEEE double version) - Declare Function cnc_rdpmacror2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByVal c As Short, <[In], Out> ByVal d() As Double) As Short - - ' write P code macro variables(IEEE double version) - Declare Function cnc_wrpmacror2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByVal c As Short, <[In], Out> ByVal d() As Double) As Short - - ' read tool offset information - Declare Function cnc_rdtofsinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBTLINF) As Short - - ' read tool offset information(2) - Declare Function cnc_rdtofsinfo2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBTLINF2) As Short - - ' read work zero offset information - Declare Function cnc_rdzofsinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read pitch error compensation data information - Declare Function cnc_rdpitchinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read custom macro variable information - Declare Function cnc_rdmacroinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBMVINF) As Short - - ' read P code macro variable information - Declare Function cnc_rdpmacroinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPMINF) As Short - - ' read validity of tool offset - Declare Function cnc_tofs_rnge Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByRef c As ODBDATRNG) As Short - - ' read validity of work zero offset - Declare Function cnc_zofs_rnge Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByRef c As ODBDATRNG) As Short - - ' read validity of work zero offset - Declare Function cnc_wksft_rnge Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As ODBDATRNG) As Short - - ' read the information for function cnc_rdhsparam() - Declare Function cnc_rdhsprminfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As HSPINFO_data) As Short - - ' read parameters at the high speed - Declare Function cnc_rdhsparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As HSPINFO, ByRef c As HSPDATA_1) As Short - - Declare Function cnc_rdhsparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As HSPINFO, ByRef c As HSPDATA_2) As Short - - Declare Function cnc_rdhsparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As HSPINFO, ByRef c As HSPDATA_3) As Short - - - '---------------------------------------- - ' CNC: Tool life management data related - '---------------------------------------- - - ' read tool life management data(tool group number) - Declare Function cnc_rdgrpid Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBTLIFE1) As Short - - ' read tool life management data(number of tool groups) - Declare Function cnc_rdngrp Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBTLIFE2) As Short - - ' read tool life management data(number of tools) - Declare Function cnc_rdntool Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBTLIFE3) As Short - - ' read tool life management data(tool life) - Declare Function cnc_rdlife Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBTLIFE3) As Short - - ' read tool life management data(tool lift counter) - Declare Function cnc_rdcount Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBTLIFE3) As Short - - ' read tool life management data(tool length number-1) - Declare Function cnc_rd1length Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short - - ' read tool life management data(tool length number-2) - Declare Function cnc_rd2length Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short - - ' read tool life management data(cutter compensation no.-1) - Declare Function cnc_rd1radius Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short - - ' read tool life management data(cutter compensation no.-2) - Declare Function cnc_rd2radius Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short - - ' read tool life management data(tool information-1) - Declare Function cnc_t1info Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short - - ' read tool life management data(tool information-2) - Declare Function cnc_t2info Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short - - ' read tool life management data(tool number) - Declare Function cnc_toolnum Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short - - ' read tool life management data(tool number, tool life, tool life counter)(area specified) - Declare Function cnc_rdtoolrng Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBTR) As Short - - ' read tool life management data(all data within group) - Declare Function cnc_rdtoolgrp Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTG) As Short - - ' write tool life management data(tool life counter) (area specified) - Declare Function cnc_wrcountr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBWRC) As Short - - ' read tool life management data(used tool group number) - Declare Function cnc_rdusegrpid Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBUSEGR) As Short - - ' read tool life management data(max. number of tool groups) - Declare Function cnc_rdmaxgrp Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBLFNO) As Short - - ' read tool life management data(maximum number of tool within group) - Declare Function cnc_rdmaxtool Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBLFNO) As Short - - ' read tool life management data(used tool no. within group) - Declare Function cnc_rdusetlno Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBTLUSE) As Short - - ' read tool life management data(tool data1) - Declare Function cnc_rd1tlifedata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBTD) As Short - - ' read tool life management data(tool data2) - Declare Function cnc_rd2tlifedata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBTD) As Short - - ' write tool life management data(tool data1) - Declare Function cnc_wr1tlifedata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBTD) As Short - - ' write tool life management data(tool data2) - Declare Function cnc_wr2tlifedata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBTD) As Short - - ' read tool life management data(tool group information) - Declare Function cnc_rdgrpinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBTGI) As Short - - ' read tool life management data(tool group information 2) - Declare Function cnc_rdgrpinfo2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBTGI2) As Short - - ' read tool life management data(tool group information 3) - Declare Function cnc_rdgrpinfo3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBTGI3) As Short - - ' read tool life management data(tool group information 4) - Declare Function cnc_rdgrpinfo4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As Short, ByRef e As IODBTGI4) As Short - - ' write tool life management data(tool group information) - Declare Function cnc_wrgrpinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTGI) As Short - - ' write tool life management data(tool group information 2) - Declare Function cnc_wrgrpinfo2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTGI2) As Short - - ' write tool life management data(tool group information 3) - Declare Function cnc_wrgrpinfo3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTGI3) As Short - - ' delete tool life management data(tool group) - Declare Function cnc_deltlifegrp Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' insert tool life management data(tool data) - Declare Function cnc_instlifedt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IDBITD) As Short - - ' delete tool life management data(tool data) - Declare Function cnc_deltlifedt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short) As Short - - ' clear tool life management data(tool life counter, tool information)(area specified) - Declare Function cnc_clrcntinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short) As Short - - ' read tool life management data(tool group number) 2 - Declare Function cnc_rdgrpid2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As ODBTLIFE5) As Short - - ' read tool life management data(tool data1) 2 - Declare Function cnc_rd1tlifedat2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As IODBTD2) As Short - - ' write tool life management data(tool data1) 2 - Declare Function cnc_wr1tlifedat2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBTD2) As Short - - ' read tool life management data - Declare Function cnc_rdtlinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBTLINFO) As Short - - ' read tool life management data(used tool group number) - Declare Function cnc_rdtlusegrp Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBUSEGRP) As Short - - ' read tool life management data(tool group information 2) - Declare Function cnc_rdtlgrp Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Short, ByRef c As IODBTLGRP) As Short - - ' read tool life management data (tool data1) - Declare Function cnc_rdtltool Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByRef c As Short, ByRef d As IODBTLTOOL) As Short - - Declare Function cnc_rdexchgtgrp Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef b As Short, ByRef c As ODBEXGP) As Short - - '----------------------------------- - ' CNC: Tool management data related - '----------------------------------- - - ' new registration of tool management data - Declare Function cnc_regtool Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLMNG) As Short - - ' new registration of tool management data - Declare Function cnc_regtool_f2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLMNG_F2) As Short - - ' deletion of tool management data - Declare Function cnc_deltool Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short) As Short - - ' lead of tool management data - Declare Function cnc_rdtool Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLMNG) As Short - - ' lead of tool management data - Declare Function cnc_rdtool_f2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLMNG_F2) As Short - - ' write of tool management data - Declare Function cnc_wrtool Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTLMNG) As Short - - ' write of individual data of tool management data - Declare Function cnc_wrtool2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBTLM) As Short - - ' write tool management data - Declare Function cnc_wrtool_f2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTLMNG_F2_data) As Short - - ' new registration of magazine management data - Declare Function cnc_regmagazine Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IODBTLMAG) As Short - - ' deletion of magazine management data - Declare Function cnc_delmagazine Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IODBTLMAG2) As Short - - ' lead of magazine management data - Declare Function cnc_rdmagazine Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IODBTLMAG) As Short - - ' Individual write of magazine management data - Declare Function cnc_wrmagazine Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short) As Short - - - '------------------------------------- - ' CNC: Operation history data related - '------------------------------------- - - ' stop logging operation history data - Declare Function cnc_stopophis Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' restart logging operation history data - Declare Function cnc_startophis Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read number of operation history data - Declare Function cnc_rdophisno Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read operation history data - Declare Function cnc_rdophistry Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Integer, ByRef d As ODBHIS) As Short - - ' read operation history data - Declare Function cnc_rdophistry2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, <[In], Out> ByVal d() As ODBOPHIS) As Short - - ' read operation history data F30i - Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_1) As Short - - Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_2) As Short - - Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_3) As Short - - Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_4) As Short - - Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_5) As Short - - Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_6) As Short - - Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_7) As Short - - Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_8) As Short - - Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_9) As Short - - Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_10) As Short - - Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_11) As Short - - ' read number of alarm history data - Declare Function cnc_rdalmhisno Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read alarm history data - Declare Function cnc_rdalmhistry Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Integer, ByRef d As ODBAHIS) As Short - - ' read alarm history data - Declare Function cnc_rdalmhistry_w Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByVal c As Integer, ByRef d As ODBAHIS) As Short - - ' read alarm history data - Declare Function cnc_rdalmhistry2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Integer, ByRef d As ODBAHIS2) As Short - - ' read alarm history data F30i - Declare Function cnc_rdalmhistry3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Integer, ByRef d As ODBAHIS3) As Short - - ' read alarm history data F30i - Declare Function cnc_rdalmhistry5 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Integer, ByRef d As ODBAHIS5) As Short - - ' clear operation history data - Declare Function cnc_clearophis Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read signals related operation history - Declare Function cnc_rdhissgnl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBSIG) As Short - - ' read signals related operation history 2 - Declare Function cnc_rdhissgnl2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBSIG2) As Short - - ' read signals related operation history 3 - Declare Function cnc_rdhissgnl3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBSIG3) As Short - - ' write signals related operation history - Declare Function cnc_wrhissgnl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBSIG) As Short - - ' write signals related operation history 2 - Declare Function cnc_wrhissgnl2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBSIG2) As Short - - ' write signals related operation history for F30i - Declare Function cnc_wrhissgnl3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBSIG3) As Short - - ' read number of operater message history data - Declare Function cnc_rdomhisno Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - '------------- - ' CNC: Others - '------------- - - ' read CNC system information - Declare Function cnc_sysinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSYS) As Short - - ' read CNC status information - Declare Function cnc_statinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBST) As Short - - ' read alarm status - Declare Function cnc_alarm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBALM) As Short - - ' read alarm status - Declare Function cnc_alarm2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read alarm information - Declare Function cnc_rdalminfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ALMINFO_1) As Short - - Declare Function cnc_rdalminfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ALMINFO_2) As Short - - ' read alarm message - Declare Function cnc_rdalmmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBALMMSG) As Short - - ' read alarm message (2) - Declare Function cnc_rdalmmsg2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBALMMSG2) As Short - - ' clear CNC alarm - Declare Function cnc_clralm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read modal data - Declare Function cnc_modal Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_1) As Short - Declare Function cnc_modal Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_2) As Short - Declare Function cnc_modal Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_3) As Short - Declare Function cnc_modal Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_4) As Short - Declare Function cnc_modal Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_5) As Short - - ' read G code - Declare Function cnc_rdgcode Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As Short, ByRef d As ODBGCD) As Short - - ' read command value - Declare Function cnc_rdcommand Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As Short, ByRef d As ODBCMD) As Short - - ' read diagnosis data - Declare Function cnc_diagnoss Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBDGN_1) As Short - Declare Function cnc_diagnoss Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBDGN_2) As Short - Declare Function cnc_diagnoss Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBDGN_3) As Short - Declare Function cnc_diagnoss Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBDGN_4) As Short - - ' read diagnosis data(area specified) - Declare Function cnc_diagnosr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As ODBDGN_A) As Short - Declare Function cnc_diagnosr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As ODBDGN_B) As Short - Declare Function cnc_diagnosr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As ODBDGN_C) As Short - Declare Function cnc_diagnosr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As ODBDGN_D) As Short - - ' read A/D conversion data - Declare Function cnc_adcnv Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAD) As Short - - ' read operator's message - Declare Function cnc_rdopmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As OPMSG) As Short - - ' read operator's message - Declare Function cnc_rdopmsg2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As OPMSG2) As Short - - ' read operator's message - Declare Function cnc_rdopmsg3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As OPMSG3) As Short - - ' set path number(for 4 axes lathes, multi-path) - Declare Function cnc_setpath Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' get path number(for 4 axes lathes, multi-path) - Declare Function cnc_getpath Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As Short) As Short - - ' allocate library handle - Declare Function cnc_allclibhndl Lib "FWLIB32.DLL" _ - (ByRef FlibHndl As Integer) As Short - - ' free library handle - Declare Function cnc_freelibhndl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' get library option - Declare Function cnc_getlibopt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, <[In], Out> ByVal b() As Char, ByRef c As Integer) As Short - - ' set library option - Declare Function cnc_setlibopt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b() As Char, ByVal c As Integer) As Short - - ' get custom macro type - Declare Function cnc_getmactype Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' set custom macro type - Declare Function cnc_setmactype Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' get P code macro type - Declare Function cnc_getpmactype Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' set P code macro type - Declare Function cnc_setpmactype Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' get screen status - Declare Function cnc_getcrntscrn Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' change screen mode - Declare Function cnc_slctscrn Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read CNC configuration information - Declare Function cnc_sysconfig Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSYSC) As Short - - ' read program restart information - Declare Function cnc_rdprstrinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPRS) As Short - - ' search sequence number for program restart - Declare Function cnc_rstrseqsrch Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Short, ByVal d As Short) As Short - - ' search sequence number for program restart 2 - Declare Function cnc_rstrseqsrch2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByVal b As Integer, ByVal c As Short, ByVal d As Short, ByVal e As Integer) As Short - - ' read output signal image of software operator's panel - Declare Function cnc_rdopnlsgnl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSGNL) As Short - - ' write output signal of software operator's panel - Declare Function cnc_wropnlsgnl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBSGNL) As Short - - ' read general signal image of software operator's panel - Declare Function cnc_rdopnlgnrl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBGNRL) As Short - - ' write general signal image of software operator's panel - Declare Function cnc_wropnlgnrl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBGNRL) As Short - - ' read general signal name of software operator's panel - Declare Function cnc_rdopnlgsname Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBRDNA) As Short - - ' write general signal name of software operator's panel - Declare Function cnc_wropnlgsname Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBRDNA) As Short - - ' get detail error - Declare Function cnc_getdtailerr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBERR) As Short - - ' read informations of CNC parameter - Declare Function cnc_rdparainfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As ODBPARAIF) As Short - - ' read informations of CNC setting data - Declare Function cnc_rdsetinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As ODBSETIF) As Short - - ' read informations of CNC diagnose data - Declare Function cnc_rddiaginfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As ODBDIAGIF) As Short - - ' read maximum, minimum and total number of CNC parameter - Declare Function cnc_rdparanum Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPARANUM) As Short - - ' read maximum, minimum and total number of CNC setting data - Declare Function cnc_rdsetnum Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSETNUM) As Short - - ' read maximum, minimum and total number of CNC diagnose data - Declare Function cnc_rddiagnum Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBDIAGNUM) As Short - - ' get maximum valid figures and number of decimal places - Declare Function cnc_getfigure Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByRef b As Short, <[In], Out> ByVal c() As Short, <[In], Out> ByVal d() As Short) As Short - - ' read F-ROM information on CNC - Declare Function cnc_rdfrominfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBFINFO) As Short - - ' start of reading F-ROM data from CNC - Declare Function cnc_fromsvstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String, ByVal c As Integer) As Short - - ' read F-ROM data from CNC - Declare Function cnc_fromsave Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer) As Short - - ' end of reading F-ROM data from CNC - Declare Function cnc_fromsvend Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' start of writing F-ROM data to CNC - Declare Function cnc_fromldstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer) As Short - - ' write F-ROM data to CNC - Declare Function cnc_fromload Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal b() As Byte, ByRef b As Integer) As Short - - ' end of writing F-ROM data to CNC - Declare Function cnc_fromldend Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' delete F-ROM data on CNC - Declare Function cnc_fromdelete Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String, ByVal c As Integer) As Short - - ' read S-RAM information on CNC - Declare Function cnc_rdsraminfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSINFO) As Short - - ' start of reading S-RAM data from CNC - Declare Function cnc_srambkstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer) As Short - - ' read S-RAM data from CNC - Declare Function cnc_srambackup Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer) As Short - - ' end of reading S-RAM data from CNC - Declare Function cnc_srambkend Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read F-ROM information on CNC - Declare Function cnc_getfrominfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBFINFORM) As Short - - ' start of reading F-ROM data from CNC - Declare Function cnc_fromgetstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String) As Short - - ' read F-ROM data from CNC - Declare Function cnc_fromget Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer) As Short - - ' end of reading F-ROM data from CNC - Declare Function cnc_fromgetend Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' start of writing F-ROM data to CNC - Declare Function cnc_fromputstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' write F-ROM data to CNC - Declare Function cnc_fromput Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a() As Byte, ByRef b As Integer) As Short - - ' end of writing F-ROM data to CNC - Declare Function cnc_fromputend Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' delete F-ROM data on CNC - Declare Function cnc_fromremove Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String) As Short - - ' read S-RAM information on CNC - Declare Function cnc_getsraminfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSINFO) As Short - - ' start of reading S-RAM data from CNC - Declare Function cnc_sramgetstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' start of reading S-RAM data from CNC (2) - Declare Function cnc_sramgetstart2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' read S-RAM data from CNC - Declare Function cnc_sramget Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer) As Short - - ' read S-RAM data from CNC (2) - Declare Function cnc_sramget2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer) As Short - - ' end of reading S-RAM data from CNC - Declare Function cnc_sramgetend Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' end of reading S-RAM data from CNC (2) - Declare Function cnc_sramgetend2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read number of S-RAM data kind on CNC - Declare Function cnc_rdsramnum Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read S-RAM data address information on CNC - Declare Function cnc_rdsramaddr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As SRAMADDR) As Short - - ' get current NC data protection information - Declare Function cnc_getlockstat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, <[In], Out> ByVal b() As Byte) As Short - - ' change NC data protection status - Declare Function cnc_chgprotbit Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, <[In], Out> ByVal b() As Byte, ByVal c As Integer) As Short - - ' transfer a file from host computer to CNC by FTP - Declare Function cnc_dtsvftpget Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short - - ' transfer a file from CNC to host computer by FTP - Declare Function cnc_dtsvftpput Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short - - ' get transfer status for FTP - Declare Function cnc_dtsvftpstat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read file directory in Data Server - Declare Function cnc_dtsvrdpgdir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short, ByRef c As ODBDSDIR) As Short - - ' delete files in Data Server - Declare Function cnc_dtsvdelete Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' down load from CNC (transfer a file from CNC to MMC) - Declare Function cnc_dtsvdownload Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' up load to CNC (transfer a file from MMC to CNC) - Declare Function cnc_dtsvupload Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' close upload/download between Data Server and CNC - Declare Function cnc_dtsvcnclupdn Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' get transfer status for up/down load - Declare Function cnc_dtsvupdnstat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' get file name for DNC operation in Data Server - Declare Function cnc_dtsvgetdncpg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char) As Short - - ' set program number of DNC oparation to CNC - Declare Function cnc_dtsvsetdncpg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' read setting data for Data Server - Declare Function cnc_dtsvrdset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBDSSET) As Short - - ' write setting data for Data Server - Declare Function cnc_dtsvwrset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBDSSET) As Short - - ' check hard disk in Data Server - Declare Function cnc_dtsvchkdsk Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' format hard disk in Data Server - Declare Function cnc_dtsvhdformat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' save interface area in Data Server - Declare Function cnc_dtsvsavecram Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' get interface area in Data Server - Declare Function cnc_dtsvrdcram Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, <[In], Out> ByVal c() As Byte) As Short - - ' read maintenance information for Data Server - Declare Function cnc_dtsvmntinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBDSMNT) As Short - - ' get Data Server mode - Declare Function cnc_dtsvgetmode Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' set Data Server mode - Declare Function cnc_dtsvsetmode Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read error message for Data Server - Declare Function cnc_dtsvrderrmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, <[In], Out> ByVal b() As Char) As Short - - ' transfar file from Pc to Data Server - Declare Function cnc_dtsvwrfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String, ByVal c As Short) As Short - - ' transfar file from Data Server to Pc - Declare Function cnc_dtsvrdfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String, ByVal c As Short) As Short - - ' read the loop gain for each axis - Declare Function cnc_rdloopgain Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read the actual current for each axis - Declare Function cnc_rdcurrent Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read the actual speed for each axis - Declare Function cnc_rdsrvspeed Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read the operation mode - Declare Function cnc_rdopmode Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read the position deviation S - Declare Function cnc_rdposerrs Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read the position deviation S1 and S2 - Declare Function cnc_rdposerrs2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPSER) As Short - - ' read the position deviation Z in the rigid tap mode - Declare Function cnc_rdposerrz Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read the synchronous error in the synchronous control mode - Declare Function cnc_rdsynerrsy Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read the synchronous error in the rigid tap mode - Declare Function cnc_rdsynerrrg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read the spindle alarm - Declare Function cnc_rdspdlalm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Byte) As Short - - ' read the control input signal - Declare Function cnc_rdctrldi Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSPDI) As Short - - ' read the control output signal - Declare Function cnc_rdctrldo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSPDO) As Short - - ' read the number of controled spindle - Declare Function cnc_rdnspdl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read data from FANUC BUS - Declare Function cnc_rdfbusmem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Integer, <[In], Out> ByVal e() As Byte) As Short - - ' write data to FANUC BUS - Declare Function cnc_wrfbusmem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Integer, ByVal e() As Byte) As Short - - ' read the parameter of wave diagnosis - Declare Function cnc_rdwaveprm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBWAVE) As Short - - ' write the parameter of wave diagnosis - Declare Function cnc_wrwaveprm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBWAVE) As Short - - ' read the parameter of wave diagnosis 2 - Declare Function cnc_rdwaveprm2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBWVPRM) As Short - - ' write the parameter of wave diagnosis 2 - Declare Function cnc_wrwaveprm2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBWVPRM) As Short - - ' start the sampling for wave diagnosis - Declare Function cnc_wavestart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' stop the sampling for wave diagnosis - Declare Function cnc_wavestop Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read the status of wave diagnosis - Declare Function cnc_wavestat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read the data of wave diagnosis - Declare Function cnc_rdwavedata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByRef d As Integer, ByRef e As ODBWVDT) As Short - - ' read the parameter of wave diagnosis for remort diagnosis - Declare Function cnc_rdrmtwaveprm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBRMTPRM, ByVal b As Short) As Short - - ' write the parameter of wave diagnosis for remort diagnosis - Declare Function cnc_wrrmtwaveprm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBRMTPRM) As Short - - ' start the sampling for wave diagnosis for remort diagnosis - Declare Function cnc_rmtwavestart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' stop the sampling for wave diagnosis for remort diagnosis - Declare Function cnc_rmtwavestop Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read the status of wave diagnosis for remort diagnosis - Declare Function cnc_rmtwavestat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read the data of wave diagnosis for remort diagnosis - Declare Function cnc_rdrmtwavedt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As Integer, ByRef d As ODBRMTDT) As Short - - ' read of address for PMC signal batch save - Declare Function cnc_rdsavsigadr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBSIGAD, ByVal b As Short) As Short - - ' write of address for PMC signal batch save - Declare Function cnc_wrsavsigadr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBSIGAD, ByRef b As Short) As Short - - ' read of data for PMC signal batch save - Declare Function cnc_rdsavsigdata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, <[In], Out> ByVal c() As Byte, ByRef d As Short) As Short - - ' read M-code group data - Declare Function cnc_rdmgrpdata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBMGRP) As Short - - ' write M-code group data - Declare Function cnc_wrmgrpdata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IDBMGRP) As Short - - ' read executing M-code group data - Declare Function cnc_rdexecmcode Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBEXEM) As Short - - ' read program restart M-code group data - Declare Function cnc_rdrstrmcode Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBRSTRM) As Short - - ' read processing time stamp data - Declare Function cnc_rdproctime Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPTIME) As Short - - ' read MDI program stat - Declare Function cnc_rdmdiprgstat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read program directory for processing time data - Declare Function cnc_rdprgdirtime Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Short, ByRef c As PRGDIRTM) As Short - - ' read program directory 2 -#If ONO8D = Nothing Then - Declare Function cnc_rdprogdir2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As Short, ByRef d As PRGDIR2) As Short -#Else - Declare Function cnc_rdprogdir2 Lib "FWLIB32.DLL" Alias "cnc_rdprogdir2o8" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As Short, ByRef d As PRGDIR2 ) As Short -#End If - - ' read program directory 3 - Declare Function cnc_rdprogdir3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Integer, ByRef c As Short, ByRef d As PRGDIR3) As Short - - ' read program directory 4 - Declare Function cnc_rdprogdir4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As Short, ByRef d As PRGDIR4) As Short - - ' read DNC file name for DNC1, DNC2, OSI-Ethernet - Declare Function cnc_rddncfname Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char) As Short - - ' write DNC file name for DNC1, DNC2, OSI-Ethernet - Declare Function cnc_wrdncfname Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' read communication parameter for DNC1, DNC2, OSI-Ethernet - Declare Function cnc_rdcomparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBCPRM) As Short - - ' write communication parameter for DNC1, DNC2, OSI-Ethernet - Declare Function cnc_wrcomparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBCPRM) As Short - - ' read log message for DNC2 - Declare Function cnc_rdcomlogmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char) As Short - - ' read operator message for DNC1, DNC2 - Declare Function cnc_rdcomopemsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char) As Short - - ' read recieve message for OSI-Ethernet - Declare Function cnc_rdrcvmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char) As Short - - ' read send message for OSI-Ethernet - Declare Function cnc_rdsndmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char) As Short - - ' send message for OSI-Ethernet - Declare Function cnc_sendmessage Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' clear message buffer for OSI-Ethernet - Declare Function cnc_clrmsgbuff Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read message recieve status for OSI-Ethernet - Declare Function cnc_rdrcvstat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read interference check - Declare Function cnc_rdintchk Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBINT) As Short - - ' write interference check - Declare Function cnc_wrintchk Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBINT) As Short - - ' read interference check information - Declare Function cnc_rdintinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read work coordinate shift - Declare Function cnc_rdwkcdshft Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBWCSF) As Short - - ' write work coordinate shift - Declare Function cnc_wrwkcdshft Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBWCSF) As Short - - ' read work coordinate shift measure - Declare Function cnc_rdwkcdsfms Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBWCSF) As Short - - ' write work coordinate shift measure - Declare Function cnc_wrwkcdsfms Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBWCSF) As Short - - ' stop the sampling for operator message history - Declare Function cnc_stopomhis Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' start the sampling for operator message history - Declare Function cnc_startomhis Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read operator message history information - Declare Function cnc_rdomhisinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBOMIF) As Short - - ' read operator message history - Declare Function cnc_rdomhistry Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Integer, ByRef c As ODBOMHIS) As Short - - ' read operater message history data F30i - Declare Function cnc_rdomhistry2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBOMHIS2) As Short - - ' write external key operation history for F30i - Declare Function cnc_wrkeyhistry Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Byte) As Short - - ' clear operator message history - Declare Function cnc_clearomhis Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read b-axis tool offset value(area specified) - Declare Function cnc_rdbtofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBBTO) As Short - - ' write b-axis tool offset value(area specified) - Declare Function cnc_wrbtofsr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBBTO) As Short - - ' read b-axis tool offset information - Declare Function cnc_rdbtofsinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBBTLINF) As Short - - ' read b-axis command - Declare Function cnc_rdbaxis Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBBAXIS) As Short - - ' read CNC system soft series and version - Declare Function cnc_rdsyssoft Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSYSS) As Short - - ' read CNC system soft series and version (2) - Declare Function cnc_rdsyssoft2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSYSS2) As Short - - ' read CNC module configuration information - Declare Function cnc_rdmdlconfig Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBMDLC) As Short - - ' read CNC module configuration information 2 - Declare Function cnc_rdmdlconfig2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As SByte) As Short - - ' read processing condition file (processing data) - Declare Function cnc_rdpscdproc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPSCD) As Short - - ' write processing condition file (processing data) - Declare Function cnc_wrpscdproc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPSCD) As Short - - ' read processing condition file (piercing data) - Declare Function cnc_rdpscdpirc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPIRC) As Short - - ' write processing condition file (piercing data) - Declare Function cnc_wrpscdpirc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPIRC) As Short - - ' read processing condition file (edging data) - Declare Function cnc_rdpscdedge Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBEDGE) As Short - - ' write processing condition file (edging data) - Declare Function cnc_wrpscdedge Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBEDGE) As Short - - ' read processing condition file (slope data) - Declare Function cnc_rdpscdslop Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBSLOP) As Short - - ' write processing condition file (slope data) - Declare Function cnc_wrpscdslop Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBSLOP) As Short - - ' read power controll duty data - Declare Function cnc_rdlpwrdty Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBLPWDT) As Short - - ' write power controll duty data - Declare Function cnc_wrlpwrdty Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBLPWDT) As Short - - ' read laser power data - Declare Function cnc_rdlpwrdat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBLOPDT) As Short - - ' read power complement - Declare Function cnc_rdlpwrcpst Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' write power complement - Declare Function cnc_wrlpwrcpst Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read laser assist gas selection - Declare Function cnc_rdlagslt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBLAGSL) As Short - - ' write laser assist gas selection - Declare Function cnc_wrlagslt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBLAGSL) As Short - - ' read laser assist gas flow - Declare Function cnc_rdlagst Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBLAGST) As Short - - ' write laser assist gas flow - Declare Function cnc_wrlagst Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBLAGST) As Short - - ' read laser power for edge processing - Declare Function cnc_rdledgprc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBLEGPR) As Short - - ' write laser power for edge processing - Declare Function cnc_wrledgprc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBLEGPR) As Short - - ' read laser power for piercing - Declare Function cnc_rdlprcprc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBLPCPR) As Short - - ' write laser power for piercing - Declare Function cnc_wrlprcprc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBLPCPR) As Short - - ' read laser command data - Declare Function cnc_rdlcmddat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBLCMDT) As Short - - ' read displacement - Declare Function cnc_rdldsplc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' write displacement - Declare Function cnc_wrldsplc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read error for axis z - Declare Function cnc_rdlerrz Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read active number - Declare Function cnc_rdlactnum Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBLACTN) As Short - - ' read laser comment - Declare Function cnc_rdlcmmt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBLCMMT) As Short - - ' read laser power select - Declare Function cnc_rdlpwrslt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' write laser power select - Declare Function cnc_wrlpwrslt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read laser power controll - Declare Function cnc_rdlpwrctrl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' write laser power controll - Declare Function cnc_wrlpwrctrl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read power correction factor history data - Declare Function cnc_rdpwofsthis Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As ODBPWOFST) As Short - - ' read management time - Declare Function cnc_rdmngtime Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As IODBMNGTIME) As Short - - ' write management time - Declare Function cnc_wrmngtime Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As IODBMNGTIME) As Short - - ' read data related to electrical discharge at power correction ends - Declare Function cnc_rddischarge Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBDISCHRG) As Short - - ' read alarm history data related to electrical discharg - Declare Function cnc_rddischrgalm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As ODBDISCHRGALM) As Short - - ' get date and time from cnc - Declare Function cnc_gettimer Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBTIMER) As Short - - ' set date and time for cnc - Declare Function cnc_settimer Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBTIMER) As Short - - ' read timer data from cnc - Declare Function cnc_rdtimer Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTIME) As Short - - ' write timer data for cnc - Declare Function cnc_wrtimer Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTIME) As Short - - ' read tool controll data - Declare Function cnc_rdtlctldata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBTLCTL) As Short - - ' write tool controll data - Declare Function cnc_wrtlctldata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBTLCTL) As Short - - ' read tool data - Declare Function cnc_rdtooldata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLDT) As Short - - ' read tool data - Declare Function cnc_wrtooldata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLDT) As Short - - ' read multi tool data - Declare Function cnc_rdmultitldt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBMLTTL) As Short - - ' write multi tool data - Declare Function cnc_wrmultitldt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBMLTTL) As Short - - ' read multi tap data - Declare Function cnc_rdmtapdata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBMTAP) As Short - - ' write multi tap data - Declare Function cnc_wrmtapdata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBMTAP) As Short - - ' read multi-piece machining number - Declare Function cnc_rdmultipieceno Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read tool information - Declare Function cnc_rdtoolinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPTLINF) As Short - - ' read safetyzone data - Declare Function cnc_rdsafetyzone Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBSAFE) As Short - - ' write safetyzone data - Declare Function cnc_wrsafetyzone Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBSAFE) As Short - - ' read toolzone data - Declare Function cnc_rdtoolzone Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLZN) As Short - - ' write toolzone data - Declare Function cnc_wrtoolzone Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLZN) As Short - - ' read active toolzone data - Declare Function cnc_rdacttlzone Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBACTTLZN) As Short - - ' read setzone number - Declare Function cnc_rdsetzone Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' write setzone number - Declare Function cnc_wrsetzone Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read block restart information - Declare Function cnc_rdbrstrinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBBRS) As Short - - ' read menu switch signal - Declare Function cnc_rdmenuswitch Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' write menu switch signal - Declare Function cnc_wrmenuswitch Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short) As Short - - ' read tool radius offset for position data - Declare Function cnc_rdradofs Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBROFS) As Short - - ' read tool length offset for position data - Declare Function cnc_rdlenofs Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBLOFS) As Short - - ' read fixed cycle for position data - Declare Function cnc_rdfixcycle Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBFIX) As Short - - ' read coordinate rotate for position data - Declare Function cnc_rdcdrotate Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBROT) As Short - - ' read 3D coordinate convert for position data - Declare Function cnc_rd3dcdcnv Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODB3DCD) As Short - - ' read programable mirror image for position data - Declare Function cnc_rdmirimage Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBMIR) As Short - - ' read scaling for position data - Declare Function cnc_rdscaling Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSCL) As Short - - ' read 3D tool offset for position data - Declare Function cnc_rd3dtofs Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODB3DTO) As Short - - ' read tool position offset for position data - Declare Function cnc_rdposofs Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPOFS) As Short - - ' read hpcc setting data - Declare Function cnc_rdhpccset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBHPST) As Short - - ' write hpcc setting data - Declare Function cnc_wrhpccset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBHPST) As Short - - ' hpcc data auto setting data - Declare Function cnc_hpccatset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read hpcc tuning data ( parameter input ) - Declare Function cnc_rdhpcctupr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBHPPR) As Short - - ' write hpcc tuning data ( parameter input ) - Declare Function cnc_wrhpcctupr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBHPPR) As Short - - ' read hpcc tuning data ( acc input ) - Declare Function cnc_rdhpcctuac Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBHPAC) As Short - - ' write hpcc tuning data ( acc input ) - Declare Function cnc_wrhpcctuac Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBHPAC) As Short - - ' hpcc data auto tuning - Declare Function cnc_hpccattune Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short) As Short - - ' read hpcc fine level - Declare Function cnc_hpccactfine Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' select hpcc fine level - Declare Function cnc_hpccselfine Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read active fixture offset - Declare Function cnc_rdactfixofs Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOFS) As Short - - ' read fixture offset - Declare Function cnc_rdfixofs Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBZOR) As Short - - ' write fixture offset - Declare Function cnc_wrfixofs Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOR) As Short - - ' read tip of tool for 3D handle - Declare Function cnc_rd3dtooltip Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODB3DHDL) As Short - - ' read pulse for 3D handle - Declare Function cnc_rd3dpulse Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODB3DPLS) As Short - - ' read move overrlap of tool for 3D handle - Declare Function cnc_rd3dmovrlap Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODB3DHDL) As Short - - ' read change offset for 3D handle - Declare Function cnc_rd3dofschg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' clear pulse and change offset for 3D handle - Declare Function cnc_clr3dplsmov Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' cycle start - Declare Function cnc_start Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' reset CNC - Declare Function cnc_reset Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' reset CNC - Declare Function cnc_reset2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read axis name - Declare Function cnc_rdaxisname Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As ODBAXISNAME) As Short - - ' read spindle name - Declare Function cnc_rdspdlname Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As ODBSPDLNAME) As Short - - ' read extended axis name - Declare Function cnc_exaxisname Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBEXAXISNAME) As Short - - ' read SRAM variable area for C language executor - Declare Function cnc_rdcexesram Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, <[In], Out> ByVal b() As Byte, ByRef c As Integer) As Short - - ' write SRAM variable area for C language executor - Declare Function cnc_wrcexesram Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b() As Byte, ByRef c As Integer) As Short - - ' read maximum size and linear address of SRAM variable area for C language executor - Declare Function cnc_cexesraminfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As Integer, ByRef c As Integer) As Short - - ' read maximum size of SRAM variable area for C language executor - Declare Function cnc_cexesramsize Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read additional workpiece coordinate systems number - Declare Function cnc_rdcoordnum Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' converts from FANUC code to Shift JIS code - Declare Function cnc_ftosjis Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a() As Byte, <[In], Out> ByVal b() As Char) As Short - - ' Set the unsolicited message parameters - Declare Function cnc_wrunsolicprm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBUNSOLIC) As Short - - ' Get the unsolicited message parameters - Declare Function cnc_rdunsolicprm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBUNSOLIC) As Short - - ' Start of unsolicited message - Declare Function cnc_unsolicstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal hWnd As Integer, ByVal c As Integer, ByVal d As Short, ByRef e As Short) As Short - - ' End of unsolicited message - Declare Function cnc_unsolicstop Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' Reads the unsolicited message data - Declare Function cnc_rdunsolicmsg Lib "FWLIB32.DLL" _ - (ByVal a As Short, ByRef b As IDBUNSOLICMSG) As Short - - ' read cnc maintenance item - Declare Function cnc_rdpm_mcnitem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBITEM) As Short - - ' write machine specific maintenance item - Declare Function cnc_wrpm_mcnitem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBITEM) As Short - - ' read machine specific maintenance item - Declare Function cnc_rdpm_cncitem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBITEM) As Short - - ' read maintenance item status - Declare Function cnc_rdpm_item Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPMAINTE) As Short - - ' write maintenance item status - Declare Function cnc_wrpm_item Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPMAINTE) As Short - - ' Display of optional message - Declare Function cnc_dispoptmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' Reading of answer for optional message display - Declare Function cnc_optmsgans Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' Get CNC Model - Declare Function cnc_getcncmodel Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read number of repeats - Declare Function cnc_rdrepeatval Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read CNC system hard info - Declare Function cnc_rdsyshard Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBSYSH) As Short - - ' read CNC system soft series and version (3) - Declare Function cnc_rdsyssoft3 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As Short, ByRef d As ODBSYSS3) As Short - - ' read digit of program number - Declare Function cnc_progdigit Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read CNC system path information - Declare Function cnc_sysinfo_ex Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSYSEX) As Short - - '------------------ - ' CNC : SERCOS I/F - '------------------ - - ' Get reservation of service channel for SERCOS I/F - Declare Function cnc_srcsrsvchnl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Read ID information of SERCOS I/F - Declare Function cnc_srcsrdidinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Integer, ByVal b As Short, ByVal c As Short, ByRef d As IODBIDINF) As Short - - ' Write ID information of SERCOS I/F - Declare Function cnc_srcswridinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBIDINF) As Short - - ' Start of reading operation data from drive of SERCOS I/F - Declare Function cnc_srcsstartrd Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Short) As Short - - ' Start of writing operation data to drive of SERCOS I/F - Declare Function cnc_srcsstartwrt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Short) As Short - - ' Stop of reading/writing operation data from/to drive of SERCOS I/F - Declare Function cnc_srcsstopexec Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Get execution status of reading/writing operation data of SERCOS I/F - Declare Function cnc_srcsrdexstat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSRCSST) As Short - - ' Read operation data from data buffer for SERCOS I/F - Declare Function cnc_srcsrdopdata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, <[In], Out> ByVal c() As Byte) As Short - - ' Write operation data to data buffer for SERCOS I/F - Declare Function cnc_srcswropdata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c() As Byte) As Short - - ' Free reservation of service channel for SERCOS I/F - Declare Function cnc_srcsfreechnl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Read drive assign of SERCOS I/F - Declare Function cnc_srcsrdlayout Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSRCSLYT) As Short - - ' Read communication phase of drive of SERCOS I/F - Declare Function cnc_srcsrddrvcp Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - - '---------------------------- - ' CNC : Graphic command data - '---------------------------- - - ' Start drawing position - Declare Function cnc_startdrawpos Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Stop drawing position - Declare Function cnc_stopdrawpos Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Start dynamic graphic - Declare Function cnc_startdyngrph Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Stop dynamic graphic - Declare Function cnc_stopdyngrph Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Read graphic command data - Declare Function cnc_rdgrphcmd Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Short) As Short - - ' Update graphic command read pointer - Declare Function cnc_wrgrphcmdptr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' Read cancel flag - Declare Function cnc_rdgrphcanflg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' Clear graphic command - Declare Function cnc_clrgrphcmd Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - - '--------------------------- - ' CNC : Servo learning data - '--------------------------- - - ' Servo learning data read start - Declare Function cnc_svdtstartrd Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' Servo learning data write start - Declare Function cnc_svdtstartwr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' Servo learning data read end - Declare Function cnc_svdtendrd Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Servo learning data write end - Declare Function cnc_svdtendwr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Servo learning data read/write stop - Declare Function cnc_svdtstopexec Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Servo learning data read from I/F buffer - Declare Function cnc_svdtrddata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As Integer, <[In], Out> ByVal c() As Byte) As Short - - ' Servo learning data write to I/F buffer - Declare Function cnc_svdtwrdata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As Integer, ByVal c() As Byte) As Short - - - '---------------------------- - ' CNC : Servo Guide - '---------------------------- - ' Servo Guide (Channel data set) - Declare Function cnc_sdsetchnl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBCHAN) As Short - - ' Servo Guide (Channel data clear) - Declare Function cnc_sdclrchnl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Servo Guide (Sampling start) - Declare Function cnc_sdstartsmpl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, <[In], Out> ByVal c() As Short) As Short - - ' Servo Guide (Sampling cancel) - Declare Function cnc_sdcancelsmpl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Servo Guide (read Sampling data) - Declare Function cnc_sdreadsmpl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByVal b As Integer, ByRef c As ODBSD) As Short - - ' Servo Guide (Sampling end) - Declare Function cnc_sdendsmpl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Servo Guide (read 1 shot data) - Declare Function cnc_sdread1shot Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal c() As Short) As Short - - ' Servo feedback data (Channel data set) - Declare Function cnc_sfbsetchnl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As IDBSFBCHAN) As Short - - ' Servo feedback data (Channel data clear) - Declare Function cnc_sfbclrchnl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Servo feedback data (Sampling start) - Declare Function cnc_sfbstartsmpl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer) As Short - - ' Servo feedback data (Sampling cancel) - Declare Function cnc_sfbcancelsmpl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Servo feedback data (read Sampling data) - Declare Function cnc_sfbreadsmpl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByVal b As Integer, ByRef c As ODBSD) As Short - - ' Servo feedback data (Sampling end) - Declare Function cnc_sfbendsmpl Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - - '---------------------------- - ' CNC : NC display function - '---------------------------- - - ' Start NC display - Declare Function cnc_startnccmd Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Start NC display (2) - Declare Function cnc_startnccmd2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' Stop NC display - Declare Function cnc_stopnccmd Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Get NC display mode - Declare Function cnc_getdspmode Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - - '------------------------------------ - ' CNC : Remote diagnostics function - '------------------------------------ - - ' Start remote diagnostics function - Declare Function cnc_startrmtdgn Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Stop remote diagnostics function - Declare Function cnc_stoprmtdgn Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Read data from remote diagnostics I/F - Declare Function cnc_rdrmtdgn Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, <[In], Out> ByVal b() As Byte) As Short - - ' Write data to remote diagnostics I/F - Declare Function cnc_wrrmtdgn Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByVal b() As Byte) As Short - - ' Set CommStatus of remote diagnostics I/F area - Declare Function cnc_wrcommstatus Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' Check remote diagnostics I/F - Declare Function cnc_chkrmtdgn Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - - '------------------------- - ' CNC : FS18-LN function - '------------------------- - - ' read allowance - Declare Function cnc_allowance Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short - - ' read allowanced state - Declare Function cnc_allowcnd Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBCAXIS) As Short - - ' set work zero - Declare Function cnc_workzero Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOFS) As Short - - ' set slide position - Declare Function cnc_slide Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short - - - '---------------------------------- - ' CNC: Teaching data I/F function - '---------------------------------- - - ' Teaching data get start - Declare Function cnc_startgetdgdat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Teaching data get stop - Declare Function cnc_stopgetdgdat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' Teaching data read - Declare Function cnc_rddgdat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Short) As Short - - ' Teaching data read pointer write - Declare Function cnc_wrdgdatptr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' Teaching data clear - Declare Function cnc_clrdgdat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - - '--------------------------------- - ' CNC : C-EXE SRAM file function - '--------------------------------- - - ' open C-EXE SRAM file - Declare Function cnc_opencexefile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short, ByVal c As Short) As Short - - ' close C-EXE SRAM file - Declare Function cnc_closecexefile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read C-EXE SRAM file - Declare Function cnc_rdcexefile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Byte, ByRef b As Integer) As Short - - ' write C-EXE SRAM file - Declare Function cnc_wrcexefile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a() As Byte, ByRef b As Integer) As Short - - ' read C-EXE SRAM disk directory - Declare Function cnc_cexedirectory Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - <[In], Out> ByVal a() As Char, ByRef b As Short, ByVal c As Short, ByRef d As CFILEINFO) As Short - - - '----- - ' PMC - '----- - - ' read message from PMC to MMC - Declare Function pmc_rdmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Short) As Short - - ' write message from MMC to PMC - Declare Function pmc_wrmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b() As Short) As Short - - ' read message from PMC to MMC(conditional) - Declare Function pmc_crdmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Short) As Short - - ' write message from MMC to PMC(conditional) - Declare Function pmc_cwrmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b() As Short) As Short - - ' read PMC data(area specified) - Declare Function pmc_rdpmcrng Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByRef f As IODBPMC0) As Short - Declare Function pmc_rdpmcrng Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByRef f As IODBPMC1) As Short - Declare Function pmc_rdpmcrng Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByRef f As IODBPMC2) As Short - - ' write PMC data(area specified) - Declare Function pmc_wrpmcrng Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As IODBPMC0) As Short - Declare Function pmc_wrpmcrng Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As IODBPMC1) As Short - Declare Function pmc_wrpmcrng Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As IODBPMC2) As Short - - ' read data from extended backup memory - Declare Function pmc_rdkpm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, <[In], Out> ByVal b() As Byte, ByVal c As Integer) As Short - - ' write data to extended backup memory - Declare Function pmc_wrkpm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b() As Byte, ByVal c As Integer) As Short - - ' read data from extended backup memory 2 - Declare Function pmc_rdkpm2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, <[In], Out> ByVal b() As Byte, ByVal c As Integer) As Short - - ' write data to extended backup memory 2 - Declare Function pmc_wrkpm2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b() As Byte, ByVal c As Integer) As Short - - ' read maximum size of extended backup memory - Declare Function pmc_kpmsiz Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' read informations of PMC data - Declare Function pmc_rdpmcinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBPMCINF) As Short - - ' read PMC parameter data table contorol data - Declare Function pmc_rdcntldata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPMCCNTL) As Short - - ' write PMC parameter data table contorol data - Declare Function pmc_wrcntldata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPMCCNTL) As Short - - ' read PMC parameter data table contorol data group number - Declare Function pmc_rdcntlgrp Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' write PMC parameter data table contorol data group number - Declare Function pmc_wrcntlgrp Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read PMC alarm message - Declare Function pmc_rdalmmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As Short, ByRef d As ODBPMCALM) As Short - - ' get detail error for pmc - Declare Function pmc_getdtailerr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPMCERR) As Short - - ' read PMC memory data - Declare Function pmc_rdpmcmem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Integer, ByVal c As Integer, <[In], Out> ByVal d() As Byte) As Short - - ' write PMC memory data - Declare Function pmc_wrpmcmem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Integer, ByVal c As Integer, ByVal d() As Byte) As Short - - ' read PMC-SE memory data - Declare Function pmc_rdpmcsemem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Integer, ByVal c As Integer, <[In], Out> ByVal d() As Byte) As Short - - ' write PMC-SE memory data - Declare Function pmc_wrpmcsemem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, - ByVal a As Short, ByVal b As Integer, ByVal c As Integer, ByVal d() As Byte) As Short - - ' read pmc title data - Declare Function pmc_rdpmctitle Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPMCTITLE) As Short - - ' read PMC parameter start - Declare Function pmc_rdprmstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read PMC parameter - Declare Function pmc_rdpmcparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByVal b() As Byte) As Short - - ' read PMC parameter end - Declare Function pmc_rdprmend Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' write PMC parameter start - Declare Function pmc_wrprmstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' write PMC parameter - Declare Function pmc_wrpmcparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByVal b() As Byte) As Short - - ' write PMC parameter end - Declare Function pmc_wrprmend Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read PMC data - ' Declare Function pmc_rdpmcrng_ext Lib "FWLIB32.DLL" _ - ' ( ByVal FlibHndl As Integer, _ - ' ByVal a As Short, ByRef b As IODBPMCEXT ) As Short - - ' write PMC I/O link assigned data - ' Declare Function pmc_wriolinkdat Lib "FWLIB32.DLL" _ - ' ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b() As Byte, ByVal c As Integer ) As Short - - ' read PMC address information - Declare Function pmc_rdpmcaddr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPMCADR) As Short - - ' select PMC unit - Declare Function pmc_select_pmc_unit Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer) As Short - - ' get current PMC unit - Declare Function pmc_get_current_pmc_unit Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' get number of PMC - Declare Function pmc_get_number_of_pmc Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer) As Short - - ' get PMC unit types - Declare Function pmc_get_pmc_unit_types Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a() As Integer, ByVal b As Integer) As Short - - ' set PMC Timer type - Declare Function pmc_set_timer_type Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c() As Short) As Short - - ' get PMC Timer type - Declare Function pmc_get_timer_type Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, <[In](), Out()> ByVal c() As Short) As Short - - '---------------------------- - ' PMC : PROFIBUS function - '---------------------------- - - ' read PROFIBUS configration data - Declare Function pmc_prfrdconfig Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBPRFCNF) As Short - - ' read bus parameter for master function - Declare Function pmc_prfrdbusprm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBBUSPRM) As Short - - ' write bus parameter for master function - Declare Function pmc_prfwrbusprm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBBUSPRM) As Short - - ' read slave parameter for master function - Declare Function pmc_prfrdslvprm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM) As Short - Declare Function pmc_prfrdslvprm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM2) As Short - - ' write slave parameter for master function - Declare Function pmc_prfwrslvprm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM) As Short - Declare Function pmc_prfwrslvprm Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM2) As Short - - ' read allocation address for master function - Declare Function pmc_prfrdallcadr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPRFADR) As Short - - ' set allocation address for master function - Declare Function pmc_prfwrallcadr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPRFADR) As Short - - ' read allocation address for slave function - Declare Function pmc_prfrdslvaddr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBSLVADR) As Short - - ' set allocation address for slave function - Declare Function pmc_prfwrslvaddr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBSLVADR) As Short - - ' read status for slave function - Declare Function pmc_prfrdslvstat Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBSLVST) As Short - - ' Reads DI/DO parameter of master function - Declare Function pmc_prfrddido Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBDIDO) As Short - - ' Writes DI/DO parameter of master function - Declare Function pmc_prfwrdido Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBDIDO) As Short - - ' Reads slave index data of master function */ - Declare Function pmc_prfrdslvid Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVID) As Short - - ' Writes slave index data of master function - Declare Function pmc_prfwrslvid Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVID) As Short - - ' Reads slave parameter of master function(2) - Declare Function pmc_prfrdslvprm2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM3) As Short - - ' Writes slave parameter of master function(2) - Declare Function pmc_prfwrslvprm2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM3) As Short - - ' Reads indication address of master function - Declare Function pmc_prfrdindiadr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBINDEADR) As Short - - ' Writes indication address of master function - Declare Function pmc_prfwrindiadr Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBINDEADR) As Short - - ' Reads operation mode of master function - Declare Function pmc_prfrdopmode Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' Writes operation mode of master function - Declare Function pmc_prfwropmode Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short) As Short - - '-----------------------------------------------v - ' DS : Data server & Ethernet board function ' - '-----------------------------------------------' - - ' read the parameter of the Ethernet board */ - Declare Function etb_rdparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBETP_TCP) As Short - Declare Function etb_rdparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBETP_HOST) As Short - Declare Function etb_rdparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBETP_FTP) As Short - Declare Function etb_rdparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBETP_ETB) As Short - - ' write the parameter of the Ethernet board */ - Declare Function etb_wrparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBETP_TCP) As Short - Declare Function etb_wrparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBETP_HOST) As Short - Declare Function etb_wrparam Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As IODBETP_FTP) As Short - - ' read the error message of the Ethernet board */ - Declare Function etb_rderrmsg Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBETMSG) As Short - - ' read the mode of the Data Server - Declare Function ds_rdmode Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' write the mode of the Data Server - Declare Function ds_wrmode Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' read information of the Data Server's HDD - Declare Function ds_rdhddinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As ODBHDDINF) As Short - - ' read the file list of the Data Server's HDD - Declare Function ds_rdhdddir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer, ByRef c As Short, ByRef d As ODBHDDDIR) As Short - - ' delete the file of the Data Serve's HDD - Declare Function ds_delhddfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' copy the file of the Data Server's HDD - Declare Function ds_copyhddfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short - - ' change the file name of the Data Server's HDD */ - Declare Function ds_renhddfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short - - ' execute the PUT command of the FTP - Declare Function ds_puthddfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short - - ' execute the MPUT command of the FTP - Declare Function ds_mputhddfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' read information of the host - Declare Function ds_rdhostinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByVal b As Integer) As Short - - ' read the file list of the host - Declare Function ds_rdhostdir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As Short, ByRef d As ODBHOSTDIR, ByVal e As Integer) As Short - - ' read the file list of the host 2 - Declare Function ds_rdhostdir2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As Short, ByRef d As Integer, ByRef e As ODBHOSTDIR, ByVal f As Integer) As Short - - ' delete the file of the host - Declare Function ds_delhostfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer) As Short - - ' execute the GET command of the FTP - Declare Function ds_gethostfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short - - ' execute the MGET command of the FTP - Declare Function ds_mgethostfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' read the execution result - Declare Function ds_rdresult Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' stop the execution of the command - Declare Function ds_cancel Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read the file from the Data Server - Declare Function ds_rdncfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String) As Short - - ' read the file from the Data Server 2 - Declare Function ds_rdncfile2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' write the file to the Data Server - Declare Function ds_wrncfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer) As Short - - ' read the file name for the DNC operation in the Data Server's HDD - Declare Function ds_rddnchddfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, <[In](), Out()> ByVal a() As Char) As Short - '(ByVal FlibHndl As Integer, ByRef a As String) As Short - - ' write the file name for the DNC operation in the Data Server's HDD - Declare Function ds_wrdnchddfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' read the file name for the DNC operation in the host - Declare Function ds_rddnchostfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, <[In](), Out()> ByVal b() As Char) As Short - - ' write the file name for the DNC operation in the host - Declare Function ds_wrdnchostfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' read the connecting host number - Declare Function ds_rdhostno Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' read maintenance information - Declare Function ds_rdmntinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As DSMNTINFO) As Short - - ' check the Data Server's HDD - Declare Function ds_checkhdd Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' format the Data Server's HDD - Declare Function ds_formathdd Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' create the directory in the Data Server's HDD */ - Declare Function ds_makehdddir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' delete directory in the Data Server's HDD - Declare Function ds_delhdddir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' change the current directory - Declare Function ds_chghdddir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' execute the PUT command according to the list file - Declare Function ds_lputhddfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' delete files according to the list file - Declare Function ds_ldelhddfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' execute the GET command according to the list file - Declare Function ds_lgethostfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' read the directory for M198 operation - Declare Function ds_rdm198hdddir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - '(ByVal FlibHndl As Integer, ByVal a() As Byte) As Short - - ' write the directory for M198 operation - Declare Function ds_wrm198hdddir Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read the connecting host number for the M198 operation - Declare Function ds_rdm198host Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short) As Short - - ' write the connecting host number for the M198 operation - Declare Function ds_wrm198host Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' write the connecting host number - Declare Function ds_wrhostno Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short) As Short - - ' search string in data server program - Declare Function ds_searchword Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String) As Short - - ' read the searching result - Declare Function ds_searchresult Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' read file in the Data Server's HDD - Declare Function ds_rdfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short - - ' write file in the Data Server's HDD - Declare Function ds_wrfile Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short - - '-------------------------- - ' HSSB multiple connection - '-------------------------- - - ' read number of node - Declare Function cnc_rdnodenum Lib "FWLIB32.DLL" _ - (ByRef a As Integer) As Short - - ' read node informations - Declare Function cnc_rdnodeinfo Lib "FWLIB32.DLL" _ - (ByVal a As Integer, ByRef b As ODBNODE) As Short - - ' set default node number - Declare Function cnc_setdefnode Lib "FWLIB32.DLL" _ - (ByVal a As Integer) As Short - - ' allocate library handle 2 - Declare Function cnc_allclibhndl2 Lib "FWLIB32.DLL" _ - (ByVal node As Integer, ByRef FlibHndl As Integer) As Short - - - '--------------------- - ' Ethernet connection - '--------------------- - - ' allocate library handle 3 - Declare Function cnc_allclibhndl3 Lib "FWLIB32.DLL" _ - (ByVal ip As String, ByVal port As Short, ByVal timeout As Integer, ByRef FlibHndl As Integer) As Short - - ' allocate library handle 4 - Declare Function cnc_allclibhndl4 Lib "FWLIB32.DLL" _ - (ByVal ip As String, ByVal port As Short, ByVal timeout As Integer, ByVal id As Integer, ByRef FlibHndl As Integer) As Short - - ' set timeout for socket - Declare Function cnc_settimeout Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer) As Short - - ' reset all socket connection - Declare Function cnc_resetconnect Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer) As Short - - ' get option state for FOCAS1/Ethernet - Declare Function cnc_getfocas1opt Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Integer) As Short - - ' read Ethernet board information - Declare Function cnc_rdetherinfo Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As Short) As Short - -End Class 'Focas1 diff --git a/IOB-WIN/CncLib/CNC/CNC.OSAI/CNC.OSAI.vb b/IOB-WIN/CncLib/CNC/CNC.OSAI/CNC.OSAI.vb deleted file mode 100644 index 8e331eb..0000000 --- a/IOB-WIN/CncLib/CNC/CNC.OSAI/CNC.OSAI.vb +++ /dev/null @@ -1,910 +0,0 @@ -Imports Microsoft.Win32 - -Imports T_memType = System.Collections.Generic.Dictionary(Of System.Int32, System.Collections.Generic.Dictionary(Of System.Int32, System.Object)) -Imports T_memDim = System.Collections.Generic.Dictionary(Of System.Int32, System.Object) -Imports CncLib.Config.Settings - -Namespace CNC - - Partial Public Class OSAI - Inherits CNC - - 'Variabili per server Cndex (Osai) - Protected _szRemoteName As String - Protected _UserSession As Short - Protected _ErrClass As Integer - Protected _ErrNum As Integer - 'Friend Cndex As CndexLinkDotNet.Cndex - Private nReturn As Short - - Protected Const ERRORE = 0 - - Public Enum MemTypeWord - I_CODE = 0 - O_CODE = 1 - - MW_CODE = 20 - GW_CODE = 21 - SW_CODE = 22 - - PW_CODE = 62 - UW_CODE = 63 - End Enum - Public Enum MemTypeDouble - MD_CODE = 40 - GD_CODE = 41 - SD_CODE = 42 - PD_CODE = 43 - UD_CODE = 44 - L_CODE = 145 - End Enum - - Public Enum MemTypeText - LS_CODE = 18 - AA_CODE = 28 - A_CODE = 45 - SC_CODE = 50 - SYMO_A_CODE = 102 - End Enum - - Private nLicenzaTmp As Integer - Public Overrides Property Licenza() As Integer - Get - Return nLicenzaTmp - End Get - Set(ByVal value As Integer) - nLicenzaTmp = value - End Set - End Property - - Private bLicenzaScadutaTmp As Boolean - Public Overrides Property LicenzaScaduta() As Boolean - Get - Return bLicenzaScadutaTmp - End Get - Set(ByVal value As Boolean) - bLicenzaScadutaTmp = value - End Set - End Property - - Public Sub New(ByRef szRemoteName As String) - Me.New() - - Try - 'Cndex = New CndexLinkDotNet.Cndex - Catch ex As Exception - MsgBox(ex.Message) - End Try - - _szRemoteName = szRemoteName - End Sub - - Public Sub New() - MyBase.New() - _Type = NcType.OSAI - - 'Inizializzo le variabili - Me._Descrizione = "NC OSAI" & vbNewLine - Me._Descrizione = Me._Descrizione & "RemoteName: " & _szRemoteName - End Sub - - Public Overrides Sub Connect(Optional ByRef szStatus As String = "") - Dim nReturn As Short - Dim pPhase As Short - Dim szReturn As String = "" - Dim sValue(0) As Short - Dim TimeStart As Date - - 'CncLib.App.Runtime.Log.WI("TRY OpenSession CNC.OSAI", "RemoteName=" & _szRemoteName, CLog.Lev.Secondary) - 'nReturn = Cndex.OpenSession_C(_szRemoteName, _UserSession, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("OpenSession_C({0},{1}) Connect CNC.OSAI", _szRemoteName, _UserSession), szReturn) Then - Throw New NcException(szReturn) - Else - 'CncLib.App.Runtime.Log.WI("OK OpenSession CNC.OSAI", , CLog.Lev.Secondary) - 'leggo in che fase di boot mi trovo - 'nReturn = Cndex.BootPhaseEnquiry_C(_UserSession, pPhase, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("BootPhaseEnquiry_C({0},{1}) Connect CNC.OSAI", _UserSession, pPhase), szReturn) Then - _bConnected = False - Throw New NcException(szReturn) - Else - 'verifico che il sistema si trovi in una fase operativa "stabile" - 'CncLib.App.Runtime.Log.WI("OK BootPhaseEnquiry CNC.OSAI", "Phase=" & pPhase, CLog.Lev.Secondary) - If pPhase = 4 Then 'SYSTEM_UP_PHASE - - 'leggo matricola e verifico che sia diversa da zero - TimeStart = Now - Do - Select Case Settings.MemoryMapping - Case MemoryMapping.ElsManager, - MemoryMapping.Default - 'Matricola - nReturn = O_RW_Short(False, MemTypeWord.MW_CODE, 3187, sValue) - - Case MemoryMapping.ToolManager, - MemoryMapping.ToolTable - 'Matricola - nReturn = O_RW_Short(False, MemTypeWord.MW_CODE, 3403, sValue) - End Select - - If sValue(0) > 0 Then - Threading.Thread.Sleep(500) - Exit Do - End If - - If (Now - TimeStart).Seconds > 30 Then - Select Case MsgBox("Matricola non inizializzata in 30 secondi: Verificare KMG o PLC", MsgBoxStyle.Exclamation + MsgBoxStyle.RetryCancel) - Case MsgBoxResult.Retry : TimeStart = Now - Case MsgBoxResult.Cancel : Exit Do - End Select - End If - 'CncLib.App.Runtime.Log.WI("OK Connect CNC.OSAI but SERIAL NUMBER NOT YET INITIALIZED", , CLog.Lev.Secondary) - 'Application.DoEvents() - Threading.Thread.Sleep(500) 'aspetto 500ms prima di ritentare - 'Application.DoEvents() - Loop - - _bConnected = True - 'CncLib.App.Runtime.Log.WI("OK Connect CNC.OSAI", "Connected=" & _bConnected, CLog.Lev.Secondary) - Else - _bConnected = False - 'CncLib.App.Runtime.Log.WI("OK Connect CNC.OSAI but PHASE NOT OK", "Phase=" & pPhase & " Connected=" & _bConnected, CLog.Lev.Secondary) - Throw New NcException("ERR BootPhase NOT OK CNC.OSAI") - End If - End If - End If - - End Sub - - Public Overrides Sub Disconnect(Optional ByRef szStatus As String = "") - Dim nReturn As Short - Dim bRet As Boolean - Dim szReturn As String = "" - - 'chiudo la sessione - 'nReturn = Cndex.CloseSession_C(_UserSession, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("CloseSession_C({0}) Disconnect CNC.OSAI", _UserSession), szReturn) Then - _bConnected = False '? - bRet = False - Throw New NcException(szReturn) - Else - _bConnected = False - bRet = True - End If - - End Sub - - ''' - ''' Legge le memorie di configurazione dal cn - ''' - Public Overrides Sub GetStaticData() - Dim sValue(0) As Short - - If Not bStaticDataReaded Then - 'Try - Select Case Settings.MemoryMapping - Case MemoryMapping.ElsManager, - MemoryMapping.Default - 'Matricola - 'nReturn = Cndex.ReadVarWord_C(_UserSession, Cndex.MW_CODE, 0, 3187, 1, sValue, _ErrClass, _ErrNum) - If nReturn = ERRORE Then - 'CncLib.App.Runtime.Log.WW("ERR GetStaticData CNC.OSAI", "Return=" & nReturn & " ErrClass=" & _ErrClass & " ErrNum=0x" & Hex(_ErrNum)) - Else - Me._Matricola = sValue(0) - End If - 'Teste - 'nReturn = Cndex.ReadVarWord_C(_UserSession, Cndex.MW_CODE, 0, 3161, 1, sValue, _ErrClass, _ErrNum) - If nReturn = ERRORE Then - 'CncLib.App.Runtime.Log.WW("ERR GetStaticData CNC.OSAI", "Return=" & nReturn & " ErrClass=" & _ErrClass & " ErrNum=0x" & Hex(_ErrNum)) - Else - Me._Teste = sValue(0) - End If - 'Magazzini - 'nReturn = Cndex.ReadVarWord_C(_UserSession, Cndex.MW_CODE, 0, 3163, 1, sValue, _ErrClass, _ErrNum) - If nReturn = ERRORE Then - 'CncLib.App.Runtime.Log.WW("ERR GetStaticData CNC.OSAI", "Return=" & nReturn & " ErrClass=" & _ErrClass & " ErrNum=0x" & Hex(_ErrNum)) - Else - Me._Magazzini = sValue(0) - End If - 'Manine per Magazzino - ReDim Me._ManineMagazzino(Me._Magazzini - 1) - For i = 1 To Me._Magazzini - If i <= 8 Then - 'nReturn = Cndex.ReadVarWord_C(_UserSession, Cndex.MW_CODE, 0, 3164 + (i - 1), 1, sValue, _ErrClass, _ErrNum) - If nReturn = ERRORE Then - 'CncLib.App.Runtime.Log.WW("ERR GetStaticData CNC.OSAI", "Return=" & nReturn & " ErrClass=" & _ErrClass & " ErrNum=0x" & Hex(_ErrNum)) - Else - Me._ManineMagazzino(i - 1) = sValue(0) - End If - Else '8-20 - 'nReturn = Cndex.ReadVarWord_C(_UserSession, Cndex.MW_CODE, 0, 3188 + (i - 1), 1, sValue, _ErrClass, _ErrNum) - If nReturn = ERRORE Then - 'CncLib.App.Runtime.Log.WW("ERR GetStaticData CNC.OSAI", "Return=" & nReturn & " ErrClass=" & _ErrClass & " ErrNum=0x" & Hex(_ErrNum)) - Else - Me._ManineMagazzino(i - 1) = sValue(0) - End If - - End If - Next i - - Case MemoryMapping.ToolManager, - MemoryMapping.ToolTable - 'Matricola - 'nReturn = Cndex.ReadVarWord_C(_UserSession, Cndex.MW_CODE, 0, 3403, 1, sValue, _ErrClass, _ErrNum) - If nReturn = ERRORE Then - 'CncLib.App.Runtime.Log.WW("ERR GetStaticData CNC.OSAI", "Return=" & nReturn & " ErrClass=" & _ErrClass & " ErrNum=0x" & Hex(_ErrNum)) - Else - Me._Matricola = sValue(0) - End If - 'Teste - 'nReturn = Cndex.ReadVarWord_C(_UserSession, Cndex.MW_CODE, 0, 3405, 1, sValue, _ErrClass, _ErrNum) - If nReturn = ERRORE Then - 'CncLib.App.Runtime.Log.WW("ERR GetStaticData CNC.OSAI", "Return=" & nReturn & " ErrClass=" & _ErrClass & " ErrNum=0x" & Hex(_ErrNum)) - Else - Me._Teste = sValue(0) - End If - 'Magazzini - 'nReturn = Cndex.ReadVarWord_C(_UserSession, Cndex.MW_CODE, 0, 3407, 1, sValue, _ErrClass, _ErrNum) - If nReturn = ERRORE Then - 'CncLib.App.Runtime.Log.WW("ERR GetStaticData CNC.OSAI", "Return=" & nReturn & " ErrClass=" & _ErrClass & " ErrNum=0x" & Hex(_ErrNum)) - Else - Me._Magazzini = sValue(0) - End If - 'Manine per Magazzino - Dim bPari As Boolean - Dim nTmp As Integer - ReDim Me._ManineMagazzino(Me._Magazzini - 1) - If Me._Magazzini Mod 2 = 0 Then 'pari - bPari = True - nTmp = Me._Magazzini / 2 - Else 'dispari - nTmp = Int(Me._Magazzini / 2) + 1 - End If - For i = 1 To nTmp - 'nReturn = Cndex.ReadVarWord_C(_UserSession, Cndex.MW_CODE, 0, 5520 + (i - 1), 1, sValue, _ErrClass, _ErrNum) - Me._ManineMagazzino(i * 2 - 2) = ShortToByte(sValue(0), LOW_ORDER) - If Not (Not bPari And i = nTmp) Then Me._ManineMagazzino(i * 2 - 1) = ShortToByte(sValue(0), HIGH_ORDER) - Next i - End Select - - Me._MaxUtensiliGestibili = 300 'TODO IMPLEMENTARE - Me._MaxIdUtensile = 300 'TODO IMPLEMENTARE - - 'ZoomSpeed - Select Case Settings.MemoryMapping - Case MemoryMapping.ElsManager - O_RW_Short(R, MemTypeWord.MW_CODE, 3921, sValue) - Case MemoryMapping.ToolManager - O_RW_Short(R, MemTypeWord.MW_CODE, 5670, sValue) - Case MemoryMapping.ToolTable - O_RW_Short(R, MemTypeWord.MW_CODE, 3425, sValue) - End Select - If sValue(0) > 0 And sValue(0) <= 100 Then - Me._ZoomSpeed = sValue(0) - Else - Me._ZoomSpeed = 1 - End If - - bStaticDataReaded = True - - 'Catch ex As NcException - ' Me.CncException(ex.Message) - 'End Try - - End If - End Sub - - - ''' - ''' Legge o scrive Boolean da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Bit della memoria - ''' Valore da scrivere su scrittura e letto su lettura - ''' True se andata a buon fine - Public Overridable Overloads Function O_RW_Boolean(ByVal bWrite As Boolean, ByVal MemType As MemTypeWord, ByVal MemIndex As Integer, ByVal MemBit As Integer, ByRef Value As Boolean) As Boolean - Dim szReturn As String = "" - Dim nValue(0) As Short - - 'leggo la memoria - 'nReturn = Cndex.ReadVarWord_C(_UserSession, MemType, 0, MemIndex, nValue.Length, nValue, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("ReadVarWord_C({0},{1},{2}) O_RW_Boolean CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - Else - If bWrite Then ' *** Write - If Value Then 'True - nValue(0) = nValue(0) Or UnsignedToShort(2 ^ MemBit) - Else 'False - nValue(0) = nValue(0) And Not UnsignedToShort(2 ^ MemBit) - End If - 'nReturn = Cndex.WriteVarWord_C(_UserSession, MemType, 0, MemIndex, nValue.Length, nValue, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("WriteVarWord_C({0},{1},{2}) O_RW_Boolean CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - If (nValue(0) And (2 ^ MemBit)) = (2 ^ MemBit) Then 'True - Value = True - Else 'False - Value = False - End If - End If - End If - - Return True - End Function - - ''' - ''' Legge o scrive Byte da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Ordine di partenza LOW_ORDER = 0 HIGH_ORDER = 1 - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overridable Overloads Function O_RW_Byte(ByVal bWrite As Boolean, ByVal MemType As MemTypeWord, ByVal MemIndex As Integer, ByVal MemOrderStart As Integer, ByRef Value() As Byte) As Boolean - Dim szReturn As String = "" - Dim bStartHigh As Boolean = MemOrderStart - Dim bEndDispari As Boolean = (Value.Length + MemOrderStart) Mod 2 - Dim cStart, cEnd As Byte - Dim ValueTmp(((Value.Length + MemOrderStart) \ 2) + ((Value.Length + MemOrderStart) Mod 2) - 1) As Short - - - If bWrite Then ' *** Write - 'se comincio con hi leggo la prima memo - If bStartHigh Then - Dim ValStartTmp(0) As Short - 'nReturn = Cndex.ReadVarWord_C(_UserSession, MemType, 0, MemIndex, ValStartTmp.Length, ValStartTmp, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("ReadVarWord_C({0},{1},{2}) O_RW_Byte CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - Else - cStart = ShortToByte(ValStartTmp(0), LOW_ORDER) - End If - End If - - 'se finisco dispari, leggo l'ultima memo - If bEndDispari Then - Dim ValEndTmp(0) As Short - 'nReturn = Cndex.ReadVarWord_C(_UserSession, MemType, 0, MemIndex + ValueTmp.Length - 1, ValEndTmp.Length, ValEndTmp, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("ReadVarWord_C({0},{1},{2}) O_RW_Byte CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - Else - cEnd = ShortToByte(ValEndTmp(0), HIGH_ORDER) - End If - End If - - For i = 0 To ValueTmp.Length - 1 - Dim cLow, cHigh As Byte - 'Low - If i = 0 AndAlso bStartHigh Then - cLow = cStart - Else - cLow = Value(i * 2 - MemOrderStart) - End If - 'High - If i = (ValueTmp.Length - 1) AndAlso bEndDispari Then - cHigh = cEnd - Else - cHigh = Value(i * 2 + 1 - MemOrderStart) - End If - - ValueTmp(i) = ByteToShort(cLow, cHigh) - Next - - 'nReturn = Cndex.WriteVarWord_C(_UserSession, MemType, 0, MemIndex, Value.Length, ValueTmp, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("WriteVarWord_C({0},{1},{2}) O_RW_DWord CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - 'nReturn = Cndex.ReadVarWord_C(_UserSession, MemType, 0, MemIndex, ValueTmp.Length, ValueTmp, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("ReadVarWord_C({0},{1},{2}) O_RW_Byte CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - Else - For i = 0 To Value.Length - 1 - Value(i) = ShortToByte(ValueTmp((i + MemOrderStart) \ 2), (i + MemOrderStart) Mod 2) - Next - End If - End If - - Return True - End Function - - - ''' - ''' Legge o scrive Word da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overridable Overloads Function O_RW_Word(ByVal bWrite As Boolean, ByVal MemType As MemTypeWord, ByVal MemIndex As Integer, ByRef Value() As UShort) As Boolean - Dim szReturn As String = "" - Dim nValue(Value.Length - 1) As Short - - If bWrite Then ' *** Write - For i = 0 To Value.Length - 1 - nValue(i) = UnsignedToShort(Value(i)) - Next - 'nReturn = Cndex.WriteVarWord_C(_UserSession, MemType, 0, MemIndex, Value.Length, nValue, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("WriteVarWord_C({0},{1},{2}) O_RW_Word CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - 'nReturn = Cndex.ReadVarWord_C(_UserSession, MemType, 0, MemIndex, Value.Length, nValue, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("ReadVarWord_C({0},{1},{2}) O_RW_Word CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - For i = 0 To Value.Length - 1 - Value(i) = ShortToUnsigned(nValue(i)) - Next - End If - - Return True - End Function - - - - ''' - ''' Legge o scrive Short da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overridable Overloads Function O_RW_Short(ByVal bWrite As Boolean, ByVal MemType As MemTypeWord, ByVal MemIndex As Integer, ByRef Value() As Short) As Boolean - Dim szReturn As String = "" - - If bWrite Then ' *** Write - 'nReturn = Cndex.WriteVarWord_C(_UserSession, MemType, 0, MemIndex, Value.Length, Value, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("WriteVarWord_C({0},{1},{2}) O_RW_Word CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - 'nReturn = Cndex.ReadVarWord_C(_UserSession, MemType, 0, MemIndex, Value.Length, Value, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("ReadVarWord_C({0},{1},{2}) O_RW_Word CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - End If - - Return True - End Function - - - ''' - ''' Legge o scrive DWord da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overridable Overloads Function O_RW_DWord(ByVal bWrite As Boolean, ByVal MemType As MemTypeWord, ByVal MemIndex As Integer, ByRef Value() As UInteger) As Boolean - Dim szReturn As String = "" - Dim ValueTmp(Value.Length * 2 - 1) As Short - - If bWrite Then ' *** Write - For i = 0 To Value.Length - 1 - ValueTmp(i * 2) = DWordToShort(Value(i), LOW_ORDER) - ValueTmp(i * 2 + 1) = DWordToShort(Value(i), HIGH_ORDER) - Next - 'nReturn = Cndex.WriteVarWord_C(_UserSession, MemType, 0, MemIndex, ValueTmp.Length, ValueTmp, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("WriteVarWord_C({0},{1},{2}) O_RW_DWord CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - 'nReturn = Cndex.ReadVarWord_C(_UserSession, MemType, 0, MemIndex, ValueTmp.Length, ValueTmp, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("ReadVarWord_C({0},{1},{2}) O_RW_DWord CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - Else - For i = 0 To Value.Length - 1 - Value(i) = ShortsToDWord(ValueTmp(i * 2), ValueTmp(i * 2 + 1)) - Next - End If - End If - - Return True - End Function - - - - ''' - ''' Legge o scrive DWord da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overridable Overloads Function O_RW_Integer(ByVal bWrite As Boolean, ByVal MemType As MemTypeWord, ByVal MemIndex As Integer, ByRef Value() As Integer) As Boolean - Dim szReturn As String = "" - Dim ValueTmp(Value.Length * 2 - 1) As Short - - If bWrite Then ' *** Write - For i = 0 To Value.Length - 1 - ValueTmp(i * 2) = IntegerToShort(Value(i), LOW_ORDER) - ValueTmp(i * 2 + 1) = IntegerToShort(Value(i), HIGH_ORDER) - Next - 'nReturn = Cndex.WriteVarWord_C(_UserSession, MemType, 0, MemIndex, ValueTmp.Length, ValueTmp, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("WriteVarWord_C({0},{1},{2}) O_RW_DWord CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - 'nReturn = Cndex.ReadVarWord_C(_UserSession, MemType, 0, MemIndex, ValueTmp.Length, ValueTmp, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("ReadVarWord_C({0},{1},{2}) O_RW_DWord CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException(szReturn) - Return False - Else - For i = 0 To Value.Length - 1 - Value(i) = ShortsToInteger(ValueTmp(i * 2), ValueTmp(i * 2 + 1)) - Next - End If - End If - - Return True - End Function - - - - ''' - ''' Legge o scrive Double da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overridable Overloads Function O_RW_Double(ByVal bWrite As Boolean, ByVal MemType As MemTypeDouble, ByVal MemIndex As Integer, ByRef Value() As Double) As Boolean - Dim szReturn As String = "" - - If bWrite Then ' *** Write - 'nReturn = Cndex.WriteVarDouble_C(_UserSession, MemType, 0, MemIndex, Value.Length, Value, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("WriteVarDouble_C({0},{1},{2}) O_RW_Double CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException("ERR WriteVarDouble_C O_RW_Double CNC.OSAI") - Return False - End If - - Else ' ************* Read - 'nReturn = Cndex.ReadVarDouble_C(_UserSession, MemType, 0, MemIndex, Value.Length, Value, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("ReadVarDouble_C({0},{1},{2}) O_RW_Double CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException("ERR ReadVarDouble_C O_RW_Double CNC.OSAI") - Return False - End If - End If - - Return True - End Function - - ''' - ''' Legge o scrive Stringhe da MEMORIE SC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Indice di memoria - ''' Lunghezza caratteri - ''' Stringa da scrivere su scrittura o leggere su lettura - ''' True se andata a buon fine - Public Overridable Overloads Function O_RW_Text(ByVal bWrite As Boolean, ByVal MemType As MemTypeText, ByVal MemIndex As Integer, ByVal MemLength As Integer, ByRef Value As String) As Boolean - Dim szReturn As String = "" - - If bWrite Then ' *** Write - 'nReturn = Cndex.WriteVarText_C(_UserSession, MemType, 1, MemIndex, MemLength, Value, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("WriteVarText_C({0},{1},{2}) O_RW_Text CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException("ERR WriteVarText_C O_RW_Text CNC.OSAI") - Return False - End If - - Else ' ************* Read - 'nReturn = Cndex.ReadVarText_C(_UserSession, MemType, 1, MemIndex, MemLength, Value, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, String.Format("ReadVarText_C({0},{1},{2}) O_RW_Text CNC.OSAI", [Enum].GetName(MemType.GetType, MemType), MemIndex, Value), szReturn) Then - Throw New NcException("ERR ReadVarText_C O_RW_Text CNC.OSAI") - Return False - End If - End If - - Return True - End Function - - - ''' - ''' Legge o scrive Length and Radius Offset da tabella Utensili CN - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Numero dell'offset utensile - Public Overridable Function O_RW_ToolOffset(ByVal bWrite As Boolean, ByVal ToolOffsetNumber As Integer, ByRef CutterRadius_Wear As Double, ByRef CutterRadius_Geometry As Double, ByRef ToolLenght_Wear As Double, ByRef ToolLenght_Geometry As Double) As Boolean - Return False - End Function - - - - ''' - ''' Blocca l'accesso alla tabella dei correttori - ''' - ''' =True: Blocca la tabella, =False: Sblocca la tabella - ''' True se andata a buon fine - Public Overridable Function O_LockOffsetTable(ByVal Lock As Boolean) As Boolean - Return False - End Function - - - ''' - ''' Legge il numero del processo attivo - ''' - ''' Valore di ritorno del processo selezionato - ''' True se andata a buon fine - Public Overridable Overloads Function O_GetSelectedProcess(ByRef ProcessId As Short) As Boolean - Dim szReturn As String = "" - - 'nReturn = Cndex.GetSelectedProcess_C(_UserSession, ProcessId, _ErrClass, _ErrNum) - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, "GetSelectedProcess_C O_GetSelectedProcess CNC.OSAI", szReturn) Then - Throw New NcException("ERR GetSelectedProcess_C O_GetSelectedProcess CNC.OSAI") - Return False - End If - - Return True - End Function - - ''' - ''' Legge la riga del programma attivo - ''' - ''' Riga in esecuzione del programma attivo - ''' True se andata a buon fine - Public Overridable Overloads Function O_GetActiveLineProgram(ByRef Line As String) As Boolean - - Dim szReturn As String = "" - Dim ProcessId As Integer - Dim szLine1 As String = "" - Dim szLine2 As String = "" - Dim szLine3 As String = "" - Dim szLine4 As String = "" - Dim szLine5 As String = "" - Dim szLine6 As String = "" - Dim szLine7 As String = "" - Dim szLine8 As String = "" - - O_GetSelectedProcess(ProcessId) - - 'nReturn = Cndex.GetPartProgramLines_C(_UserSession, ProcessId, szLine1, szLine2, szLine3, szLine4, szLine5, szLine6, szLine7, szLine8, _ErrClass, _ErrNum) - Line = szLine2 - - If O_CheckRetError(nReturn, _ErrClass, _ErrNum, "GetPartProgramLines_C O_GetActiveLineProgram CNC.OSAI", szReturn) Then - Throw New NcException("ERR GetPartProgramLines_C O_GetActiveLineProgram CNC.OSAI") - Return False - End If - - Return True - End Function - - ''' - ''' Legge la tabella assi - ''' - ''' Processo selezionato - ''' Valore di ritorno Assi del processo selezionato - ''' True se andata a buon fine - Public Overridable Function O_GetAxisTab(ByVal ProcessId As Short, ByRef AxisTable() As Char, ByRef AxisIdTable() As Short) As Boolean - Return True - End Function - - - Public Overridable Function O_CheckRetError(ByVal nReturn As Short, ByVal ErrClass As Long, ByVal ErrNum As Long, ByVal Position As String, Optional ByRef szReturn As String = "") As Boolean - Dim szErrorClassDesc As String = String.Empty - Dim szErrorDesc As String = String.Empty - - 'Cndex 3.1.2 messages - - '' aggiornare dal manuale di programmazione 4606R.pdf - '' alcune classi di errori sono del cn e non sono specificate nel documento - - If nReturn = 0 Then - 'Seleziono il messaggio - Select Case ErrClass - Case 1 - szErrorClassDesc = "COM error class" - Select Case ErrNum - Case &H80080005 : szErrorDesc = "CO_E_SERVER_EXEC_FAILURE" - Case &H800706BA : szErrorDesc = "RPC_S_SERVER_UNAVAILABLE" - Case &H80070005 : szErrorDesc = "E_ACCESSDENIED" - Case &H80040154 : szErrorDesc = "REGDB_E_CLASSNOTREG" - Case &H80012 : szErrorDesc = "CO_S_NOTALLINTERFACES" - End Select - szErrorDesc = "0x" & Hex(ErrNum) & ": " & szErrorDesc - - Case 2 - szErrorClassDesc = "SERVER error class" - Select Case ErrNum - Case 1 : szErrorDesc = "Memory for dynamic allocations insufficient" - Case 2 : szErrorDesc = "Impossible to create synchronisation events" - Case 3 : szErrorDesc = "Session aborted and no longer usable" - Case 4 : szErrorDesc = "Session not open" - Case 5 : szErrorDesc = "Impossible to allocate a channel" - Case 6 : szErrorDesc = "Function of a non-existing process requested" - Case 7 : szErrorDesc = "Broadcasting command aborted" - Case 8 : szErrorDesc = "Buffer supplied by function in which the data supplied by the NC are copied is too small" - Case 9 : szErrorDesc = "Session already open" - Case 10 : szErrorDesc = "Broadcasting list invalid" - Case 11 : szErrorDesc = "Realtime command aborted" - Case 12 : szErrorDesc = "Function already active" - Case 13 : szErrorDesc = "Function not yet active" - Case 14 : szErrorDesc = "Reception thread ended" - Case 15 : szErrorDesc = "No reply to command received within allotted time" - Case 16 : szErrorDesc = "NC release to which you are connected is not compatible with communications with server" - Case 17 : szErrorDesc = "Cookie does not identify any communication session" - Case 18 : szErrorDesc = "Realtime thread cannot be created" - Case 19 : szErrorDesc = "No more sections available" - Case 20 : szErrorDesc = "Error in symbol acquisition" - Case 23 : szErrorDesc = "Internal object instance cannot be created" - Case 24 : szErrorDesc = "Broadcasting thread cannot be created" - Case 25 : szErrorDesc = "Function cannot be executed in the numerical control boot phase" - Case 26 : szErrorDesc = "Parameter wrong" - Case 27 : szErrorDesc = "Invalid buffer" - Case 29 : szErrorDesc = "Session identifier (UserSession) is invalid (session closed or never opened)" - Case 31 : szErrorDesc = "Session identifier is invalid (value out of range) or session has been closed automatically by Cndex server" - End Select - szErrorDesc = ErrNum.ToString & ": " & szErrorDesc - - Case 3 - szErrorClassDesc = "NETBIOS error class" - Select Case ErrNum - Case &H1 : szErrorDesc = "Illegal buffer length" - Case &H3 : szErrorDesc = "Illegal command" - Case &H5 : szErrorDesc = "Command timed out" - Case &H6 : szErrorDesc = "Message incomplete, issue another command" - Case &H7 : szErrorDesc = "Illegal buffer address" - Case &H8 : szErrorDesc = "Session number out of range" - Case &H9 : szErrorDesc = "No resource available" - Case &HA : szErrorDesc = "Session closed" - Case &HB : szErrorDesc = "Command cancelled" - Case &HD : szErrorDesc = "Duplicate name" - Case &HE : szErrorDesc = "Name table full" - Case &HF : szErrorDesc = "No deletions, name has active sessions" - Case &H11 : szErrorDesc = "Local session table full" - Case &H12 : szErrorDesc = "Remote session table full" - Case &H13 : szErrorDesc = "Illegal name number" - Case &H14 : szErrorDesc = "No callname" - Case &H15 : szErrorDesc = "Cannot put * in NCB_NAME" - Case &H16 : szErrorDesc = "Name in use on remote adapter" - Case &H17 : szErrorDesc = "Name deleted" - Case &H18 : szErrorDesc = "Session ended abnormally" - Case &H19 : szErrorDesc = "Name conflict detected" - Case &H21 : szErrorDesc = "Interface busy, IRET before retrying" - Case &H22 : szErrorDesc = "Too many commands outstanding, retry later" - Case &H23 : szErrorDesc = "Ncb_lana_num field invalid" - Case &H24 : szErrorDesc = "Command completed while cancel occurring" - Case &H26 : szErrorDesc = "Command not valid to cancel" - Case &H30 : szErrorDesc = "Name defined by another local process" - Case &H34 : szErrorDesc = "Environment undefined. RESET required" - Case &H35 : szErrorDesc = "Required OS resources exhausted" - Case &H36 : szErrorDesc = "Max number of applications exceeded" - Case &H37 : szErrorDesc = "No saps available for netbios" - Case &H38 : szErrorDesc = "Requested resources are not available" - Case &H39 : szErrorDesc = "Invalid ncb address or length > segment" - Case &H3B : szErrorDesc = "Invalid NCB DDID" - Case &H3C : szErrorDesc = "Lock of user area failed" - Case &H3F : szErrorDesc = "NETBIOS not loaded" - Case &H40 : szErrorDesc = "System error" - End Select - szErrorDesc = "0x" & Hex(ErrNum) & ": " & szErrorDesc - - Case 4 - szErrorClassDesc = "CNC error class" - Select Case ErrNum - 'Error codes for Real Time functions - Case &H101 : szErrorDesc = "Command unknown" - Case &H102 : szErrorDesc = "No channel available" - Case &H103 : szErrorDesc = "Tick requested not multiple of system tick" - Case &H104 : szErrorDesc = "Id channel wrong" - Case &H105 : szErrorDesc = "Data acquisition still underway" - Case &H106 : szErrorDesc = "Channel not configured" - Case &H107 : szErrorDesc = "Error on stop trigger" - Case &H108 : szErrorDesc = "Channel already configured for other types of data" - 'Error codes for Dry Run functions - Case &H200 : szErrorDesc = "Process not configured" - Case &H201 : szErrorDesc = "Axis not present in process" - Case &H202 : szErrorDesc = "Dry run not configured" - Case &H203 : szErrorDesc = "Dry run already being executed" - Case &H204 : szErrorDesc = "Dry run already in stop status" - End Select - szErrorDesc = "0x" & Hex(ErrNum) & ": " & szErrorDesc - - Case 10 - szErrorClassDesc = "DLL_INTERFACE error class" - Select Case ErrNum - Case 1 : szErrorDesc = "The server has been created more than once" - Case 2 : szErrorDesc = "An error has occurred during the creation of the Cndex server" - Case 3 : szErrorDesc = "A function has been called without having created the Cndex server" - Case 4 : szErrorDesc = "One or more function input parameters are not valid" - Case 5 : szErrorDesc = "Option A06 -CndexLink communication- for network communications with external applications is not enabled on the CNC you are trying to connect to" - End Select - szErrorDesc = ErrNum.ToString & ": " & szErrorDesc - - Case Else - szErrorDesc = ErrNum.ToString - End Select - szErrorClassDesc = ErrClass.ToString & ": " & szErrorClassDesc - - 'Stampo il messaggio - szReturn = "ERR " & szErrorClassDesc & " " & szErrorDesc & " - Occurred in: " & Position - Return True 'presenza errore - End If - - szReturn = "" - Return False 'assenza errori - End Function -#Region "area chiamate IOT (dummy/overridden)" - - ''' - ''' Chiama GenNcInfo x ottenere dati base del NC - ''' - ''' - ''' - Public Overridable Function O_GetNcInfo1(ByRef NcInfo As OPENcontrol.GETINFO1DATA) As Boolean - Return True - End Function - ''' - ''' Chiama ReadCurrentErrorMsg x ottenere elenco errori - ''' - ''' - ''' - Public Overridable Function O_ReadCurrentErrorMsg(ByRef CurrMsgError As OPENcontrol.MSGERROR) As Boolean - Return True - End Function - ''' - ''' Chiama ReadCurrentEmergMsg x ottenere elenco errori - ''' - ''' - ''' - Public Overridable Function O_ReadCurrentEmergMsg(ByRef CurrMsgEmerg As OPENcontrol.MSGEMERGENCY) As Boolean - Return True - End Function - ''' - ''' Chiama ReadCurrentErrorMsg x ottenere elenco errori - ''' - ''' - ''' - Public Overridable Function O_ReadCurrentAnomalyMsg(ByRef CurrMsgAnomaly As OPENcontrol.MSGANOMALY) As Boolean - Return True - End Function - ''' - ''' Restituisce posizione assi (tutti) - ''' - ''' Tipo posizione richeista (1..6) - ''' Vettore posizioni richieste - ''' - Public Overridable Function getAllAxisPos(tipoPos As Int16, ByRef AxisPos As OPENcontrol.GETINTDATA()) As Boolean - Return True - End Function - ''' - ''' Elenco codici G del processo richiesto... - ''' - ''' - ''' - ''' - Public Overridable Function getPathGCodeMod(Processo As Int32, ByRef GCodeCurr As UShort()) As Boolean - Return True - End Function - -#End Region - - End Class - -End Namespace diff --git a/IOB-WIN/CncLib/CNC/CNC.OSAI/CNC.OSAI_SOAP.vb b/IOB-WIN/CncLib/CNC/CNC.OSAI/CNC.OSAI_SOAP.vb deleted file mode 100644 index cb9a789..0000000 --- a/IOB-WIN/CncLib/CNC/CNC.OSAI/CNC.OSAI_SOAP.vb +++ /dev/null @@ -1,1154 +0,0 @@ -Imports CncLib.Config.Settings - -Namespace CNC - - Public Class OSAI_OPEN - Inherits OSAI - - 'Variabili per Web Service OPENcontrol - Protected _szIpAddress As String - Friend OPENws As OPENcontrol.OPENcontrolPortTypeClient - Private nReturn As Short - - Protected Const MAXRET = 3 - - Public Enum O_Table - TOOL_TABLE_ID = 1 - OFFSET_TABLE_ID = 2 - ORIGIN_TABLE_ID = 3 - USER_TABLE_ID = 4 - End Enum - - Public Overrides Property Licenza() As Integer - Get - Dim uiLicence(0) As UInteger - 'leggo dal cn il valore - Me.O_RW_DWord(R, MemTypeWord.GW_CODE, 303, uiLicence) - Return UnsignedToInteger(uiLicence(0)) - End Get - Set(ByVal value As Integer) - 'setto sul cn il valore - Dim uiLicence(0) As UInteger - uiLicence(0) = IntegerToUnsigned(value) - Me.O_RW_DWord(W, MemTypeWord.GW_CODE, 303, uiLicence) - End Set - End Property - - Public Overrides Property LicenzaScaduta() As Boolean - Get - Dim bLicenzaScaduta As Boolean - 'leggo dal cn il valore - Me.O_RW_Boolean(R, MemTypeWord.GW_CODE, 302, 0, bLicenzaScaduta) - Return bLicenzaScaduta - End Get - Set(ByVal value As Boolean) - 'setto sul cn il valore - Me.O_RW_Boolean(W, MemTypeWord.GW_CODE, 302, 0, value) - End Set - End Property - - Public Sub New(ByRef szIpAddress As String) - _Type = NcType.OSAI - _szIpAddress = szIpAddress - - Dim conf As String = "OPENcontrol" - Dim url As String = "http://" & szIpAddress & ":8080" - - Try - OPENws = New OPENcontrol.OPENcontrolPortTypeClient(conf, url) - Catch ex As Exception - MsgBox(ex.Message) - End Try - - - 'Inizializzo le variabili - Me._Descrizione = "NC OSAI OPENcontrol" & vbNewLine - Me._Descrizione = Me._Descrizione & "IpAddress: " & _szIpAddress - End Sub - - Public Overrides Sub Connect(Optional ByRef szStatus As String = "") - Dim BootPhaseEnquiryR As New OPENcontrol.BootPhaseEnquiryR - Dim BootPhaseEnquiry As OPENcontrol.BootPhaseEnquiry - Dim szReturn As String = "" - Dim usValue(0) As UShort - Dim TimeStart As Date - - BootPhaseEnquiry = New OPENcontrol.BootPhaseEnquiry() - - 'leggo in che fase di boot mi trovo - Try - BootPhaseEnquiryR = OPENws.BootPhaseEnquiry(BootPhaseEnquiry) - Catch ex As System.ServiceModel.EndpointNotFoundException - _bConnected = False - Throw New NcException(ex.Message) - Catch ex As System.ServiceModel.CommunicationException - _bConnected = False - Throw New NcException(ex.Message) - End Try - - If O_CheckRetError(BootPhaseEnquiryR.retval, BootPhaseEnquiryR.ErrClass, BootPhaseEnquiryR.ErrNum, String.Format("BootPhaseEnquiry({0}) Connect CNC.OSAI_OPEN", BootPhaseEnquiry), szReturn) Then - _bConnected = False - Throw New NcException(szReturn) - Else - 'verifico che il sistema si trovi in una fase operativa "stabile" - If BootPhaseEnquiryR.Phase = 4 Then 'SYSTEM_UP_PHASE - - 'leggo matricola e verifico che sia diversa da zero - TimeStart = Now - Do - - nReturn = O_RW_Word(R, MemTypeWord.MW_CODE, 3403, usValue) - - If usValue(0) > 0 Then - Threading.Thread.Sleep(500) - Exit Do - End If - - If (Now - TimeStart).Seconds > 30 Then - Select Case MsgBox("Matricola non inizializzata in 30 secondi: Verificare inizializzazione PLC", MsgBoxStyle.Exclamation + MsgBoxStyle.RetryCancel) - Case MsgBoxResult.Retry : TimeStart = Now - Case MsgBoxResult.Cancel : Exit Do - End Select - End If - Threading.Thread.Sleep(500) 'aspetto 500ms prima di ritentare - Loop - - _bConnected = True - Else - _bConnected = False - Throw New NcException("ERR BootPhase NOT OK CNC.OSAI_OPEN") - End If - End If - - End Sub - - Public Overrides Sub Disconnect(Optional ByRef szStatus As String = "") - _bConnected = False - End Sub - - ''' - ''' Legge le memorie di configurazione dal cn - ''' - Public Overrides Sub GetStaticData() - Dim nValue(0) As Integer - Dim sValue(0) As Short - Dim ucValue(0) As Byte - - If Not bStaticDataReaded Then - Try - Select Case Settings.MemoryMapping - Case MemoryMapping.ElsManager - - Case MemoryMapping.Default, - MemoryMapping.ToolManager, - MemoryMapping.ToolTable - - 'Matricola - nReturn = O_RW_Short(R, MemTypeWord.MW_CODE, 3403, sValue) - Me._Matricola = sValue(0) - 'Teste - nReturn = O_RW_Short(R, MemTypeWord.MW_CODE, 3405, sValue) - Me._Teste = sValue(0) - 'Magazzini - nReturn = O_RW_Short(R, MemTypeWord.MW_CODE, 3407, sValue) - Me._Magazzini = sValue(0) - 'Manine per Magazzino - ReDim Me._ManineMagazzino(Me._Magazzini - 1) - ReDim ucValue(19) - nReturn = O_RW_Byte(R, MemTypeWord.MW_CODE, 2900, LOW_ORDER, ucValue) - Array.Copy(ucValue, Me._ManineMagazzino, Me._ManineMagazzino.Length) - ReDim ucValue(0) - - 'Magazzini Con Attrezzaggio Automatico (maschera) - O_RW_Integer(R, MemTypeWord.MW_CODE, 4060, nValue) - Me._MagazziniConAttrezzaggioAutomatico = nValue(0) - End Select - - Me._MaxUtensiliGestibili = 300 'TODO IMPLEMENTARE - Me._MaxIdUtensile = 300 'TODO IMPLEMENTARE - - Select Case Settings.MemoryMapping - Case MemoryMapping.ElsManager - Case MemoryMapping.ToolManager - Case MemoryMapping.Default, - MemoryMapping.ToolTable - 'ZoomSpeed - nReturn = O_RW_Short(R, MemTypeWord.MW_CODE, 3425, sValue) - If sValue(0) > 0 And sValue(0) <= 100 Then - Me._ZoomSpeed = sValue(0) - Else - Me._ZoomSpeed = 1 - End If - End Select - - bStaticDataReaded = True - - Catch ex As NcException - Me.CncException(ex.Message) - End Try - - End If - End Sub - - - ''' - ''' Legge o scrive Boolean da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Bit della memoria - ''' Valore da scrivere su scrittura e letto su lettura - ''' True se andata a buon fine - Public Overloads Overrides Function O_RW_Boolean(ByVal bWrite As Boolean, ByVal MemType As MemTypeWord, ByVal MemIndex As Integer, ByVal MemBit As Integer, ByRef Value As Boolean) As Boolean - Dim szReturn As String = "" - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - If bWrite Then ' *** Write - Dim myWriteVarWordBitR As OPENcontrol.WriteVarWordBitR - Dim myWriteVarWordBit As New OPENcontrol.WriteVarWordBit - myWriteVarWordBit.Code = MemType - myWriteVarWordBit.Index = MemIndex - myWriteVarWordBit.BitIndex = MemBit - myWriteVarWordBit.BitValue = IIf(Value, 1, 0) - myWriteVarWordBitR = OPENws.WriteVarWordBit(myWriteVarWordBit) - If O_CheckRetError(myWriteVarWordBitR.retval, myWriteVarWordBitR.ErrClass, myWriteVarWordBitR.ErrNum, String.Format("WriteVarWordBit({0},{1}) O_RW_Boolean CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - Dim myReadVarWordR As OPENcontrol.ReadVarWordR - Dim myReadVarWord As New OPENcontrol.ReadVarWord - myReadVarWord.Code = MemType - myReadVarWord.Index = MemIndex - myReadVarWord.NumVar = 1 - myReadVarWordR = OPENws.ReadVarWord(myReadVarWord) - If O_CheckRetError(myReadVarWordR.retval, myReadVarWordR.ErrClass, myReadVarWordR.ErrNum, String.Format("ReadVarWord({0},{1}) O_RW_Boolean CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - If (myReadVarWordR.Value(0) And (2 ^ MemBit)) = (2 ^ MemBit) Then 'True - Value = True - Else 'False - Value = False - End If - End If - - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - Catch ex As System.TimeoutException - Throw New NcException(ex.Message) - Return False - End Try - End Function - - ''' - ''' Legge o scrive Byte da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Ordine di partenza LOW_ORDER = 0 HIGH_ORDER = 1 - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Overrides Function O_RW_Byte(ByVal bWrite As Boolean, ByVal MemType As MemTypeWord, ByVal MemIndex As Integer, ByVal MemOrderStart As Integer, ByRef Value() As Byte) As Boolean - Dim szReturn As String = "" - Dim bStartHigh As Boolean = MemOrderStart - Dim bEndDispari As Boolean = (Value.Length + MemOrderStart) Mod 2 - Dim cStart, cEnd As Byte - Dim ValueTmp(((Value.Length + MemOrderStart) \ 2) + ((Value.Length + MemOrderStart) Mod 2) - 1) As UShort - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - If bWrite Then ' *** Write - 'se comincio con hi leggo la prima memo - If bStartHigh Then - Dim ValStartTmp(0) As UShort - O_RW_Word(R, MemType, MemIndex, ValStartTmp) - cStart = WordToByte(ValStartTmp(0), LOW_ORDER) - End If - - 'se finisco dispari, leggo l'ultima memo - If bEndDispari Then - Dim ValEndTmp(0) As UShort - O_RW_Word(R, MemType, MemIndex + ValueTmp.Length - 1, ValEndTmp) - cEnd = WordToByte(ValEndTmp(0), HIGH_ORDER) - End If - - For i = 0 To ValueTmp.Length - 1 - Dim cLow, cHigh As Byte - 'Low - If i = 0 AndAlso bStartHigh Then - cLow = cStart - Else - cLow = Value(i * 2 - MemOrderStart) - End If - 'High - If i = (ValueTmp.Length - 1) AndAlso bEndDispari Then - cHigh = cEnd - Else - cHigh = Value(i * 2 + 1 - MemOrderStart) - End If - - ValueTmp(i) = ByteToWord(cLow, cHigh) - Next - - O_RW_Word(W, MemType, MemIndex, ValueTmp) - - Else ' ************* Read - Dim myReadVarWordR As OPENcontrol.ReadVarWordR - Dim myReadVarWord As New OPENcontrol.ReadVarWord - myReadVarWord.Code = MemType - myReadVarWord.Index = MemIndex - myReadVarWord.NumVar = ValueTmp.Length - myReadVarWordR = OPENws.ReadVarWord(myReadVarWord) - If O_CheckRetError(myReadVarWordR.retval, myReadVarWordR.ErrClass, myReadVarWordR.ErrNum, String.Format("ReadVarWord({0},{1}) O_RW_Byte CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - For i = 0 To Value.Length - 1 - Value(i) = WordToByte(myReadVarWordR.Value((i + MemOrderStart) \ 2), (i + MemOrderStart) Mod 2) - Next - End If - - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - Catch ex As System.TimeoutException - Throw New NcException(ex.Message) - Return False - End Try - End Function - - ''' - ''' Legge o scrive Word da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Overrides Function O_RW_Word(ByVal bWrite As Boolean, ByVal MemType As MemTypeWord, ByVal MemIndex As Integer, ByRef Value() As UShort) As Boolean - Dim szReturn As String = "" - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - If bWrite Then ' *** Write - Dim myWriteVarWordR As OPENcontrol.WriteVarWordR - Dim myWriteVarWord As New OPENcontrol.WriteVarWord - myWriteVarWord.Code = MemType - myWriteVarWord.Index = MemIndex - myWriteVarWord.NumVar = Value.Length - ReDim myWriteVarWord.Value(Value.Length - 1) - Array.Copy(Value, myWriteVarWord.Value, Value.Length) - myWriteVarWordR = OPENws.WriteVarWord(myWriteVarWord) - If O_CheckRetError(myWriteVarWordR.retval, myWriteVarWordR.ErrClass, myWriteVarWordR.ErrNum, String.Format("WriteVarWord({0},{1}) O_RW_Word CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - Dim myReadVarWordR As OPENcontrol.ReadVarWordR - Dim myReadVarWord As New OPENcontrol.ReadVarWord - myReadVarWord.Code = MemType - myReadVarWord.Index = MemIndex - myReadVarWord.NumVar = Value.Length - myReadVarWordR = OPENws.ReadVarWord(myReadVarWord) - If O_CheckRetError(myReadVarWordR.retval, myReadVarWordR.ErrClass, myReadVarWordR.ErrNum, String.Format("ReadVarWord({0},{1}) O_RW_Word CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - Array.Copy(myReadVarWordR.Value, Value, Value.Length) - End If - - Return True - - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - Catch ex As System.TimeoutException - Throw New NcException(ex.Message) - Return False - End Try - End Function - - - ''' - ''' Legge o scrive Short da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Overrides Function O_RW_Short(ByVal bWrite As Boolean, ByVal MemType As MemTypeWord, ByVal MemIndex As Integer, ByRef Value() As Short) As Boolean - Dim szReturn As String = "" - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - If bWrite Then ' *** Write - Dim myWriteVarWordR As OPENcontrol.WriteVarWordR - Dim myWriteVarWord As New OPENcontrol.WriteVarWord - myWriteVarWord.Code = MemType - myWriteVarWord.Index = MemIndex - myWriteVarWord.NumVar = Value.Length - ReDim myWriteVarWord.Value(Value.Length - 1) - For i = 0 To Value.Length - 1 - myWriteVarWord.Value(i) = ShortToUnsigned(Value(i)) - Next - myWriteVarWordR = OPENws.WriteVarWord(myWriteVarWord) - If O_CheckRetError(myWriteVarWordR.retval, myWriteVarWordR.ErrClass, myWriteVarWordR.ErrNum, String.Format("WriteVarWord({0},{1}) O_RW_Short CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - Dim myReadVarWordR As OPENcontrol.ReadVarWordR - Dim myReadVarWord As New OPENcontrol.ReadVarWord - myReadVarWord.Code = MemType - myReadVarWord.Index = MemIndex - myReadVarWord.NumVar = Value.Length - myReadVarWordR = OPENws.ReadVarWord(myReadVarWord) - If O_CheckRetError(myReadVarWordR.retval, myReadVarWordR.ErrClass, myReadVarWordR.ErrNum, String.Format("ReadVarWord({0},{1}) O_RW_Short CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - For i = 0 To Value.Length - 1 - Value(i) = UnsignedToShort(myReadVarWordR.Value(i)) - Next - End If - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - Catch ex As System.TimeoutException - Throw New NcException(ex.Message) - Return False - End Try - End Function - - - ''' - ''' Legge o scrive Integer da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Overrides Function O_RW_DWord(ByVal bWrite As Boolean, ByVal MemType As MemTypeWord, ByVal MemIndex As Integer, ByRef Value() As UInteger) As Boolean - Dim szReturn As String = "" - Dim ValueTmp(Value.Length * 2 - 1) As UShort - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - If bWrite Then ' *** Write - Dim myWriteVarWordR As OPENcontrol.WriteVarWordR - Dim myWriteVarWord As New OPENcontrol.WriteVarWord - myWriteVarWord.Code = MemType - myWriteVarWord.Index = MemIndex - myWriteVarWord.NumVar = ValueTmp.Length - For i = 0 To Value.Length - 1 - ValueTmp(i * 2) = DWordToWord(Value(i), LOW_ORDER) - ValueTmp(i * 2 + 1) = DWordToWord(Value(i), HIGH_ORDER) - Next - ReDim myWriteVarWord.Value(ValueTmp.Length - 1) - Array.Copy(ValueTmp, myWriteVarWord.Value, ValueTmp.Length) - myWriteVarWordR = OPENws.WriteVarWord(myWriteVarWord) - If O_CheckRetError(myWriteVarWordR.retval, myWriteVarWordR.ErrClass, myWriteVarWordR.ErrNum, String.Format("WriteVarWord({0},{1}) O_RW_DWord CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - Dim myReadVarWordR As OPENcontrol.ReadVarWordR - Dim myReadVarWord As New OPENcontrol.ReadVarWord - myReadVarWord.Code = MemType - myReadVarWord.Index = MemIndex - myReadVarWord.NumVar = ValueTmp.Length - myReadVarWordR = OPENws.ReadVarWord(myReadVarWord) - If O_CheckRetError(myReadVarWordR.retval, myReadVarWordR.ErrClass, myReadVarWordR.ErrNum, String.Format("ReadVarWord({0},{1}) O_RW_DWord CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - Else - For i = 0 To Value.Length - 1 - Value(i) = WordsToDWord(myReadVarWordR.Value(i * 2), myReadVarWordR.Value(i * 2 + 1)) - Next - End If - End If - - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - Catch ex As System.TimeoutException - Throw New NcException(ex.Message) - Return False - End Try - End Function - - - ''' - ''' Legge o scrive Integer da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Overrides Function O_RW_Integer(ByVal bWrite As Boolean, ByVal MemType As MemTypeWord, ByVal MemIndex As Integer, ByRef Value() As Integer) As Boolean - Dim szReturn As String = "" - Dim ValueTmp(Value.Length * 2 - 1) As UShort - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - If bWrite Then ' *** Write - Dim myWriteVarWordR As OPENcontrol.WriteVarWordR - Dim myWriteVarWord As New OPENcontrol.WriteVarWord - myWriteVarWord.Code = MemType - myWriteVarWord.Index = MemIndex - myWriteVarWord.NumVar = ValueTmp.Length - For i = 0 To Value.Length - 1 - ValueTmp(i * 2) = IntegerToWord(Value(i), LOW_ORDER) - ValueTmp(i * 2 + 1) = IntegerToWord(Value(i), HIGH_ORDER) - Next - ReDim myWriteVarWord.Value(ValueTmp.Length - 1) - Array.Copy(ValueTmp, myWriteVarWord.Value, ValueTmp.Length) - myWriteVarWordR = OPENws.WriteVarWord(myWriteVarWord) - If O_CheckRetError(myWriteVarWordR.retval, myWriteVarWordR.ErrClass, myWriteVarWordR.ErrNum, String.Format("WriteVarDWord({0},{1}) O_RW_DWord CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - Dim myReadVarWordR As OPENcontrol.ReadVarWordR - Dim myReadVarWord As New OPENcontrol.ReadVarWord - myReadVarWord.Code = MemType - myReadVarWord.Index = MemIndex - myReadVarWord.NumVar = ValueTmp.Length - myReadVarWordR = OPENws.ReadVarWord(myReadVarWord) - If O_CheckRetError(myReadVarWordR.retval, myReadVarWordR.ErrClass, myReadVarWordR.ErrNum, String.Format("ReadVarDWord({0},{1}) O_RW_DWord CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - Else - For i = 0 To Value.Length - 1 - Value(i) = WordsToInteger(myReadVarWordR.Value(i * 2), myReadVarWordR.Value(i * 2 + 1)) - Next - End If - End If - - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - Catch ex As System.TimeoutException - Throw New NcException(ex.Message) - Return False - End Try - End Function - - ''' - ''' Legge o scrive Double da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo di memoria Osai - ''' Indice di memoria - ''' Matrice di valori da scrivere su scrittura o letti su lettura - ''' True se andata a buon fine - Public Overloads Overrides Function O_RW_Double(ByVal bWrite As Boolean, ByVal MemType As MemTypeDouble, ByVal MemIndex As Integer, ByRef Value() As Double) As Boolean - Dim szReturn As String = "" - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - If bWrite Then ' *** Write - Dim myWriteVarDoubleR As OPENcontrol.WriteVarDoubleR - Dim myWriteVarDouble As New OPENcontrol.WriteVarDouble - myWriteVarDouble.Code = MemType - myWriteVarDouble.Index = MemIndex - myWriteVarDouble.NumVar = Value.Length - ReDim myWriteVarDouble.Value(Value.Length - 1) - Array.Copy(Value, myWriteVarDouble.Value, Value.Length) - myWriteVarDoubleR = OPENws.WriteVarDouble(myWriteVarDouble) - If O_CheckRetError(myWriteVarDoubleR.retval, myWriteVarDoubleR.ErrClass, myWriteVarDoubleR.ErrNum, String.Format("WriteVarDouble({0},{1}) O_RW_Double CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - Dim myReadVarDoubleR As OPENcontrol.ReadVarDoubleR - Dim myReadVarDouble As New OPENcontrol.ReadVarDouble - myReadVarDouble.Code = MemType - myReadVarDouble.Index = MemIndex - myReadVarDouble.NumVar = Value.Length - myReadVarDoubleR = OPENws.ReadVarDouble(myReadVarDouble) - If O_CheckRetError(myReadVarDoubleR.retval, myReadVarDoubleR.ErrClass, myReadVarDoubleR.ErrNum, String.Format("ReadVarDouble({0},{1}) O_RW_Double CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - Array.Copy(myReadVarDoubleR.Value, Value, Value.Length) - End If - - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - Catch ex As System.TimeoutException - Throw New NcException(ex.Message) - Return False - End Try - End Function - - ''' - ''' Legge o scrive Stringhe da MEMORIE SC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Indice di memoria - ''' Lunghezza caratteri - ''' Stringa da scrivere su scrittura o leggere su lettura - ''' True se andata a buon fine - Public Overloads Overrides Function O_RW_Text(ByVal bWrite As Boolean, ByVal MemType As MemTypeText, ByVal MemIndex As Integer, ByVal MemLength As Integer, ByRef Value As String) As Boolean - Dim szReturn As String = "" - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - If bWrite Then ' *** Write - Dim myWriteVarTextR As OPENcontrol.WriteVarTextR - Dim myWriteVarText As New OPENcontrol.WriteVarText - myWriteVarText.Code = MemType - myWriteVarText.Index = MemIndex - myWriteVarText.Len = MemLength - myWriteVarText.Text = Value - myWriteVarText.Process = 1 'serve per le variabili SC - myWriteVarTextR = OPENws.WriteVarText(myWriteVarText) - If O_CheckRetError(myWriteVarTextR.retval, myWriteVarTextR.ErrClass, myWriteVarTextR.ErrNum, String.Format("WriteVarText({0},{1}) O_RW_Text CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - Dim myReadVarTextR As OPENcontrol.ReadVarTextR - Dim myReadVarText As New OPENcontrol.ReadVarText - myReadVarText.Code = MemType - myReadVarText.Index = MemIndex - myReadVarText.Size = MemLength - myReadVarText.Process = 1 'serve per le variabili SC - myReadVarTextR = OPENws.ReadVarText(myReadVarText) - If O_CheckRetError(myReadVarTextR.retval, myReadVarTextR.ErrClass, myReadVarTextR.ErrNum, String.Format("ReadVarText({0},{1}) O_RW_Text CNC.OSAI_OPEN", [Enum].GetName(MemType.GetType, MemType), MemIndex), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - Value = myReadVarTextR.Text - End If - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - Catch ex As System.TimeoutException - Throw New NcException(ex.Message) - Return False - End Try - - Return True - - End Function - - ''' - ''' Legge o scrive Length and Radius Offset da tabella Utensili CN - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Numero dell'offset utensile - Public Overrides Function O_RW_ToolOffset(ByVal bWrite As Boolean, ByVal ToolOffsetNumber As Integer, ByRef CutterRadius_Wear As Double, ByRef CutterRadius_Geometry As Double, ByRef ToolLenght_Wear As Double, ByRef ToolLenght_Geometry As Double) As Boolean - Dim szReturn As String = "" - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - If bWrite Then ' *** Write - 'leggo il correttore per usarlo come template - Dim myGetOffsetTabRecordIIR As OPENcontrol.GetOffsetTabRecordIIR - Dim myGetOffsetTabRecordII As New OPENcontrol.GetOffsetTabRecordII - myGetOffsetTabRecordII.RecordNum = ToolOffsetNumber - myGetOffsetTabRecordIIR = OPENws.GetOffsetTabRecordII(myGetOffsetTabRecordII) - If O_CheckRetError(myGetOffsetTabRecordIIR.retval, myGetOffsetTabRecordIIR.ErrClass, myGetOffsetTabRecordIIR.ErrNum, String.Format("GetOffsetTabRecordII({0}) O_RW_ToolOffset CNC.OSAI_OPEN", ToolOffsetNumber), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Dim mySetOffsetTabRecordIIR As OPENcontrol.SetOffsetTabRecordIIR - Dim mySetOffsetTabRecordII As New OPENcontrol.SetOffsetTabRecordII - mySetOffsetTabRecordII.RecordNum = ToolOffsetNumber - mySetOffsetTabRecordII.RecordBuff = myGetOffsetTabRecordIIR.RecordBuff - 'modifico i valori che mi interesssano - mySetOffsetTabRecordII.RecordBuff.DiaVal(0).ActChangeVal = CutterRadius_Wear - mySetOffsetTabRecordII.RecordBuff.DiaVal(0).ValOrig = CutterRadius_Geometry - mySetOffsetTabRecordII.RecordBuff.LenVal(0).ActChangeVal = ToolLenght_Wear - mySetOffsetTabRecordII.RecordBuff.LenVal(0).ValOrig = ToolLenght_Geometry - - 'scrivo il correttore - mySetOffsetTabRecordIIR = OPENws.SetOffsetTabRecordII(mySetOffsetTabRecordII) - If O_CheckRetError(mySetOffsetTabRecordIIR.retval, mySetOffsetTabRecordIIR.ErrClass, mySetOffsetTabRecordIIR.ErrNum, String.Format("SetOffsetTabRecordII({0}) O_RW_ToolOffset CNC.OSAI_OPEN", ToolOffsetNumber), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Else ' ************* Read - Dim myGetOffsetTabRecordIIR As OPENcontrol.GetOffsetTabRecordIIR - Dim myGetOffsetTabRecordII As New OPENcontrol.GetOffsetTabRecordII - myGetOffsetTabRecordII.RecordNum = ToolOffsetNumber - myGetOffsetTabRecordIIR = OPENws.GetOffsetTabRecordII(myGetOffsetTabRecordII) - If O_CheckRetError(myGetOffsetTabRecordIIR.retval, myGetOffsetTabRecordIIR.ErrClass, myGetOffsetTabRecordIIR.ErrNum, String.Format("GetOffsetTabRecordII({0}) O_RW_ToolOffset CNC.OSAI_OPEN", ToolOffsetNumber), szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - CutterRadius_Wear = myGetOffsetTabRecordIIR.RecordBuff.DiaVal(0).ActChangeVal - CutterRadius_Geometry = myGetOffsetTabRecordIIR.RecordBuff.DiaVal(0).ValOrig - ToolLenght_Wear = myGetOffsetTabRecordIIR.RecordBuff.LenVal(0).ActChangeVal - ToolLenght_Geometry = myGetOffsetTabRecordIIR.RecordBuff.LenVal(0).ValOrig - End If - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - End Try - - Return True - - End Function - - ''' - ''' Blocca l'accesso alla tabella dei correttori - ''' - ''' =True: Blocca la tabella, =False: Sblocca la tabella - ''' True se andata a buon fine - Public Overrides Function O_LockOffsetTable(ByVal Lock As Boolean) As Boolean - Static bLocked As Boolean - Dim szReturn As String = "" - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - If Lock Then - If Not bLocked Then - Dim myLockTableIIR As OPENcontrol.LockTableIIR - Dim myLockTableII As New OPENcontrol.LockTableII - myLockTableII.TableNum = O_Table.OFFSET_TABLE_ID - myLockTableIIR = OPENws.LockTableII(myLockTableII) - If O_CheckRetError(myLockTableIIR.retval, myLockTableIIR.ErrClass, myLockTableIIR.ErrNum, String.Format("LockTableII({0}) O_LockOffsetTable CNC.OSAI_OPEN", myLockTableII.TableNum), szReturn) Then - 'Throw New NcException(szReturn) - Return False - End If - bLocked = True - End If - Else - Dim myUnLockTableIIR As OPENcontrol.UnLockTableIIR - Dim myUnLockTableII As New OPENcontrol.UnLockTableII - myUnLockTableII.TableNum = O_Table.OFFSET_TABLE_ID - myUnLockTableIIR = OPENws.UnLockTableII(myUnLockTableII) - If O_CheckRetError(myUnLockTableIIR.retval, myUnLockTableIIR.ErrClass, myUnLockTableIIR.ErrNum, String.Format("UnLockTableII({0}) O_LockOffsetTable CNC.OSAI_OPEN", myUnLockTableII.TableNum), szReturn) Then - 'Throw New NcException(szReturn) - Return False - End If - bLocked = False - End If - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - End Try - End Function - - - ''' - ''' Legge il numero del processo attivo - ''' - ''' Valore di ritorno del processo selezionato - ''' True se andata a buon fine - Public Overloads Overrides Function O_GetSelectedProcess(ByRef ProcessId As Short) As Boolean - Dim szReturn As String = "" - Dim myGetSelectedProcessR As OPENcontrol.GetSelectedProcessR - Dim myGetSelectedProcess As New OPENcontrol.GetSelectedProcess - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - myGetSelectedProcessR = OPENws.GetSelectedProcess(myGetSelectedProcess) - If O_CheckRetError(myGetSelectedProcessR.retval, myGetSelectedProcessR.ErrClass, myGetSelectedProcessR.ErrNum, "GetSelectedProcess() O_GetSelectedProcess CNC.OSAI_OPEN", szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - ProcessId = UnsignedToShort(myGetSelectedProcessR.ProcNum) - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - End Try - End Function - - ''' - ''' Legge la riga del programma attivo - ''' - ''' Riga in esecuzione del programma attivo - ''' True se andata a buon fine - Public Overloads Overrides Function O_GetActiveLineProgram(ByRef Line As String) As Boolean - Dim szReturn As String = "" - Dim myGetPartProgramLinesR As OPENcontrol.GetPartProgramLinesR - Dim myGetPartProgramLines As New OPENcontrol.GetPartProgramLines - Dim ProcessId As Short - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - O_GetSelectedProcess(ProcessId) - - myGetPartProgramLines.ProcNum = ProcessId - myGetPartProgramLinesR = OPENws.GetPartProgramLines(myGetPartProgramLines) - If O_CheckRetError(myGetPartProgramLinesR.retval, myGetPartProgramLinesR.ErrClass, myGetPartProgramLinesR.ErrNum, "GetPartProgramLines() O_GetActiveLineProgram CNC.OSAI_OPEN", szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - Line = myGetPartProgramLinesR.PPLine2 - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - End Try - End Function - - - ''' - ''' Legge la tabella assi - ''' - ''' Processo selezionato - ''' Valore di ritorno Assi del processo selezionato - ''' True se andata a buon fine - Public Overloads Overrides Function O_GetAxisTab(ByVal ProcessId As Short, ByRef AxisTable() As Char, ByRef AxisIdTable() As Short) As Boolean - Dim szReturn As String = "" - Dim i, j As Integer - Dim myGetAxesInfo3R As OPENcontrol.GetAxesInfo3R - Dim myGetAxesInfo3 As New OPENcontrol.GetAxesInfo3 - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - myGetAxesInfo3.AxesNum = 64 - myGetAxesInfo3R = OPENws.GetAxesInfo3(myGetAxesInfo3) - If O_CheckRetError(myGetAxesInfo3R.retval, myGetAxesInfo3R.ErrClass, myGetAxesInfo3R.ErrNum, "GetAxesInfo3() O_RW_Word CNC.OSAI_OPEN", szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - For i = 0 To 63 - If myGetAxesInfo3R.AxOwnerList(i) = ProcessId Then - If (myGetAxesInfo3R.AxNameList(i) < Asc("a") Or myGetAxesInfo3R.AxNameList(i) > Asc("z")) And myGetAxesInfo3R.AxNameList(i) <> Asc("S") Then - AxisTable(j) = Chr(myGetAxesInfo3R.AxNameList(i)) - AxisIdTable(j) = i + 1 - j += 1 - End If - 'ElseIf myGetAxesInfo3R.AxOwnerList(i) = &HFFFF& Then 'Non esco perchè gli assi potrebbero non essere in fila - ' Exit For - End If - Next i - - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - End Try - End Function - -#Region "Funzioni specifiche IOT" - - Public Overloads Overrides Function O_GetNcInfo1(ByRef NcInfo As OPENcontrol.GETINFO1DATA) As Boolean - ' RIFERIMENTO: - ' CndexLinkUser.pdf | pag 148, 266 - - Dim szReturn As String = "" - Dim myGetNcInfo1R As OPENcontrol.GetNcInfo1R - Dim myGetNcInfo1 As New OPENcontrol.GetNcInfo1 - Dim ProcessId As Short - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - O_GetSelectedProcess(ProcessId) - - myGetNcInfo1.ProcNum = ProcessId - myGetNcInfo1R = OPENws.GetNcInfo1(myGetNcInfo1) - If O_CheckRetError(myGetNcInfo1R.retval, myGetNcInfo1R.ErrClass, myGetNcInfo1R.ErrNum, "GetNcInfo1() O_GetNcInfo1 CNC.OSAI_OPEN", szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - NcInfo = myGetNcInfo1R.GetInfo - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - End Try - - End Function - - Public Overloads Overrides Function O_ReadCurrentErrorMsg(ByRef CurrMsgError As OPENcontrol.MSGERROR) As Boolean - ' RIFERIMENTO: - ' CndexLinkUser.pdf | pag 162, 270 - - Dim szReturn As String = "" - Dim myReadCurrentErrorMsgR As OPENcontrol.ReadCurrentErrorMsgR - Dim myReadCurrentErrorMsg As New OPENcontrol.ReadCurrentErrorMsg - Dim ProcessId As Short - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - O_GetSelectedProcess(ProcessId) - - myReadCurrentErrorMsg.Process = ProcessId - myReadCurrentErrorMsgR = OPENws.ReadCurrentErrorMsg(myReadCurrentErrorMsg) - If O_CheckRetError(myReadCurrentErrorMsgR.retval, myReadCurrentErrorMsgR.ErrClass, myReadCurrentErrorMsgR.ErrNum, "ReadCurrentErrorMsg() O_ReadCurrentErrorMsg CNC.OSAI_OPEN", szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - CurrMsgError = myReadCurrentErrorMsgR.Data - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - End Try - - End Function - Public Overloads Overrides Function O_ReadCurrentEmergMsg(ByRef CurrMsgEmerg As OPENcontrol.MSGEMERGENCY) As Boolean - ' RIFERIMENTO: - ' CndexLinkUser.pdf | pag 163, 271 - - Dim szReturn As String = "" - Dim myReadCurrentEmergMsgR As OPENcontrol.ReadCurrentEmergMsgR - Dim myReadCurrentEmergMsg As New OPENcontrol.ReadCurrentEmergMsg - Dim ProcessId As Short - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - O_GetSelectedProcess(ProcessId) - - myReadCurrentEmergMsg.Process = ProcessId - myReadCurrentEmergMsgR = OPENws.ReadCurrentEmergMsg(myReadCurrentEmergMsg) - If O_CheckRetError(myReadCurrentEmergMsgR.retval, myReadCurrentEmergMsgR.ErrClass, myReadCurrentEmergMsgR.ErrNum, "ReadCurrentEmergMsg() O_ReadCurrentEmergMsg CNC.OSAI_OPEN", szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - CurrMsgEmerg = myReadCurrentEmergMsgR.Data - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - End Try - - End Function - Public Overloads Overrides Function O_ReadCurrentAnomalyMsg(ByRef CurrMsgAnomaly As OPENcontrol.MSGANOMALY) As Boolean - ' RIFERIMENTO: - ' CndexLinkUser.pdf | pag 164, 271 - - Dim szReturn As String = "" - Dim myReadCurrentAnomalyMsgR As OPENcontrol.ReadCurrentAnomalyMsgR - Dim myReadCurrentAnomalyMsg As New OPENcontrol.ReadCurrentAnomalyMsg - Dim ProcessId As Short - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - O_GetSelectedProcess(ProcessId) - - myReadCurrentAnomalyMsgR = OPENws.ReadCurrentAnomalyMsg(myReadCurrentAnomalyMsg) - If O_CheckRetError(myReadCurrentAnomalyMsgR.retval, myReadCurrentAnomalyMsgR.ErrClass, myReadCurrentAnomalyMsgR.ErrNum, "ReadCurrentAnomalyMsg() O_ReadCurrentAnomalyMsg CNC.OSAI_OPEN", szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - CurrMsgAnomaly = myReadCurrentAnomalyMsgR.Data - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - End Try - - End Function - Public Overloads Overrides Function getAllAxisPos(tipoPos As Int16, ByRef AxisPos As OPENcontrol.GETINTDATA()) As Boolean - ' RIFERIMENTO: - ' CndexLinkUser.pdf | pag 146, 266 - - Dim szReturn As String = "" - Dim myGetAxesPositionR As OPENcontrol.GetAxesPositionR - Dim myGetAxesPosition As New OPENcontrol.GetAxesPosition - Dim ProcessId As Short - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - O_GetSelectedProcess(ProcessId) - myGetAxesPosition.ProcNum = ProcessId - myGetAxesPosition.AxisName = "0" - myGetAxesPosition.NumAxis = AxisPos.Length - myGetAxesPosition.Select = tipoPos - - myGetAxesPositionR = OPENws.GetAxesPosition(myGetAxesPosition) - If O_CheckRetError(myGetAxesPositionR.retval, myGetAxesPositionR.ErrClass, myGetAxesPositionR.ErrNum, "GetAxesPosition() getAllAxisPos CNC.OSAI_OPEN", szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - AxisPos = myGetAxesPositionR.IntPos - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - End Try - - End Function - Public Overloads Overrides Function getPathGCodeMod(Processo As Int32, ByRef GCodeCurr As UShort()) As Boolean - ' RIFERIMENTO: - ' CndexLinkUser.pdf | pag 165 - - Dim szReturn As String = "" - Dim myGetGCodeR As OPENcontrol.GetGCodeR - Dim myGetGCode As New OPENcontrol.GetGCode - Dim ProcessId As UShort - Dim nRetry As Integer -Retry: nRetry += 1 - - Try - O_GetSelectedProcess(ProcessId) - 'myGetGCode.ProcNum = ProcessId - myGetGCode.ProcNum = Processo - - myGetGCodeR = OPENws.GetGCode(myGetGCode) - If O_CheckRetError(myGetGCodeR.retval, myGetGCodeR.ErrClass, myGetGCodeR.ErrNum, "ReadCurrentGCodes() O_ReadCurrentGCodes CNC.OSAI_OPEN", szReturn) Then - Throw New NcException(szReturn) - Return False - End If - - GCodeCurr = myGetGCodeR.GCode - - Return True - Catch ex As System.ServiceModel.CommunicationException - If nRetry < MAXRET Then GoTo Retry - Throw New NcException(ex.Message) - Return False - End Try - - End Function - -#If False Then - - - Public Function getCncAlarm() As Focas1.ODBALMMSG2 - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Misc\cnc_rdalmmsg2.htm - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Misc\cnc_rdalminfo.htm - - Dim nPathIdx As Integer - Dim nNumAxisRead As Integer - Dim nReturn As Integer - - Dim allData As Focas1.ODBALMMSG2 - ' inizializzo - allData = New Focas1.ODBALMMSG2 - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - 'leggo num max assi dal cn - nNumAxisRead = Focas1.MAX_AXIS - - ' vettore num allarmi MAX da leggere...... - Dim numAllarmi As Int16 - numAllarmi = 512 - - If Is30Series Then - - ' leggo tutto!!! - nReturn = Focas1.cnc_rdalmmsg2(nLibHandle(nPathIdx), -1, numAllarmi, allData) - - If F_CheckRetError_Cnc(nReturn, "cnc_rdalmmsg2 GetCncAlarm CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_rdalmmsg2 GetCncAlarm CNC.FANUC.CncLib") - End If - End If - - Return allData - - End Function - - - - Public Function getPathTTCoord() As Focas1.ODB5AXMAN - ' RIFERIMENTO: - ' C:\Users\samuele\Documents\FOCAS A02B-0207-K737_04.20\Document\SpecE\Position\cnc_rd5axmandt.htm - - Dim nPathIdx As Integer - Dim nNumAxisRead As Integer - Dim nReturn As Integer - - Dim ttCoord As Focas1.ODB5AXMAN - ' inizializzo - ttCoord = New Focas1.ODB5AXMAN - - 'leggo il numero del processo attivo - nPathIdx = GetActivePath() - 'leggo num max assi dal cn - nNumAxisRead = Focas1.MAX_AXIS - - If Is30Series Then - - ' leggo tutto!!! - nReturn = Focas1.cnc_rd5axmandt(nLibHandle(nPathIdx), ttCoord) - - If F_CheckRetError_Cnc(nReturn, "cnc_rd3dtooltip RefreshPathTTCoord CNC.FANUC.CncLib") Then - Throw New NcException("ERR cnc_rd3dtooltip RefreshPathTTCoord CNC.FANUC.CncLib") - End If - End If - - Return ttCoord - - End Function - - -#End If - -#End Region - - - End Class - -End Namespace diff --git a/IOB-WIN/CncLib/CNC/CNC.Runtime.vb b/IOB-WIN/CncLib/CNC/CNC.Runtime.vb deleted file mode 100644 index 93a72e6..0000000 --- a/IOB-WIN/CncLib/CNC/CNC.Runtime.vb +++ /dev/null @@ -1,54 +0,0 @@ -Namespace CNC - - Public Class Runtime - Public Shared NC As CncLib.CNC.CNC - - - Public Shared Sub CreateNC(tipoNC As CNC.NcType, ipTarget As String, ipPort As String) - '************ Istanzio l'oggetto NC ***************** - Try - - Select Case tipoNC - - Case NC_FANUC - 'CncLib.App.Runtime.Log.WI("TRY creating NC CNC.NC", "TypeNC=" & Config.Settings.Settings.TypeNC.ToString, CLog.Lev.Principal) - Dim ipFanuc As String - Dim portIpFanuc As String - Dim CncScreenHssb As String - - ' imposto IP e porta da chiamata - ipFanuc = ipTarget - 'portIpFanuc = "8193" - portIpFanuc = ipPort - - CncScreenHssb = "0" - NC = New FANUC(0, ipFanuc, portIpFanuc, CncScreenHssb) - - Case NC_OSAI - 'If Config.Settings.Settings.OsaiCommType = 1 Then 'SOAP - NC = New OSAI_OPEN(ipTarget) - - Case NC_SIEMENS - Try - NC = New SIEMENS - Catch ex As NcException - 'NC.frmMain_ref.ExitApp() - 'frmMain.ExitApp() - 'End - End Try - End Select - - 'CncLib.App.Runtime.Log.WI("OK crating NC CNC.NC", , CLog.Lev.Principal) - Catch ex As Exception - Dim exStr As String - exStr = ex.Message - 'CncLib.App.Runtime.Log.WE("ERR crating NC CNC.NC", ex.Message, True) - End Try - - - End Sub - - - End Class - -End Namespace \ No newline at end of file diff --git a/IOB-WIN/CncLib/CNC/CNC.SIEMENS/CNC.SIEMENS.vb b/IOB-WIN/CncLib/CNC/CNC.SIEMENS/CNC.SIEMENS.vb deleted file mode 100644 index 99f4723..0000000 --- a/IOB-WIN/CncLib/CNC/CNC.SIEMENS/CNC.SIEMENS.vb +++ /dev/null @@ -1,1147 +0,0 @@ -'INFO: La costante di precompilatore SIEMENS =0 salta la logica che richiede le librerie Siemens. =1 compila tutto - -#If SIEMENS Then - -' declaring namespace for SINUMERIK Interface -Imports Siemens.Sinumerik.Operate.Services - -Namespace CNC - - Partial Public Class SIEMENS - Inherits CNC - - Private m_DataSvcRW As DataSvc - Private m_DriveSVC As DrivesSvc - Private m_AlarmService As AlarmSvc - Private m_AlarmGuid As System.Guid - Private currAlarms As Alarm() - - Private itemRead() As Item - Private itemWrite As Item - - Public Overrides Property Licenza() As Integer - Get - Dim nLicence(0) As Integer - 'leggo dal cn il valore - Me.S_RW_Integer(R, 255, 120, nLicence) - Return nLicence(0) - End Get - Set(ByVal value As Integer) - 'setto sul cn il valore - Dim nLicence(0) As Integer - nLicence(0) = value - Me.S_RW_Integer(W, 255, 120, nLicence) - End Set - End Property - - Public Overrides Property LicenzaScaduta() As Boolean - Get - Dim bLicenzaScaduta As Boolean - 'leggo dal cn il valore - Me.S_RW_Boolean(R, 255, 92, 5, bLicenzaScaduta) - Return bLicenzaScaduta - End Get - Set(ByVal value As Boolean) - 'setto sul cn il valore - Me.S_RW_Boolean(W, 255, 92, 5, value) - End Set - End Property - - - Public Sub New() - MyBase.New() - _Type = NcType.SIEMENS - - ' commentato in blocco: c aspettiamo che il SINUMERIK HMI Control, che lancia l'adapter, si occupi della verifica dell'HMI siemens - ''verifico di aver prima avviato la Sinumerik HMI - 'If FindProcess("slsmhmihost") Is Nothing Then - ' 'MessageBox.Show("Sinumerik HMI process not found!" & vbNewLine & _ - ' ' "Run Sinumerik HMI before starting SINUMERIK HMI Control.", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Stop) - ' Throw New NcException("ERR Sinumerik HMI process not found CNC.SIEMENS") - 'End If - - Try - m_DataSvcRW = New DataSvc - m_DriveSVC = New DrivesSvc - m_AlarmService = New AlarmSvc("eng") - ' sottoscrivo allarmi... - m_AlarmGuid = m_AlarmService.Subscribe(New AlarmListChanged(AddressOf AlarmList)) - - Catch ex As System.IO.FileNotFoundException - ' intercetta l'exception se non lanciato sopra l'hmi - 'MessageBox.Show("SINUMERIK HMI Control must be run over Sinumerik Operate!" & vbNewLine & _ - '"Run SINUMERIK HMI Control through shortcut.", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Stop) - Throw New NcException("ERR SINUMERIK HMI Control must be run over Sinumerik Operate CNC.SIEMENS") - End Try - - End Sub - - Public Overrides Sub Connect(Optional ByRef szStatus As String = "") - Try - 'se non ho eccezioni dichiaro connessione avvenuta - _bConnected = True - 'Log.WI("OK Connect CNC.SIEMENS", "Connected=" & _bConnected, CLog.Lev.Secondary) - Catch ex As Exception - Throw New NcException("ERR Connect CNC.SIEMENS", ex) - End Try - - End Sub - - Public Overrides Sub Disconnect(Optional ByRef szStatus As String = "") - Try - 'dichiaro disconnessione avvenuta - _bConnected = False - 'Log.WI("OK Disconnect CNC.SIEMENS", "Connected=" & _bConnected, CLog.Lev.Secondary) - Catch ex As Exception - Throw New NcException("ERR Disconnect CNC.SIEMENS", ex) - End Try - End Sub - - ''' - ''' Legge le memorie di configurazione dal cn - ''' - Public Overrides Sub GetStaticData() - - If Not bStaticDataReaded Then - - Try - ReDim itemRead(2) - itemRead(0) = New Item("DB255.DBW0") 'Matricola - itemRead(1) = New Item("DB255.DBW8") 'Teste - itemRead(2) = New Item("DB255.DBW12") 'Magazzini - m_DataSvcRW.Read(itemRead) - Me._Matricola = itemRead(0).Value - Me._Teste = itemRead(1).Value - Me._Magazzini = itemRead(2).Value - - ReDim itemRead(0) - itemRead(0) = New Item("DB254.DBB40:[20]") 'Manine per Magazzino - m_DataSvcRW.Read(itemRead) - ReDim Me._ManineMagazzino(Me._Magazzini - 1) - For i = 0 To Me._Magazzini - 1 - Me._ManineMagazzino(i) = itemRead(0).Value(i) - Next - - 'Magazzini Con Attrezzaggio Automatico (maschera) - ReDim itemRead(0) - itemRead(0) = New Item("DB253.DBB19:[3]") 'Maschera Magazzini con attrezzaggio automatico - m_DataSvcRW.Read(itemRead) - Me._MagazziniConAttrezzaggioAutomatico = WordsToInteger(ByteToWord(itemRead(0).Value(0), itemRead(0).Value(1)), ByteToWord(itemRead(0).Value(2), 0)) - - ReDim itemRead(0) - itemRead(0) = New Item("/NC/_N_NC_TEA_ACX/$MN_MM_NUM_TOOL") 'Number of tools the NCK can manage - m_DataSvcRW.Read(itemRead) - Me._MaxUtensiliGestibili = itemRead(0).Value - Me._MaxIdUtensile = 32000 - - ReDim itemRead(0) - itemRead(0) = New Item("DB254.DBB390") 'ZoomSpeed - m_DataSvcRW.Read(itemRead) - If itemRead(0).Value > 0 And itemRead(0).Value <= 100 Then - Me._ZoomSpeed = itemRead(0).Value - Else - Me._ZoomSpeed = 1 - End If - - bStaticDataReaded = True - - Catch ex As InfrastructureException - Throw New NcException("ERR GetStaticData CNC.SIEMENS InfrastructureException", ex) - Catch ex As DataSvcException - Throw New NcException("ERR GetStaticData CNC.SIEMENS DataSvcException", ex) - End Try - - End If - End Sub - - ''' - ''' Legge la riga del programma attivo - ''' - ''' Numero processo - ''' Riga in esecuzione del programma attivo - ''' True se andata a buon fine - Public Overridable Overloads Function S_GetActiveLineProgram(ByVal Path As Integer, ByRef Line As String) As Boolean - Dim itemRead() As Item - Do - Try - ReDim itemRead(0) - If Path = 0 Then - itemRead(0) = New Item("/Channel/ProgramInfo/actBlock[u1,1]") 'Blocco programma attivo - Else - itemRead(0) = New Item("/Channel/ProgramInfo/actBlock[u" & Path & ",1]") - End If - - - m_DataSvcRW.Read(itemRead) - Line = itemRead(0).Value - - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - Return True - End Function - - ''' - ''' Legge o scrive Boolean da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Stringa di indirizzamento Siemens - ''' Valore da scrivere su scrittura e letto su lettura - ''' True se andata a buon fine - Public Overloads Function S_RW_Boolean(ByVal bWrite As Boolean, ByVal ItemPath As String, ByRef Value As Boolean) As Boolean - Dim itemRW As Item - - If bWrite Then ' *** Write - Try - itemRW = New Item(ItemPath) - 'set value - itemRW.Value = Value - Do - Try - m_DataSvcRW.Write(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Boolean CNC.SIEMENS", ex.Message, True) - Return False - End Try - - Else ' ************* Read - Try - itemRW = New Item(ItemPath) - Do - Try - m_DataSvcRW.Read(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - Value = itemRW.Value - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Boolean CNC.SIEMENS", ex.Message, True) - Return False - End Try - End If - - Return True - End Function - - - - ''' - ''' Legge o scrive Boolean da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo memoria - ''' Memoria del DB contenente il valore - ''' Bit della Memoria del DB contenente il valore - ''' Valore da scrivere su scrittura e letto su lettura - ''' True se andata a buon fine - Public Overloads Function S_RW_Boolean(ByVal bWrite As Boolean, ByVal MemType As Integer, ByVal MemoryIndex As Integer, ByVal BitIndex As Integer, ByRef Value As Boolean) As Boolean - Dim itemRW As Item - Dim ItemPath As String - Dim cValue(0) As Byte - - ItemPath = "DB" & MemType.ToString & ".DBX" & MemoryIndex.ToString & "." & BitIndex.ToString - - If bWrite Then ' *** Write - Try - If MemType = MEM_S_M Then - 'leggo il byte - S_RW_Byte(R, MEM_S_M, MemoryIndex, cValue) - 'set value - cValue(0) = cValue(0) Or (2 ^ BitIndex) - 'riscrivo il byte - S_RW_Byte(W, MEM_S_M, MemoryIndex, cValue) - ElseIf MemType = MEM_S_E Then - 'leggo il byte - S_RW_Byte(R, MEM_S_E, MemoryIndex, cValue) - 'set value - cValue(0) = cValue(0) Or (2 ^ BitIndex) - 'riscrivo il byte - S_RW_Byte(W, MEM_S_E, MemoryIndex, cValue) - ElseIf MemType = MEM_S_A Then - 'leggo il byte - S_RW_Byte(R, MEM_S_A, MemoryIndex, cValue) - 'set value - cValue(0) = cValue(0) Or (2 ^ BitIndex) - 'riscrivo il byte - S_RW_Byte(W, MEM_S_A, MemoryIndex, cValue) - Else - itemRW = New Item(ItemPath) - 'set value - itemRW.Value = Value - - Do - Try - m_DataSvcRW.Write(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - End If - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Boolean CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Boolean CNC.SIEMENS", ex.Message, True) - Return False - End Try - - Else ' ************* Read - Try - itemRW = New Item(ItemPath) - - If MemType = MEM_S_M Then - 'leggo il byte - S_RW_Byte(R, MEM_S_M, MemoryIndex, cValue) - Value = ((cValue(0) And (2 ^ BitIndex)) = (2 ^ BitIndex)) - ElseIf MemType = MEM_S_E Then - 'leggo il byte - S_RW_Byte(R, MEM_S_E, MemoryIndex, cValue) - Value = ((cValue(0) And (2 ^ BitIndex)) = (2 ^ BitIndex)) - ElseIf MemType = MEM_S_A Then - 'leggo il byte - S_RW_Byte(R, MEM_S_A, MemoryIndex, cValue) - Value = ((cValue(0) And (2 ^ BitIndex)) = (2 ^ BitIndex)) - Else - Do - Try - m_DataSvcRW.Read(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - Value = itemRW.Value - End If - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Boolean CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Boolean CNC.SIEMENS", ex.Message, True) - Return False - End Try - End If - - Return True - End Function - - - ''' - ''' Legge o scrive Byte da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo memoria - ''' Memoria del DB contenente il valore - ''' Valore da scrivere su scrittura e letto su lettura - ''' True se andata a buon fine - Public Overloads Function S_RW_Byte(ByVal bWrite As Boolean, ByVal MemType As Integer, ByVal MemoryIndex As Integer, ByRef Value() As Byte) As Boolean - Dim itemRW As Item - Dim ItemPath As String - - If MemType = MEM_S_M Then - ItemPath = "MB" & MemoryIndex.ToString - ElseIf MemType = MEM_S_E Then - ItemPath = "EB" & MemoryIndex.ToString - ElseIf MemType = MEM_S_A Then - ItemPath = "AB" & MemoryIndex.ToString - Else - ItemPath = "DB" & MemType.ToString & ".DBB" & MemoryIndex.ToString - End If - If Value.Length > 1 Then ItemPath &= ":[" & Value.Length.ToString & "]" - - If bWrite Then ' *** Write - Try - itemRW = New Item(ItemPath) - 'set value - If Value.Length = 1 Then - itemRW.Value = Value(0) - Else - ReDim itemRW.Value(Value.Length - 1) - For i As Integer = 0 To Value.Length - 1 - itemRW.Value(i) = Value(i) - Next i - End If - Do - Try - m_DataSvcRW.Write(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Byte CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Byte CNC.SIEMENS", ex.Message, True) - Return False - End Try - - Else ' ************* Read - Try - itemRW = New Item(ItemPath) - Do - Try - m_DataSvcRW.Read(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - If Value.Length = 1 Then - Value(0) = itemRW.Value - Else - For i As Integer = 0 To Value.Length - 1 - Value(i) = itemRW.Value(i) - Next i - End If - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Byte CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Byte CNC.SIEMENS", ex.Message) - Return False - End Try - End If - - Return True - End Function - - ''' - ''' Legge o scrive Word da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo memoria - ''' Memoria del DB contenente il valore - ''' Valore da scrivere su scrittura e letto su lettura - ''' True se andata a buon fine - Public Overloads Function S_RW_Word(ByVal bWrite As Boolean, ByVal MemType As Integer, ByVal MemoryIndex As Integer, ByRef Value() As UShort) As Boolean - Dim itemRW As Item - Dim ItemPath As String - - If MemType = MEM_S_M Then - ItemPath = "MW" & MemoryIndex.ToString - ElseIf MemType = MEM_S_E Then - ItemPath = "EW" & MemoryIndex.ToString - ElseIf MemType = MEM_S_A Then - ItemPath = "AW" & MemoryIndex.ToString - Else - ItemPath = "DB" & MemType.ToString & ".DBW" & MemoryIndex.ToString - End If - If Value.Length > 1 Then ItemPath &= ":[" & Value.Length.ToString & "]" - - If bWrite Then ' *** Write - Try - itemRW = New Item(ItemPath) - 'set value - If Value.Length = 1 Then - itemRW.Value = Value(0) - Else - ReDim itemRW.Value(Value.Length - 1) - For i As Integer = 0 To Value.Length - 1 - itemRW.Value(i) = Value(i) - Next i - End If - Do - Try - m_DataSvcRW.Write(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Word CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Word CNC.SIEMENS", ex.Message) - Return False - End Try - - Else ' ************* Read - Try - itemRW = New Item(ItemPath) - Do - Try - m_DataSvcRW.Read(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - If Value.Length = 1 Then - Value(0) = itemRW.Value - Else - For i As Integer = 0 To Value.Length - 1 - Value(i) = itemRW.Value(i) - Next i - End If - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Word CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Word CNC.SIEMENS", ex.Message, True) - Return False - End Try - End If - - Return True - End Function - - ''' - ''' Legge o scrive Short da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo memoria - ''' Memoria del DB contenente il valore - ''' Valore da scrivere su scrittura e letto su lettura - ''' True se andata a buon fine - Public Overloads Function S_RW_Short(ByVal bWrite As Boolean, ByVal MemType As Integer, ByVal MemoryIndex As Integer, ByRef Value() As Short) As Boolean - Dim itemRW As Item - Dim ItemPath As String - - If MemType = MEM_S_M Then - ItemPath = "MW" & MemoryIndex.ToString - ElseIf MemType = MEM_S_E Then - ItemPath = "EW" & MemoryIndex.ToString - ElseIf MemType = MEM_S_A Then - ItemPath = "AW" & MemoryIndex.ToString - Else - ItemPath = "DB" & MemType.ToString & ".DBW" & MemoryIndex.ToString - End If - If Value.Length > 1 Then ItemPath &= ":[" & Value.Length.ToString & "]" - - If bWrite Then ' *** Write - Try - itemRW = New Item(ItemPath) - 'set value - If Value.Length = 1 Then - itemRW.Value = ShortToUnsigned(Value(0)) - Else - ReDim itemRW.Value(Value.Length - 1) - For i As Integer = 0 To Value.Length - 1 - itemRW.Value(i) = ShortToUnsigned(Value(i)) - Next i - End If - Do - Try - m_DataSvcRW.Write(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Word CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Word CNC.SIEMENS", ex.Message) - Return False - End Try - - Else ' ************* Read - Try - itemRW = New Item(ItemPath) - Do - Try - m_DataSvcRW.Read(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - If Value.Length = 1 Then - Value(0) = itemRW.Value - Else - For i As Integer = 0 To Value.Length - 1 - Value(i) = UnsignedToShort(itemRW.Value(i)) - Next i - End If - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Short CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Short CNC.SIEMENS", ex.Message, True) - Return False - End Try - End If - - Return True - End Function - - - - - ''' - ''' Legge o scrive DWord da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo memoria - ''' Memoria del DB contenente il valore - ''' Valore da scrivere su scrittura e letto su lettura - ''' True se andata a buon fine - Public Overloads Function S_RW_DWord(ByVal bWrite As Boolean, ByVal MemType As Integer, ByVal MemoryIndex As Integer, ByRef Value() As UInteger) As Boolean - Dim itemRW As Item - Dim ItemPath As String - - If MemType = MEM_S_M Then - ItemPath = "MD" & MemoryIndex.ToString - ElseIf MemType = MEM_S_E Then - ItemPath = "ED" & MemoryIndex.ToString - ElseIf MemType = MEM_S_A Then - ItemPath = "AD" & MemoryIndex.ToString - Else - ItemPath = "DB" & MemType.ToString & ".DBD" & MemoryIndex.ToString - End If - If Value.Length > 1 Then ItemPath &= ":[" & Value.Length.ToString & "]" - - If bWrite Then ' *** Write - Try - itemRW = New Item(ItemPath) - 'set value - If Value.Length = 1 Then - itemRW.Value = Value(0) - Else - ReDim itemRW.Value(Value.Length - 1) - For i As Integer = 0 To Value.Length - 1 - itemRW.Value(i) = Value(i) - Next i - End If - Do - Try - m_DataSvcRW.Write(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_DWord CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_DWord CNC.SIEMENS", ex.Message) - Return False - End Try - - Else ' ************* Read - Try - itemRW = New Item(ItemPath) - Do - Try - m_DataSvcRW.Read(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - If Value.Length = 1 Then - Value(0) = itemRW.Value - Else - For i As Integer = 0 To Value.Length - 1 - Value(i) = itemRW.Value(i) - Next i - End If - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_DWord CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_DWord CNC.SIEMENS", ex.Message, True) - Return False - End Try - End If - - Return True - End Function - ''' - ''' Legge o scrive Integer da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo memoria - ''' Memoria del DB contenente il valore - ''' Valore da scrivere su scrittura e letto su lettura - ''' True se andata a buon fine - Public Overloads Function S_RW_Integer(ByVal bWrite As Boolean, ByVal MemType As Integer, ByVal MemoryIndex As Integer, ByRef Value() As Integer) As Boolean - Dim itemRW As Item - Dim ItemPath As String - - If MemType = MEM_S_M Then - ItemPath = "MD" & MemoryIndex.ToString - ElseIf MemType = MEM_S_E Then - ItemPath = "ED" & MemoryIndex.ToString - ElseIf MemType = MEM_S_A Then - ItemPath = "AD" & MemoryIndex.ToString - Else - ItemPath = "DB" & MemType.ToString & ".DBD" & MemoryIndex.ToString - End If - If Value.Length > 1 Then ItemPath &= ":[" & Value.Length.ToString & "]" - - If bWrite Then ' *** Write - Try - itemRW = New Item(ItemPath) - 'set value - If Value.Length = 1 Then - itemRW.Value = IntegerToUnsigned(Value(0)) - Else - ReDim itemRW.Value(Value.Length - 1) - For i As Integer = 0 To Value.Length - 1 - itemRW.Value(i) = IntegerToUnsigned(Value(i)) - Next i - End If - Do - Try - m_DataSvcRW.Write(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Integer CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Integer CNC.SIEMENS", ex.Message) - Return False - End Try - - Else ' ************* Read - Try - itemRW = New Item(ItemPath) - Do - Try - m_DataSvcRW.Read(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - If Value.Length = 1 Then - Value(0) = UnsignedToInteger(itemRW.Value) - Else - For i As Integer = 0 To Value.Length - 1 - Value(i) = UnsignedToInteger(itemRW.Value(i)) - Next i - End If - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Integer CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Integer CNC.SIEMENS", ex.Message, True) - Return False - End Try - End If - - Return True - End Function - - - ''' - ''' Legge o scrive Real da MEMORIE PLC - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Tipo memoria - ''' Memoria del DB contenente il valore - ''' Valore da scrivere su scrittura e letto su lettura - ''' True se andata a buon fine - Public Overloads Function S_RW_Real(ByVal bWrite As Boolean, ByVal MemType As Integer, ByVal MemoryIndex As Integer, ByRef Value() As Single) As Boolean - Dim itemRW As Item - Dim ItemPath As String - - If MemType = MEM_S_M Then - ItemPath = "MD" & MemoryIndex.ToString - ElseIf MemType = MEM_S_E Then - ItemPath = "ED" & MemoryIndex.ToString - ElseIf MemType = MEM_S_A Then - ItemPath = "AD" & MemoryIndex.ToString - Else - ItemPath = "DB" & MemType.ToString & ".DBD" & MemoryIndex.ToString - End If - If Value.Length > 1 Then ItemPath &= ":[" & Value.Length.ToString & "]" - - If bWrite Then ' *** Write - Try - itemRW = New Item(ItemPath) - 'set value - If Value.Length = 1 Then - itemRW.Value = SingleToUInteger(Value(0)) - Else - ReDim itemRW.Value(Value.Length - 1) - For i As Integer = 0 To Value.Length - 1 - itemRW.Value(i) = SingleToUInteger(Value(i)) - Next i - End If - Do - Try - m_DataSvcRW.Write(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Real CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_Real CNC.SIEMENS", ex.Message) - Return False - End Try - - Else ' ************* Read - Try - itemRW = New Item(ItemPath) - Do - Try - m_DataSvcRW.Read(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - If Value.Length = 1 Then - Value(0) = UIntegerToSingle(itemRW.Value) - Else - For i As Integer = 0 To Value.Length - 1 - Value(i) = UIntegerToSingle(itemRW.Value(i)) - Next i - End If - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Real CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_Real CNC.SIEMENS", ex.Message, True) - Return False - End Try - End If - - Return True - End Function - - - - ''' - ''' Legge o scrive LReal dalle MEMORIE R - ''' - ''' Se True SCRIVE, se False LEGGE - ''' Memoria del DB contenente il valore - ''' Valore da scrivere su scrittura e letto su lettura - ''' True se andata a buon fine - Public Overloads Function S_RW_R_LReal(ByVal bWrite As Boolean, ByVal MemoryIndex As Integer, ByRef Value As Double, Optional ByVal nPath As Integer = 1) As Boolean - Dim itemRW As Item - Dim ItemPath As String - - ItemPath = "/channel/parameter/r[u" & nPath.ToString & "," & MemoryIndex.ToString & "]" - - If bWrite Then ' *** Write - Try - itemRW = New Item(ItemPath) - 'set value - itemRW.Value = Value - Do - Try - m_DataSvcRW.Write(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_R_LReal CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Write on S_RW_R_LReal CNC.SIEMENS", ex.Message) - Return False - End Try - - Else ' ************* Read - Try - itemRW = New Item(ItemPath) - Do - Try - m_DataSvcRW.Read(itemRW) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - End Try - Loop - - Value = itemRW.Value - - Catch ex As DataSvcException - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_R_LReal CNC.SIEMENS DataSvcException", ex.Message & vbNewLine & ex.StackTrace) - Catch ex As Exception - 'Log.WW("ERR m_DataSvcRW.Read on S_RW_R_LReal CNC.SIEMENS", ex.Message, True) - Return False - End Try - End If - - Return True - End Function - - - -#Region "Funzioni specifiche IOT" - - ''' - ''' Struttura dati asse - ''' - Public Structure AxData - ''' - ''' Carico Asse - ''' - Public Load As Single - ''' - ''' posizione attuale asse - ''' - Public PosAct As Single - ''' - ''' posizione Target asse - ''' - Public PosTgt As Single - ''' - ''' Velocità asse - ''' - Public Speed As Single - - End Structure - ''' - ''' Struttura dati UT - ''' - Public Structure UtData - ''' - ''' Vettore elenco UT (DB254.DBW280) - ''' - Public elencoUtMem As UShort() - ''' - ''' Tabella UT (DB253.DBW2500) - ''' - Public tabUt_UT As UShort() - ''' - ''' Tabella IdFamigliaUt (DB253.DBW2900) - ''' - Public tabIdFamUt As UShort() - ''' - ''' Tabella Famiglie Utensili (DB253.DBW100) - ''' - Public tabFamUt As UShort() - ''' - ''' Tabella TIPO Vita Residua Famiglie Utensili (DB253.DBB1900) - ''' - Public tabTipoVitaRes As Byte() - ''' - ''' Tabella Vita Residua Famiglie Utensili (DB253.DBD4300) - ''' - Public tabVitaRes As UInt32() - - End Structure - - ''' - ''' Restituisce tutti i dati assi insieme - ''' - ''' - Public Function getAllAxisPos() As AxData() - ' RIFERIMENTO: - ' txt Giuseppe - - ReDim itemRead(3) - itemRead(0) = New Item("DB241.DBD0:[16]") 'Posizione attuale - itemRead(1) = New Item("DB254.DBW140:[20]") 'Speed effettiva - itemRead(2) = New Item("DB254.DBB180:[20]") 'Carico effettivo - itemRead(3) = New Item("/Channel/MachineAxis/toolBaseDistToGo[u1,1, 16]") - 'itemRead(3) = New Item("DB241.DBD0:[16]") 'Posizione Target !!!FARE!!! è altra variabile?!? AA_IM - - Do - Try - m_DataSvcRW.Read(itemRead) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - Catch ex As DataSvcException - Throw New NcException("ERR GetStaticData CNC.SIEMENS DataSvcException", ex) - End Try - Loop - - Dim datiAssi(19) As AxData - - ' faccio copia valori! - For i As Integer = 0 To 15 - 'datiAssi(i).PosAct = itemRead(0).Value(i) - datiAssi(i).PosAct = UIntegerToSingle(itemRead(0).Value(i)) - datiAssi(i).PosTgt = Convert.ToSingle(itemRead(3).Value(i)) - Next i - For i As Integer = 0 To 19 - datiAssi(i).Speed = UIntegerToSingle(itemRead(1).Value(i)) - datiAssi(i).Load = UIntegerToSingle(itemRead(2).Value(i)) - Next i - - Return datiAssi - - End Function - - ''' - ''' recupera (e formatta) tutti i dati riferiti alle tabelle della gestione UT - ''' - ''' - ''' - Public Function getAllUtData(ByVal numVal As Short, ByVal numUt As Short) As UtData - ' RIFERIMENTO: - ' txt Giuseppe - - ReDim itemRead(5) - itemRead(0) = New Item("DB254.DBW280:[" & numUt & "]") 'elencoUtMem - itemRead(1) = New Item("DB253.DBW2500:[" & numVal & "]") 'tabUt_UT - itemRead(2) = New Item("DB253.DBW2900:[" & numVal & "]") 'IdFamigliaUt - itemRead(3) = New Item("DB253.DBW100:[" & numVal & "]") 'tabFamUt - itemRead(4) = New Item("DB253.DBB1900:[" & numVal & "]") 'tabTipoVitaRes - itemRead(5) = New Item("DB253.DBD4300:[" & numVal & "]") 'tabVitaRes - - Do - Try - m_DataSvcRW.Read(itemRead) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - Catch ex As DataSvcException - Throw New NcException("ERR GetStaticData CNC.SIEMENS DataSvcException", ex) - End Try - Loop - - ' variabili di appoggio - Dim datiUT As New UtData - - Dim _elencoUtMem(numUt - 1) As UShort - Dim _tabUt_UT(numVal - 1) As UShort - Dim _tabIdFamUt(numVal - 1) As UShort - Dim _tabFamUt(numVal - 1) As UShort - Dim _tabTipoVitaRes(numVal - 1) As Byte - Dim _tabVitaRes(numVal - 1) As UInt32 - - ' faccio copia valori! - For i As Integer = 0 To numUt - 1 - _elencoUtMem(i) = itemRead(0).Value(i) - '_elencoUtMem(i) = UIntegerToSingle(itemRead(0).Value(i)) - Next i - - ' faccio copia valori! - For i As Integer = 0 To numVal - 1 - - _tabUt_UT(i) = itemRead(1).Value(i) - '_tabUt_UT(i) = UIntegerToSingle(itemRead(1).Value(i)) - - _tabIdFamUt(i) = itemRead(2).Value(i) - '_tabIdFamUt(i) = UIntegerToSingle(itemRead(2).Value(i)) - - _tabFamUt(i) = itemRead(3).Value(i) - '_tabFamUt(i) = UIntegerToSingle(itemRead(3).Value(i)) - - _tabTipoVitaRes(i) = itemRead(4).Value(i) - '_tabTipoVitaRes(i) = UIntegerToSingle(itemRead(4).Value(i)) - - _tabVitaRes(i) = itemRead(5).Value(i) - '_tabVitaRes(i) = UIntegerToSingle(itemRead(5).Value(i)) - Next i - - ' copio in oggetto OUT... - datiUT.elencoUtMem = _elencoUtMem - datiUT.tabUt_UT = _tabUt_UT - datiUT.tabFamUt = _tabFamUt - datiUT.tabIdFamUt = _tabIdFamUt - datiUT.tabTipoVitaRes = _tabTipoVitaRes - datiUT.tabVitaRes = _tabVitaRes - - ' rendo i dati! - Return datiUT - - End Function - - ''' - ''' recupera l'array dei codici G attivi - ''' - ''' - ''' Vettore codici attivi correnti - ''' - Public Function getPathGCodeMod(maxProc As Integer, ByRef GCodeCurr As String(,)) As Boolean - ' RIFERIMENTO: - ' SynumerikOperate_net, pg 52 - ' Parameter manual NC, pg 401 - - ' preparo memorie - Dim maxGruppi As Int16 - maxGruppi = 64 - ReDim itemRead(maxProc - 1) - For i As Integer = 0 To maxProc - 1 - itemRead(i) = New Item("/Channel/SelectedFunctions/ncFktAct[u" & i + 1 & ",1,#" & maxGruppi & "]") ' leggo TUTTI i gruppi... - ' verificare sintassi...[u1,1,64] al posto di [u1,1,#64] - 'itemRead(i) = New Item("/Channel/SelectedFunctions/ncFktAct[u" & i + 1 & ",1," & maxGruppi & "]") ' leggo TUTTI i gruppi... - Next i - - 'lettura - Do - Try - m_DataSvcRW.Read(itemRead) - Exit Do - Catch ex As DataSvcBusyException - Debug.Print(ex.Message) - Catch ex As DataSvcException - Throw New NcException("ERR GetStaticData CNC.SIEMENS DataSvcException", ex) - End Try - Loop - - ' faccio copia valori! - For i As Integer = 0 To maxGruppi - 1 - For j As Integer = 0 To maxProc - 1 - GCodeCurr(j, i) = itemRead(j).Value(i) - Next j - Next i - - ' chiudo! - Return True - - End Function - - ''' - ''' procedura per risposta alla segnalazione di allarmi... - ''' - ''' - ''' - Public Sub AlarmList(guid As Guid, alarms() As Alarm) - ' RIFERIMENTO: - ' SynumerikOperate_Net, pg 101 --> 110 (NON serve verifica theread...) - - ' verifico di essere il "corretto responditore"... - If (m_AlarmGuid.Equals(guid)) Then - ' salvo nel mio oggetto in memoria... - currAlarms = alarms - End If - - End Sub - - Public Function getCncAlarm() As Alarm() - ' RIFERIMENTO: - ' SynumerikOperate_Net, pg 101 --> 110 - - ' restituisco vettore allarmi... - Return currAlarms - - End Function - - -#End Region - - End Class - -End Namespace - -#End If \ No newline at end of file diff --git a/IOB-WIN/CncLib/CNC/CNC/CNC.CNC.vb b/IOB-WIN/CncLib/CNC/CNC/CNC.CNC.vb deleted file mode 100644 index 0a3c588..0000000 --- a/IOB-WIN/CncLib/CNC/CNC/CNC.CNC.vb +++ /dev/null @@ -1,239 +0,0 @@ -Imports System.Drawing -Imports System.Runtime.Serialization - -Namespace CNC - - Partial Public MustInherit Class CNC - - Protected bStaticDataReaded As Boolean - Protected _CncWindowProcess As Process - - Public Const R = False - Public Const W = True - - Public Enum NcType - DEMO = 0 - FANUC = 1 - OSAI = 2 - SIEMENS = 3 - End Enum - - Public Enum Memo - MemBool = 1 - MemByte = 2 - MemWord = 3 - MemInt = 4 - MemDWord = 5 - MemDInt = 6 - MemSingle = 7 - MemDouble = 8 - End Enum - - Public Enum InfoType - Descrizione - Matricola - Teste - Magazzini - ManineMagazzino - End Enum - - Protected _Type As NcType - Public ReadOnly Property Type() As NcType - Get - Return _Type - End Get - End Property - - - Protected _Descrizione As String - Public ReadOnly Property Descrizione() As String - Get - Return _Descrizione - End Get - End Property - Protected _Matricola As Integer - Public ReadOnly Property Matricola() As Integer - Get - If Not bStaticDataReaded Then Throw New System.Configuration.SettingsPropertyNotFoundException("Matricola not found") - Return _Matricola - End Get - End Property - Protected _Teste As Integer - Public ReadOnly Property Teste() As Integer - Get - If Not bStaticDataReaded Then Throw New System.Configuration.SettingsPropertyNotFoundException("Teste not found") - Return _Teste - End Get - End Property - Protected _Magazzini As Integer - Public ReadOnly Property Magazzini() As Integer - Get - If Not bStaticDataReaded Then Throw New System.Configuration.SettingsPropertyNotFoundException("Magazzini not found") - Return _Magazzini - End Get - End Property - Protected _ManineMagazzino() As Integer - Public ReadOnly Property ManineMagazzino() As Integer() - Get - If Not bStaticDataReaded Then Throw New System.Configuration.SettingsPropertyNotFoundException("ManineMagazzino not found") - Return _ManineMagazzino - End Get - End Property - Protected _MagazziniConAttrezzaggioAutomatico As Integer - Public ReadOnly Property MagazziniConAttrezzaggioAutomatico() As Integer - Get - If Not bStaticDataReaded Then Throw New System.Configuration.SettingsPropertyNotFoundException("MagazziniConAttrezzaggioAutomatico not found") - Return _MagazziniConAttrezzaggioAutomatico - End Get - End Property - Protected _MaxUtensiliGestibili As Integer - Public ReadOnly Property MaxUtensiliGestibili() As Integer - Get - If Not bStaticDataReaded Then Throw New System.Configuration.SettingsPropertyNotFoundException("MaxUtensiliGestibili not found") - Return _MaxUtensiliGestibili - End Get - End Property - Protected _MaxIdUtensile As Integer - Public ReadOnly Property MaxIdUtensile() As Integer - Get - If Not bStaticDataReaded Then Throw New System.Configuration.SettingsPropertyNotFoundException("MaxIdUtensile not found") - Return _MaxIdUtensile - End Get - End Property - Protected _ZoomSpeed As Integer - Public ReadOnly Property ZoomSpeed() As Integer '(aka: FattoreMoltSpeed) - Get - If Not bStaticDataReaded Then Throw New System.Configuration.SettingsPropertyNotFoundException("ZoomSpeed not found") - Return _ZoomSpeed - End Get - End Property - - Protected _ScreenSize As Size - Public Property ScreenSize() As Size - Get - Return _ScreenSize - End Get - Set(ByVal value As Size) - _ScreenSize = value - End Set - End Property - - Protected _CncWindowSize As Size - Public Property CncWindowSize() As Size - Get - Return _CncWindowSize - End Get - Set(ByVal value As Size) - _CncWindowSize = value - End Set - End Property - - Protected _CncWindowPosition As Point - Public Property CncWindowPosition() As Point - Get - Return _CncWindowPosition - End Get - Set(ByVal value As Point) - _CncWindowPosition = value - End Set - End Property - - Protected _bConnected As Boolean - Public Property Connected() As Boolean - Get - Return _bConnected - End Get - Private Set(ByVal value As Boolean) - _bConnected = value - End Set - End Property - - Protected _Licenza As Integer - Public Overridable Property Licenza() As Integer - Get - Return _Licenza - End Get - Set(ByVal value As Integer) - _Licenza = value - End Set - End Property - - Protected _LicenzaScaduta As Boolean - Public Overridable Property LicenzaScaduta() As Boolean - Get - Return _LicenzaScaduta - End Get - Set(ByVal value As Boolean) - _LicenzaScaduta = value - End Set - End Property - - Public Sub New() - - 'Definisco l'area della Cnc Window - _CncWindowPosition = New System.Drawing.Point(0, 0) - _CncWindowSize = New System.Drawing.Size(800, 600) - - End Sub - - Public Overridable Sub Initialize() - End Sub - - Public Overridable Sub Connect(Optional ByRef szStatus As String = "") - End Sub - - Public Overridable Sub Disconnect(Optional ByRef szStatus As String = "") - End Sub - - Public Overridable Sub CncException(Optional ByRef szStatus As String = "") - _bConnected = False - End Sub - - ''' - ''' Legge il valore del tempo di lavorazione totale del CN - ''' - Public Overridable Function GetDataMaintenance() As TimeSpan - End Function - - ''' - ''' Legge le memorie di configurazione dal cn - ''' - Public Overridable Sub GetStaticData() - End Sub - - ''' - ''' Chiude l'applicazione CNC - ''' - Public Overridable Sub CloseCnc() - End Sub - - End Class - - - - - - - Public Class NcException - Inherits System.ApplicationException - Public Sub New() - MyBase.New("NC Exception") - End Sub - Public Sub New(ByVal new_message As String) - MyBase.New(new_message) - End Sub - Public Sub New(ByVal new_message As String, ByVal inner_exception As Exception) - MyBase.New(new_message, inner_exception) - End Sub - Public Sub New(ByVal info As SerializationInfo, ByVal context As StreamingContext) - MyBase.New(info, context) - End Sub - End Class - - Public MustInherit Class CExceptionInfo - Public Overrides Function ToString() As String - ToString = "" - End Function - End Class - -End Namespace \ No newline at end of file diff --git a/IOB-WIN/CncLib/CncLib.vbproj b/IOB-WIN/CncLib/CncLib.vbproj deleted file mode 100644 index 068d93e..0000000 --- a/IOB-WIN/CncLib/CncLib.vbproj +++ /dev/null @@ -1,646 +0,0 @@ - - - - - Debug - AnyCPU - {2D769FFD-1122-4276-A115-29246E6D23C5} - Library - CncLib - CncLib - 512 - Windows - v4.5.2 - - - - true - full - true - true - bin\Debug\ - CncLib.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - FS30D=1,SIEMENS=1 - true - AnyCPU - false - - - pdbonly - false - true - true - bin\Release\ - CncLib.xml - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - FS30D=1,SIEMENS=1 - false - - - On - - - Binary - - - Off - - - On - - - true - bin\FANUC\ - CncLib.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - FS30D=1,SIEMENS=1 - false - - - true - bin\ESA\ - CncLib.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - FS30D=1,SIEMENS=1 - false - - - true - bin\SIEMENS\ - FS30D=1,SIEMENS=1 - CncLib.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - false - - - true - bin\OSAI\ - FS30D=1,SIEMENS=1 - CncLib.xml - true - 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - pdbonly - AnyCPU - MinimumRecommendedRules.ruleset - false - - - - False - ExtLib\Siemens.Sinumerik.Operate.Services.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - Application.myapp - - - True - True - Resources.resx - - - True - Settings.settings - True - - - True - True - Reference.svcmap - - - - - VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb - My.Resources - Designer - - - - - - MyApplicationCodeGenerator - Application.Designer.vb - - - SettingsSingleFileGenerator - My - Settings.Designer.vb - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - Reference.svcmap - - - - - - - - - - - - - - - - - - WCF Proxy Generator - Reference.vb - - - - - - - - - - \ No newline at end of file diff --git a/IOB-WIN/CncLib/CndexLinkDotNet.dll b/IOB-WIN/CncLib/CndexLinkDotNet.dll deleted file mode 100644 index 2ab44b83d4836e14d336d298b4ebd1c5807ad03e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46080 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 diff --git a/IOB-WIN/CncLib/Config/Config.Options.vb b/IOB-WIN/CncLib/Config/Config.Options.vb deleted file mode 100644 index 73618af..0000000 --- a/IOB-WIN/CncLib/Config/Config.Options.vb +++ /dev/null @@ -1,294 +0,0 @@ -Namespace Config - Class Options - - Public Shared CurrentOptions As Options - Public Shared sPathFile As String - - Private _Machine_Enabled As Boolean - ''' Maintenance Machine - Public ReadOnly Property Machine_Enabled() As Boolean - Get - Return Me._Machine_Enabled - End Get - End Property - - Private _Maintenance_Enabled As Boolean - ''' Opzione Maintenance - Public ReadOnly Property Maintenance_Enabled() As Boolean - Get - Return Me._Maintenance_Enabled - End Get - End Property - - Private _OpPanel_Enabled As Boolean - ''' Opzione OpPanel - Public ReadOnly Property OpPanel_Enabled() As Boolean - Get - Return Me._OpPanel_Enabled - End Get - End Property - - Private _Launch_Enabled As Boolean - ''' Opzione Launch - Public ReadOnly Property Launch_Enabled() As Boolean - Get - Return Me._Launch_Enabled - End Get - End Property - Private _TcpSocket_Enabled As Boolean - ''' Opzione TcpSocket - Public ReadOnly Property TcpSocket_Enabled() As Boolean - Get - Return Me._TcpSocket_Enabled - End Get - End Property - - Private _ToolTable_Enabled As Boolean - ''' Opzione ToolTable - Public ReadOnly Property ToolTable_Enabled() As Boolean - Get - Return Me._ToolTable_Enabled - End Get - - End Property - - Private _ToolTable_Famiglie As Boolean - ''' Opzione Famiglie - Public ReadOnly Property ToolTable_Famiglie() As Boolean - Get - Return Me._ToolTable_Famiglie - End Get - End Property - - Private _ToolTable_Vita As Boolean - ''' Opzione Vita - Public ReadOnly Property ToolTable_Vita() As Boolean - Get - Return (Me._ToolTable_Vita_S Or Me._ToolTable_Vita_N Or Me._ToolTable_Vita_M) - End Get - End Property - - Private _ToolTable_Vita_S As Boolean - ''' Opzione Vita a Tempo - Public ReadOnly Property ToolTable_Vita_S() As Boolean - Get - Return Me._ToolTable_Vita_S - End Get - End Property - - Private _ToolTable_Vita_N As Boolean - ''' Opzione Vita a Cicli o Colpi - Public ReadOnly Property ToolTable_Vita_N() As Boolean - Get - Return Me._ToolTable_Vita_N - End Get - End Property - - Private _ToolTable_Vita_M As Boolean - ''' Opzione Vita a Profilo - Public ReadOnly Property ToolTable_Vita_M() As Boolean - Get - Return Me._ToolTable_Vita_M - End Get - End Property - - Private _ToolTable_AttrezzaggioAutomatico As Boolean - ''' Opzione Attrezzaggio Automatico - Public ReadOnly Property ToolTable_AttrezzaggioAutomatico() As Boolean - Get - Return Me._ToolTable_AttrezzaggioAutomatico - End Get - End Property - - Private _ToolTable_PercorsoAutoadattativo As Boolean - ''' Opzione Percorso Autoadattativo - Public ReadOnly Property ToolTable_PercorsoAutoadattativo() As Boolean - Get - Return Me._ToolTable_PercorsoAutoadattativo - End Get - End Property - - Private _ToolTable_Multiprofilo As Boolean - ''' Opzione Multiprofilo - Public ReadOnly Property ToolTable_Multiprofilo() As Boolean - Get - Return Me._ToolTable_Multiprofilo - End Get - End Property - - Private _ToolTable_CompensazioneDinamica As Boolean - ''' Opzione Compensazione Dinamica - Public ReadOnly Property ToolTable_CompensazioneDinamica() As Boolean - Get - Return Me._ToolTable_CompensazioneDinamica - End Get - End Property - - Private _ToolTable_Offset As Boolean - ''' Opzione Offset - Public ReadOnly Property ToolTable_Offset() As Boolean - Get - Return Me._ToolTable_Offset - End Get - End Property - - Private _ToolTable_FeedMax As Boolean - ''' Opzione FeedMax - Public ReadOnly Property ToolTable_FeedMax() As Boolean - Get - Return Me._ToolTable_FeedMax - End Get - End Property - - Private _ToolTable_Gamme As Boolean - ''' Opzione Gamme - Public ReadOnly Property ToolTable_Gamme() As Boolean - Get - Return Me._ToolTable_Gamme - End Get - End Property - - Private _ToolTable_Manine As Boolean - ''' Opzione Manine - Public ReadOnly Property ToolTable_Manine() As Boolean - Get - Return Me._ToolTable_Manine - End Get - End Property - - - Private _ToolTable_MaxToolsManaged As Integer - ''' Massimo numero di utensili gestibili - Public ReadOnly Property ToolTable_MaxToolsManaged() As Integer - Get - Return Me._ToolTable_MaxToolsManaged - End Get - End Property - - Private _ToolTable_Inch As Boolean - ''' Opzione gestione in Pollici - Public ReadOnly Property ToolTable_Inch() As Boolean - Get - Return Me._ToolTable_Inch - End Get - End Property - - Private _ToolTable_Diameter As Boolean - ''' Opzione gestione Diametro - Public ReadOnly Property ToolTable_Diameter() As Boolean - Get - Return Me._ToolTable_Diameter - End Get - End Property - - Private _ToolTable_AttrezzaggioInRun As Boolean - ''' Opzione modifica con macchina in RUN - Public ReadOnly Property ToolTable_AttrezzaggioInRun() As Boolean - Get - Return Me._ToolTable_AttrezzaggioInRun - End Get - End Property - - Private _ToolTable_AttrezzaggioAssistito As Boolean - ''' Opzione Attrezzaggio magazzini inaccessibili tramite macchina - Public ReadOnly Property ToolTable_AttrezzaggioAssistito() As Boolean - Get - Return Me._ToolTable_AttrezzaggioAssistito - End Get - End Property - - Private _ToolTable_SharedDB As Boolean - ''' Opzione magazzino utensili condiviso tra più macchine - Public ReadOnly Property ToolTable_SharedDB() As Boolean - Get - Return Me._ToolTable_SharedDB - End Get - End Property - Private _ToolTable_AllowRemote As Boolean - ''' Opzione AllowRemote Tool Table - Public ReadOnly Property ToolTable_AllowRemote() As Boolean - Get - Return Me._ToolTable_AllowRemote - End Get - End Property - Public Shared Sub CreateOptions(ByVal sPathF As String) - If CurrentOptions Is Nothing Then - CurrentOptions = New Options - End If - - ' Memorizzo il percorso del file INI - sPathFile = sPathF - - CurrentOptions.LoadOptions() - End Sub - - 'carica le opzioni da file - Private Sub LoadOptions() - ''leggo la matricola dal cn - ''se non è possibile disabilito tutto e chiedo che venga attivata la connessione - ''se leggo 0 avviso che la metricola deve essere popolata - - ''leggo il codice dal file - ''valore = decodifica(valoreletto, matricola, passwordpubblica) - - Dim szFileIni As String - Dim Ini As App.Native.Ini - - ' imposto il nome del file - szFileIni = sPathFile & "\" & My.Application.Info.AssemblyName & ".ini" - - ' verifico che esista il file - If My.Computer.FileSystem.FileExists(szFileIni) Then - 'istanzio la classe di gestione del file - Ini = New App.Native.Ini(szFileIni) - 'leggo i settaggi dal file - Me._Machine_Enabled = Ini.GetBoolean("OPTIONS", "MACHINE_ENABLED", 0) - Me._Maintenance_Enabled = Ini.GetBoolean("OPTIONS", "MAINTENANCE_ENABLED", 0) - Me._OpPanel_Enabled = Ini.GetBoolean("OPTIONS", "OPPANEL_ENABLED", 0) - Me._Launch_Enabled = Ini.GetBoolean("OPTIONS", "LAUNCH_ENABLED", 0) - Me._TcpSocket_Enabled = Ini.GetBoolean("OPTIONS", "TCPSOCKET_ENABLED", 0) - Me._ToolTable_Enabled = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ENABLED", 0) - Me._ToolTable_Famiglie = Ini.GetBoolean("OPTIONS", "TOOLTABLE_FAMIGLIE", 0) - Me._ToolTable_Vita_S = Ini.GetBoolean("OPTIONS", "TOOLTABLE_VITA_S", 0) - Me._ToolTable_Vita_N = Ini.GetBoolean("OPTIONS", "TOOLTABLE_VITA_N", 0) - Me._ToolTable_Vita_M = Ini.GetBoolean("OPTIONS", "TOOLTABLE_VITA_M", 0) - Me._ToolTable_Multiprofilo = Ini.GetBoolean("OPTIONS", "TOOLTABLE_MULTIPROFILO", 0) - Me._ToolTable_AttrezzaggioAutomatico = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ATTREZZAGGIOAUTOMATICO", 0) - Me._ToolTable_PercorsoAutoadattativo = Ini.GetBoolean("OPTIONS", "TOOLTABLE_PERCORSOAUTOADATTATIVO", 0) - Me._ToolTable_CompensazioneDinamica = Ini.GetBoolean("OPTIONS", "TOOLTABLE_COMPENSAZIONEDINAMICA", 0) - Me._ToolTable_Offset = Ini.GetBoolean("OPTIONS", "TOOLTABLE_OFFSET", 0) - Me._ToolTable_FeedMax = Ini.GetBoolean("OPTIONS", "TOOLTABLE_FEEDMAX", 0) - Me._ToolTable_Gamme = Ini.GetBoolean("OPTIONS", "TOOLTABLE_GAMME", 0) - Me._ToolTable_Manine = Ini.GetBoolean("OPTIONS", "TOOLTABLE_MANINE", 0) - 'Me._ToolTable_GeometryManagement = Ini.GetInteger("OPTIONS", "TOOLTABLE_GEOMETRYMANAGEMENT", 0) - Me._ToolTable_MaxToolsManaged = Ini.GetInteger("OPTIONS", "TOOLTABLE_MAXTOOLSMANAGED", 0) - Me._ToolTable_Inch = Ini.GetBoolean("OPTIONS", "TOOLTABLE_INCH", 0) - Me._ToolTable_Diameter = IIf(CNC.Runtime.NC.Type = CNC.CNC.NcType.OSAI, True, False) 'Ini.GetBoolean("OPTIONS", "TOOLTABLE_DIAMETER", 0) - Me._ToolTable_AttrezzaggioInRun = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ATTREZZAGGIO_IN_RUN", 0) - Me._ToolTable_AttrezzaggioAssistito = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ATTREZZAGGIO_ASSISTITO", 0) - - - ' Se è attiva l'opzione ToolTable_Remote, l'AllowRemote e SharedDB sono ignorati - If Config.Settings.Settings.ToolTable_Remote Then - Me._ToolTable_AllowRemote = False - Me._ToolTable_SharedDB = False - Else - Me._ToolTable_AllowRemote = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ALLOWREMOTE", 0) - Me._ToolTable_SharedDB = Ini.GetBoolean("OPTIONS", "TOOLTABLE_SHAREDDB", 0) - End If - Else - 'CncLib.App.Runtime.Log.WW("ERR LoadOptions", String.Format("File {0} not found", szFileIni), True) - End If - - End Sub - - 'verifica che le opzioni sul cn siano coerenti, se no le corregge - Private Sub CheckOptions() - ''leggo le opzioni dal cn - - ''verifico che siano uguali a quelle del file, se no modifico il cn e avviso l'utente della modifica - End Sub - - - End Class -End Namespace diff --git a/IOB-WIN/CncLib/Config/Config.Settings.vb b/IOB-WIN/CncLib/Config/Config.Settings.vb deleted file mode 100644 index 56fbfe0..0000000 --- a/IOB-WIN/CncLib/Config/Config.Settings.vb +++ /dev/null @@ -1,698 +0,0 @@ -Imports System.ComponentModel -Imports System.Drawing - -Namespace Config - - Class Settings - Const MAX_NUM_TOOLTABLE_PATH = 19 - - Public Shared Settings As SettingsProperty - Public Shared SettingsEdit As SettingsProperty - Public Shared sPathFile As String - - Friend Enum MemoryMapping - [Default] = 0 - ElsManager = 1 - ToolManager = 2 - ToolTable = 3 - End Enum - - Public Shared Sub CreateSettings(ByVal sPathF As String, Optional ByVal bReadToolTable As Boolean = True) - If Settings Is Nothing Then - Settings = New SettingsProperty - SettingsEdit = New SettingsProperty - End If - - - ' Memorizzo il percorso del file INI - sPathFile = sPathF - - LoadSettings(bReadToolTable) - End Sub - - Public Shared Sub LoadSettings(Optional ByVal bReadToolTable As Boolean = True) - Dim szFileIni As String - Dim nTmp As Integer - Dim Ini As App.Native.Ini - Dim sFont As Single - - ' imposto il nome del file - szFileIni = sPathFile & "\" & My.Application.Info.AssemblyName & ".ini" - - ' verifico che esista il file - If My.Computer.FileSystem.FileExists(szFileIni) Then - 'istanzio la classe di gestione del file - Ini = New App.Native.Ini(szFileIni) - 'leggo i settaggi dal file - With Settings - .Debug = Ini.GetInteger("CONFIG", "DEBUG", 0) - .Language = Trim(Ini.GetString("CONFIG", "LANGUAGE", "English")) - ' Quando è attiva l'impostazione TOOLTABLEREMOTE in SettingsBase, - ' il CN è "sempre" da impostare a DEMO - If Config.Settings.Settings.ToolTable_Remote Then - .TypeNC = CNC.CNC.NcType.DEMO - Else - .TypeNC = Ini.GetInteger("NC", "TYPE", 0) - End If - - nTmp = Ini.GetInteger("NC", "MEMORYMAPPING", 0) - If nTmp = 0 Then 'se MEMORYMAPPING viene lasciata a 0, imposto il valore di default - Select Case nTmp - Case CNC.CNC.NcType.FANUC : .MemoryMapping = MemoryMapping.ElsManager - Case CNC.CNC.NcType.OSAI : .MemoryMapping = MemoryMapping.ElsManager - Case CNC.CNC.NcType.SIEMENS : .MemoryMapping = MemoryMapping.ToolTable - End Select - Else - .MemoryMapping = nTmp - End If - If bReadToolTable Then - .SerialNumber = Ini.GetInteger("NC", "SERIALNUMBER", "0") - End If - - .Hssb = Ini.GetBoolean("FANUC", "HSSB", 0) - .IpFanuc = Trim(Ini.GetString("FANUC", "IP", "192.168.1.1")) - .PortIpFanuc = Ini.GetInteger("FANUC", "PORT", "8193") - .CncScreenHssb = Ini.GetInteger("FANUC", "CNCSCREEN_HSSB", "0") - .NcName = Trim(Ini.GetString("OSAI", "NAME", "NC0000")) - .OsaiCommType = Trim(Ini.GetInteger("OSAI", "COMM_TYPE", "0")) - .IpOsai = Trim(Ini.GetString("OSAI", "IP", "192.168.1.1")) - .DncPcPath = Trim(Ini.GetString("OSAI", "DNC_PC_PATH", "C:\PARTPRG\")) - .DncNcPath = Trim(Ini.GetString("OSAI", "DNC_NC_PATH", "P:\")) - .DncTimeout = Ini.GetInteger("OSAI", "DNC_TIMEOUT", "20") - .AlwaysOnTop = CBool(Ini.GetString("POSITION", "ALWAYSONTOP", "0")) - .HeadsPanel_ShowOnOpPanel = CBool(Ini.GetString("HEADS_PANEL", "SHOW_ON_OPPANEL", "1")) - .HeadsPanel_ReverseOrder = CBool(Ini.GetString("HEADS_PANEL", "REVERSE_ORDER", "0")) - For i As Integer = 0 To 19 - .HeadsPanel_Name(i) = Ini.GetString("HEADS_PANEL", "HEADNAME" & (i + 1).ToString, "") - Try - '.HeadsPanel_Type(i) = CType(Ini.GetInteger("HEADS_PANEL", "HEADTYPE" & (i + 1).ToString, "0"), Control.Heads.HeadTypes) - Catch ex As Exception - End Try - Next - .ControlPosition = New Rectangle(Ini.GetInteger("POSITION", "LEFT", 60), - Ini.GetInteger("POSITION", "TOP", 80), - Ini.GetInteger("POSITION", "WIDTH", 800), - Ini.GetInteger("POSITION", "HEIGHT", 600)) - .OpPanel_FollowCnc = CBool(Ini.GetString("SETTINGS", "OPPANEL_FOLLOWCNC", "1")) - - Dim ScreenW = Ini.GetInteger("SETTINGS", "SCREEN_WIDTH", 0) - Dim ScreenH = Ini.GetInteger("SETTINGS", "SCREEN_HEIGHT", 0) - If ScreenW > 0 And ScreenH > 0 Then - .OpPanel_ScreenSize = New Size(ScreenW, ScreenH) - .OpPanel_ForcedScreenSize = True - Else - '.OpPanel_ScreenSize = Screen.PrimaryScreen.Bounds.Size - .OpPanel_ForcedScreenSize = False - End If - - Select Case .OpPanel_ScreenSize - Case New Size(800, 600) '10" - sFont = 6.75! - Case New Size(1024, 768), New Size(2048, 768) '15", 15" doppio monitor - sFont = 8.25! - Case New Size(1280, 800), New Size(1366, 768), New Size(1280, 1024) '15,6" widescreen,17" - sFont = 9.75! - Case Else - sFont = 8.25! - End Select - .DefaultFont = New System.Drawing.Font("Tahoma", sFont, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - - .TcpSocket_Ip = Trim(Ini.GetString("SETTINGS", "TCPSOCKET_IP", "192.168.139.100")) - .TcpSocket_Port = Ini.GetInteger("SETTINGS", "TCPSOCKET_PORT", "4999") - - ' ToolTable REMOTE - If bReadToolTable Then - .ToolTable_Remote = Ini.GetBoolean("TOOLTABLE", "REMOTE", 0) - For i As Integer = 0 To MAX_NUM_TOOLTABLE_PATH - .ToolTable_Path(i) = Ini.GetString("TOOLTABLE", "PATH" & (i + 1).ToString, "") - .ToolTable_Descr(i) = Ini.GetString("TOOLTABLE", "DESCRIPTION" & (i + 1).ToString, "") - If .ToolTable_Path(i) <> "" Then - .ToolTable_CountPaths = i + 1 - End If - Next - End If - End With - Else - 'CncLib.App.Runtime.Log.WW("ERR LoadFromFile", String.Format("File {0} not found", szFileIni), True) - End If - End Sub - - Public Shared Sub SaveToFile() - Dim szFileIni As String - Dim Ini As App.Native.Ini - - ' imposto il nome del file - szFileIni = sPathFile & "\" & My.Application.Info.AssemblyName & ".ini" - - ' verifico che esista il file - If My.Computer.FileSystem.FileExists(szFileIni) Then - 'istanzio la classe di gestione del file - Ini = New App.Native.Ini(szFileIni) - With Settings - ' salvo su file - Ini.WriteInteger("CONFIG", "DEBUG", .Debug) - Ini.WriteString("CONFIG", "LANGUAGE", .Language) - - Ini.WriteInteger("POSITION", "ALWAYSONTOP", IIf((.AlwaysOnTop), 1, 0)) - Ini.WriteInteger("POSITION", "LEFT", .ControlPosition.Left) - Ini.WriteInteger("POSITION", "TOP", .ControlPosition.Top) - Ini.WriteInteger("POSITION", "WIDTH", .ControlPosition.Width) - Ini.WriteInteger("POSITION", "HEIGHT", .ControlPosition.Height) - - Ini.WriteInteger("TOOLTABLE", "REMOTE", IIf((.ToolTable_Remote), 1, 0)) - ' Uso 2 cicli per mantenere Path e Descr separati - For i As Integer = 0 To MAX_NUM_TOOLTABLE_PATH - If .ToolTable_Path(i) <> "" Then - Ini.WriteString("TOOLTABLE", "PATH" & (i + 1).ToString, .ToolTable_Path(i)) - End If - Next - For i As Integer = 0 To MAX_NUM_TOOLTABLE_PATH - If .ToolTable_Descr(i) <> "" Then - Ini.WriteString("TOOLTABLE", "DESCRIPTION" & (i + 1).ToString, .ToolTable_Descr(i)) - End If - Next - End With - - 'CncLib.App.Runtime.Log.WI("END SaveToFile", , CCncLib.App.Runtime.Log.Lev.Secondary) - Else - 'CncLib.App.Runtime.Log.WW("ERR SaveToFile", String.Format("File {0} not found", szFileIni), True) - End If - End Sub - - Public Shared Sub SettingsToEdit() - SettingsEdit.Debug = Settings.Debug - SettingsEdit.Language = Settings.Language - SettingsEdit.TypeNC = Settings.TypeNC - SettingsEdit.MemoryMapping = Settings.MemoryMapping - SettingsEdit.SerialNumber = Settings.SerialNumber - SettingsEdit.Hssb = Settings.Hssb - SettingsEdit.IpFanuc = Settings.IpFanuc - SettingsEdit.PortIpFanuc = Settings.PortIpFanuc - SettingsEdit.CncScreenHssb = Settings.CncScreenHssb - SettingsEdit.NcName = Settings.NcName - SettingsEdit.OsaiCommType = Settings.OsaiCommType - SettingsEdit.IpOsai = Settings.IpOsai - SettingsEdit.DncPcPath = Settings.DncPcPath - SettingsEdit.DncNcPath = Settings.DncNcPath - SettingsEdit.DncTimeout = Settings.DncTimeout - SettingsEdit.AlwaysOnTop = Settings.AlwaysOnTop - SettingsEdit.HeadsPanel_ShowOnOpPanel = Settings.HeadsPanel_ShowOnOpPanel - SettingsEdit.HeadsPanel_ReverseOrder = Settings.HeadsPanel_ReverseOrder - SettingsEdit.ControlPosition = New Rectangle(Settings.ControlPosition.X, - Settings.ControlPosition.Y, - Settings.ControlPosition.Width, - Settings.ControlPosition.Height) - SettingsEdit.OpPanel_FollowCnc = Settings.OpPanel_FollowCnc - SettingsEdit.OpPanel_ScreenSize = New Size(Settings.OpPanel_ScreenSize.Width, - Settings.OpPanel_ScreenSize.Height) - SettingsEdit.TcpSocket_Ip = Settings.TcpSocket_Ip - SettingsEdit.TcpSocket_Port = Settings.TcpSocket_Port - - SettingsEdit.ToolTable_Remote = Settings.ToolTable_Remote - For i As Integer = 0 To MAX_NUM_TOOLTABLE_PATH - SettingsEdit.ToolTable_Path(i) = Settings.ToolTable_Path(i) - SettingsEdit.ToolTable_Descr(i) = Settings.ToolTable_Descr(i) - Next - End Sub - - Public Shared Sub EditToSettings() - Settings.Debug = SettingsEdit.Debug - Settings.Language = SettingsEdit.Language - Settings.TypeNC = SettingsEdit.TypeNC - Settings.MemoryMapping = SettingsEdit.MemoryMapping - Settings.SerialNumber = SettingsEdit.SerialNumber - Settings.Hssb = SettingsEdit.Hssb - Settings.IpFanuc = SettingsEdit.IpFanuc - Settings.PortIpFanuc = SettingsEdit.PortIpFanuc - Settings.CncScreenHssb = SettingsEdit.CncScreenHssb - Settings.NcName = SettingsEdit.NcName - Settings.OsaiCommType = SettingsEdit.OsaiCommType - Settings.IpOsai = SettingsEdit.IpOsai - Settings.DncPcPath = SettingsEdit.DncPcPath - Settings.DncNcPath = SettingsEdit.DncNcPath - Settings.DncTimeout = SettingsEdit.DncTimeout - Settings.AlwaysOnTop = SettingsEdit.AlwaysOnTop - Settings.HeadsPanel_ShowOnOpPanel = SettingsEdit.HeadsPanel_ShowOnOpPanel - Settings.HeadsPanel_ReverseOrder = SettingsEdit.HeadsPanel_ReverseOrder - Settings.ControlPosition = New Rectangle(SettingsEdit.ControlPosition.X, - SettingsEdit.ControlPosition.Y, - SettingsEdit.ControlPosition.Width, - SettingsEdit.ControlPosition.Height) - Settings.OpPanel_FollowCnc = SettingsEdit.OpPanel_FollowCnc - Settings.OpPanel_ScreenSize = New Size(SettingsEdit.OpPanel_ScreenSize.Width, - SettingsEdit.OpPanel_ScreenSize.Height) - Settings.TcpSocket_Ip = SettingsEdit.TcpSocket_Ip - Settings.TcpSocket_Port = SettingsEdit.TcpSocket_Port - - Settings.ToolTable_Remote = SettingsEdit.ToolTable_Remote - For i As Integer = 0 To MAX_NUM_TOOLTABLE_PATH - Settings.ToolTable_Path(i) = SettingsEdit.ToolTable_Path(i) - Settings.ToolTable_Descr(i) = SettingsEdit.ToolTable_Descr(i) - Next - - RaiseEvent SettingsChanged(New Object, New EventArgs) - End Sub - - Public Shared Event SettingsChanged(ByVal sender As Object, ByVal e As EventArgs) - - Friend Class SettingsProperty - - Private _Debug As Integer = 0 - - Public Property Debug() As Integer - Get - Return Me._Debug - End Get - Set(ByVal value As Integer) - Me._Debug = value - End Set - End Property - Private _Language As String = "English" - - Public Property Language() As String - Get - Return Me._Language - End Get - Set(ByVal value As String) - Me._Language = value - End Set - End Property - - Private _TypeNC As CNC.CNC.NcType = CNC.CNC.NcType.DEMO - - Public Property TypeNC() As CNC.CNC.NcType - Get - Return Me._TypeNC - End Get - Set(ByVal value As CNC.CNC.NcType) - Me._TypeNC = value - End Set - End Property - - Private _MemoryMapping As Config.Settings.MemoryMapping = MemoryMapping.Default - - Public Property MemoryMapping() As Config.Settings.MemoryMapping - Get - Return Me._MemoryMapping - End Get - Set(ByVal value As Config.Settings.MemoryMapping) - Me._MemoryMapping = value - End Set - End Property - - Private _SerialNumber As Integer = 0 - - Public Property SerialNumber() As Integer - Get - Return Me._SerialNumber - End Get - Set(ByVal value As Integer) - Me._SerialNumber = value - End Set - End Property - - Private _Hssb As Integer = 0 - - Public Property Hssb() As Integer - Get - Return Me._Hssb - End Get - Set(ByVal value As Integer) - Me._Hssb = value - End Set - End Property - - Private _IpFanuc As String = "192.168.1.1" - - Public Property IpFanuc() As String - Get - Return Me._IpFanuc - End Get - Set(ByVal value As String) - Me._IpFanuc = value - End Set - End Property - - Private _PortIpFanuc As Integer = 8193 - - Public Property PortIpFanuc() As Integer - Get - Return Me._PortIpFanuc - End Get - Set(ByVal value As Integer) - Me._PortIpFanuc = value - End Set - End Property - - Private _CncScreenHssb As Integer = 0 - - Public Property CncScreenHssb() As Integer - Get - Return Me._CncScreenHssb - End Get - Set(ByVal value As Integer) - Me._CncScreenHssb = value - End Set - End Property - - Private _NcName As String = "NC0000" - - Public Property NcName() As String - Get - Return Me._NcName - End Get - Set(ByVal value As String) - Me._NcName = value - End Set - End Property - - Private _OsaiCommType As Integer = 1 - - Public Property OsaiCommType() As Integer - Get - Return Me._OsaiCommType - End Get - Set(ByVal value As Integer) - Me._OsaiCommType = value - End Set - End Property - - Private _IpOsai As String = "192.168.1.1" - - Public Property IpOsai() As String - Get - Return Me._IpOsai - End Get - Set(ByVal value As String) - Me._IpOsai = value - End Set - End Property - - Private _DncPcPath As String = "C:\PARTPRG\" - - Public Property DncPcPath() As String - Get - Return Me._DncPcPath - End Get - Set(ByVal value As String) - Me._DncPcPath = value - End Set - End Property - - Private _DncNcPath As String = "P:\" - - Public Property DncNcPath() As String - Get - Return Me._DncNcPath - End Get - Set(ByVal value As String) - Me._DncNcPath = value - End Set - End Property - - Private _DncTimeout As Integer = 20 - - Public Property DncTimeout() As Integer - Get - Return Me._DncTimeout - End Get - Set(ByVal value As Integer) - Me._DncTimeout = value - End Set - End Property - - Private _ControlPosition As Rectangle = New Rectangle(80, 60, 800, 600) - - Public Property ControlPosition() As Rectangle - Get - Return Me._ControlPosition - End Get - Set(ByVal value As Rectangle) - Me._ControlPosition = value - End Set - End Property - - Private _AlwaysOnTop As Boolean - - Public Property AlwaysOnTop() As Boolean - Get - Return Me._AlwaysOnTop - End Get - Set(ByVal value As Boolean) - Me._AlwaysOnTop = value - End Set - End Property - - Private _HeadsPanel_ShowOnOpPanel As Boolean - - Public Property HeadsPanel_ShowOnOpPanel() As Boolean - Get - Return Me._HeadsPanel_ShowOnOpPanel - End Get - Set(ByVal value As Boolean) - Me._HeadsPanel_ShowOnOpPanel = value - End Set - End Property - - Private _HeadsPanel_ReverseOrder As Boolean - - Public Property HeadsPanel_ReverseOrder() As Boolean - Get - Return Me._HeadsPanel_ReverseOrder - End Get - Set(ByVal value As Boolean) - Me._HeadsPanel_ReverseOrder = value - End Set - End Property - - Private _HeadsPanel_Name(19) As String - - Public Property HeadsPanel_Name() As String() - Get - Return Me._HeadsPanel_Name - End Get - Set(ByVal value As String()) - Me._HeadsPanel_Name = value - End Set - End Property - - 'Private _HeadsPanel_Type(19) As Control.Heads.HeadTypes - ' _ - 'Public Property HeadsPanel_Type() As Control.Heads.HeadTypes() - ' Get - ' Return Me._HeadsPanel_Type - ' End Get - ' Set(ByVal value As Control.Heads.HeadTypes()) - ' Me._HeadsPanel_Type = value - ' End Set - 'End Property - - Private _OpPanel_FollowCnc As Boolean - - Public Property OpPanel_FollowCnc() As Boolean - Get - Return Me._OpPanel_FollowCnc - End Get - Set(ByVal value As Boolean) - Me._OpPanel_FollowCnc = value - End Set - End Property - - Private _OpPanel_ScreenSize As Size = New Size(0, 0) - - Public Property OpPanel_ScreenSize() As Size - Get - Return Me._OpPanel_ScreenSize - End Get - Set(ByVal value As Size) - Me._OpPanel_ScreenSize = value - End Set - End Property - - Private _OpPanel_ForcedScreenSize As Boolean = False - - Public Property OpPanel_ForcedScreenSize() As Boolean - Get - Return Me._OpPanel_ForcedScreenSize - End Get - Set(ByVal value As Boolean) - Me._OpPanel_ForcedScreenSize = value - End Set - End Property - - Private _DefaultFont As Font - - Public Property DefaultFont() As Font - Get - Return Me._DefaultFont - End Get - Set(ByVal value As Font) - Me._DefaultFont = value - End Set - End Property - - Private _TcpSocket_Ip As String = "192.168.139.100" - - Public Property TcpSocket_Ip() As String - Get - Return Me._TcpSocket_Ip - End Get - Set(ByVal value As String) - Me._TcpSocket_Ip = value - End Set - End Property - - Private _TcpSocket_Port As Integer = 4999 - - Public Property TcpSocket_Port() As Integer - Get - Return Me._TcpSocket_Port - End Get - Set(ByVal value As Integer) - Me._TcpSocket_Port = value - End Set - End Property - Private _ToolTable_Remote As Boolean = False - - Public Property ToolTable_Remote() As Boolean - Get - Return Me._ToolTable_Remote - End Get - Set(ByVal value As Boolean) - Me._ToolTable_Remote = value - End Set - End Property - Private _ToolTable_Path(MAX_NUM_TOOLTABLE_PATH) As String - - Public Property ToolTable_Path() As String() - Get - Return Me._ToolTable_Path - End Get - Set(ByVal value As String()) - Me._ToolTable_Path = value - End Set - End Property - Private _ToolTable_Descr(MAX_NUM_TOOLTABLE_PATH) As String - - Public Property ToolTable_Descr() As String() - Get - Return Me._ToolTable_Descr - End Get - Set(ByVal value As String()) - Me._ToolTable_Descr = value - End Set - End Property - Private _ToolTable_CountPaths As Integer = 0 - - Public Property ToolTable_CountPaths() As Integer - Get - Return Me._ToolTable_CountPaths - End Get - Set(ByVal value As Integer) - Me._ToolTable_CountPaths = value - End Set - End Property - - - - - - End Class - - End Class -End Namespace diff --git a/IOB-WIN/CncLib/ExtLib/Siemens.Sinumerik.Operate.Services.Wrapper.dll b/IOB-WIN/CncLib/ExtLib/Siemens.Sinumerik.Operate.Services.Wrapper.dll deleted file mode 100644 index b8d54cf9100f20a4127b9523179583a585ebf015..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996200 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¨HxhWhHTihZ0UDY$4Dc#)sPx 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�T`(Wx|w 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
vX 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
I1RIb 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
>=lg@RbTanY|_D%Gsjc+=_E-lB$i*DVt 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 M5sh>4gl_!(AISNCssI20 diff --git a/IOB-WIN/CncLib/ExtLib/Siemens.Sinumerik.Operate.Services.dll b/IOB-WIN/CncLib/ExtLib/Siemens.Sinumerik.Operate.Services.dll deleted file mode 100644 index f00469d5380b0d4992aca28c8538f8c47ecc14ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230248 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 c5s#O2h`9RD@9mdYEq`-F^yHjw?3tqf2el8{ second.Length) Then - Return False - End If - For i As Integer = 0 To first.Length - 1 - If (first(i) <> second(i)) Then - Return False - End If - Next i - Return True - End Function - -End Module diff --git a/IOB-WIN/CncLib/Modules/General.vb b/IOB-WIN/CncLib/Modules/General.vb deleted file mode 100644 index 2cc30ad..0000000 --- a/IOB-WIN/CncLib/Modules/General.vb +++ /dev/null @@ -1,83 +0,0 @@ -Module General - - Public Const MASK_BIT0 = &H1& - Public Const MASK_BIT1 = &H2& - Public Const MASK_BIT2 = &H4& - Public Const MASK_BIT3 = &H8& - Public Const MASK_BIT4 = &H10& - Public Const MASK_BIT5 = &H20& - Public Const MASK_BIT6 = &H40& - Public Const MASK_BIT7 = &H80& - Public Const MASK_BIT8 = &H100& - Public Const MASK_BIT9 = &H200& - Public Const MASK_BIT10 = &H400& - Public Const MASK_BIT11 = &H800& - Public Const MASK_BIT12 = &H1000& - Public Const MASK_BIT13 = &H2000& - Public Const MASK_BIT14 = &H4000& - Public Const MASK_BIT15 = &H8000& - - Public Const LOW_ORDER = 0 - Public Const HIGH_ORDER = 1 - - 'Costanti globali - Public Const NC_DEMO = 0 - Public Const NC_FANUC = 1 - Public Const NC_OSAI = 2 - Public Const NC_SIEMENS = 3 - - Public Const HSSB_DEFAULT_NODE = 0 - - Public Const MEM_BOOL = 1 - Public Const MEM_BYTE = 2 - Public Const MEM_WORD = 3 - Public Const MEM_INT = 4 - Public Const MEM_DWORD = 5 - Public Const MEM_DINT = 6 - Public Const MEM_SINGLE = 7 - Public Const MEM_DOUBLE = 8 - - Public Const MEM_F_R = 5 - Public Const MEM_F_D = 9 - - Public Const MEM_S_DB = 0 - Public Const MEM_S_M = -1 - Public Const MEM_S_R = -2 - Public Const MEM_S_E = -3 - Public Const MEM_S_A = -4 - - 'Variabili globali - 'Public nDebug As Integer - 'Public szLanguage As String - 'Public nTypeNC As Integer - - 'Fanuc - 'Public bHssb As Boolean - Public Hssb_node As Long - 'Public szIpFanuc As String - 'Public nPortIpFanuc As Integer - ''Public nReturn As Integer - 'Public bSerie30 As Boolean - 'Public bMultiProcess As Boolean - - 'Osai - 'Public szNcName As String 'Nome del CN in rete - - Public nTop As Integer - Public nLeft As Integer - Public nHeight As Integer - Public nWidth As Integer - - - '''

- ''' Sostituisce il carattere | con un carattere speciale di ritorno a capo - ''' - Public Function ReplaceNewLine(ByVal strWord As String) As String - Dim strModifiedWord As String = strWord - - strModifiedWord = strModifiedWord.Replace("|", vbNewLine) - - Return strModifiedWord - End Function - -End Module diff --git a/IOB-WIN/CncLib/My Project/Application.Designer.vb b/IOB-WIN/CncLib/My Project/Application.Designer.vb deleted file mode 100644 index d3e75b8..0000000 --- a/IOB-WIN/CncLib/My Project/Application.Designer.vb +++ /dev/null @@ -1,13 +0,0 @@ -'------------------------------------------------------------------------------ -' -' Il codice è stato generato da uno strumento. -' Versione runtime:4.0.30319.42000 -' -' Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se -' il codice viene rigenerato. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - diff --git a/IOB-WIN/CncLib/My Project/Application.myapp b/IOB-WIN/CncLib/My Project/Application.myapp deleted file mode 100644 index 758895d..0000000 --- a/IOB-WIN/CncLib/My Project/Application.myapp +++ /dev/null @@ -1,10 +0,0 @@ - - - false - false - 0 - true - 0 - 1 - true - diff --git a/IOB-WIN/CncLib/My Project/AssemblyInfo.vb b/IOB-WIN/CncLib/My Project/AssemblyInfo.vb deleted file mode 100644 index ff9228a..0000000 --- a/IOB-WIN/CncLib/My Project/AssemblyInfo.vb +++ /dev/null @@ -1,24 +0,0 @@ -Imports System -Imports System.Reflection -Imports System.Runtime.InteropServices - -' General Information about an assembly is controlled through the following -' set of attributes. Change these attribute values to modify the information -' associated with an assembly. - -' Review the values of the assembly attributes - - - - - - - - - - -'The following GUID is for the ID of the typelib if this project is exposed to COM - - - - diff --git a/IOB-WIN/CncLib/My Project/Resources.Designer.vb b/IOB-WIN/CncLib/My Project/Resources.Designer.vb deleted file mode 100644 index 4ebee5f..0000000 --- a/IOB-WIN/CncLib/My Project/Resources.Designer.vb +++ /dev/null @@ -1,63 +0,0 @@ -'------------------------------------------------------------------------------ -' -' Il codice è stato generato da uno strumento. -' Versione runtime:4.0.30319.42000 -' -' Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se -' il codice viene rigenerato. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - -Imports System - -Namespace My.Resources - - 'Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder. - 'tramite uno strumento quale ResGen o Visual Studio. - 'Per aggiungere o rimuovere un membro, modificare il file con estensione ResX ed eseguire nuovamente ResGen - 'con l'opzione /str oppure ricompilare il progetto VS. - ''' - ''' Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via. - ''' - _ - Friend Module Resources - - Private resourceMan As Global.System.Resources.ResourceManager - - Private resourceCulture As Global.System.Globalization.CultureInfo - - ''' - ''' Restituisce l'istanza di ResourceManager nella cache utilizzata da questa classe. - ''' - _ - Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager - Get - If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("CncLib.Resources", GetType(Resources).Assembly) - resourceMan = temp - End If - Return resourceMan - End Get - End Property - - ''' - ''' Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte le - ''' ricerche di risorse eseguite utilizzando questa classe di risorse fortemente tipizzata. - ''' - _ - Friend Property Culture() As Global.System.Globalization.CultureInfo - Get - Return resourceCulture - End Get - Set - resourceCulture = value - End Set - End Property - End Module -End Namespace diff --git a/IOB-WIN/CncLib/My Project/Resources.resx b/IOB-WIN/CncLib/My Project/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/IOB-WIN/CncLib/My Project/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/IOB-WIN/CncLib/My Project/Settings.Designer.vb b/IOB-WIN/CncLib/My Project/Settings.Designer.vb deleted file mode 100644 index d0ef8ed..0000000 --- a/IOB-WIN/CncLib/My Project/Settings.Designer.vb +++ /dev/null @@ -1,73 +0,0 @@ -'------------------------------------------------------------------------------ -' -' Il codice è stato generato da uno strumento. -' Versione runtime:4.0.30319.42000 -' -' Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se -' il codice viene rigenerato. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace My - - _ - Partial Friend NotInheritable Class MySettings - Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) - -#Region "Funzionalità di salvataggio automatico My.Settings" -#If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean - - Private Shared addedHandlerLockObject As New Object - - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub -#End If -#End Region - - Public Shared ReadOnly Property [Default]() As MySettings - Get - -#If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If -#End If - Return defaultInstance - End Get - End Property - End Class -End Namespace - -Namespace My - - _ - Friend Module MySettingsProperty - - _ - Friend ReadOnly Property Settings() As Global.CncLib.My.MySettings - Get - Return Global.CncLib.My.MySettings.Default - End Get - End Property - End Module -End Namespace diff --git a/IOB-WIN/CncLib/My Project/Settings.settings b/IOB-WIN/CncLib/My Project/Settings.settings deleted file mode 100644 index 85b890b..0000000 --- a/IOB-WIN/CncLib/My Project/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.AxesRefR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.AxesRefR.datasource deleted file mode 100644 index 134d5b6..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.AxesRefR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.AxesRefR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootModeR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootModeR.datasource deleted file mode 100644 index 9b19934..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootModeR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.BootModeR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootPhaseEnquiryR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootPhaseEnquiryR.datasource deleted file mode 100644 index 2a60c95..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootPhaseEnquiryR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.BootPhaseEnquiryR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootRebootR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootRebootR.datasource deleted file mode 100644 index f91f85d..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootRebootR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.BootRebootR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootShutDownR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootShutDownR.datasource deleted file mode 100644 index 733b8ae..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.BootShutDownR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.BootShutDownR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.CheckHistoryR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.CheckHistoryR.datasource deleted file mode 100644 index 0b67a4f..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.CheckHistoryR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.CheckHistoryR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.CycleR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.CycleR.datasource deleted file mode 100644 index 24d552d..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.CycleR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.CycleR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncDataR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncDataR.datasource deleted file mode 100644 index d128e24..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncDataR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.DncDataR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncEofR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncEofR.datasource deleted file mode 100644 index d16a2cb..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncEofR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.DncEofR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncInitR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncInitR.datasource deleted file mode 100644 index 14fc008..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncInitR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.DncInitR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncStopR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncStopR.datasource deleted file mode 100644 index 325698c..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.DncStopR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.DncStopR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.EseExR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.EseExR.datasource deleted file mode 100644 index 3561e47..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.EseExR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.EseExR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.EseR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.EseR.datasource deleted file mode 100644 index 465cd84..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.EseR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.EseR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ExeR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ExeR.datasource deleted file mode 100644 index 495ddc2..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ExeR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ExeR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetActivePartProgramR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetActivePartProgramR.datasource deleted file mode 100644 index 2f7f881..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetActivePartProgramR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetActivePartProgramR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAvailableCustomEventsR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAvailableCustomEventsR.datasource deleted file mode 100644 index 77bea45..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAvailableCustomEventsR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetAvailableCustomEventsR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAxOriginNumR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAxOriginNumR.datasource deleted file mode 100644 index cda2aff..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAxOriginNumR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetAxOriginNumR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAxesInfo3R.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAxesInfo3R.datasource deleted file mode 100644 index aff3288..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAxesInfo3R.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetAxesInfo3R, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAxesPositionR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAxesPositionR.datasource deleted file mode 100644 index 55c48d2..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetAxesPositionR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetAxesPositionR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetBinaryFileR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetBinaryFileR.datasource deleted file mode 100644 index dd8f56c..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetBinaryFileR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetBinaryFileR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetBlkNumR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetBlkNumR.datasource deleted file mode 100644 index febe9bb..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetBlkNumR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetBlkNumR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetCNCRegKeyR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetCNCRegKeyR.datasource deleted file mode 100644 index 24d9ab9..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetCNCRegKeyR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetCNCRegKeyR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetCodeNumberR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetCodeNumberR.datasource deleted file mode 100644 index a212331..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetCodeNumberR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetCodeNumberR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetDateTimeR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetDateTimeR.datasource deleted file mode 100644 index d0e3680..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetDateTimeR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetDateTimeR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetFileR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetFileR.datasource deleted file mode 100644 index 00b7466..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetFileR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetFileR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetGCodeR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetGCodeR.datasource deleted file mode 100644 index ab62a0b..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetGCodeR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetGCodeR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetHWKeyR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetHWKeyR.datasource deleted file mode 100644 index 842dc6a..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetHWKeyR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetHWKeyR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetMCodeR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetMCodeR.datasource deleted file mode 100644 index a862dac..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetMCodeR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetMCodeR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetMarkerInfoR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetMarkerInfoR.datasource deleted file mode 100644 index 5d5eb7c..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetMarkerInfoR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetMarkerInfoR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetNcInfo1R.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetNcInfo1R.datasource deleted file mode 100644 index bc221bd..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetNcInfo1R.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetNcInfo1R, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetNcInfo2R.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetNcInfo2R.datasource deleted file mode 100644 index a6a30fc..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetNcInfo2R.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetNcInfo2R, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetOffsetTabRecordIIR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetOffsetTabRecordIIR.datasource deleted file mode 100644 index 19c4861..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetOffsetTabRecordIIR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetOffsetTabRecordIIR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetOptionsR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetOptionsR.datasource deleted file mode 100644 index 735995e..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetOptionsR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetOptionsR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetOriginTabRecordIIR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetOriginTabRecordIIR.datasource deleted file mode 100644 index 2d471b9..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetOriginTabRecordIIR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetOriginTabRecordIIR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetPTechSizesR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetPTechSizesR.datasource deleted file mode 100644 index 1d28a02..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetPTechSizesR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetPTechSizesR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetPartProgramLinesR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetPartProgramLinesR.datasource deleted file mode 100644 index 942bbb8..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetPartProgramLinesR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetPartProgramLinesR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcInInputR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcInInputR.datasource deleted file mode 100644 index 3e7315c..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcInInputR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetProcInInputR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcVarDoubleR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcVarDoubleR.datasource deleted file mode 100644 index 577eb4b..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcVarDoubleR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetProcVarDoubleR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcVarWordR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcVarWordR.datasource deleted file mode 100644 index 552bb43..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcVarWordR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetProcVarWordR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcessConfNumR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcessConfNumR.datasource deleted file mode 100644 index ff66c73..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcessConfNumR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetProcessConfNumR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcessStatusR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcessStatusR.datasource deleted file mode 100644 index 5a1574c..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetProcessStatusR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetProcessStatusR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetSelectedProcessR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetSelectedProcessR.datasource deleted file mode 100644 index 57da0a6..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetSelectedProcessR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetSelectedProcessR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetSerialNumberR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetSerialNumberR.datasource deleted file mode 100644 index f8b7d4d..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetSerialNumberR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetSerialNumberR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetServoParR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetServoParR.datasource deleted file mode 100644 index 409f6ec..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetServoParR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetServoParR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetSysTickR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetSysTickR.datasource deleted file mode 100644 index dd0bc44..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetSysTickR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetSysTickR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetToolNamesR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetToolNamesR.datasource deleted file mode 100644 index f2605e3..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetToolNamesR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetToolNamesR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetToolTabRecordIIR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetToolTabRecordIIR.datasource deleted file mode 100644 index aab7ab0..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetToolTabRecordIIR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetToolTabRecordIIR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetUserTabRecordIIR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetUserTabRecordIIR.datasource deleted file mode 100644 index b5fc2ee..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetUserTabRecordIIR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetUserTabRecordIIR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetVarJOGR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetVarJOGR.datasource deleted file mode 100644 index b3efd6b..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetVarJOGR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetVarJOGR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetVarRCMR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetVarRCMR.datasource deleted file mode 100644 index 8c48f71..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.GetVarRCMR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.GetVarRCMR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.HoldR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.HoldR.datasource deleted file mode 100644 index 7363787..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.HoldR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.HoldR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LoadPTechR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LoadPTechR.datasource deleted file mode 100644 index 7d7331c..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LoadPTechR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LoadPTechR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LockTableIIR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LockTableIIR.datasource deleted file mode 100644 index 19663ce..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LockTableIIR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LockTableIIR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSAddDriveR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSAddDriveR.datasource deleted file mode 100644 index 0f06a98..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSAddDriveR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSAddDriveR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSChangeFileAttribR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSChangeFileAttribR.datasource deleted file mode 100644 index 2be5fd2..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSChangeFileAttribR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSChangeFileAttribR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCloseFileR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCloseFileR.datasource deleted file mode 100644 index b730416..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCloseFileR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSCloseFileR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCopyFileR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCopyFileR.datasource deleted file mode 100644 index bcda452..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCopyFileR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSCopyFileR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCreateDirR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCreateDirR.datasource deleted file mode 100644 index c44f463..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCreateDirR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSCreateDirR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCreateFileR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCreateFileR.datasource deleted file mode 100644 index 65e7df5..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSCreateFileR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSCreateFileR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSFindCloseR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSFindCloseR.datasource deleted file mode 100644 index adc9027..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSFindCloseR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSFindCloseR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSFindFirstR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSFindFirstR.datasource deleted file mode 100644 index e6bc4fd..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSFindFirstR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSFindFirstR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSFindNextR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSFindNextR.datasource deleted file mode 100644 index d9482e0..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSFindNextR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSFindNextR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetDriveListR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetDriveListR.datasource deleted file mode 100644 index ce158c7..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetDriveListR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSGetDriveListR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetDrivePathR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetDrivePathR.datasource deleted file mode 100644 index 012cf93..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetDrivePathR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSGetDrivePathR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetFileAttribR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetFileAttribR.datasource deleted file mode 100644 index 5b67525..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetFileAttribR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSGetFileAttribR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetFileSizeR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetFileSizeR.datasource deleted file mode 100644 index 63c9d23..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetFileSizeR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSGetFileSizeR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetHiddenDriveListR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetHiddenDriveListR.datasource deleted file mode 100644 index 0da3fb5..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetHiddenDriveListR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSGetHiddenDriveListR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetInfoR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetInfoR.datasource deleted file mode 100644 index f3e4849..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetInfoR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSGetInfoR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetNumDriveR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetNumDriveR.datasource deleted file mode 100644 index 61e2514..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetNumDriveR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSGetNumDriveR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetSecurityLevelR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetSecurityLevelR.datasource deleted file mode 100644 index f8a2264..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSGetSecurityLevelR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSGetSecurityLevelR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSLongFileNamesR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSLongFileNamesR.datasource deleted file mode 100644 index b9b0bea..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSLongFileNamesR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSLongFileNamesR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSOpenFileR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSOpenFileR.datasource deleted file mode 100644 index e79bc94..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSOpenFileR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSOpenFileR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSReadRecordR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSReadRecordR.datasource deleted file mode 100644 index bac7b1d..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSReadRecordR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSReadRecordR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSReloadDriveListR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSReloadDriveListR.datasource deleted file mode 100644 index 8286c90..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSReloadDriveListR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSReloadDriveListR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRemoveDirR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRemoveDirR.datasource deleted file mode 100644 index 5f92152..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRemoveDirR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSRemoveDirR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRemoveDriveR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRemoveDriveR.datasource deleted file mode 100644 index a80664f..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRemoveDriveR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSRemoveDriveR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRemoveFileR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRemoveFileR.datasource deleted file mode 100644 index c8ff9c6..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRemoveFileR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSRemoveFileR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRenameR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRenameR.datasource deleted file mode 100644 index 6d2ee4a..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSRenameR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSRenameR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSSetFileAttribR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSSetFileAttribR.datasource deleted file mode 100644 index 377c20a..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSSetFileAttribR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSSetFileAttribR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSSetSecurityLevelR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSSetSecurityLevelR.datasource deleted file mode 100644 index 93b662d..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSSetSecurityLevelR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSSetSecurityLevelR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSWriteRecordR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSWriteRecordR.datasource deleted file mode 100644 index f82734a..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.LogFSWriteRecordR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.LogFSWriteRecordR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ManagePartProgramR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ManagePartProgramR.datasource deleted file mode 100644 index e79f5a7..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ManagePartProgramR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ManagePartProgramR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonAddVariableR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonAddVariableR.datasource deleted file mode 100644 index 1bd7841..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonAddVariableR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.MonAddVariableR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonCloseChannelR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonCloseChannelR.datasource deleted file mode 100644 index 5a5483a..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonCloseChannelR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.MonCloseChannelR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonDeleteVariableR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonDeleteVariableR.datasource deleted file mode 100644 index b464d87..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonDeleteVariableR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.MonDeleteVariableR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonGetVariableR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonGetVariableR.datasource deleted file mode 100644 index 0af43f3..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonGetVariableR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.MonGetVariableR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonOpenChannelR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonOpenChannelR.datasource deleted file mode 100644 index 3d1c719..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonOpenChannelR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.MonOpenChannelR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonStartSamplingR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonStartSamplingR.datasource deleted file mode 100644 index 0f7dc81..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonStartSamplingR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.MonStartSamplingR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonStopSamplingR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonStopSamplingR.datasource deleted file mode 100644 index 3ff00c1..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.MonStopSamplingR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.MonStopSamplingR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.PutBinaryFileR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.PutBinaryFileR.datasource deleted file mode 100644 index 3df1622..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.PutBinaryFileR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.PutBinaryFileR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.PutFileR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.PutFileR.datasource deleted file mode 100644 index c8cf739..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.PutFileR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.PutFileR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadCurrentAnomalyMsgR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadCurrentAnomalyMsgR.datasource deleted file mode 100644 index 929e87a..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadCurrentAnomalyMsgR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadCurrentAnomalyMsgR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadCurrentEmergMsgR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadCurrentEmergMsgR.datasource deleted file mode 100644 index 43fcfa0..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadCurrentEmergMsgR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadCurrentEmergMsgR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadCurrentErrorMsgR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadCurrentErrorMsgR.datasource deleted file mode 100644 index f864ff1..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadCurrentErrorMsgR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadCurrentErrorMsgR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadErrMsgR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadErrMsgR.datasource deleted file mode 100644 index df92838..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadErrMsgR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadErrMsgR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryAnomalyMsgR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryAnomalyMsgR.datasource deleted file mode 100644 index 3d328d3..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryAnomalyMsgR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadHistoryAnomalyMsgR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryEmergMsgR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryEmergMsgR.datasource deleted file mode 100644 index a5e813a..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryEmergMsgR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadHistoryEmergMsgR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryErrorMsgR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryErrorMsgR.datasource deleted file mode 100644 index 7b023c0..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryErrorMsgR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadHistoryErrorMsgR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryLogMsgR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryLogMsgR.datasource deleted file mode 100644 index 2a1b5a7..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadHistoryLogMsgR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadHistoryLogMsgR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadPartProgramMsgR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadPartProgramMsgR.datasource deleted file mode 100644 index 7555cbc..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadPartProgramMsgR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadPartProgramMsgR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadRemapDefinitionsR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadRemapDefinitionsR.datasource deleted file mode 100644 index d48b0aa..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadRemapDefinitionsR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadRemapDefinitionsR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadVarDoubleR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadVarDoubleR.datasource deleted file mode 100644 index 64e22df..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadVarDoubleR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadVarDoubleR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadVarTextR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadVarTextR.datasource deleted file mode 100644 index 57b521e..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadVarTextR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadVarTextR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadVarWordR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadVarWordR.datasource deleted file mode 100644 index fb6112b..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadVarWordR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadVarWordR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadWarningMsgR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadWarningMsgR.datasource deleted file mode 100644 index c30a72c..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ReadWarningMsgR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ReadWarningMsgR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ResetR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ResetR.datasource deleted file mode 100644 index b3fa2aa..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ResetR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ResetR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ResetSingleTableIIR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ResetSingleTableIIR.datasource deleted file mode 100644 index 253a86c..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.ResetSingleTableIIR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.ResetSingleTableIIR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.RestoreBackupMemoryR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.RestoreBackupMemoryR.datasource deleted file mode 100644 index 26e9e46..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.RestoreBackupMemoryR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.RestoreBackupMemoryR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.RestoreSingleTableR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.RestoreSingleTableR.datasource deleted file mode 100644 index 9068e37..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.RestoreSingleTableR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.RestoreSingleTableR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SaveBackupMemoryR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SaveBackupMemoryR.datasource deleted file mode 100644 index 5e8d8c8..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SaveBackupMemoryR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SaveBackupMemoryR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SaveSingleTableR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SaveSingleTableR.datasource deleted file mode 100644 index 235c6b3..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SaveSingleTableR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SaveSingleTableR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SaveTablesR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SaveTablesR.datasource deleted file mode 100644 index 6ebe90b..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SaveTablesR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SaveTablesR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectPartProgramFromDriveR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectPartProgramFromDriveR.datasource deleted file mode 100644 index a73efda..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectPartProgramFromDriveR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SelectPartProgramFromDriveR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectPartProgramR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectPartProgramR.datasource deleted file mode 100644 index 07b3ce1..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectPartProgramR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SelectPartProgramR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectProcAxisR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectProcAxisR.datasource deleted file mode 100644 index 6f63933..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectProcAxisR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SelectProcAxisR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectProcessR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectProcessR.datasource deleted file mode 100644 index 20b58cb..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SelectProcessR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SelectProcessR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetDateTimeR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetDateTimeR.datasource deleted file mode 100644 index 736ce12..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetDateTimeR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetDateTimeR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetFeedManOverR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetFeedManOverR.datasource deleted file mode 100644 index 8104d01..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetFeedManOverR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetFeedManOverR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetFeedRapidOverR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetFeedRapidOverR.datasource deleted file mode 100644 index 5af90c9..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetFeedRapidOverR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetFeedRapidOverR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetFeedRateOverR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetFeedRateOverR.datasource deleted file mode 100644 index 6af2261..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetFeedRateOverR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetFeedRateOverR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetIpAddressR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetIpAddressR.datasource deleted file mode 100644 index 720042a..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetIpAddressR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetIpAddressR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetManMovDirectionR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetManMovDirectionR.datasource deleted file mode 100644 index 94e38d3..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetManMovDirectionR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetManMovDirectionR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetMdiStringR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetMdiStringR.datasource deleted file mode 100644 index edc5087..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetMdiStringR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetMdiStringR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetOffsetTabRecordIIR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetOffsetTabRecordIIR.datasource deleted file mode 100644 index 8279516..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetOffsetTabRecordIIR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetOffsetTabRecordIIR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetOriginTabRecordIIR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetOriginTabRecordIIR.datasource deleted file mode 100644 index 86f619a..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetOriginTabRecordIIR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetOriginTabRecordIIR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetProcVarDoubleR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetProcVarDoubleR.datasource deleted file mode 100644 index 46c0515..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetProcVarDoubleR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetProcVarDoubleR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetProcVarWordR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetProcVarWordR.datasource deleted file mode 100644 index 0d80f3b..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetProcVarWordR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetProcVarWordR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetProcessModeR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetProcessModeR.datasource deleted file mode 100644 index cfbb27f..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetProcessModeR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetProcessModeR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetServoParR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetServoParR.datasource deleted file mode 100644 index cb5b64f..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetServoParR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetServoParR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetSpeedRateOverR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetSpeedRateOverR.datasource deleted file mode 100644 index 825118d..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetSpeedRateOverR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetSpeedRateOverR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetToolTabRecordIIR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetToolTabRecordIIR.datasource deleted file mode 100644 index c6f6a33..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetToolTabRecordIIR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetToolTabRecordIIR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetUserTabRecordIIR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetUserTabRecordIIR.datasource deleted file mode 100644 index 4763b3f..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetUserTabRecordIIR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetUserTabRecordIIR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetVarJOGR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetVarJOGR.datasource deleted file mode 100644 index 161609b..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetVarJOGR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetVarJOGR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetVarRCMR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetVarRCMR.datasource deleted file mode 100644 index c9f6538..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetVarRCMR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetVarRCMR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetVarUASR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetVarUASR.datasource deleted file mode 100644 index f4d0602..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SetVarUASR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SetVarUASR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SkipPProgBlockR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SkipPProgBlockR.datasource deleted file mode 100644 index 3a6c166..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SkipPProgBlockR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SkipPProgBlockR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SndProcInpDataR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SndProcInpDataR.datasource deleted file mode 100644 index 307ec90..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SndProcInpDataR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SndProcInpDataR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SyncroCycleR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SyncroCycleR.datasource deleted file mode 100644 index 8b7d9f4..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.SyncroCycleR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.SyncroCycleR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.UnLockTableIIR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.UnLockTableIIR.datasource deleted file mode 100644 index da8ec34..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.UnLockTableIIR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.UnLockTableIIR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteRemapDefinitionsR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteRemapDefinitionsR.datasource deleted file mode 100644 index f97364e..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteRemapDefinitionsR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.WriteRemapDefinitionsR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarDoubleR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarDoubleR.datasource deleted file mode 100644 index 46ed79a..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarDoubleR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.WriteVarDoubleR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarTextR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarTextR.datasource deleted file mode 100644 index d49288b..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarTextR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.WriteVarTextR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarWordBitR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarWordBitR.datasource deleted file mode 100644 index 0044aae..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarWordBitR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.WriteVarWordBitR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarWordR.datasource b/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarWordR.datasource deleted file mode 100644 index 059fb30..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/CMSCncLib.OPENcontrol.WriteVarWordR.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - CMSCncLib.OPENcontrol.WriteVarWordR, Service References.OPENcontrol.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/OPENcontrol.wsdl b/IOB-WIN/CncLib/Service References/OPENcontrol/OPENcontrol.wsdl deleted file mode 100644 index 2e6478a..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/OPENcontrol.wsdl +++ /dev/null @@ -1,5895 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Service definition of function ns__BootPhaseEnquiry - - - - - Service definition of function ns__BootReboot - - - - - Service definition of function ns__BootShutDown - - - - - Service definition of function ns__BootMode - - - - - Service definition of function ns__GetHWKey - - - - - Service definition of function ns__ReadVarWord - - - - - Service definition of function ns__ReadVarDouble - - - - - Service definition of function ns__WriteVarWord - - - - - Service definition of function ns__WriteVarWordBit - - - - - Service definition of function ns__WriteVarDouble - - - - - Service definition of function ns__ReadVarText - - - - - Service definition of function ns__WriteVarText - - - - - Service definition of function ns__ReadWarningMsg - - - - - Service definition of function ns__ResetSingleTableII - - - - - Service definition of function ns__LockTableII - - - - - Service definition of function ns__UnLockTableII - - - - - Service definition of function ns__GetOriginTabRecordII - - - - - Service definition of function ns__SetOriginTabRecordII - - - - - Service definition of function ns__GetToolTabRecordII - - - - - Service definition of function ns__SetToolTabRecordII - - - - - Service definition of function ns__GetOffsetTabRecordII - - - - - Service definition of function ns__SetOffsetTabRecordII - - - - - Service definition of function ns__GetUserTabRecordII - - - - - Service definition of function ns__SetUserTabRecordII - - - - - Service definition of function ns__SaveTables - - - - - Service definition of function ns__RestoreSingleTable - - - - - Service definition of function ns__SaveSingleTable - - - - - Service definition of function ns__SaveBackupMemory - - - - - Service definition of function ns__RestoreBackupMemory - - - - - Service definition of function ns__Cycle - - - - - Service definition of function ns__SyncroCycle - - - - - Service definition of function ns__Reset - - - - - Service definition of function ns__Hold - - - - - Service definition of function ns__SetFeedManOver - - - - - Service definition of function ns__SetFeedRateOver - - - - - Service definition of function ns__SetFeedRapidOver - - - - - Service definition of function ns__SetSpeedRateOver - - - - - Service definition of function ns__SetManMovDirection - - - - - Service definition of function ns__GetVarJOG - - - - - Service definition of function ns__SetVarJOG - - - - - Service definition of function ns__SetVarUAS - - - - - Service definition of function ns__GetVarRCM - - - - - Service definition of function ns__SetVarRCM - - - - - Service definition of function ns__GetProcVarWord - - - - - Service definition of function ns__SetProcVarWord - - - - - Service definition of function ns__GetProcVarDouble - - - - - Service definition of function ns__SetProcVarDouble - - - - - Service definition of function ns__SetMdiString - - - - - Service definition of function ns__SetProcessMode - - - - - Service definition of function ns__SelectProcess - - - - - Service definition of function ns__GetSelectedProcess - - - - - Service definition of function ns__SelectProcAxis - - - - - Service definition of function ns__SelectPartProgram - - - - - Service definition of function ns__SelectPartProgramFromDrive - - - - - Service definition of function ns__GetActivePartProgram - - - - - Service definition of function ns__GetPartProgramLines - - - - - Service definition of function ns__GetAxOriginNum - - - - - Service definition of function ns__GetAxesPosition - - - - - Service definition of function ns__GetNcInfo1 - - - - - Service definition of function ns__GetNcInfo2 - - - - - Service definition of function ns__GetToolNames - - - - - Service definition of function ns__GetProcessStatus - - - - - Service definition of function ns__GetBlkNum - - - - - Service definition of function ns__ReadErrMsg - - - - - Service definition of function ns__ReadPartProgramMsg - - - - - Service definition of function ns__GetGCode - - - - - Service definition of function ns__GetMCode - - - - - Service definition of function ns__SkipPProgBlock - - - - - Service definition of function ns__Ese - - - - - Service definition of function ns__EseEx - - - - - Service definition of function ns__Exe - - - - - Service definition of function ns__AxesRef - - - - - Service definition of function ns__DncInit - - - - - Service definition of function ns__DncData - - - - - Service definition of function ns__DncEof - - - - - Service definition of function ns__DncStop - - - - - Service definition of function ns__GetAxesInfo3 - - - - - Service definition of function ns__GetCodeNumber - - - - - Service definition of function ns__GetOptions - - - - - Service definition of function ns__GetDateTime - - - - - Service definition of function ns__SetDateTime - - - - - Service definition of function ns__GetSerialNumber - - - - - Service definition of function ns__PutFile - - - - - Service definition of function ns__GetFile - - - - - Service definition of function ns__PutBinaryFile - - - - - Service definition of function ns__GetBinaryFile - - - - - Service definition of function ns__LogFSSetSecurityLevel - - - - - Service definition of function ns__LogFSGetSecurityLevel - - - - - Service definition of function ns__LogFSLongFileNames - - - - - Service definition of function ns__LogFSGetNumDrive - - - - - Service definition of function ns__LogFSGetDriveList - - - - - Service definition of function ns__LogFSGetHiddenDriveList - - - - - Service definition of function ns__LogFSGetDrivePath - - - - - Service definition of function ns__LogFSAddDrive - - - - - Service definition of function ns__LogFSRemoveDrive - - - - - Service definition of function ns__LogFSReloadDriveList - - - - - Service definition of function ns__LogFSCreateDir - - - - - Service definition of function ns__LogFSCreateFile - - - - - Service definition of function ns__LogFSGetFileSize - - - - - Service definition of function ns__LogFSGetFileAttrib - - - - - Service definition of function ns__LogFSSetFileAttrib - - - - - Service definition of function ns__LogFSChangeFileAttrib - - - - - Service definition of function ns__LogFSFindFirst - - - - - Service definition of function ns__LogFSFindNext - - - - - Service definition of function ns__LogFSFindClose - - - - - Service definition of function ns__LogFSRemoveFile - - - - - Service definition of function ns__LogFSRemoveDir - - - - - Service definition of function ns__LogFSRename - - - - - Service definition of function ns__LogFSCopyFile - - - - - Service definition of function ns__LogFSGetInfo - - - - - Service definition of function ns__GetAvailableCustomEvents - - - - - Service definition of function ns__GetSysTick - - - - - Service definition of function ns__GetProcessConfNum - - - - - Service definition of function ns__MonOpenChannel - - - - - Service definition of function ns__MonCloseChannel - - - - - Service definition of function ns__MonAddVariable - - - - - Service definition of function ns__MonDeleteVariable - - - - - Service definition of function ns__MonStartSampling - - - - - Service definition of function ns__MonStopSampling - - - - - Service definition of function ns__MonGetVariable - - - - - Service definition of function ns__CheckHistory - - - - - Service definition of function ns__ReadHistoryEmergMsg - - - - - Service definition of function ns__ReadHistoryErrorMsg - - - - - Service definition of function ns__ReadHistoryLogMsg - - - - - Service definition of function ns__ReadHistoryAnomalyMsg - - - - - Service definition of function ns__ReadCurrentErrorMsg - - - - - Service definition of function ns__ReadCurrentEmergMsg - - - - - Service definition of function ns__ReadCurrentAnomalyMsg - - - - - Service definition of function ns__GetPTechSizes - - - - - Service definition of function ns__LoadPTech - - - - - Service definition of function ns__GetMarkerInfo - - - - - Service definition of function ns__ManagePartProgram - - - - - Service definition of function ns__LogFSOpenFile - - - - - Service definition of function ns__LogFSCloseFile - - - - - Service definition of function ns__LogFSWriteRecord - - - - - Service definition of function ns__LogFSReadRecord - - - - - Service definition of function ns__ReadRemapDefinitions - - - - - Service definition of function ns__WriteRemapDefinitions - - - - - Service definition of function ns__GetServoPar - - - - - Service definition of function ns__SetServoPar - - - - - Service definition of function ns__GetCNCRegKey - - - - - Service definition of function ns__SetIpAddress - - - - - Service definition of function ns__GetProcInInput - - - - - Service definition of function ns__SndProcInpData - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OPENcontrol Web Services Definition - - - - - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/Reference.svcmap b/IOB-WIN/CncLib/Service References/OPENcontrol/Reference.svcmap deleted file mode 100644 index e539748..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/Reference.svcmap +++ /dev/null @@ -1,30 +0,0 @@ - - - - false - true - - false - false - false - - - true - Auto - true - true - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/Reference.vb b/IOB-WIN/CncLib/Service References/OPENcontrol/Reference.vb deleted file mode 100644 index fb321eb..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/Reference.vb +++ /dev/null @@ -1,29126 +0,0 @@ -'------------------------------------------------------------------------------ -' -' Il codice è stato generato da uno strumento. -' Versione runtime:4.0.30319.42000 -' -' Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se -' il codice viene rigenerato. -' -'------------------------------------------------------------------------------ - -Option Strict On -Option Explicit On - - -Namespace OPENcontrol - - _ - Public Interface OPENcontrolPortType - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione BootPhaseEnquiry non è RPC né incapsulata da documenti. - _ - Function BootPhaseEnquiry(ByVal request As OPENcontrol.BootPhaseEnquiryRequest) As OPENcontrol.BootPhaseEnquiryResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione BootReboot non è RPC né incapsulata da documenti. - _ - Function BootReboot(ByVal request As OPENcontrol.BootRebootRequest) As OPENcontrol.BootRebootResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione BootShutDown non è RPC né incapsulata da documenti. - _ - Function BootShutDown(ByVal request As OPENcontrol.BootShutDownRequest) As OPENcontrol.BootShutDownResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione BootMode non è RPC né incapsulata da documenti. - _ - Function BootMode(ByVal request As OPENcontrol.BootModeRequest) As OPENcontrol.BootModeResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetHWKey non è RPC né incapsulata da documenti. - _ - Function GetHWKey(ByVal request As OPENcontrol.GetHWKeyRequest) As OPENcontrol.GetHWKeyResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadVarWord non è RPC né incapsulata da documenti. - _ - Function ReadVarWord(ByVal request As OPENcontrol.ReadVarWordRequest) As OPENcontrol.ReadVarWordResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadVarDouble non è RPC né incapsulata da documenti. - _ - Function ReadVarDouble(ByVal request As OPENcontrol.ReadVarDoubleRequest) As OPENcontrol.ReadVarDoubleResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione WriteVarWord non è RPC né incapsulata da documenti. - _ - Function WriteVarWord(ByVal request As OPENcontrol.WriteVarWordRequest) As OPENcontrol.WriteVarWordResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione WriteVarWordBit non è RPC né incapsulata da documenti. - _ - Function WriteVarWordBit(ByVal request As OPENcontrol.WriteVarWordBitRequest) As OPENcontrol.WriteVarWordBitResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione WriteVarDouble non è RPC né incapsulata da documenti. - _ - Function WriteVarDouble(ByVal request As OPENcontrol.WriteVarDoubleRequest) As OPENcontrol.WriteVarDoubleResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadVarText non è RPC né incapsulata da documenti. - _ - Function ReadVarText(ByVal request As OPENcontrol.ReadVarTextRequest) As OPENcontrol.ReadVarTextResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione WriteVarText non è RPC né incapsulata da documenti. - _ - Function WriteVarText(ByVal request As OPENcontrol.WriteVarTextRequest) As OPENcontrol.WriteVarTextResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadWarningMsg non è RPC né incapsulata da documenti. - _ - Function ReadWarningMsg(ByVal request As OPENcontrol.ReadWarningMsgRequest) As OPENcontrol.ReadWarningMsgResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ResetSingleTableII non è RPC né incapsulata da documenti. - _ - Function ResetSingleTableII(ByVal request As OPENcontrol.ResetSingleTableIIRequest) As OPENcontrol.ResetSingleTableIIResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LockTableII non è RPC né incapsulata da documenti. - _ - Function LockTableII(ByVal request As OPENcontrol.LockTableIIRequest) As OPENcontrol.LockTableIIResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione UnLockTableII non è RPC né incapsulata da documenti. - _ - Function UnLockTableII(ByVal request As OPENcontrol.UnLockTableIIRequest) As OPENcontrol.UnLockTableIIResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetOriginTabRecordII non è RPC né incapsulata da documenti. - _ - Function GetOriginTabRecordII(ByVal request As OPENcontrol.GetOriginTabRecordIIRequest) As OPENcontrol.GetOriginTabRecordIIResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetOriginTabRecordII non è RPC né incapsulata da documenti. - _ - Function SetOriginTabRecordII(ByVal request As OPENcontrol.SetOriginTabRecordIIRequest) As OPENcontrol.SetOriginTabRecordIIResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetToolTabRecordII non è RPC né incapsulata da documenti. - _ - Function GetToolTabRecordII(ByVal request As OPENcontrol.GetToolTabRecordIIRequest) As OPENcontrol.GetToolTabRecordIIResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetToolTabRecordII non è RPC né incapsulata da documenti. - _ - Function SetToolTabRecordII(ByVal request As OPENcontrol.SetToolTabRecordIIRequest) As OPENcontrol.SetToolTabRecordIIResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetOffsetTabRecordII non è RPC né incapsulata da documenti. - _ - Function GetOffsetTabRecordII(ByVal request As OPENcontrol.GetOffsetTabRecordIIRequest) As OPENcontrol.GetOffsetTabRecordIIResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetOffsetTabRecordII non è RPC né incapsulata da documenti. - _ - Function SetOffsetTabRecordII(ByVal request As OPENcontrol.SetOffsetTabRecordIIRequest) As OPENcontrol.SetOffsetTabRecordIIResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetUserTabRecordII non è RPC né incapsulata da documenti. - _ - Function GetUserTabRecordII(ByVal request As OPENcontrol.GetUserTabRecordIIRequest) As OPENcontrol.GetUserTabRecordIIResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetUserTabRecordII non è RPC né incapsulata da documenti. - _ - Function SetUserTabRecordII(ByVal request As OPENcontrol.SetUserTabRecordIIRequest) As OPENcontrol.SetUserTabRecordIIResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SaveTables non è RPC né incapsulata da documenti. - _ - Function SaveTables(ByVal request As OPENcontrol.SaveTablesRequest) As OPENcontrol.SaveTablesResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione RestoreSingleTable non è RPC né incapsulata da documenti. - _ - Function RestoreSingleTable(ByVal request As OPENcontrol.RestoreSingleTableRequest) As OPENcontrol.RestoreSingleTableResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SaveSingleTable non è RPC né incapsulata da documenti. - _ - Function SaveSingleTable(ByVal request As OPENcontrol.SaveSingleTableRequest) As OPENcontrol.SaveSingleTableResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SaveBackupMemory non è RPC né incapsulata da documenti. - _ - Function SaveBackupMemory(ByVal request As OPENcontrol.SaveBackupMemoryRequest) As OPENcontrol.SaveBackupMemoryResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione RestoreBackupMemory non è RPC né incapsulata da documenti. - _ - Function RestoreBackupMemory(ByVal request As OPENcontrol.RestoreBackupMemoryRequest) As OPENcontrol.RestoreBackupMemoryResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione Cycle non è RPC né incapsulata da documenti. - _ - Function Cycle(ByVal request As OPENcontrol.CycleRequest) As OPENcontrol.CycleResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SyncroCycle non è RPC né incapsulata da documenti. - _ - Function SyncroCycle(ByVal request As OPENcontrol.SyncroCycleRequest) As OPENcontrol.SyncroCycleResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione Reset non è RPC né incapsulata da documenti. - _ - Function Reset(ByVal request As OPENcontrol.ResetRequest) As OPENcontrol.ResetResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione Hold non è RPC né incapsulata da documenti. - _ - Function Hold(ByVal request As OPENcontrol.HoldRequest) As OPENcontrol.HoldResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetFeedManOver non è RPC né incapsulata da documenti. - _ - Function SetFeedManOver(ByVal request As OPENcontrol.SetFeedManOverRequest) As OPENcontrol.SetFeedManOverResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetFeedRateOver non è RPC né incapsulata da documenti. - _ - Function SetFeedRateOver(ByVal request As OPENcontrol.SetFeedRateOverRequest) As OPENcontrol.SetFeedRateOverResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetFeedRapidOver non è RPC né incapsulata da documenti. - _ - Function SetFeedRapidOver(ByVal request As OPENcontrol.SetFeedRapidOverRequest) As OPENcontrol.SetFeedRapidOverResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetSpeedRateOver non è RPC né incapsulata da documenti. - _ - Function SetSpeedRateOver(ByVal request As OPENcontrol.SetSpeedRateOverRequest) As OPENcontrol.SetSpeedRateOverResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetManMovDirection non è RPC né incapsulata da documenti. - _ - Function SetManMovDirection(ByVal request As OPENcontrol.SetManMovDirectionRequest) As OPENcontrol.SetManMovDirectionResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetVarJOG non è RPC né incapsulata da documenti. - _ - Function GetVarJOG(ByVal request As OPENcontrol.GetVarJOGRequest) As OPENcontrol.GetVarJOGResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetVarJOG non è RPC né incapsulata da documenti. - _ - Function SetVarJOG(ByVal request As OPENcontrol.SetVarJOGRequest) As OPENcontrol.SetVarJOGResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetVarUAS non è RPC né incapsulata da documenti. - _ - Function SetVarUAS(ByVal request As OPENcontrol.SetVarUASRequest) As OPENcontrol.SetVarUASResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetVarRCM non è RPC né incapsulata da documenti. - _ - Function GetVarRCM(ByVal request As OPENcontrol.GetVarRCMRequest) As OPENcontrol.GetVarRCMResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetVarRCM non è RPC né incapsulata da documenti. - _ - Function SetVarRCM(ByVal request As OPENcontrol.SetVarRCMRequest) As OPENcontrol.SetVarRCMResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetProcVarWord non è RPC né incapsulata da documenti. - _ - Function GetProcVarWord(ByVal request As OPENcontrol.GetProcVarWordRequest) As OPENcontrol.GetProcVarWordResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetProcVarWord non è RPC né incapsulata da documenti. - _ - Function SetProcVarWord(ByVal request As OPENcontrol.SetProcVarWordRequest) As OPENcontrol.SetProcVarWordResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetProcVarDouble non è RPC né incapsulata da documenti. - _ - Function GetProcVarDouble(ByVal request As OPENcontrol.GetProcVarDoubleRequest) As OPENcontrol.GetProcVarDoubleResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetProcVarDouble non è RPC né incapsulata da documenti. - _ - Function SetProcVarDouble(ByVal request As OPENcontrol.SetProcVarDoubleRequest) As OPENcontrol.SetProcVarDoubleResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetMdiString non è RPC né incapsulata da documenti. - _ - Function SetMdiString(ByVal request As OPENcontrol.SetMdiStringRequest) As OPENcontrol.SetMdiStringResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetProcessMode non è RPC né incapsulata da documenti. - _ - Function SetProcessMode(ByVal request As OPENcontrol.SetProcessModeRequest) As OPENcontrol.SetProcessModeResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SelectProcess non è RPC né incapsulata da documenti. - _ - Function SelectProcess(ByVal request As OPENcontrol.SelectProcessRequest) As OPENcontrol.SelectProcessResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetSelectedProcess non è RPC né incapsulata da documenti. - _ - Function GetSelectedProcess(ByVal request As OPENcontrol.GetSelectedProcessRequest) As OPENcontrol.GetSelectedProcessResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SelectProcAxis non è RPC né incapsulata da documenti. - _ - Function SelectProcAxis(ByVal request As OPENcontrol.SelectProcAxisRequest) As OPENcontrol.SelectProcAxisResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SelectPartProgram non è RPC né incapsulata da documenti. - _ - Function SelectPartProgram(ByVal request As OPENcontrol.SelectPartProgramRequest) As OPENcontrol.SelectPartProgramResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SelectPartProgramFromDrive non è RPC né incapsulata da documenti. - _ - Function SelectPartProgramFromDrive(ByVal request As OPENcontrol.SelectPartProgramFromDriveRequest) As OPENcontrol.SelectPartProgramFromDriveResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetActivePartProgram non è RPC né incapsulata da documenti. - _ - Function GetActivePartProgram(ByVal request As OPENcontrol.GetActivePartProgramRequest) As OPENcontrol.GetActivePartProgramResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetPartProgramLines non è RPC né incapsulata da documenti. - _ - Function GetPartProgramLines(ByVal request As OPENcontrol.GetPartProgramLinesRequest) As OPENcontrol.GetPartProgramLinesResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetAxOriginNum non è RPC né incapsulata da documenti. - _ - Function GetAxOriginNum(ByVal request As OPENcontrol.GetAxOriginNumRequest) As OPENcontrol.GetAxOriginNumResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetAxesPosition non è RPC né incapsulata da documenti. - _ - Function GetAxesPosition(ByVal request As OPENcontrol.GetAxesPositionRequest) As OPENcontrol.GetAxesPositionResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetNcInfo1 non è RPC né incapsulata da documenti. - _ - Function GetNcInfo1(ByVal request As OPENcontrol.GetNcInfo1Request) As OPENcontrol.GetNcInfo1Response - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetNcInfo2 non è RPC né incapsulata da documenti. - _ - Function GetNcInfo2(ByVal request As OPENcontrol.GetNcInfo2Request) As OPENcontrol.GetNcInfo2Response - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetToolNames non è RPC né incapsulata da documenti. - _ - Function GetToolNames(ByVal request As OPENcontrol.GetToolNamesRequest) As OPENcontrol.GetToolNamesResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetProcessStatus non è RPC né incapsulata da documenti. - _ - Function GetProcessStatus(ByVal request As OPENcontrol.GetProcessStatusRequest) As OPENcontrol.GetProcessStatusResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetBlkNum non è RPC né incapsulata da documenti. - _ - Function GetBlkNum(ByVal request As OPENcontrol.GetBlkNumRequest) As OPENcontrol.GetBlkNumResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadErrMsg non è RPC né incapsulata da documenti. - _ - Function ReadErrMsg(ByVal request As OPENcontrol.ReadErrMsgRequest) As OPENcontrol.ReadErrMsgResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadPartProgramMsg non è RPC né incapsulata da documenti. - _ - Function ReadPartProgramMsg(ByVal request As OPENcontrol.ReadPartProgramMsgRequest) As OPENcontrol.ReadPartProgramMsgResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetGCode non è RPC né incapsulata da documenti. - _ - Function GetGCode(ByVal request As OPENcontrol.GetGCodeRequest) As OPENcontrol.GetGCodeResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetMCode non è RPC né incapsulata da documenti. - _ - Function GetMCode(ByVal request As OPENcontrol.GetMCodeRequest) As OPENcontrol.GetMCodeResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SkipPProgBlock non è RPC né incapsulata da documenti. - _ - Function SkipPProgBlock(ByVal request As OPENcontrol.SkipPProgBlockRequest) As OPENcontrol.SkipPProgBlockResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione Ese non è RPC né incapsulata da documenti. - _ - Function Ese(ByVal request As OPENcontrol.EseRequest) As OPENcontrol.EseResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione EseEx non è RPC né incapsulata da documenti. - _ - Function EseEx(ByVal request As OPENcontrol.EseExRequest) As OPENcontrol.EseExResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione Exe non è RPC né incapsulata da documenti. - _ - Function Exe(ByVal request As OPENcontrol.ExeRequest) As OPENcontrol.ExeResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione AxesRef non è RPC né incapsulata da documenti. - _ - Function AxesRef(ByVal request As OPENcontrol.AxesRefRequest) As OPENcontrol.AxesRefResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione DncInit non è RPC né incapsulata da documenti. - _ - Function DncInit(ByVal request As OPENcontrol.DncInitRequest) As OPENcontrol.DncInitResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione DncData non è RPC né incapsulata da documenti. - _ - Function DncData(ByVal request As OPENcontrol.DncDataRequest) As OPENcontrol.DncDataResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione DncEof non è RPC né incapsulata da documenti. - _ - Function DncEof(ByVal request As OPENcontrol.DncEofRequest) As OPENcontrol.DncEofResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione DncStop non è RPC né incapsulata da documenti. - _ - Function DncStop(ByVal request As OPENcontrol.DncStopRequest) As OPENcontrol.DncStopResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetAxesInfo3 non è RPC né incapsulata da documenti. - _ - Function GetAxesInfo3(ByVal request As OPENcontrol.GetAxesInfo3Request) As OPENcontrol.GetAxesInfo3Response - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetCodeNumber non è RPC né incapsulata da documenti. - _ - Function GetCodeNumber(ByVal request As OPENcontrol.GetCodeNumberRequest) As OPENcontrol.GetCodeNumberResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetOptions non è RPC né incapsulata da documenti. - _ - Function GetOptions(ByVal request As OPENcontrol.GetOptionsRequest) As OPENcontrol.GetOptionsResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetDateTime non è RPC né incapsulata da documenti. - _ - Function GetDateTime(ByVal request As OPENcontrol.GetDateTimeRequest) As OPENcontrol.GetDateTimeResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetDateTime non è RPC né incapsulata da documenti. - _ - Function SetDateTime(ByVal request As OPENcontrol.SetDateTimeRequest) As OPENcontrol.SetDateTimeResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetSerialNumber non è RPC né incapsulata da documenti. - _ - Function GetSerialNumber(ByVal request As OPENcontrol.GetSerialNumberRequest) As OPENcontrol.GetSerialNumberResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione PutFile non è RPC né incapsulata da documenti. - _ - Function PutFile(ByVal request As OPENcontrol.PutFileRequest) As OPENcontrol.PutFileResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetFile non è RPC né incapsulata da documenti. - _ - Function GetFile(ByVal request As OPENcontrol.GetFileRequest) As OPENcontrol.GetFileResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione PutBinaryFile non è RPC né incapsulata da documenti. - _ - Function PutBinaryFile(ByVal request As OPENcontrol.PutBinaryFileRequest) As OPENcontrol.PutBinaryFileResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetBinaryFile non è RPC né incapsulata da documenti. - _ - Function GetBinaryFile(ByVal request As OPENcontrol.GetBinaryFileRequest) As OPENcontrol.GetBinaryFileResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSSetSecurityLevel non è RPC né incapsulata da documenti. - _ - Function LogFSSetSecurityLevel(ByVal request As OPENcontrol.LogFSSetSecurityLevelRequest) As OPENcontrol.LogFSSetSecurityLevelResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSGetSecurityLevel non è RPC né incapsulata da documenti. - _ - Function LogFSGetSecurityLevel(ByVal request As OPENcontrol.LogFSGetSecurityLevelRequest) As OPENcontrol.LogFSGetSecurityLevelResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSLongFileNames non è RPC né incapsulata da documenti. - _ - Function LogFSLongFileNames(ByVal request As OPENcontrol.LogFSLongFileNamesRequest) As OPENcontrol.LogFSLongFileNamesResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSGetNumDrive non è RPC né incapsulata da documenti. - _ - Function LogFSGetNumDrive(ByVal request As OPENcontrol.LogFSGetNumDriveRequest) As OPENcontrol.LogFSGetNumDriveResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSGetDriveList non è RPC né incapsulata da documenti. - _ - Function LogFSGetDriveList(ByVal request As OPENcontrol.LogFSGetDriveListRequest) As OPENcontrol.LogFSGetDriveListResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSGetHiddenDriveList non è RPC né incapsulata da documenti. - _ - Function LogFSGetHiddenDriveList(ByVal request As OPENcontrol.LogFSGetHiddenDriveListRequest) As OPENcontrol.LogFSGetHiddenDriveListResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSGetDrivePath non è RPC né incapsulata da documenti. - _ - Function LogFSGetDrivePath(ByVal request As OPENcontrol.LogFSGetDrivePathRequest) As OPENcontrol.LogFSGetDrivePathResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSAddDrive non è RPC né incapsulata da documenti. - _ - Function LogFSAddDrive(ByVal request As OPENcontrol.LogFSAddDriveRequest) As OPENcontrol.LogFSAddDriveResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSRemoveDrive non è RPC né incapsulata da documenti. - _ - Function LogFSRemoveDrive(ByVal request As OPENcontrol.LogFSRemoveDriveRequest) As OPENcontrol.LogFSRemoveDriveResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSReloadDriveList non è RPC né incapsulata da documenti. - _ - Function LogFSReloadDriveList(ByVal request As OPENcontrol.LogFSReloadDriveListRequest) As OPENcontrol.LogFSReloadDriveListResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSCreateDir non è RPC né incapsulata da documenti. - _ - Function LogFSCreateDir(ByVal request As OPENcontrol.LogFSCreateDirRequest) As OPENcontrol.LogFSCreateDirResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSCreateFile non è RPC né incapsulata da documenti. - _ - Function LogFSCreateFile(ByVal request As OPENcontrol.LogFSCreateFileRequest) As OPENcontrol.LogFSCreateFileResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSGetFileSize non è RPC né incapsulata da documenti. - _ - Function LogFSGetFileSize(ByVal request As OPENcontrol.LogFSGetFileSizeRequest) As OPENcontrol.LogFSGetFileSizeResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSGetFileAttrib non è RPC né incapsulata da documenti. - _ - Function LogFSGetFileAttrib(ByVal request As OPENcontrol.LogFSGetFileAttribRequest) As OPENcontrol.LogFSGetFileAttribResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSSetFileAttrib non è RPC né incapsulata da documenti. - _ - Function LogFSSetFileAttrib(ByVal request As OPENcontrol.LogFSSetFileAttribRequest) As OPENcontrol.LogFSSetFileAttribResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSChangeFileAttrib non è RPC né incapsulata da documenti. - _ - Function LogFSChangeFileAttrib(ByVal request As OPENcontrol.LogFSChangeFileAttribRequest) As OPENcontrol.LogFSChangeFileAttribResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSFindFirst non è RPC né incapsulata da documenti. - _ - Function LogFSFindFirst(ByVal request As OPENcontrol.LogFSFindFirstRequest) As OPENcontrol.LogFSFindFirstResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSFindNext non è RPC né incapsulata da documenti. - _ - Function LogFSFindNext(ByVal request As OPENcontrol.LogFSFindNextRequest) As OPENcontrol.LogFSFindNextResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSFindClose non è RPC né incapsulata da documenti. - _ - Function LogFSFindClose(ByVal request As OPENcontrol.LogFSFindCloseRequest) As OPENcontrol.LogFSFindCloseResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSRemoveFile non è RPC né incapsulata da documenti. - _ - Function LogFSRemoveFile(ByVal request As OPENcontrol.LogFSRemoveFileRequest) As OPENcontrol.LogFSRemoveFileResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSRemoveDir non è RPC né incapsulata da documenti. - _ - Function LogFSRemoveDir(ByVal request As OPENcontrol.LogFSRemoveDirRequest) As OPENcontrol.LogFSRemoveDirResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSRename non è RPC né incapsulata da documenti. - _ - Function LogFSRename(ByVal request As OPENcontrol.LogFSRenameRequest) As OPENcontrol.LogFSRenameResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSCopyFile non è RPC né incapsulata da documenti. - _ - Function LogFSCopyFile(ByVal request As OPENcontrol.LogFSCopyFileRequest) As OPENcontrol.LogFSCopyFileResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSGetInfo non è RPC né incapsulata da documenti. - _ - Function LogFSGetInfo(ByVal request As OPENcontrol.LogFSGetInfoRequest) As OPENcontrol.LogFSGetInfoResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetAvailableCustomEvents non è RPC né incapsulata da documenti. - _ - Function GetAvailableCustomEvents(ByVal request As OPENcontrol.GetAvailableCustomEventsRequest) As OPENcontrol.GetAvailableCustomEventsResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetSysTick non è RPC né incapsulata da documenti. - _ - Function GetSysTick(ByVal request As OPENcontrol.GetSysTickRequest) As OPENcontrol.GetSysTickResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetProcessConfNum non è RPC né incapsulata da documenti. - _ - Function GetProcessConfNum(ByVal request As OPENcontrol.GetProcessConfNumRequest) As OPENcontrol.GetProcessConfNumResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione MonOpenChannel non è RPC né incapsulata da documenti. - _ - Function MonOpenChannel(ByVal request As OPENcontrol.MonOpenChannelRequest) As OPENcontrol.MonOpenChannelResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione MonCloseChannel non è RPC né incapsulata da documenti. - _ - Function MonCloseChannel(ByVal request As OPENcontrol.MonCloseChannelRequest) As OPENcontrol.MonCloseChannelResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione MonAddVariable non è RPC né incapsulata da documenti. - _ - Function MonAddVariable(ByVal request As OPENcontrol.MonAddVariableRequest) As OPENcontrol.MonAddVariableResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione MonDeleteVariable non è RPC né incapsulata da documenti. - _ - Function MonDeleteVariable(ByVal request As OPENcontrol.MonDeleteVariableRequest) As OPENcontrol.MonDeleteVariableResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione MonStartSampling non è RPC né incapsulata da documenti. - _ - Function MonStartSampling(ByVal request As OPENcontrol.MonStartSamplingRequest) As OPENcontrol.MonStartSamplingResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione MonStopSampling non è RPC né incapsulata da documenti. - _ - Function MonStopSampling(ByVal request As OPENcontrol.MonStopSamplingRequest) As OPENcontrol.MonStopSamplingResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione MonGetVariable non è RPC né incapsulata da documenti. - _ - Function MonGetVariable(ByVal request As OPENcontrol.MonGetVariableRequest) As OPENcontrol.MonGetVariableResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione CheckHistory non è RPC né incapsulata da documenti. - _ - Function CheckHistory(ByVal request As OPENcontrol.CheckHistoryRequest) As OPENcontrol.CheckHistoryResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadHistoryEmergMsg non è RPC né incapsulata da documenti. - _ - Function ReadHistoryEmergMsg(ByVal request As OPENcontrol.ReadHistoryEmergMsgRequest) As OPENcontrol.ReadHistoryEmergMsgResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadHistoryErrorMsg non è RPC né incapsulata da documenti. - _ - Function ReadHistoryErrorMsg(ByVal request As OPENcontrol.ReadHistoryErrorMsgRequest) As OPENcontrol.ReadHistoryErrorMsgResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadHistoryLogMsg non è RPC né incapsulata da documenti. - _ - Function ReadHistoryLogMsg(ByVal request As OPENcontrol.ReadHistoryLogMsgRequest) As OPENcontrol.ReadHistoryLogMsgResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadHistoryAnomalyMsg non è RPC né incapsulata da documenti. - _ - Function ReadHistoryAnomalyMsg(ByVal request As OPENcontrol.ReadHistoryAnomalyMsgRequest) As OPENcontrol.ReadHistoryAnomalyMsgResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadCurrentErrorMsg non è RPC né incapsulata da documenti. - _ - Function ReadCurrentErrorMsg(ByVal request As OPENcontrol.ReadCurrentErrorMsgRequest) As OPENcontrol.ReadCurrentErrorMsgResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadCurrentEmergMsg non è RPC né incapsulata da documenti. - _ - Function ReadCurrentEmergMsg(ByVal request As OPENcontrol.ReadCurrentEmergMsgRequest) As OPENcontrol.ReadCurrentEmergMsgResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadCurrentAnomalyMsg non è RPC né incapsulata da documenti. - _ - Function ReadCurrentAnomalyMsg(ByVal request As OPENcontrol.ReadCurrentAnomalyMsgRequest) As OPENcontrol.ReadCurrentAnomalyMsgResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetPTechSizes non è RPC né incapsulata da documenti. - _ - Function GetPTechSizes(ByVal request As OPENcontrol.GetPTechSizesRequest) As OPENcontrol.GetPTechSizesResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LoadPTech non è RPC né incapsulata da documenti. - _ - Function LoadPTech(ByVal request As OPENcontrol.LoadPTechRequest) As OPENcontrol.LoadPTechResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetMarkerInfo non è RPC né incapsulata da documenti. - _ - Function GetMarkerInfo(ByVal request As OPENcontrol.GetMarkerInfoRequest) As OPENcontrol.GetMarkerInfoResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ManagePartProgram non è RPC né incapsulata da documenti. - _ - Function ManagePartProgram(ByVal request As OPENcontrol.ManagePartProgramRequest) As OPENcontrol.ManagePartProgramResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSOpenFile non è RPC né incapsulata da documenti. - _ - Function LogFSOpenFile(ByVal request As OPENcontrol.LogFSOpenFileRequest) As OPENcontrol.LogFSOpenFileResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSCloseFile non è RPC né incapsulata da documenti. - _ - Function LogFSCloseFile(ByVal request As OPENcontrol.LogFSCloseFileRequest) As OPENcontrol.LogFSCloseFileResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSWriteRecord non è RPC né incapsulata da documenti. - _ - Function LogFSWriteRecord(ByVal request As OPENcontrol.LogFSWriteRecordRequest) As OPENcontrol.LogFSWriteRecordResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione LogFSReadRecord non è RPC né incapsulata da documenti. - _ - Function LogFSReadRecord(ByVal request As OPENcontrol.LogFSReadRecordRequest) As OPENcontrol.LogFSReadRecordResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione ReadRemapDefinitions non è RPC né incapsulata da documenti. - _ - Function ReadRemapDefinitions(ByVal request As OPENcontrol.ReadRemapDefinitionsRequest) As OPENcontrol.ReadRemapDefinitionsResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione WriteRemapDefinitions non è RPC né incapsulata da documenti. - _ - Function WriteRemapDefinitions(ByVal request As OPENcontrol.WriteRemapDefinitionsRequest) As OPENcontrol.WriteRemapDefinitionsResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetServoPar non è RPC né incapsulata da documenti. - _ - Function GetServoPar(ByVal request As OPENcontrol.GetServoParRequest) As OPENcontrol.GetServoParResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetServoPar non è RPC né incapsulata da documenti. - _ - Function SetServoPar(ByVal request As OPENcontrol.SetServoParRequest) As OPENcontrol.SetServoParResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetCNCRegKey non è RPC né incapsulata da documenti. - _ - Function GetCNCRegKey(ByVal request As OPENcontrol.GetCNCRegKeyRequest) As OPENcontrol.GetCNCRegKeyResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SetIpAddress non è RPC né incapsulata da documenti. - _ - Function SetIpAddress(ByVal request As OPENcontrol.SetIpAddressRequest) As OPENcontrol.SetIpAddressResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione GetProcInInput non è RPC né incapsulata da documenti. - _ - Function GetProcInInput(ByVal request As OPENcontrol.GetProcInInputRequest) As OPENcontrol.GetProcInInputResponse - - 'CODEGEN: Generazione di un contratto di messaggio perché l'operazione SndProcInpData non è RPC né incapsulata da documenti. - _ - Function SndProcInpData(ByVal request As OPENcontrol.SndProcInpDataRequest) As OPENcontrol.SndProcInpDataResponse - End Interface - - ''' - _ - Partial Public Class BootPhaseEnquiry - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class DEFRAME - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private rowField As UShort - - Private colField As UShort - - Private lenField As UShort - - Private textField() As Byte - - ''' - _ - Public Property row() As UShort - Get - Return Me.rowField - End Get - Set - Me.rowField = value - Me.RaisePropertyChanged("row") - End Set - End Property - - ''' - _ - Public Property col() As UShort - Get - Return Me.colField - End Get - Set - Me.colField = value - Me.RaisePropertyChanged("col") - End Set - End Property - - ''' - _ - Public Property len() As UShort - Get - Return Me.lenField - End Get - Set - Me.lenField = value - Me.RaisePropertyChanged("len") - End Set - End Property - - ''' - _ - Public Property text() As Byte() - Get - Return Me.textField - End Get - Set - Me.textField = value - Me.RaisePropertyChanged("text") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class DEFIELDCONTROL - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private strmatchField() As Byte - - Private rangebyteField() As Byte - - Private rangeintField() As Short - - Private rangelongField() As Long - - Private rangeuintField() As UShort - - Private rangeulongField() As ULong - - Private rangefloatField() As Double - - Private rangedoubleField() As Double - - ''' - _ - Public Property strmatch() As Byte() - Get - Return Me.strmatchField - End Get - Set - Me.strmatchField = value - Me.RaisePropertyChanged("strmatch") - End Set - End Property - - ''' - _ - Public Property rangebyte() As Byte() - Get - Return Me.rangebyteField - End Get - Set - Me.rangebyteField = value - Me.RaisePropertyChanged("rangebyte") - End Set - End Property - - ''' - _ - Public Property rangeint() As Short() - Get - Return Me.rangeintField - End Get - Set - Me.rangeintField = value - Me.RaisePropertyChanged("rangeint") - End Set - End Property - - ''' - _ - Public Property rangelong() As Long() - Get - Return Me.rangelongField - End Get - Set - Me.rangelongField = value - Me.RaisePropertyChanged("rangelong") - End Set - End Property - - ''' - _ - Public Property rangeuint() As UShort() - Get - Return Me.rangeuintField - End Get - Set - Me.rangeuintField = value - Me.RaisePropertyChanged("rangeuint") - End Set - End Property - - ''' - _ - Public Property rangeulong() As ULong() - Get - Return Me.rangeulongField - End Get - Set - Me.rangeulongField = value - Me.RaisePropertyChanged("rangeulong") - End Set - End Property - - ''' - _ - Public Property rangefloat() As Double() - Get - Return Me.rangefloatField - End Get - Set - Me.rangefloatField = value - Me.RaisePropertyChanged("rangefloat") - End Set - End Property - - ''' - _ - Public Property rangedouble() As Double() - Get - Return Me.rangedoubleField - End Get - Set - Me.rangedoubleField = value - Me.RaisePropertyChanged("rangedouble") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class DEFIELDCHECK - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private convField As Byte - - Private valueField As DEFIELDCONTROL - - ''' - _ - Public Property conv() As Byte - Get - Return Me.convField - End Get - Set - Me.convField = value - Me.RaisePropertyChanged("conv") - End Set - End Property - - ''' - _ - Public Property value() As DEFIELDCONTROL - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("value") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class DEFIELD - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private rowField As UShort - - Private colField As UShort - - Private typeField As Byte - - Private myIdField As Byte - - Private sizeField As UShort - - Private disSizeField As UShort - - Private checkField As DEFIELDCHECK - - ''' - _ - Public Property row() As UShort - Get - Return Me.rowField - End Get - Set - Me.rowField = value - Me.RaisePropertyChanged("row") - End Set - End Property - - ''' - _ - Public Property col() As UShort - Get - Return Me.colField - End Get - Set - Me.colField = value - Me.RaisePropertyChanged("col") - End Set - End Property - - ''' - _ - Public Property type() As Byte - Get - Return Me.typeField - End Get - Set - Me.typeField = value - Me.RaisePropertyChanged("type") - End Set - End Property - - ''' - _ - Public Property myId() As Byte - Get - Return Me.myIdField - End Get - Set - Me.myIdField = value - Me.RaisePropertyChanged("myId") - End Set - End Property - - ''' - _ - Public Property size() As UShort - Get - Return Me.sizeField - End Get - Set - Me.sizeField = value - Me.RaisePropertyChanged("size") - End Set - End Property - - ''' - _ - Public Property disSize() As UShort - Get - Return Me.disSizeField - End Get - Set - Me.disSizeField = value - Me.RaisePropertyChanged("disSize") - End Set - End Property - - ''' - _ - Public Property check() As DEFIELDCHECK - Get - Return Me.checkField - End Get - Set - Me.checkField = value - Me.RaisePropertyChanged("check") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class DEKEY - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private abortField() As Byte - - Private confirm1Field() As Byte - - Private confirm2Field() As Byte - - Private confirm3Field() As Byte - - Private resetField() As Byte - - Private incresField() As Byte - - ''' - _ - Public Property abort() As Byte() - Get - Return Me.abortField - End Get - Set - Me.abortField = value - Me.RaisePropertyChanged("abort") - End Set - End Property - - ''' - _ - Public Property confirm1() As Byte() - Get - Return Me.confirm1Field - End Get - Set - Me.confirm1Field = value - Me.RaisePropertyChanged("confirm1") - End Set - End Property - - ''' - _ - Public Property confirm2() As Byte() - Get - Return Me.confirm2Field - End Get - Set - Me.confirm2Field = value - Me.RaisePropertyChanged("confirm2") - End Set - End Property - - ''' - _ - Public Property confirm3() As Byte() - Get - Return Me.confirm3Field - End Get - Set - Me.confirm3Field = value - Me.RaisePropertyChanged("confirm3") - End Set - End Property - - ''' - _ - Public Property reset() As Byte() - Get - Return Me.resetField - End Get - Set - Me.resetField = value - Me.RaisePropertyChanged("reset") - End Set - End Property - - ''' - _ - Public Property incres() As Byte() - Get - Return Me.incresField - End Get - Set - Me.incresField = value - Me.RaisePropertyChanged("incres") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class USERINPTAB - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private myIdField As Short - - Private iniRowField As Byte - - Private iniColField As Byte - - Private totRowField As Byte - - Private totColField As Byte - - Private myTypeField As Byte - - Private helpField() As Byte - - Private totFrameField As Byte - - Private totFieldField As Byte - - Private keyField As DEKEY - - Private fldField() As DEFIELD - - Private frmField() As DEFRAME - - Private strDef1Field() As Byte - - Private strDef2Field() As Byte - - Private strDef3Field() As Byte - - Private strDef4Field() As Byte - - Private strDef5Field() As Byte - - Private strDef6Field() As Byte - - Private strDef7Field() As Byte - - Private strDef8Field() As Byte - - Private decolorField() As ULong - - ''' - _ - Public Property myId() As Short - Get - Return Me.myIdField - End Get - Set - Me.myIdField = value - Me.RaisePropertyChanged("myId") - End Set - End Property - - ''' - _ - Public Property iniRow() As Byte - Get - Return Me.iniRowField - End Get - Set - Me.iniRowField = value - Me.RaisePropertyChanged("iniRow") - End Set - End Property - - ''' - _ - Public Property iniCol() As Byte - Get - Return Me.iniColField - End Get - Set - Me.iniColField = value - Me.RaisePropertyChanged("iniCol") - End Set - End Property - - ''' - _ - Public Property totRow() As Byte - Get - Return Me.totRowField - End Get - Set - Me.totRowField = value - Me.RaisePropertyChanged("totRow") - End Set - End Property - - ''' - _ - Public Property totCol() As Byte - Get - Return Me.totColField - End Get - Set - Me.totColField = value - Me.RaisePropertyChanged("totCol") - End Set - End Property - - ''' - _ - Public Property myType() As Byte - Get - Return Me.myTypeField - End Get - Set - Me.myTypeField = value - Me.RaisePropertyChanged("myType") - End Set - End Property - - ''' - _ - Public Property help() As Byte() - Get - Return Me.helpField - End Get - Set - Me.helpField = value - Me.RaisePropertyChanged("help") - End Set - End Property - - ''' - _ - Public Property totFrame() As Byte - Get - Return Me.totFrameField - End Get - Set - Me.totFrameField = value - Me.RaisePropertyChanged("totFrame") - End Set - End Property - - ''' - _ - Public Property totField() As Byte - Get - Return Me.totFieldField - End Get - Set - Me.totFieldField = value - Me.RaisePropertyChanged("totField") - End Set - End Property - - ''' - _ - Public Property key() As DEKEY - Get - Return Me.keyField - End Get - Set - Me.keyField = value - Me.RaisePropertyChanged("key") - End Set - End Property - - ''' - _ - Public Property fld() As DEFIELD() - Get - Return Me.fldField - End Get - Set - Me.fldField = value - Me.RaisePropertyChanged("fld") - End Set - End Property - - ''' - _ - Public Property frm() As DEFRAME() - Get - Return Me.frmField - End Get - Set - Me.frmField = value - Me.RaisePropertyChanged("frm") - End Set - End Property - - ''' - _ - Public Property strDef1() As Byte() - Get - Return Me.strDef1Field - End Get - Set - Me.strDef1Field = value - Me.RaisePropertyChanged("strDef1") - End Set - End Property - - ''' - _ - Public Property strDef2() As Byte() - Get - Return Me.strDef2Field - End Get - Set - Me.strDef2Field = value - Me.RaisePropertyChanged("strDef2") - End Set - End Property - - ''' - _ - Public Property strDef3() As Byte() - Get - Return Me.strDef3Field - End Get - Set - Me.strDef3Field = value - Me.RaisePropertyChanged("strDef3") - End Set - End Property - - ''' - _ - Public Property strDef4() As Byte() - Get - Return Me.strDef4Field - End Get - Set - Me.strDef4Field = value - Me.RaisePropertyChanged("strDef4") - End Set - End Property - - ''' - _ - Public Property strDef5() As Byte() - Get - Return Me.strDef5Field - End Get - Set - Me.strDef5Field = value - Me.RaisePropertyChanged("strDef5") - End Set - End Property - - ''' - _ - Public Property strDef6() As Byte() - Get - Return Me.strDef6Field - End Get - Set - Me.strDef6Field = value - Me.RaisePropertyChanged("strDef6") - End Set - End Property - - ''' - _ - Public Property strDef7() As Byte() - Get - Return Me.strDef7Field - End Get - Set - Me.strDef7Field = value - Me.RaisePropertyChanged("strDef7") - End Set - End Property - - ''' - _ - Public Property strDef8() As Byte() - Get - Return Me.strDef8Field - End Get - Set - Me.strDef8Field = value - Me.RaisePropertyChanged("strDef8") - End Set - End Property - - ''' - _ - Public Property decolor() As ULong() - Get - Return Me.decolorField - End Get - Set - Me.decolorField = value - Me.RaisePropertyChanged("decolor") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class INPUTINFO - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private processField As UShort - - Private isInInputField As Byte - - Private dataField As USERINPTAB - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property isInInput() As Byte - Get - Return Me.isInInputField - End Get - Set - Me.isInInputField = value - Me.RaisePropertyChanged("isInInput") - End Set - End Property - - ''' - _ - Public Property Data() As USERINPTAB - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class REMAPDEF - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private varTypeField As Byte - - Private physAddrField As UShort - - Private physBitField As Byte - - Private logicAddrField As UShort - - Private logicBitField As Byte - - Private modeField As Byte - - Private riseTimeField As UInteger - - Private fallTimeField As UInteger - - Private valueField As UInteger - - Private iOMsgIdField As UInteger - - Private iOClassField As Byte - - Private currPhysValueField As UInteger - - Private currLogicValueField As UInteger - - ''' - _ - Public Property VarType() As Byte - Get - Return Me.varTypeField - End Get - Set - Me.varTypeField = value - Me.RaisePropertyChanged("VarType") - End Set - End Property - - ''' - _ - Public Property PhysAddr() As UShort - Get - Return Me.physAddrField - End Get - Set - Me.physAddrField = value - Me.RaisePropertyChanged("PhysAddr") - End Set - End Property - - ''' - _ - Public Property PhysBit() As Byte - Get - Return Me.physBitField - End Get - Set - Me.physBitField = value - Me.RaisePropertyChanged("PhysBit") - End Set - End Property - - ''' - _ - Public Property LogicAddr() As UShort - Get - Return Me.logicAddrField - End Get - Set - Me.logicAddrField = value - Me.RaisePropertyChanged("LogicAddr") - End Set - End Property - - ''' - _ - Public Property LogicBit() As Byte - Get - Return Me.logicBitField - End Get - Set - Me.logicBitField = value - Me.RaisePropertyChanged("LogicBit") - End Set - End Property - - ''' - _ - Public Property Mode() As Byte - Get - Return Me.modeField - End Get - Set - Me.modeField = value - Me.RaisePropertyChanged("Mode") - End Set - End Property - - ''' - _ - Public Property RiseTime() As UInteger - Get - Return Me.riseTimeField - End Get - Set - Me.riseTimeField = value - Me.RaisePropertyChanged("RiseTime") - End Set - End Property - - ''' - _ - Public Property FallTime() As UInteger - Get - Return Me.fallTimeField - End Get - Set - Me.fallTimeField = value - Me.RaisePropertyChanged("FallTime") - End Set - End Property - - ''' - _ - Public Property Value() As UInteger - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - ''' - _ - Public Property IOMsgId() As UInteger - Get - Return Me.iOMsgIdField - End Get - Set - Me.iOMsgIdField = value - Me.RaisePropertyChanged("IOMsgId") - End Set - End Property - - ''' - _ - Public Property IOClass() As Byte - Get - Return Me.iOClassField - End Get - Set - Me.iOClassField = value - Me.RaisePropertyChanged("IOClass") - End Set - End Property - - ''' - _ - Public Property CurrPhysValue() As UInteger - Get - Return Me.currPhysValueField - End Get - Set - Me.currPhysValueField = value - Me.RaisePropertyChanged("CurrPhysValue") - End Set - End Property - - ''' - _ - Public Property CurrLogicValue() As UInteger - Get - Return Me.currLogicValueField - End Get - Set - Me.currLogicValueField = value - Me.RaisePropertyChanged("CurrLogicValue") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MARKERINFO - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private numberField As Short - - Private lineNumField() As UInteger - - Private numBlksField() As UInteger - - Private markerNameField()() As Byte - - Private pPnameField()() As Byte - - Private breakValField As UInteger - - ''' - _ - Public Property Number() As Short - Get - Return Me.numberField - End Get - Set - Me.numberField = value - Me.RaisePropertyChanged("Number") - End Set - End Property - - ''' - _ - Public Property LineNum() As UInteger() - Get - Return Me.lineNumField - End Get - Set - Me.lineNumField = value - Me.RaisePropertyChanged("LineNum") - End Set - End Property - - ''' - _ - Public Property NumBlks() As UInteger() - Get - Return Me.numBlksField - End Get - Set - Me.numBlksField = value - Me.RaisePropertyChanged("NumBlks") - End Set - End Property - - ''' - _ - Public Property MarkerName() As Byte()() - Get - Return Me.markerNameField - End Get - Set - Me.markerNameField = value - Me.RaisePropertyChanged("MarkerName") - End Set - End Property - - ''' - _ - Public Property PPname() As Byte()() - Get - Return Me.pPnameField - End Get - Set - Me.pPnameField = value - Me.RaisePropertyChanged("PPname") - End Set - End Property - - ''' - _ - Public Property breakVal() As UInteger - Get - Return Me.breakValField - End Get - Set - Me.breakValField = value - Me.RaisePropertyChanged("breakVal") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MSGANOMALY - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private bootIDField As UInteger - - Private systemTimeField As SYSTEMTIMECNDEX - - Private unIdSeqField As UInteger - - Private codeErrField As UInteger - - Private lineaField As UInteger - - Private formatTxtField() As Byte - - ''' - _ - Public Property BootID() As UInteger - Get - Return Me.bootIDField - End Get - Set - Me.bootIDField = value - Me.RaisePropertyChanged("BootID") - End Set - End Property - - ''' - _ - Public Property SystemTime() As SYSTEMTIMECNDEX - Get - Return Me.systemTimeField - End Get - Set - Me.systemTimeField = value - Me.RaisePropertyChanged("SystemTime") - End Set - End Property - - ''' - _ - Public Property UnIdSeq() As UInteger - Get - Return Me.unIdSeqField - End Get - Set - Me.unIdSeqField = value - Me.RaisePropertyChanged("UnIdSeq") - End Set - End Property - - ''' - _ - Public Property CodeErr() As UInteger - Get - Return Me.codeErrField - End Get - Set - Me.codeErrField = value - Me.RaisePropertyChanged("CodeErr") - End Set - End Property - - ''' - _ - Public Property Linea() As UInteger - Get - Return Me.lineaField - End Get - Set - Me.lineaField = value - Me.RaisePropertyChanged("Linea") - End Set - End Property - - ''' - _ - Public Property FormatTxt() As Byte() - Get - Return Me.formatTxtField - End Get - Set - Me.formatTxtField = value - Me.RaisePropertyChanged("FormatTxt") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SYSTEMTIMECNDEX - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private wYearField As UShort - - Private wMonthField As UShort - - Private wDayOfWeekField As UShort - - Private wDayField As UShort - - Private wHourField As UShort - - Private wMinuteField As UShort - - Private wSecondField As UShort - - Private wMillisecondsField As UShort - - ''' - _ - Public Property wYear() As UShort - Get - Return Me.wYearField - End Get - Set - Me.wYearField = value - Me.RaisePropertyChanged("wYear") - End Set - End Property - - ''' - _ - Public Property wMonth() As UShort - Get - Return Me.wMonthField - End Get - Set - Me.wMonthField = value - Me.RaisePropertyChanged("wMonth") - End Set - End Property - - ''' - _ - Public Property wDayOfWeek() As UShort - Get - Return Me.wDayOfWeekField - End Get - Set - Me.wDayOfWeekField = value - Me.RaisePropertyChanged("wDayOfWeek") - End Set - End Property - - ''' - _ - Public Property wDay() As UShort - Get - Return Me.wDayField - End Get - Set - Me.wDayField = value - Me.RaisePropertyChanged("wDay") - End Set - End Property - - ''' - _ - Public Property wHour() As UShort - Get - Return Me.wHourField - End Get - Set - Me.wHourField = value - Me.RaisePropertyChanged("wHour") - End Set - End Property - - ''' - _ - Public Property wMinute() As UShort - Get - Return Me.wMinuteField - End Get - Set - Me.wMinuteField = value - Me.RaisePropertyChanged("wMinute") - End Set - End Property - - ''' - _ - Public Property wSecond() As UShort - Get - Return Me.wSecondField - End Get - Set - Me.wSecondField = value - Me.RaisePropertyChanged("wSecond") - End Set - End Property - - ''' - _ - Public Property wMilliseconds() As UShort - Get - Return Me.wMillisecondsField - End Get - Set - Me.wMillisecondsField = value - Me.RaisePropertyChanged("wMilliseconds") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MSGLOGS - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private bootIDField As UInteger - - Private systemTimeField As SYSTEMTIMECNDEX - - Private unIdSeqField As UInteger - - Private codeLogField As UInteger - - Private errinfoField As UInteger - - Private formatTxtField() As Byte - - ''' - _ - Public Property BootID() As UInteger - Get - Return Me.bootIDField - End Get - Set - Me.bootIDField = value - Me.RaisePropertyChanged("BootID") - End Set - End Property - - ''' - _ - Public Property SystemTime() As SYSTEMTIMECNDEX - Get - Return Me.systemTimeField - End Get - Set - Me.systemTimeField = value - Me.RaisePropertyChanged("SystemTime") - End Set - End Property - - ''' - _ - Public Property UnIdSeq() As UInteger - Get - Return Me.unIdSeqField - End Get - Set - Me.unIdSeqField = value - Me.RaisePropertyChanged("UnIdSeq") - End Set - End Property - - ''' - _ - Public Property CodeLog() As UInteger - Get - Return Me.codeLogField - End Get - Set - Me.codeLogField = value - Me.RaisePropertyChanged("CodeLog") - End Set - End Property - - ''' - _ - Public Property Errinfo() As UInteger - Get - Return Me.errinfoField - End Get - Set - Me.errinfoField = value - Me.RaisePropertyChanged("Errinfo") - End Set - End Property - - ''' - _ - Public Property FormatTxt() As Byte() - Get - Return Me.formatTxtField - End Get - Set - Me.formatTxtField = value - Me.RaisePropertyChanged("FormatTxt") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MSGERROR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private bootIDField As UInteger - - Private systemTimeField As SYSTEMTIMECNDEX - - Private unIdSeqField As UInteger - - Private codeErrField As UInteger - - Private processField As Short - - Private comandoField As SByte - - Private subComField As SByte - - Private formatTxtField() As Byte - - ''' - _ - Public Property BootID() As UInteger - Get - Return Me.bootIDField - End Get - Set - Me.bootIDField = value - Me.RaisePropertyChanged("BootID") - End Set - End Property - - ''' - _ - Public Property SystemTime() As SYSTEMTIMECNDEX - Get - Return Me.systemTimeField - End Get - Set - Me.systemTimeField = value - Me.RaisePropertyChanged("SystemTime") - End Set - End Property - - ''' - _ - Public Property UnIdSeq() As UInteger - Get - Return Me.unIdSeqField - End Get - Set - Me.unIdSeqField = value - Me.RaisePropertyChanged("UnIdSeq") - End Set - End Property - - ''' - _ - Public Property CodeErr() As UInteger - Get - Return Me.codeErrField - End Get - Set - Me.codeErrField = value - Me.RaisePropertyChanged("CodeErr") - End Set - End Property - - ''' - _ - Public Property Process() As Short - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property Comando() As SByte - Get - Return Me.comandoField - End Get - Set - Me.comandoField = value - Me.RaisePropertyChanged("Comando") - End Set - End Property - - ''' - _ - Public Property SubCom() As SByte - Get - Return Me.subComField - End Get - Set - Me.subComField = value - Me.RaisePropertyChanged("SubCom") - End Set - End Property - - ''' - _ - Public Property FormatTxt() As Byte() - Get - Return Me.formatTxtField - End Get - Set - Me.formatTxtField = value - Me.RaisePropertyChanged("FormatTxt") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MSGEMERGENCY - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private bootIDField As UInteger - - Private systemTimeField As SYSTEMTIMECNDEX - - Private unIdSeqField As UInteger - - Private codeErrField As UInteger - - Private processField As Short - - Private procErrField As Short - - Private formatTxtField() As Byte - - ''' - _ - Public Property BootID() As UInteger - Get - Return Me.bootIDField - End Get - Set - Me.bootIDField = value - Me.RaisePropertyChanged("BootID") - End Set - End Property - - ''' - _ - Public Property SystemTime() As SYSTEMTIMECNDEX - Get - Return Me.systemTimeField - End Get - Set - Me.systemTimeField = value - Me.RaisePropertyChanged("SystemTime") - End Set - End Property - - ''' - _ - Public Property UnIdSeq() As UInteger - Get - Return Me.unIdSeqField - End Get - Set - Me.unIdSeqField = value - Me.RaisePropertyChanged("UnIdSeq") - End Set - End Property - - ''' - _ - Public Property CodeErr() As UInteger - Get - Return Me.codeErrField - End Get - Set - Me.codeErrField = value - Me.RaisePropertyChanged("CodeErr") - End Set - End Property - - ''' - _ - Public Property Process() As Short - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property ProcErr() As Short - Get - Return Me.procErrField - End Get - Set - Me.procErrField = value - Me.RaisePropertyChanged("ProcErr") - End Set - End Property - - ''' - _ - Public Property FormatTxt() As Byte() - Get - Return Me.formatTxtField - End Get - Set - Me.formatTxtField = value - Me.RaisePropertyChanged("FormatTxt") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MONVARDESCR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private classField As UShort - - Private subClassField As UShort - - Private deviceIDField As UShort - - Private codeField As UShort - - Private addressField As UShort - - Private signalField As UShort - - Private samplingPeriodField As Double - - ''' - _ - Public Property [Class]() As UShort - Get - Return Me.classField - End Get - Set - Me.classField = value - Me.RaisePropertyChanged("Class") - End Set - End Property - - ''' - _ - Public Property SubClass() As UShort - Get - Return Me.subClassField - End Get - Set - Me.subClassField = value - Me.RaisePropertyChanged("SubClass") - End Set - End Property - - ''' - _ - Public Property DeviceID() As UShort - Get - Return Me.deviceIDField - End Get - Set - Me.deviceIDField = value - Me.RaisePropertyChanged("DeviceID") - End Set - End Property - - ''' - _ - Public Property Code() As UShort - Get - Return Me.codeField - End Get - Set - Me.codeField = value - Me.RaisePropertyChanged("Code") - End Set - End Property - - ''' - _ - Public Property Address() As UShort - Get - Return Me.addressField - End Get - Set - Me.addressField = value - Me.RaisePropertyChanged("Address") - End Set - End Property - - ''' - _ - Public Property Signal() As UShort - Get - Return Me.signalField - End Get - Set - Me.signalField = value - Me.RaisePropertyChanged("Signal") - End Set - End Property - - ''' - _ - Public Property SamplingPeriod() As Double - Get - Return Me.samplingPeriodField - End Get - Set - Me.samplingPeriodField = value - Me.RaisePropertyChanged("SamplingPeriod") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MONCUSTOMEVENTINFO - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private idField As UShort - - Private typeField As UShort - - Private nameField As String - - ''' - _ - Public Property ID() As UShort - Get - Return Me.idField - End Get - Set - Me.idField = value - Me.RaisePropertyChanged("ID") - End Set - End Property - - ''' - _ - Public Property Type() As UShort - Get - Return Me.typeField - End Get - Set - Me.typeField = value - Me.RaisePropertyChanged("Type") - End Set - End Property - - ''' - _ - Public Property Name() As String - Get - Return Me.nameField - End Get - Set - Me.nameField = value - Me.RaisePropertyChanged("Name") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class FILEFINDDATA - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private fileAttributesField As UInteger - - Private lowDateCreationTimeField As UInteger - - Private highDateCreationTimeField As UInteger - - Private lowDateLastAccessTimeField As UInteger - - Private highDateLastAccessTimeField As UInteger - - Private lowDateLastWriteTimeField As UInteger - - Private highDateLastWriteTimeField As UInteger - - Private fileSizeHighField As UInteger - - Private fileSizeLowField As UInteger - - Private fileNameField As String - - ''' - _ - Public Property FileAttributes() As UInteger - Get - Return Me.fileAttributesField - End Get - Set - Me.fileAttributesField = value - Me.RaisePropertyChanged("FileAttributes") - End Set - End Property - - ''' - _ - Public Property LowDateCreationTime() As UInteger - Get - Return Me.lowDateCreationTimeField - End Get - Set - Me.lowDateCreationTimeField = value - Me.RaisePropertyChanged("LowDateCreationTime") - End Set - End Property - - ''' - _ - Public Property HighDateCreationTime() As UInteger - Get - Return Me.highDateCreationTimeField - End Get - Set - Me.highDateCreationTimeField = value - Me.RaisePropertyChanged("HighDateCreationTime") - End Set - End Property - - ''' - _ - Public Property LowDateLastAccessTime() As UInteger - Get - Return Me.lowDateLastAccessTimeField - End Get - Set - Me.lowDateLastAccessTimeField = value - Me.RaisePropertyChanged("LowDateLastAccessTime") - End Set - End Property - - ''' - _ - Public Property HighDateLastAccessTime() As UInteger - Get - Return Me.highDateLastAccessTimeField - End Get - Set - Me.highDateLastAccessTimeField = value - Me.RaisePropertyChanged("HighDateLastAccessTime") - End Set - End Property - - ''' - _ - Public Property LowDateLastWriteTime() As UInteger - Get - Return Me.lowDateLastWriteTimeField - End Get - Set - Me.lowDateLastWriteTimeField = value - Me.RaisePropertyChanged("LowDateLastWriteTime") - End Set - End Property - - ''' - _ - Public Property HighDateLastWriteTime() As UInteger - Get - Return Me.highDateLastWriteTimeField - End Get - Set - Me.highDateLastWriteTimeField = value - Me.RaisePropertyChanged("HighDateLastWriteTime") - End Set - End Property - - ''' - _ - Public Property FileSizeHigh() As UInteger - Get - Return Me.fileSizeHighField - End Get - Set - Me.fileSizeHighField = value - Me.RaisePropertyChanged("FileSizeHigh") - End Set - End Property - - ''' - _ - Public Property FileSizeLow() As UInteger - Get - Return Me.fileSizeLowField - End Get - Set - Me.fileSizeLowField = value - Me.RaisePropertyChanged("FileSizeLow") - End Set - End Property - - ''' - _ - Public Property FileName() As String - Get - Return Me.fileNameField - End Get - Set - Me.fileNameField = value - Me.RaisePropertyChanged("FileName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ERRMSG - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private msg1Field As String - - Private msg2Field As String - - Private msg3Field As String - - Private msg4Field As String - - ''' - _ - Public Property Msg1() As String - Get - Return Me.msg1Field - End Get - Set - Me.msg1Field = value - Me.RaisePropertyChanged("Msg1") - End Set - End Property - - ''' - _ - Public Property Msg2() As String - Get - Return Me.msg2Field - End Get - Set - Me.msg2Field = value - Me.RaisePropertyChanged("Msg2") - End Set - End Property - - ''' - _ - Public Property Msg3() As String - Get - Return Me.msg3Field - End Get - Set - Me.msg3Field = value - Me.RaisePropertyChanged("Msg3") - End Set - End Property - - ''' - _ - Public Property Msg4() As String - Get - Return Me.msg4Field - End Get - Set - Me.msg4Field = value - Me.RaisePropertyChanged("Msg4") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GETBLKNUMDATA - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private ppActNumField As UShort - - Private mainActBlkField As UInteger - - Private sbr1ActBlkField As UInteger - - Private sbr2ActBlkField As UInteger - - Private sbr3ActBlkField As UInteger - - Private sbr4ActBlkField As UInteger - - ''' - _ - Public Property ppActNum() As UShort - Get - Return Me.ppActNumField - End Get - Set - Me.ppActNumField = value - Me.RaisePropertyChanged("ppActNum") - End Set - End Property - - ''' - _ - Public Property MainActBlk() As UInteger - Get - Return Me.mainActBlkField - End Get - Set - Me.mainActBlkField = value - Me.RaisePropertyChanged("MainActBlk") - End Set - End Property - - ''' - _ - Public Property Sbr1ActBlk() As UInteger - Get - Return Me.sbr1ActBlkField - End Get - Set - Me.sbr1ActBlkField = value - Me.RaisePropertyChanged("Sbr1ActBlk") - End Set - End Property - - ''' - _ - Public Property Sbr2ActBlk() As UInteger - Get - Return Me.sbr2ActBlkField - End Get - Set - Me.sbr2ActBlkField = value - Me.RaisePropertyChanged("Sbr2ActBlk") - End Set - End Property - - ''' - _ - Public Property Sbr3ActBlk() As UInteger - Get - Return Me.sbr3ActBlkField - End Get - Set - Me.sbr3ActBlkField = value - Me.RaisePropertyChanged("Sbr3ActBlk") - End Set - End Property - - ''' - _ - Public Property Sbr4ActBlk() As UInteger - Get - Return Me.sbr4ActBlkField - End Get - Set - Me.sbr4ActBlkField = value - Me.RaisePropertyChanged("Sbr4ActBlk") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class PROCDATA - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private modeField As UShort - - Private statusField As UShort - - Private subStatusField As UShort - - ''' - _ - Public Property Mode() As UShort - Get - Return Me.modeField - End Get - Set - Me.modeField = value - Me.RaisePropertyChanged("Mode") - End Set - End Property - - ''' - _ - Public Property Status() As UShort - Get - Return Me.statusField - End Get - Set - Me.statusField = value - Me.RaisePropertyChanged("Status") - End Set - End Property - - ''' - _ - Public Property SubStatus() As UShort - Get - Return Me.subStatusField - End Get - Set - Me.subStatusField = value - Me.RaisePropertyChanged("SubStatus") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GETINFO2DATA - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private statusWordField As UShort - - Private urpField As Double - - Private actToolField As Double - - Private actOffsetField As UShort - - Private progToolField As Double - - Private progOffsetField As UShort - - Private mStatusField As UShort - - Private mValueField() As UShort - - Private ax1NameField As Byte - - Private ax1OffsetField As Double - - Private ax2NameField As Byte - - Private ax2OffsetField As Double - - Private radiusField As Double - - ''' - _ - Public Property StatusWord() As UShort - Get - Return Me.statusWordField - End Get - Set - Me.statusWordField = value - Me.RaisePropertyChanged("StatusWord") - End Set - End Property - - ''' - _ - Public Property Urp() As Double - Get - Return Me.urpField - End Get - Set - Me.urpField = value - Me.RaisePropertyChanged("Urp") - End Set - End Property - - ''' - _ - Public Property ActTool() As Double - Get - Return Me.actToolField - End Get - Set - Me.actToolField = value - Me.RaisePropertyChanged("ActTool") - End Set - End Property - - ''' - _ - Public Property ActOffset() As UShort - Get - Return Me.actOffsetField - End Get - Set - Me.actOffsetField = value - Me.RaisePropertyChanged("ActOffset") - End Set - End Property - - ''' - _ - Public Property ProgTool() As Double - Get - Return Me.progToolField - End Get - Set - Me.progToolField = value - Me.RaisePropertyChanged("ProgTool") - End Set - End Property - - ''' - _ - Public Property ProgOffset() As UShort - Get - Return Me.progOffsetField - End Get - Set - Me.progOffsetField = value - Me.RaisePropertyChanged("ProgOffset") - End Set - End Property - - ''' - _ - Public Property MStatus() As UShort - Get - Return Me.mStatusField - End Get - Set - Me.mStatusField = value - Me.RaisePropertyChanged("MStatus") - End Set - End Property - - ''' - _ - Public Property MValue() As UShort() - Get - Return Me.mValueField - End Get - Set - Me.mValueField = value - Me.RaisePropertyChanged("MValue") - End Set - End Property - - ''' - _ - Public Property Ax1Name() As Byte - Get - Return Me.ax1NameField - End Get - Set - Me.ax1NameField = value - Me.RaisePropertyChanged("Ax1Name") - End Set - End Property - - ''' - _ - Public Property Ax1Offset() As Double - Get - Return Me.ax1OffsetField - End Get - Set - Me.ax1OffsetField = value - Me.RaisePropertyChanged("Ax1Offset") - End Set - End Property - - ''' - _ - Public Property Ax2Name() As Byte - Get - Return Me.ax2NameField - End Get - Set - Me.ax2NameField = value - Me.RaisePropertyChanged("Ax2Name") - End Set - End Property - - ''' - _ - Public Property Ax2Offset() As Double - Get - Return Me.ax2OffsetField - End Get - Set - Me.ax2OffsetField = value - Me.RaisePropertyChanged("Ax2Offset") - End Set - End Property - - ''' - _ - Public Property Radius() As Double - Get - Return Me.radiusField - End Get - Set - Me.radiusField = value - Me.RaisePropertyChanged("Radius") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GETINFO1DATA - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private statusField As Byte - - Private substatusField As Byte - - Private modeselectField As Byte - - Private jogdirField As Byte - - Private speedovField As UShort - - Private feedovField As UShort - - Private rapfeedovField As UShort - - Private manfeedovField As UShort - - Private jogincrField As Double - - Private numaxselField As Byte - - Private axselField() As Byte - - Private actualtoolField As Double - - Private progrtoolField As Double - - Private actualtooloffField As UShort - - Private progrtooloffField As UShort - - Private realspeedField As Double - - Private progrspeedField As Double - - Private progrfeedField As Double - - Private rapidfeedField As Double - - Private realfeedField As Double - - Private feedmisunitField As UShort - - Private mainprogrnameField As String - - Private dryrunField As Byte - - Private rapidoverrideField As Byte - - Private disableslashedblkField As Byte - - Private optionalstopField As Byte - - Private forcerapidfeedField As Byte - - Private autojogretField As Byte - - Private blockretraceField As Byte - - Private lastncerrorField As UShort - - Private freeField As String - - ''' - _ - Public Property status() As Byte - Get - Return Me.statusField - End Get - Set - Me.statusField = value - Me.RaisePropertyChanged("status") - End Set - End Property - - ''' - _ - Public Property substatus() As Byte - Get - Return Me.substatusField - End Get - Set - Me.substatusField = value - Me.RaisePropertyChanged("substatus") - End Set - End Property - - ''' - _ - Public Property modeselect() As Byte - Get - Return Me.modeselectField - End Get - Set - Me.modeselectField = value - Me.RaisePropertyChanged("modeselect") - End Set - End Property - - ''' - _ - Public Property jogdir() As Byte - Get - Return Me.jogdirField - End Get - Set - Me.jogdirField = value - Me.RaisePropertyChanged("jogdir") - End Set - End Property - - ''' - _ - Public Property speedov() As UShort - Get - Return Me.speedovField - End Get - Set - Me.speedovField = value - Me.RaisePropertyChanged("speedov") - End Set - End Property - - ''' - _ - Public Property feedov() As UShort - Get - Return Me.feedovField - End Get - Set - Me.feedovField = value - Me.RaisePropertyChanged("feedov") - End Set - End Property - - ''' - _ - Public Property rapfeedov() As UShort - Get - Return Me.rapfeedovField - End Get - Set - Me.rapfeedovField = value - Me.RaisePropertyChanged("rapfeedov") - End Set - End Property - - ''' - _ - Public Property manfeedov() As UShort - Get - Return Me.manfeedovField - End Get - Set - Me.manfeedovField = value - Me.RaisePropertyChanged("manfeedov") - End Set - End Property - - ''' - _ - Public Property jogincr() As Double - Get - Return Me.jogincrField - End Get - Set - Me.jogincrField = value - Me.RaisePropertyChanged("jogincr") - End Set - End Property - - ''' - _ - Public Property numaxsel() As Byte - Get - Return Me.numaxselField - End Get - Set - Me.numaxselField = value - Me.RaisePropertyChanged("numaxsel") - End Set - End Property - - ''' - _ - Public Property axsel() As Byte() - Get - Return Me.axselField - End Get - Set - Me.axselField = value - Me.RaisePropertyChanged("axsel") - End Set - End Property - - ''' - _ - Public Property actualtool() As Double - Get - Return Me.actualtoolField - End Get - Set - Me.actualtoolField = value - Me.RaisePropertyChanged("actualtool") - End Set - End Property - - ''' - _ - Public Property progrtool() As Double - Get - Return Me.progrtoolField - End Get - Set - Me.progrtoolField = value - Me.RaisePropertyChanged("progrtool") - End Set - End Property - - ''' - _ - Public Property actualtooloff() As UShort - Get - Return Me.actualtooloffField - End Get - Set - Me.actualtooloffField = value - Me.RaisePropertyChanged("actualtooloff") - End Set - End Property - - ''' - _ - Public Property progrtooloff() As UShort - Get - Return Me.progrtooloffField - End Get - Set - Me.progrtooloffField = value - Me.RaisePropertyChanged("progrtooloff") - End Set - End Property - - ''' - _ - Public Property realspeed() As Double - Get - Return Me.realspeedField - End Get - Set - Me.realspeedField = value - Me.RaisePropertyChanged("realspeed") - End Set - End Property - - ''' - _ - Public Property progrspeed() As Double - Get - Return Me.progrspeedField - End Get - Set - Me.progrspeedField = value - Me.RaisePropertyChanged("progrspeed") - End Set - End Property - - ''' - _ - Public Property progrfeed() As Double - Get - Return Me.progrfeedField - End Get - Set - Me.progrfeedField = value - Me.RaisePropertyChanged("progrfeed") - End Set - End Property - - ''' - _ - Public Property rapidfeed() As Double - Get - Return Me.rapidfeedField - End Get - Set - Me.rapidfeedField = value - Me.RaisePropertyChanged("rapidfeed") - End Set - End Property - - ''' - _ - Public Property realfeed() As Double - Get - Return Me.realfeedField - End Get - Set - Me.realfeedField = value - Me.RaisePropertyChanged("realfeed") - End Set - End Property - - ''' - _ - Public Property feedmisunit() As UShort - Get - Return Me.feedmisunitField - End Get - Set - Me.feedmisunitField = value - Me.RaisePropertyChanged("feedmisunit") - End Set - End Property - - ''' - _ - Public Property mainprogrname() As String - Get - Return Me.mainprogrnameField - End Get - Set - Me.mainprogrnameField = value - Me.RaisePropertyChanged("mainprogrname") - End Set - End Property - - ''' - _ - Public Property dryrun() As Byte - Get - Return Me.dryrunField - End Get - Set - Me.dryrunField = value - Me.RaisePropertyChanged("dryrun") - End Set - End Property - - ''' - _ - Public Property rapidoverride() As Byte - Get - Return Me.rapidoverrideField - End Get - Set - Me.rapidoverrideField = value - Me.RaisePropertyChanged("rapidoverride") - End Set - End Property - - ''' - _ - Public Property disableslashedblk() As Byte - Get - Return Me.disableslashedblkField - End Get - Set - Me.disableslashedblkField = value - Me.RaisePropertyChanged("disableslashedblk") - End Set - End Property - - ''' - _ - Public Property optionalstop() As Byte - Get - Return Me.optionalstopField - End Get - Set - Me.optionalstopField = value - Me.RaisePropertyChanged("optionalstop") - End Set - End Property - - ''' - _ - Public Property forcerapidfeed() As Byte - Get - Return Me.forcerapidfeedField - End Get - Set - Me.forcerapidfeedField = value - Me.RaisePropertyChanged("forcerapidfeed") - End Set - End Property - - ''' - _ - Public Property autojogret() As Byte - Get - Return Me.autojogretField - End Get - Set - Me.autojogretField = value - Me.RaisePropertyChanged("autojogret") - End Set - End Property - - ''' - _ - Public Property blockretrace() As Byte - Get - Return Me.blockretraceField - End Get - Set - Me.blockretraceField = value - Me.RaisePropertyChanged("blockretrace") - End Set - End Property - - ''' - _ - Public Property lastncerror() As UShort - Get - Return Me.lastncerrorField - End Get - Set - Me.lastncerrorField = value - Me.RaisePropertyChanged("lastncerror") - End Set - End Property - - ''' - _ - Public Property free() As String - Get - Return Me.freeField - End Get - Set - Me.freeField = value - Me.RaisePropertyChanged("free") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GETINTDATA - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private axisNameField As Byte - - Private modeField As Byte - - Private positionField As Double - - Private totalOffsetField As Double - - ''' - _ - Public Property AxisName() As Byte - Get - Return Me.axisNameField - End Get - Set - Me.axisNameField = value - Me.RaisePropertyChanged("AxisName") - End Set - End Property - - ''' - _ - Public Property mode() As Byte - Get - Return Me.modeField - End Get - Set - Me.modeField = value - Me.RaisePropertyChanged("mode") - End Set - End Property - - ''' - _ - Public Property position() As Double - Get - Return Me.positionField - End Get - Set - Me.positionField = value - Me.RaisePropertyChanged("position") - End Set - End Property - - ''' - _ - Public Property TotalOffset() As Double - Get - Return Me.totalOffsetField - End Get - Set - Me.totalOffsetField = value - Me.RaisePropertyChanged("TotalOffset") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class AXORIGNUM - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private axisNameField As Byte - - Private originNumberField As Byte - - Private originFlagField As UShort - - ''' - _ - Public Property AxisName() As Byte - Get - Return Me.axisNameField - End Get - Set - Me.axisNameField = value - Me.RaisePropertyChanged("AxisName") - End Set - End Property - - ''' - _ - Public Property OriginNumber() As Byte - Get - Return Me.originNumberField - End Get - Set - Me.originNumberField = value - Me.RaisePropertyChanged("OriginNumber") - End Set - End Property - - ''' - _ - Public Property OriginFlag() As UShort - Get - Return Me.originFlagField - End Get - Set - Me.originFlagField = value - Me.RaisePropertyChanged("OriginFlag") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class USERTABLEII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private userValField() As Double - - ''' - _ - Public Property UserVal() As Double() - Get - Return Me.userValField - End Get - Set - Me.userValField = value - Me.RaisePropertyChanged("UserVal") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class OFFSETVALII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private valOrigField As Double - - Private maxChangeValField As Double - - Private actChangeValField As Double - - ''' - _ - Public Property ValOrig() As Double - Get - Return Me.valOrigField - End Get - Set - Me.valOrigField = value - Me.RaisePropertyChanged("ValOrig") - End Set - End Property - - ''' - _ - Public Property MaxChangeVal() As Double - Get - Return Me.maxChangeValField - End Get - Set - Me.maxChangeValField = value - Me.RaisePropertyChanged("MaxChangeVal") - End Set - End Property - - ''' - _ - Public Property ActChangeVal() As Double - Get - Return Me.actChangeValField - End Get - Set - Me.actChangeValField = value - Me.RaisePropertyChanged("ActChangeVal") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class OFFSETTABLEII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private lenValField() As OFFSETVALII - - Private diaValField() As OFFSETVALII - - Private orientField As UShort - - Private externTypeField As UShort - - Private externIndField As UShort - - Private duserField() As Double - - Private suserField() As Short - - Private descrField() As UShort - - ''' - _ - Public Property LenVal() As OFFSETVALII() - Get - Return Me.lenValField - End Get - Set - Me.lenValField = value - Me.RaisePropertyChanged("LenVal") - End Set - End Property - - ''' - _ - Public Property DiaVal() As OFFSETVALII() - Get - Return Me.diaValField - End Get - Set - Me.diaValField = value - Me.RaisePropertyChanged("DiaVal") - End Set - End Property - - ''' - _ - Public Property Orient() As UShort - Get - Return Me.orientField - End Get - Set - Me.orientField = value - Me.RaisePropertyChanged("Orient") - End Set - End Property - - ''' - _ - Public Property ExternType() As UShort - Get - Return Me.externTypeField - End Get - Set - Me.externTypeField = value - Me.RaisePropertyChanged("ExternType") - End Set - End Property - - ''' - _ - Public Property ExternInd() As UShort - Get - Return Me.externIndField - End Get - Set - Me.externIndField = value - Me.RaisePropertyChanged("ExternInd") - End Set - End Property - - ''' - _ - Public Property Duser() As Double() - Get - Return Me.duserField - End Get - Set - Me.duserField = value - Me.RaisePropertyChanged("Duser") - End Set - End Property - - ''' - _ - Public Property Suser() As Short() - Get - Return Me.suserField - End Get - Set - Me.suserField = value - Me.RaisePropertyChanged("Suser") - End Set - End Property - - ''' - _ - Public Property Descr() As UShort() - Get - Return Me.descrField - End Get - Set - Me.descrField = value - Me.RaisePropertyChanged("Descr") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class TOOLTABLEII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private toolNameField As String - - Private statusField As UShort - - Private lifeTypeField As UShort - - Private maxLifeField As Double - - Private remLifeField As Double - - Private offsNumField As UShort - - Private externTypeField As UShort - - Private externIndField As UShort - - Private duserField() As Double - - Private suserField() As Short - - Private descrField() As UShort - - ''' - _ - Public Property ToolName() As String - Get - Return Me.toolNameField - End Get - Set - Me.toolNameField = value - Me.RaisePropertyChanged("ToolName") - End Set - End Property - - ''' - _ - Public Property Status() As UShort - Get - Return Me.statusField - End Get - Set - Me.statusField = value - Me.RaisePropertyChanged("Status") - End Set - End Property - - ''' - _ - Public Property LifeType() As UShort - Get - Return Me.lifeTypeField - End Get - Set - Me.lifeTypeField = value - Me.RaisePropertyChanged("LifeType") - End Set - End Property - - ''' - _ - Public Property MaxLife() As Double - Get - Return Me.maxLifeField - End Get - Set - Me.maxLifeField = value - Me.RaisePropertyChanged("MaxLife") - End Set - End Property - - ''' - _ - Public Property RemLife() As Double - Get - Return Me.remLifeField - End Get - Set - Me.remLifeField = value - Me.RaisePropertyChanged("RemLife") - End Set - End Property - - ''' - _ - Public Property OffsNum() As UShort - Get - Return Me.offsNumField - End Get - Set - Me.offsNumField = value - Me.RaisePropertyChanged("OffsNum") - End Set - End Property - - ''' - _ - Public Property ExternType() As UShort - Get - Return Me.externTypeField - End Get - Set - Me.externTypeField = value - Me.RaisePropertyChanged("ExternType") - End Set - End Property - - ''' - _ - Public Property ExternInd() As UShort - Get - Return Me.externIndField - End Get - Set - Me.externIndField = value - Me.RaisePropertyChanged("ExternInd") - End Set - End Property - - ''' - _ - Public Property Duser() As Double() - Get - Return Me.duserField - End Get - Set - Me.duserField = value - Me.RaisePropertyChanged("Duser") - End Set - End Property - - ''' - _ - Public Property Suser() As Short() - Get - Return Me.suserField - End Get - Set - Me.suserField = value - Me.RaisePropertyChanged("Suser") - End Set - End Property - - ''' - _ - Public Property Descr() As UShort() - Get - Return Me.descrField - End Get - Set - Me.descrField = value - Me.RaisePropertyChanged("Descr") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ORIGINTABLEII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private axisValField() As Double - - Private externTypeField As UShort - - Private externIndField As UShort - - Private descrField() As UShort - - ''' - _ - Public Property AxisVal() As Double() - Get - Return Me.axisValField - End Get - Set - Me.axisValField = value - Me.RaisePropertyChanged("AxisVal") - End Set - End Property - - ''' - _ - Public Property ExternType() As UShort - Get - Return Me.externTypeField - End Get - Set - Me.externTypeField = value - Me.RaisePropertyChanged("ExternType") - End Set - End Property - - ''' - _ - Public Property ExternInd() As UShort - Get - Return Me.externIndField - End Get - Set - Me.externIndField = value - Me.RaisePropertyChanged("ExternInd") - End Set - End Property - - ''' - _ - Public Property Descr() As UShort() - Get - Return Me.descrField - End Get - Set - Me.descrField = value - Me.RaisePropertyChanged("Descr") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class BootPhaseEnquiryR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private phaseField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Phase() As UShort - Get - Return Me.phaseField - End Get - Set - Me.phaseField = value - Me.RaisePropertyChanged("Phase") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class BootPhaseEnquiryRequest - - _ - Public BootPhaseEnquiry As OPENcontrol.BootPhaseEnquiry - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal BootPhaseEnquiry As OPENcontrol.BootPhaseEnquiry) - MyBase.New - Me.BootPhaseEnquiry = BootPhaseEnquiry - End Sub - End Class - - _ - Partial Public Class BootPhaseEnquiryResponse - - _ - Public BootPhaseEnquiryR As OPENcontrol.BootPhaseEnquiryR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal BootPhaseEnquiryR As OPENcontrol.BootPhaseEnquiryR) - MyBase.New - Me.BootPhaseEnquiryR = BootPhaseEnquiryR - End Sub - End Class - - ''' - _ - Partial Public Class BootReboot - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class BootRebootR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class BootRebootRequest - - _ - Public BootReboot As OPENcontrol.BootReboot - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal BootReboot As OPENcontrol.BootReboot) - MyBase.New - Me.BootReboot = BootReboot - End Sub - End Class - - _ - Partial Public Class BootRebootResponse - - _ - Public BootRebootR As OPENcontrol.BootRebootR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal BootRebootR As OPENcontrol.BootRebootR) - MyBase.New - Me.BootRebootR = BootRebootR - End Sub - End Class - - ''' - _ - Partial Public Class BootShutDown - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class BootShutDownR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class BootShutDownRequest - - _ - Public BootShutDown As OPENcontrol.BootShutDown - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal BootShutDown As OPENcontrol.BootShutDown) - MyBase.New - Me.BootShutDown = BootShutDown - End Sub - End Class - - _ - Partial Public Class BootShutDownResponse - - _ - Public BootShutDownR As OPENcontrol.BootShutDownR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal BootShutDownR As OPENcontrol.BootShutDownR) - MyBase.New - Me.BootShutDownR = BootShutDownR - End Sub - End Class - - ''' - _ - Partial Public Class BootMode - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private modeField As UShort - - ''' - _ - Public Property Mode() As UShort - Get - Return Me.modeField - End Get - Set - Me.modeField = value - Me.RaisePropertyChanged("Mode") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class BootModeR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class BootModeRequest - - _ - Public BootMode As OPENcontrol.BootMode - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal BootMode As OPENcontrol.BootMode) - MyBase.New - Me.BootMode = BootMode - End Sub - End Class - - _ - Partial Public Class BootModeResponse - - _ - Public BootModeR As OPENcontrol.BootModeR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal BootModeR As OPENcontrol.BootModeR) - MyBase.New - Me.BootModeR = BootModeR - End Sub - End Class - - ''' - _ - Partial Public Class GetHWKey - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetHWKeyR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private hwKeyField() As Byte - - Private securLevelField() As Byte - - Private releaseField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property HwKey() As Byte() - Get - Return Me.hwKeyField - End Get - Set - Me.hwKeyField = value - Me.RaisePropertyChanged("HwKey") - End Set - End Property - - ''' - _ - Public Property SecurLevel() As Byte() - Get - Return Me.securLevelField - End Get - Set - Me.securLevelField = value - Me.RaisePropertyChanged("SecurLevel") - End Set - End Property - - ''' - _ - Public Property Release() As String - Get - Return Me.releaseField - End Get - Set - Me.releaseField = value - Me.RaisePropertyChanged("Release") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetHWKeyRequest - - _ - Public GetHWKey As OPENcontrol.GetHWKey - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetHWKey As OPENcontrol.GetHWKey) - MyBase.New - Me.GetHWKey = GetHWKey - End Sub - End Class - - _ - Partial Public Class GetHWKeyResponse - - _ - Public GetHWKeyR As OPENcontrol.GetHWKeyR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetHWKeyR As OPENcontrol.GetHWKeyR) - MyBase.New - Me.GetHWKeyR = GetHWKeyR - End Sub - End Class - - ''' - _ - Partial Public Class ReadVarWord - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private codeField As UShort - - Private processField As UShort - - Private indexField As UShort - - Private numVarField As UShort - - ''' - _ - Public Property Code() As UShort - Get - Return Me.codeField - End Get - Set - Me.codeField = value - Me.RaisePropertyChanged("Code") - End Set - End Property - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property Index() As UShort - Get - Return Me.indexField - End Get - Set - Me.indexField = value - Me.RaisePropertyChanged("Index") - End Set - End Property - - ''' - _ - Public Property NumVar() As UShort - Get - Return Me.numVarField - End Get - Set - Me.numVarField = value - Me.RaisePropertyChanged("NumVar") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadVarWordR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private valueField() As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Value() As UShort() - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadVarWordRequest - - _ - Public ReadVarWord As OPENcontrol.ReadVarWord - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadVarWord As OPENcontrol.ReadVarWord) - MyBase.New - Me.ReadVarWord = ReadVarWord - End Sub - End Class - - _ - Partial Public Class ReadVarWordResponse - - _ - Public ReadVarWordR As OPENcontrol.ReadVarWordR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadVarWordR As OPENcontrol.ReadVarWordR) - MyBase.New - Me.ReadVarWordR = ReadVarWordR - End Sub - End Class - - ''' - _ - Partial Public Class ReadVarDouble - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private codeField As UShort - - Private processField As UShort - - Private indexField As UShort - - Private numVarField As UShort - - ''' - _ - Public Property Code() As UShort - Get - Return Me.codeField - End Get - Set - Me.codeField = value - Me.RaisePropertyChanged("Code") - End Set - End Property - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property Index() As UShort - Get - Return Me.indexField - End Get - Set - Me.indexField = value - Me.RaisePropertyChanged("Index") - End Set - End Property - - ''' - _ - Public Property NumVar() As UShort - Get - Return Me.numVarField - End Get - Set - Me.numVarField = value - Me.RaisePropertyChanged("NumVar") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadVarDoubleR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private valueField() As Double - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Value() As Double() - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadVarDoubleRequest - - _ - Public ReadVarDouble As OPENcontrol.ReadVarDouble - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadVarDouble As OPENcontrol.ReadVarDouble) - MyBase.New - Me.ReadVarDouble = ReadVarDouble - End Sub - End Class - - _ - Partial Public Class ReadVarDoubleResponse - - _ - Public ReadVarDoubleR As OPENcontrol.ReadVarDoubleR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadVarDoubleR As OPENcontrol.ReadVarDoubleR) - MyBase.New - Me.ReadVarDoubleR = ReadVarDoubleR - End Sub - End Class - - ''' - _ - Partial Public Class WriteVarWord - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private codeField As UShort - - Private processField As UShort - - Private indexField As UShort - - Private numVarField As UShort - - Private valueField() As UShort - - ''' - _ - Public Property Code() As UShort - Get - Return Me.codeField - End Get - Set - Me.codeField = value - Me.RaisePropertyChanged("Code") - End Set - End Property - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property Index() As UShort - Get - Return Me.indexField - End Get - Set - Me.indexField = value - Me.RaisePropertyChanged("Index") - End Set - End Property - - ''' - _ - Public Property NumVar() As UShort - Get - Return Me.numVarField - End Get - Set - Me.numVarField = value - Me.RaisePropertyChanged("NumVar") - End Set - End Property - - ''' - _ - Public Property Value() As UShort() - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class WriteVarWordR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class WriteVarWordRequest - - _ - Public WriteVarWord As OPENcontrol.WriteVarWord - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal WriteVarWord As OPENcontrol.WriteVarWord) - MyBase.New - Me.WriteVarWord = WriteVarWord - End Sub - End Class - - _ - Partial Public Class WriteVarWordResponse - - _ - Public WriteVarWordR As OPENcontrol.WriteVarWordR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal WriteVarWordR As OPENcontrol.WriteVarWordR) - MyBase.New - Me.WriteVarWordR = WriteVarWordR - End Sub - End Class - - ''' - _ - Partial Public Class WriteVarWordBit - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private codeField As UShort - - Private processField As UShort - - Private indexField As UShort - - Private bitIndexField As UShort - - Private bitValueField As UShort - - ''' - _ - Public Property Code() As UShort - Get - Return Me.codeField - End Get - Set - Me.codeField = value - Me.RaisePropertyChanged("Code") - End Set - End Property - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property Index() As UShort - Get - Return Me.indexField - End Get - Set - Me.indexField = value - Me.RaisePropertyChanged("Index") - End Set - End Property - - ''' - _ - Public Property BitIndex() As UShort - Get - Return Me.bitIndexField - End Get - Set - Me.bitIndexField = value - Me.RaisePropertyChanged("BitIndex") - End Set - End Property - - ''' - _ - Public Property BitValue() As UShort - Get - Return Me.bitValueField - End Get - Set - Me.bitValueField = value - Me.RaisePropertyChanged("BitValue") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class WriteVarWordBitR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class WriteVarWordBitRequest - - _ - Public WriteVarWordBit As OPENcontrol.WriteVarWordBit - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal WriteVarWordBit As OPENcontrol.WriteVarWordBit) - MyBase.New - Me.WriteVarWordBit = WriteVarWordBit - End Sub - End Class - - _ - Partial Public Class WriteVarWordBitResponse - - _ - Public WriteVarWordBitR As OPENcontrol.WriteVarWordBitR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal WriteVarWordBitR As OPENcontrol.WriteVarWordBitR) - MyBase.New - Me.WriteVarWordBitR = WriteVarWordBitR - End Sub - End Class - - ''' - _ - Partial Public Class WriteVarDouble - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private codeField As UShort - - Private processField As UShort - - Private indexField As UShort - - Private numVarField As UShort - - Private valueField() As Double - - ''' - _ - Public Property Code() As UShort - Get - Return Me.codeField - End Get - Set - Me.codeField = value - Me.RaisePropertyChanged("Code") - End Set - End Property - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property Index() As UShort - Get - Return Me.indexField - End Get - Set - Me.indexField = value - Me.RaisePropertyChanged("Index") - End Set - End Property - - ''' - _ - Public Property NumVar() As UShort - Get - Return Me.numVarField - End Get - Set - Me.numVarField = value - Me.RaisePropertyChanged("NumVar") - End Set - End Property - - ''' - _ - Public Property Value() As Double() - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class WriteVarDoubleR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class WriteVarDoubleRequest - - _ - Public WriteVarDouble As OPENcontrol.WriteVarDouble - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal WriteVarDouble As OPENcontrol.WriteVarDouble) - MyBase.New - Me.WriteVarDouble = WriteVarDouble - End Sub - End Class - - _ - Partial Public Class WriteVarDoubleResponse - - _ - Public WriteVarDoubleR As OPENcontrol.WriteVarDoubleR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal WriteVarDoubleR As OPENcontrol.WriteVarDoubleR) - MyBase.New - Me.WriteVarDoubleR = WriteVarDoubleR - End Sub - End Class - - ''' - _ - Partial Public Class ReadVarText - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private codeField As UShort - - Private processField As UShort - - Private indexField As UShort - - Private sizeField As UShort - - ''' - _ - Public Property Code() As UShort - Get - Return Me.codeField - End Get - Set - Me.codeField = value - Me.RaisePropertyChanged("Code") - End Set - End Property - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property Index() As UShort - Get - Return Me.indexField - End Get - Set - Me.indexField = value - Me.RaisePropertyChanged("Index") - End Set - End Property - - ''' - _ - Public Property Size() As UShort - Get - Return Me.sizeField - End Get - Set - Me.sizeField = value - Me.RaisePropertyChanged("Size") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadVarTextR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private textField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Text() As String - Get - Return Me.textField - End Get - Set - Me.textField = value - Me.RaisePropertyChanged("Text") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadVarTextRequest - - _ - Public ReadVarText As OPENcontrol.ReadVarText - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadVarText As OPENcontrol.ReadVarText) - MyBase.New - Me.ReadVarText = ReadVarText - End Sub - End Class - - _ - Partial Public Class ReadVarTextResponse - - _ - Public ReadVarTextR As OPENcontrol.ReadVarTextR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadVarTextR As OPENcontrol.ReadVarTextR) - MyBase.New - Me.ReadVarTextR = ReadVarTextR - End Sub - End Class - - ''' - _ - Partial Public Class WriteVarText - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private codeField As UShort - - Private processField As UShort - - Private indexField As UShort - - Private lenField As UShort - - Private textField As String - - ''' - _ - Public Property Code() As UShort - Get - Return Me.codeField - End Get - Set - Me.codeField = value - Me.RaisePropertyChanged("Code") - End Set - End Property - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property Index() As UShort - Get - Return Me.indexField - End Get - Set - Me.indexField = value - Me.RaisePropertyChanged("Index") - End Set - End Property - - ''' - _ - Public Property Len() As UShort - Get - Return Me.lenField - End Get - Set - Me.lenField = value - Me.RaisePropertyChanged("Len") - End Set - End Property - - ''' - _ - Public Property Text() As String - Get - Return Me.textField - End Get - Set - Me.textField = value - Me.RaisePropertyChanged("Text") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class WriteVarTextR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class WriteVarTextRequest - - _ - Public WriteVarText As OPENcontrol.WriteVarText - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal WriteVarText As OPENcontrol.WriteVarText) - MyBase.New - Me.WriteVarText = WriteVarText - End Sub - End Class - - _ - Partial Public Class WriteVarTextResponse - - _ - Public WriteVarTextR As OPENcontrol.WriteVarTextR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal WriteVarTextR As OPENcontrol.WriteVarTextR) - MyBase.New - Me.WriteVarTextR = WriteVarTextR - End Sub - End Class - - ''' - _ - Partial Public Class ReadWarningMsg - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadWarningMsgR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private warningMsgField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property WarningMsg() As String - Get - Return Me.warningMsgField - End Get - Set - Me.warningMsgField = value - Me.RaisePropertyChanged("WarningMsg") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadWarningMsgRequest - - _ - Public ReadWarningMsg As OPENcontrol.ReadWarningMsg - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadWarningMsg As OPENcontrol.ReadWarningMsg) - MyBase.New - Me.ReadWarningMsg = ReadWarningMsg - End Sub - End Class - - _ - Partial Public Class ReadWarningMsgResponse - - _ - Public ReadWarningMsgR As OPENcontrol.ReadWarningMsgR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadWarningMsgR As OPENcontrol.ReadWarningMsgR) - MyBase.New - Me.ReadWarningMsgR = ReadWarningMsgR - End Sub - End Class - - ''' - _ - Partial Public Class ResetSingleTableII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private tableNumField As UShort - - ''' - _ - Public Property TableNum() As UShort - Get - Return Me.tableNumField - End Get - Set - Me.tableNumField = value - Me.RaisePropertyChanged("TableNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ResetSingleTableIIR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ResetSingleTableIIRequest - - _ - Public ResetSingleTableII As OPENcontrol.ResetSingleTableII - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ResetSingleTableII As OPENcontrol.ResetSingleTableII) - MyBase.New - Me.ResetSingleTableII = ResetSingleTableII - End Sub - End Class - - _ - Partial Public Class ResetSingleTableIIResponse - - _ - Public ResetSingleTableIIR As OPENcontrol.ResetSingleTableIIR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ResetSingleTableIIR As OPENcontrol.ResetSingleTableIIR) - MyBase.New - Me.ResetSingleTableIIR = ResetSingleTableIIR - End Sub - End Class - - ''' - _ - Partial Public Class LockTableII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private tableNumField As UShort - - ''' - _ - Public Property TableNum() As UShort - Get - Return Me.tableNumField - End Get - Set - Me.tableNumField = value - Me.RaisePropertyChanged("TableNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LockTableIIR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LockTableIIRequest - - _ - Public LockTableII As OPENcontrol.LockTableII - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LockTableII As OPENcontrol.LockTableII) - MyBase.New - Me.LockTableII = LockTableII - End Sub - End Class - - _ - Partial Public Class LockTableIIResponse - - _ - Public LockTableIIR As OPENcontrol.LockTableIIR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LockTableIIR As OPENcontrol.LockTableIIR) - MyBase.New - Me.LockTableIIR = LockTableIIR - End Sub - End Class - - ''' - _ - Partial Public Class UnLockTableII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private tableNumField As UShort - - ''' - _ - Public Property TableNum() As UShort - Get - Return Me.tableNumField - End Get - Set - Me.tableNumField = value - Me.RaisePropertyChanged("TableNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class UnLockTableIIR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class UnLockTableIIRequest - - _ - Public UnLockTableII As OPENcontrol.UnLockTableII - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal UnLockTableII As OPENcontrol.UnLockTableII) - MyBase.New - Me.UnLockTableII = UnLockTableII - End Sub - End Class - - _ - Partial Public Class UnLockTableIIResponse - - _ - Public UnLockTableIIR As OPENcontrol.UnLockTableIIR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal UnLockTableIIR As OPENcontrol.UnLockTableIIR) - MyBase.New - Me.UnLockTableIIR = UnLockTableIIR - End Sub - End Class - - ''' - _ - Partial Public Class GetOriginTabRecordII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private recordNumField As UInteger - - ''' - _ - Public Property RecordNum() As UInteger - Get - Return Me.recordNumField - End Get - Set - Me.recordNumField = value - Me.RaisePropertyChanged("RecordNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetOriginTabRecordIIR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private recordBuffField As ORIGINTABLEII - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property RecordBuff() As ORIGINTABLEII - Get - Return Me.recordBuffField - End Get - Set - Me.recordBuffField = value - Me.RaisePropertyChanged("RecordBuff") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetOriginTabRecordIIRequest - - _ - Public GetOriginTabRecordII As OPENcontrol.GetOriginTabRecordII - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetOriginTabRecordII As OPENcontrol.GetOriginTabRecordII) - MyBase.New - Me.GetOriginTabRecordII = GetOriginTabRecordII - End Sub - End Class - - _ - Partial Public Class GetOriginTabRecordIIResponse - - _ - Public GetOriginTabRecordIIR As OPENcontrol.GetOriginTabRecordIIR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetOriginTabRecordIIR As OPENcontrol.GetOriginTabRecordIIR) - MyBase.New - Me.GetOriginTabRecordIIR = GetOriginTabRecordIIR - End Sub - End Class - - ''' - _ - Partial Public Class SetOriginTabRecordII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private recordNumField As UInteger - - Private recordBuffField As ORIGINTABLEII - - ''' - _ - Public Property RecordNum() As UInteger - Get - Return Me.recordNumField - End Get - Set - Me.recordNumField = value - Me.RaisePropertyChanged("RecordNum") - End Set - End Property - - ''' - _ - Public Property RecordBuff() As ORIGINTABLEII - Get - Return Me.recordBuffField - End Get - Set - Me.recordBuffField = value - Me.RaisePropertyChanged("RecordBuff") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetOriginTabRecordIIR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetOriginTabRecordIIRequest - - _ - Public SetOriginTabRecordII As OPENcontrol.SetOriginTabRecordII - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetOriginTabRecordII As OPENcontrol.SetOriginTabRecordII) - MyBase.New - Me.SetOriginTabRecordII = SetOriginTabRecordII - End Sub - End Class - - _ - Partial Public Class SetOriginTabRecordIIResponse - - _ - Public SetOriginTabRecordIIR As OPENcontrol.SetOriginTabRecordIIR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetOriginTabRecordIIR As OPENcontrol.SetOriginTabRecordIIR) - MyBase.New - Me.SetOriginTabRecordIIR = SetOriginTabRecordIIR - End Sub - End Class - - ''' - _ - Partial Public Class GetToolTabRecordII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private recordNumField As UInteger - - ''' - _ - Public Property RecordNum() As UInteger - Get - Return Me.recordNumField - End Get - Set - Me.recordNumField = value - Me.RaisePropertyChanged("RecordNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetToolTabRecordIIR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private recordBuffField As TOOLTABLEII - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property RecordBuff() As TOOLTABLEII - Get - Return Me.recordBuffField - End Get - Set - Me.recordBuffField = value - Me.RaisePropertyChanged("RecordBuff") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetToolTabRecordIIRequest - - _ - Public GetToolTabRecordII As OPENcontrol.GetToolTabRecordII - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetToolTabRecordII As OPENcontrol.GetToolTabRecordII) - MyBase.New - Me.GetToolTabRecordII = GetToolTabRecordII - End Sub - End Class - - _ - Partial Public Class GetToolTabRecordIIResponse - - _ - Public GetToolTabRecordIIR As OPENcontrol.GetToolTabRecordIIR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetToolTabRecordIIR As OPENcontrol.GetToolTabRecordIIR) - MyBase.New - Me.GetToolTabRecordIIR = GetToolTabRecordIIR - End Sub - End Class - - ''' - _ - Partial Public Class SetToolTabRecordII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private recordNumField As UInteger - - Private recordBuffField As TOOLTABLEII - - ''' - _ - Public Property RecordNum() As UInteger - Get - Return Me.recordNumField - End Get - Set - Me.recordNumField = value - Me.RaisePropertyChanged("RecordNum") - End Set - End Property - - ''' - _ - Public Property RecordBuff() As TOOLTABLEII - Get - Return Me.recordBuffField - End Get - Set - Me.recordBuffField = value - Me.RaisePropertyChanged("RecordBuff") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetToolTabRecordIIR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetToolTabRecordIIRequest - - _ - Public SetToolTabRecordII As OPENcontrol.SetToolTabRecordII - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetToolTabRecordII As OPENcontrol.SetToolTabRecordII) - MyBase.New - Me.SetToolTabRecordII = SetToolTabRecordII - End Sub - End Class - - _ - Partial Public Class SetToolTabRecordIIResponse - - _ - Public SetToolTabRecordIIR As OPENcontrol.SetToolTabRecordIIR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetToolTabRecordIIR As OPENcontrol.SetToolTabRecordIIR) - MyBase.New - Me.SetToolTabRecordIIR = SetToolTabRecordIIR - End Sub - End Class - - ''' - _ - Partial Public Class GetOffsetTabRecordII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private recordNumField As UInteger - - ''' - _ - Public Property RecordNum() As UInteger - Get - Return Me.recordNumField - End Get - Set - Me.recordNumField = value - Me.RaisePropertyChanged("RecordNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetOffsetTabRecordIIR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private recordBuffField As OFFSETTABLEII - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property RecordBuff() As OFFSETTABLEII - Get - Return Me.recordBuffField - End Get - Set - Me.recordBuffField = value - Me.RaisePropertyChanged("RecordBuff") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetOffsetTabRecordIIRequest - - _ - Public GetOffsetTabRecordII As OPENcontrol.GetOffsetTabRecordII - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetOffsetTabRecordII As OPENcontrol.GetOffsetTabRecordII) - MyBase.New - Me.GetOffsetTabRecordII = GetOffsetTabRecordII - End Sub - End Class - - _ - Partial Public Class GetOffsetTabRecordIIResponse - - _ - Public GetOffsetTabRecordIIR As OPENcontrol.GetOffsetTabRecordIIR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetOffsetTabRecordIIR As OPENcontrol.GetOffsetTabRecordIIR) - MyBase.New - Me.GetOffsetTabRecordIIR = GetOffsetTabRecordIIR - End Sub - End Class - - ''' - _ - Partial Public Class SetOffsetTabRecordII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private recordNumField As UInteger - - Private recordBuffField As OFFSETTABLEII - - ''' - _ - Public Property RecordNum() As UInteger - Get - Return Me.recordNumField - End Get - Set - Me.recordNumField = value - Me.RaisePropertyChanged("RecordNum") - End Set - End Property - - ''' - _ - Public Property RecordBuff() As OFFSETTABLEII - Get - Return Me.recordBuffField - End Get - Set - Me.recordBuffField = value - Me.RaisePropertyChanged("RecordBuff") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetOffsetTabRecordIIR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetOffsetTabRecordIIRequest - - _ - Public SetOffsetTabRecordII As OPENcontrol.SetOffsetTabRecordII - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetOffsetTabRecordII As OPENcontrol.SetOffsetTabRecordII) - MyBase.New - Me.SetOffsetTabRecordII = SetOffsetTabRecordII - End Sub - End Class - - _ - Partial Public Class SetOffsetTabRecordIIResponse - - _ - Public SetOffsetTabRecordIIR As OPENcontrol.SetOffsetTabRecordIIR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetOffsetTabRecordIIR As OPENcontrol.SetOffsetTabRecordIIR) - MyBase.New - Me.SetOffsetTabRecordIIR = SetOffsetTabRecordIIR - End Sub - End Class - - ''' - _ - Partial Public Class GetUserTabRecordII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private recordNumField As UInteger - - ''' - _ - Public Property RecordNum() As UInteger - Get - Return Me.recordNumField - End Get - Set - Me.recordNumField = value - Me.RaisePropertyChanged("RecordNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetUserTabRecordIIR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private recordBuffField As USERTABLEII - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property RecordBuff() As USERTABLEII - Get - Return Me.recordBuffField - End Get - Set - Me.recordBuffField = value - Me.RaisePropertyChanged("RecordBuff") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetUserTabRecordIIRequest - - _ - Public GetUserTabRecordII As OPENcontrol.GetUserTabRecordII - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetUserTabRecordII As OPENcontrol.GetUserTabRecordII) - MyBase.New - Me.GetUserTabRecordII = GetUserTabRecordII - End Sub - End Class - - _ - Partial Public Class GetUserTabRecordIIResponse - - _ - Public GetUserTabRecordIIR As OPENcontrol.GetUserTabRecordIIR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetUserTabRecordIIR As OPENcontrol.GetUserTabRecordIIR) - MyBase.New - Me.GetUserTabRecordIIR = GetUserTabRecordIIR - End Sub - End Class - - ''' - _ - Partial Public Class SetUserTabRecordII - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private recordNumField As UInteger - - Private recordBuffField As USERTABLEII - - ''' - _ - Public Property RecordNum() As UInteger - Get - Return Me.recordNumField - End Get - Set - Me.recordNumField = value - Me.RaisePropertyChanged("RecordNum") - End Set - End Property - - ''' - _ - Public Property RecordBuff() As USERTABLEII - Get - Return Me.recordBuffField - End Get - Set - Me.recordBuffField = value - Me.RaisePropertyChanged("RecordBuff") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetUserTabRecordIIR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetUserTabRecordIIRequest - - _ - Public SetUserTabRecordII As OPENcontrol.SetUserTabRecordII - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetUserTabRecordII As OPENcontrol.SetUserTabRecordII) - MyBase.New - Me.SetUserTabRecordII = SetUserTabRecordII - End Sub - End Class - - _ - Partial Public Class SetUserTabRecordIIResponse - - _ - Public SetUserTabRecordIIR As OPENcontrol.SetUserTabRecordIIR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetUserTabRecordIIR As OPENcontrol.SetUserTabRecordIIR) - MyBase.New - Me.SetUserTabRecordIIR = SetUserTabRecordIIR - End Sub - End Class - - ''' - _ - Partial Public Class SaveTables - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private localDirField As String - - ''' - _ - Public Property LocalDir() As String - Get - Return Me.localDirField - End Get - Set - Me.localDirField = value - Me.RaisePropertyChanged("LocalDir") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SaveTablesR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SaveTablesRequest - - _ - Public SaveTables As OPENcontrol.SaveTables - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SaveTables As OPENcontrol.SaveTables) - MyBase.New - Me.SaveTables = SaveTables - End Sub - End Class - - _ - Partial Public Class SaveTablesResponse - - _ - Public SaveTablesR As OPENcontrol.SaveTablesR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SaveTablesR As OPENcontrol.SaveTablesR) - MyBase.New - Me.SaveTablesR = SaveTablesR - End Sub - End Class - - ''' - _ - Partial Public Class RestoreSingleTable - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private localDirField As String - - Private tableTypeField As TABLETYPEII - - ''' - _ - Public Property LocalDir() As String - Get - Return Me.localDirField - End Get - Set - Me.localDirField = value - Me.RaisePropertyChanged("LocalDir") - End Set - End Property - - ''' - _ - Public Property TableType() As TABLETYPEII - Get - Return Me.tableTypeField - End Get - Set - Me.tableTypeField = value - Me.RaisePropertyChanged("TableType") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Public Enum TABLETYPEII - - ''' - _ - TabTypeTools - - ''' - _ - TabTypeOffsets - - ''' - _ - TabTypeOrigins - - ''' - _ - TabTypeUser - End Enum - - ''' - _ - Partial Public Class RestoreSingleTableR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class RestoreSingleTableRequest - - _ - Public RestoreSingleTable As OPENcontrol.RestoreSingleTable - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal RestoreSingleTable As OPENcontrol.RestoreSingleTable) - MyBase.New - Me.RestoreSingleTable = RestoreSingleTable - End Sub - End Class - - _ - Partial Public Class RestoreSingleTableResponse - - _ - Public RestoreSingleTableR As OPENcontrol.RestoreSingleTableR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal RestoreSingleTableR As OPENcontrol.RestoreSingleTableR) - MyBase.New - Me.RestoreSingleTableR = RestoreSingleTableR - End Sub - End Class - - ''' - _ - Partial Public Class SaveSingleTable - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private localDirField As String - - Private tableTypeField As TABLETYPEII - - ''' - _ - Public Property LocalDir() As String - Get - Return Me.localDirField - End Get - Set - Me.localDirField = value - Me.RaisePropertyChanged("LocalDir") - End Set - End Property - - ''' - _ - Public Property TableType() As TABLETYPEII - Get - Return Me.tableTypeField - End Get - Set - Me.tableTypeField = value - Me.RaisePropertyChanged("TableType") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SaveSingleTableR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SaveSingleTableRequest - - _ - Public SaveSingleTable As OPENcontrol.SaveSingleTable - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SaveSingleTable As OPENcontrol.SaveSingleTable) - MyBase.New - Me.SaveSingleTable = SaveSingleTable - End Sub - End Class - - _ - Partial Public Class SaveSingleTableResponse - - _ - Public SaveSingleTableR As OPENcontrol.SaveSingleTableR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SaveSingleTableR As OPENcontrol.SaveSingleTableR) - MyBase.New - Me.SaveSingleTableR = SaveSingleTableR - End Sub - End Class - - ''' - _ - Partial Public Class SaveBackupMemory - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private fileNameField As String - - ''' - _ - Public Property FileName() As String - Get - Return Me.fileNameField - End Get - Set - Me.fileNameField = value - Me.RaisePropertyChanged("FileName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SaveBackupMemoryR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SaveBackupMemoryRequest - - _ - Public SaveBackupMemory As OPENcontrol.SaveBackupMemory - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SaveBackupMemory As OPENcontrol.SaveBackupMemory) - MyBase.New - Me.SaveBackupMemory = SaveBackupMemory - End Sub - End Class - - _ - Partial Public Class SaveBackupMemoryResponse - - _ - Public SaveBackupMemoryR As OPENcontrol.SaveBackupMemoryR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SaveBackupMemoryR As OPENcontrol.SaveBackupMemoryR) - MyBase.New - Me.SaveBackupMemoryR = SaveBackupMemoryR - End Sub - End Class - - ''' - _ - Partial Public Class RestoreBackupMemory - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private fileNameField As String - - Private restoreMaskField As UInteger - - ''' - _ - Public Property FileName() As String - Get - Return Me.fileNameField - End Get - Set - Me.fileNameField = value - Me.RaisePropertyChanged("FileName") - End Set - End Property - - ''' - _ - Public Property RestoreMask() As UInteger - Get - Return Me.restoreMaskField - End Get - Set - Me.restoreMaskField = value - Me.RaisePropertyChanged("RestoreMask") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class RestoreBackupMemoryR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class RestoreBackupMemoryRequest - - _ - Public RestoreBackupMemory As OPENcontrol.RestoreBackupMemory - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal RestoreBackupMemory As OPENcontrol.RestoreBackupMemory) - MyBase.New - Me.RestoreBackupMemory = RestoreBackupMemory - End Sub - End Class - - _ - Partial Public Class RestoreBackupMemoryResponse - - _ - Public RestoreBackupMemoryR As OPENcontrol.RestoreBackupMemoryR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal RestoreBackupMemoryR As OPENcontrol.RestoreBackupMemoryR) - MyBase.New - Me.RestoreBackupMemoryR = RestoreBackupMemoryR - End Sub - End Class - - ''' - _ - Partial Public Class Cycle - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private cmdField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property Cmd() As UShort - Get - Return Me.cmdField - End Get - Set - Me.cmdField = value - Me.RaisePropertyChanged("Cmd") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class CycleR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class CycleRequest - - _ - Public Cycle As OPENcontrol.Cycle - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal Cycle As OPENcontrol.Cycle) - MyBase.New - Me.Cycle = Cycle - End Sub - End Class - - _ - Partial Public Class CycleResponse - - _ - Public CycleR As OPENcontrol.CycleR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal CycleR As OPENcontrol.CycleR) - MyBase.New - Me.CycleR = CycleR - End Sub - End Class - - ''' - _ - Partial Public Class SyncroCycle - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SyncroCycleR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SyncroCycleRequest - - _ - Public SyncroCycle As OPENcontrol.SyncroCycle - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SyncroCycle As OPENcontrol.SyncroCycle) - MyBase.New - Me.SyncroCycle = SyncroCycle - End Sub - End Class - - _ - Partial Public Class SyncroCycleResponse - - _ - Public SyncroCycleR As OPENcontrol.SyncroCycleR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SyncroCycleR As OPENcontrol.SyncroCycleR) - MyBase.New - Me.SyncroCycleR = SyncroCycleR - End Sub - End Class - - ''' - _ - Partial Public Class Reset - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ResetR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ResetRequest - - _ - Public Reset As OPENcontrol.Reset - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal Reset As OPENcontrol.Reset) - MyBase.New - Me.Reset = Reset - End Sub - End Class - - _ - Partial Public Class ResetResponse - - _ - Public ResetR As OPENcontrol.ResetR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ResetR As OPENcontrol.ResetR) - MyBase.New - Me.ResetR = ResetR - End Sub - End Class - - ''' - _ - Partial Public Class Hold - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private cmdField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property Cmd() As UShort - Get - Return Me.cmdField - End Get - Set - Me.cmdField = value - Me.RaisePropertyChanged("Cmd") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class HoldR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class HoldRequest - - _ - Public Hold As OPENcontrol.Hold - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal Hold As OPENcontrol.Hold) - MyBase.New - Me.Hold = Hold - End Sub - End Class - - _ - Partial Public Class HoldResponse - - _ - Public HoldR As OPENcontrol.HoldR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal HoldR As OPENcontrol.HoldR) - MyBase.New - Me.HoldR = HoldR - End Sub - End Class - - ''' - _ - Partial Public Class SetFeedManOver - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private feedManOverField As UShort - - Private directionField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property FeedManOver() As UShort - Get - Return Me.feedManOverField - End Get - Set - Me.feedManOverField = value - Me.RaisePropertyChanged("FeedManOver") - End Set - End Property - - ''' - _ - Public Property Direction() As UShort - Get - Return Me.directionField - End Get - Set - Me.directionField = value - Me.RaisePropertyChanged("Direction") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetFeedManOverR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetFeedManOverRequest - - _ - Public SetFeedManOver As OPENcontrol.SetFeedManOver - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetFeedManOver As OPENcontrol.SetFeedManOver) - MyBase.New - Me.SetFeedManOver = SetFeedManOver - End Sub - End Class - - _ - Partial Public Class SetFeedManOverResponse - - _ - Public SetFeedManOverR As OPENcontrol.SetFeedManOverR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetFeedManOverR As OPENcontrol.SetFeedManOverR) - MyBase.New - Me.SetFeedManOverR = SetFeedManOverR - End Sub - End Class - - ''' - _ - Partial Public Class SetFeedRateOver - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private feedRateOverField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property FeedRateOver() As UShort - Get - Return Me.feedRateOverField - End Get - Set - Me.feedRateOverField = value - Me.RaisePropertyChanged("FeedRateOver") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetFeedRateOverR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetFeedRateOverRequest - - _ - Public SetFeedRateOver As OPENcontrol.SetFeedRateOver - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetFeedRateOver As OPENcontrol.SetFeedRateOver) - MyBase.New - Me.SetFeedRateOver = SetFeedRateOver - End Sub - End Class - - _ - Partial Public Class SetFeedRateOverResponse - - _ - Public SetFeedRateOverR As OPENcontrol.SetFeedRateOverR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetFeedRateOverR As OPENcontrol.SetFeedRateOverR) - MyBase.New - Me.SetFeedRateOverR = SetFeedRateOverR - End Sub - End Class - - ''' - _ - Partial Public Class SetFeedRapidOver - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private feedRapidOverField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property FeedRapidOver() As UShort - Get - Return Me.feedRapidOverField - End Get - Set - Me.feedRapidOverField = value - Me.RaisePropertyChanged("FeedRapidOver") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetFeedRapidOverR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetFeedRapidOverRequest - - _ - Public SetFeedRapidOver As OPENcontrol.SetFeedRapidOver - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetFeedRapidOver As OPENcontrol.SetFeedRapidOver) - MyBase.New - Me.SetFeedRapidOver = SetFeedRapidOver - End Sub - End Class - - _ - Partial Public Class SetFeedRapidOverResponse - - _ - Public SetFeedRapidOverR As OPENcontrol.SetFeedRapidOverR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetFeedRapidOverR As OPENcontrol.SetFeedRapidOverR) - MyBase.New - Me.SetFeedRapidOverR = SetFeedRapidOverR - End Sub - End Class - - ''' - _ - Partial Public Class SetSpeedRateOver - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private speedRateOverField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property SpeedRateOver() As UShort - Get - Return Me.speedRateOverField - End Get - Set - Me.speedRateOverField = value - Me.RaisePropertyChanged("SpeedRateOver") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetSpeedRateOverR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetSpeedRateOverRequest - - _ - Public SetSpeedRateOver As OPENcontrol.SetSpeedRateOver - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetSpeedRateOver As OPENcontrol.SetSpeedRateOver) - MyBase.New - Me.SetSpeedRateOver = SetSpeedRateOver - End Sub - End Class - - _ - Partial Public Class SetSpeedRateOverResponse - - _ - Public SetSpeedRateOverR As OPENcontrol.SetSpeedRateOverR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetSpeedRateOverR As OPENcontrol.SetSpeedRateOverR) - MyBase.New - Me.SetSpeedRateOverR = SetSpeedRateOverR - End Sub - End Class - - ''' - _ - Partial Public Class SetManMovDirection - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private directionField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property Direction() As UShort - Get - Return Me.directionField - End Get - Set - Me.directionField = value - Me.RaisePropertyChanged("Direction") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetManMovDirectionR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetManMovDirectionRequest - - _ - Public SetManMovDirection As OPENcontrol.SetManMovDirection - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetManMovDirection As OPENcontrol.SetManMovDirection) - MyBase.New - Me.SetManMovDirection = SetManMovDirection - End Sub - End Class - - _ - Partial Public Class SetManMovDirectionResponse - - _ - Public SetManMovDirectionR As OPENcontrol.SetManMovDirectionR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetManMovDirectionR As OPENcontrol.SetManMovDirectionR) - MyBase.New - Me.SetManMovDirectionR = SetManMovDirectionR - End Sub - End Class - - ''' - _ - Partial Public Class GetVarJOG - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetVarJOGR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private valueField As Double - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Value() As Double - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetVarJOGRequest - - _ - Public GetVarJOG As OPENcontrol.GetVarJOG - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetVarJOG As OPENcontrol.GetVarJOG) - MyBase.New - Me.GetVarJOG = GetVarJOG - End Sub - End Class - - _ - Partial Public Class GetVarJOGResponse - - _ - Public GetVarJOGR As OPENcontrol.GetVarJOGR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetVarJOGR As OPENcontrol.GetVarJOGR) - MyBase.New - Me.GetVarJOGR = GetVarJOGR - End Sub - End Class - - ''' - _ - Partial Public Class SetVarJOG - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private valueField As Double - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property Value() As Double - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetVarJOGR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetVarJOGRequest - - _ - Public SetVarJOG As OPENcontrol.SetVarJOG - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetVarJOG As OPENcontrol.SetVarJOG) - MyBase.New - Me.SetVarJOG = SetVarJOG - End Sub - End Class - - _ - Partial Public Class SetVarJOGResponse - - _ - Public SetVarJOGR As OPENcontrol.SetVarJOGR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetVarJOGR As OPENcontrol.SetVarJOGR) - MyBase.New - Me.SetVarJOGR = SetVarJOGR - End Sub - End Class - - ''' - _ - Partial Public Class SetVarUAS - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private modeField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property Mode() As UShort - Get - Return Me.modeField - End Get - Set - Me.modeField = value - Me.RaisePropertyChanged("Mode") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetVarUASR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetVarUASRequest - - _ - Public SetVarUAS As OPENcontrol.SetVarUAS - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetVarUAS As OPENcontrol.SetVarUAS) - MyBase.New - Me.SetVarUAS = SetVarUAS - End Sub - End Class - - _ - Partial Public Class SetVarUASResponse - - _ - Public SetVarUASR As OPENcontrol.SetVarUASR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetVarUASR As OPENcontrol.SetVarUASR) - MyBase.New - Me.SetVarUASR = SetVarUASR - End Sub - End Class - - ''' - _ - Partial Public Class GetVarRCM - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetVarRCMR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private valueField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Value() As UShort - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetVarRCMRequest - - _ - Public GetVarRCM As OPENcontrol.GetVarRCM - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetVarRCM As OPENcontrol.GetVarRCM) - MyBase.New - Me.GetVarRCM = GetVarRCM - End Sub - End Class - - _ - Partial Public Class GetVarRCMResponse - - _ - Public GetVarRCMR As OPENcontrol.GetVarRCMR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetVarRCMR As OPENcontrol.GetVarRCMR) - MyBase.New - Me.GetVarRCMR = GetVarRCMR - End Sub - End Class - - ''' - _ - Partial Public Class SetVarRCM - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private modeField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property Mode() As UShort - Get - Return Me.modeField - End Get - Set - Me.modeField = value - Me.RaisePropertyChanged("Mode") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetVarRCMR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetVarRCMRequest - - _ - Public SetVarRCM As OPENcontrol.SetVarRCM - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetVarRCM As OPENcontrol.SetVarRCM) - MyBase.New - Me.SetVarRCM = SetVarRCM - End Sub - End Class - - _ - Partial Public Class SetVarRCMResponse - - _ - Public SetVarRCMR As OPENcontrol.SetVarRCMR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetVarRCMR As OPENcontrol.SetVarRCMR) - MyBase.New - Me.SetVarRCMR = SetVarRCMR - End Sub - End Class - - ''' - _ - Partial Public Class GetProcVarWord - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private varTypeField As PROCWORDVARTYPE - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property VarType() As PROCWORDVARTYPE - Get - Return Me.varTypeField - End Get - Set - Me.varTypeField = value - Me.RaisePropertyChanged("VarType") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Public Enum PROCWORDVARTYPE - - ''' - _ - PROCWORDVARRCM - - ''' - _ - PROCWORDVARARM - - ''' - _ - PROCWORDVARDPS - - ''' - _ - PROCWORDVARRAP - - ''' - _ - PROCWORDVARTRP - - ''' - _ - PROCWORDVARVFF - - ''' - _ - PROCWORDVARUVR - - ''' - _ - PROCWORDVARDLA - - ''' - _ - PROCWORDVARMBR - - ''' - _ - PROCWORDVARURL - - ''' - _ - PROCWORDVARDSB - - ''' - _ - PROCWORDVARUSO - - ''' - _ - PROCWORDVARERR - - ''' - _ - PROCWORDVARHMP - - ''' - _ - PROCWORDVARUAS - - ''' - _ - PROCWORDVARMBA - - ''' - _ - PROCWORDVARREM - End Enum - - ''' - _ - Partial Public Class GetProcVarWordR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private valueField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Value() As UShort - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetProcVarWordRequest - - _ - Public GetProcVarWord As OPENcontrol.GetProcVarWord - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetProcVarWord As OPENcontrol.GetProcVarWord) - MyBase.New - Me.GetProcVarWord = GetProcVarWord - End Sub - End Class - - _ - Partial Public Class GetProcVarWordResponse - - _ - Public GetProcVarWordR As OPENcontrol.GetProcVarWordR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetProcVarWordR As OPENcontrol.GetProcVarWordR) - MyBase.New - Me.GetProcVarWordR = GetProcVarWordR - End Sub - End Class - - ''' - _ - Partial Public Class SetProcVarWord - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private varTypeField As PROCWORDVARTYPE - - Private valueField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property VarType() As PROCWORDVARTYPE - Get - Return Me.varTypeField - End Get - Set - Me.varTypeField = value - Me.RaisePropertyChanged("VarType") - End Set - End Property - - ''' - _ - Public Property Value() As UShort - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetProcVarWordR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetProcVarWordRequest - - _ - Public SetProcVarWord As OPENcontrol.SetProcVarWord - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetProcVarWord As OPENcontrol.SetProcVarWord) - MyBase.New - Me.SetProcVarWord = SetProcVarWord - End Sub - End Class - - _ - Partial Public Class SetProcVarWordResponse - - _ - Public SetProcVarWordR As OPENcontrol.SetProcVarWordR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetProcVarWordR As OPENcontrol.SetProcVarWordR) - MyBase.New - Me.SetProcVarWordR = SetProcVarWordR - End Sub - End Class - - ''' - _ - Partial Public Class GetProcVarDouble - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private varTypeField As PROCDOUBLEVARTYPE - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property VarType() As PROCDOUBLEVARTYPE - Get - Return Me.varTypeField - End Get - Set - Me.varTypeField = value - Me.RaisePropertyChanged("VarType") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Public Enum PROCDOUBLEVARTYPE - - ''' - _ - PROCDOUBLEVARURP - - ''' - _ - PROCDOUBLEVARDWT - - ''' - _ - PROCDOUBLEVARJOG - - ''' - _ - PROCDOUBLEVARMDA - - ''' - _ - PROCDOUBLEVARMSA - - ''' - _ - PROCDOUBLEVARSSL - - ''' - _ - PROCDOUBLEVARVEF - - ''' - _ - PROCDOUBLEVARUPO - - ''' - _ - PROCDOUBLEVARUPA - - ''' - _ - PROCDOUBLEVARCET - - ''' - _ - PROCDOUBLEVARFCT - - ''' - _ - PROCDOUBLEVARMBRLEN - - ''' - _ - PROCDOUBLEVARMBRTHR - End Enum - - ''' - _ - Partial Public Class GetProcVarDoubleR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private valueField As Double - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Value() As Double - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetProcVarDoubleRequest - - _ - Public GetProcVarDouble As OPENcontrol.GetProcVarDouble - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetProcVarDouble As OPENcontrol.GetProcVarDouble) - MyBase.New - Me.GetProcVarDouble = GetProcVarDouble - End Sub - End Class - - _ - Partial Public Class GetProcVarDoubleResponse - - _ - Public GetProcVarDoubleR As OPENcontrol.GetProcVarDoubleR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetProcVarDoubleR As OPENcontrol.GetProcVarDoubleR) - MyBase.New - Me.GetProcVarDoubleR = GetProcVarDoubleR - End Sub - End Class - - ''' - _ - Partial Public Class SetProcVarDouble - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private varTypeField As PROCDOUBLEVARTYPE - - Private valueField As Double - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property VarType() As PROCDOUBLEVARTYPE - Get - Return Me.varTypeField - End Get - Set - Me.varTypeField = value - Me.RaisePropertyChanged("VarType") - End Set - End Property - - ''' - _ - Public Property Value() As Double - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetProcVarDoubleR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetProcVarDoubleRequest - - _ - Public SetProcVarDouble As OPENcontrol.SetProcVarDouble - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetProcVarDouble As OPENcontrol.SetProcVarDouble) - MyBase.New - Me.SetProcVarDouble = SetProcVarDouble - End Sub - End Class - - _ - Partial Public Class SetProcVarDoubleResponse - - _ - Public SetProcVarDoubleR As OPENcontrol.SetProcVarDoubleR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetProcVarDoubleR As OPENcontrol.SetProcVarDoubleR) - MyBase.New - Me.SetProcVarDoubleR = SetProcVarDoubleR - End Sub - End Class - - ''' - _ - Partial Public Class SetMdiString - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private mdiStringField As String - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property MdiString() As String - Get - Return Me.mdiStringField - End Get - Set - Me.mdiStringField = value - Me.RaisePropertyChanged("MdiString") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetMdiStringR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetMdiStringRequest - - _ - Public SetMdiString As OPENcontrol.SetMdiString - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetMdiString As OPENcontrol.SetMdiString) - MyBase.New - Me.SetMdiString = SetMdiString - End Sub - End Class - - _ - Partial Public Class SetMdiStringResponse - - _ - Public SetMdiStringR As OPENcontrol.SetMdiStringR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetMdiStringR As OPENcontrol.SetMdiStringR) - MyBase.New - Me.SetMdiStringR = SetMdiStringR - End Sub - End Class - - ''' - _ - Partial Public Class SetProcessMode - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private modeField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property Mode() As UShort - Get - Return Me.modeField - End Get - Set - Me.modeField = value - Me.RaisePropertyChanged("Mode") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetProcessModeR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetProcessModeRequest - - _ - Public SetProcessMode As OPENcontrol.SetProcessMode - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetProcessMode As OPENcontrol.SetProcessMode) - MyBase.New - Me.SetProcessMode = SetProcessMode - End Sub - End Class - - _ - Partial Public Class SetProcessModeResponse - - _ - Public SetProcessModeR As OPENcontrol.SetProcessModeR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetProcessModeR As OPENcontrol.SetProcessModeR) - MyBase.New - Me.SetProcessModeR = SetProcessModeR - End Sub - End Class - - ''' - _ - Partial Public Class SelectProcess - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SelectProcessR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SelectProcessRequest - - _ - Public SelectProcess As OPENcontrol.SelectProcess - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SelectProcess As OPENcontrol.SelectProcess) - MyBase.New - Me.SelectProcess = SelectProcess - End Sub - End Class - - _ - Partial Public Class SelectProcessResponse - - _ - Public SelectProcessR As OPENcontrol.SelectProcessR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SelectProcessR As OPENcontrol.SelectProcessR) - MyBase.New - Me.SelectProcessR = SelectProcessR - End Sub - End Class - - ''' - _ - Partial Public Class GetSelectedProcess - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetSelectedProcessR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private procNumField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetSelectedProcessRequest - - _ - Public GetSelectedProcess As OPENcontrol.GetSelectedProcess - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetSelectedProcess As OPENcontrol.GetSelectedProcess) - MyBase.New - Me.GetSelectedProcess = GetSelectedProcess - End Sub - End Class - - _ - Partial Public Class GetSelectedProcessResponse - - _ - Public GetSelectedProcessR As OPENcontrol.GetSelectedProcessR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetSelectedProcessR As OPENcontrol.GetSelectedProcessR) - MyBase.New - Me.GetSelectedProcessR = GetSelectedProcessR - End Sub - End Class - - ''' - _ - Partial Public Class SelectProcAxis - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private axisNameField As Byte - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property AxisName() As Byte - Get - Return Me.axisNameField - End Get - Set - Me.axisNameField = value - Me.RaisePropertyChanged("AxisName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SelectProcAxisR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SelectProcAxisRequest - - _ - Public SelectProcAxis As OPENcontrol.SelectProcAxis - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SelectProcAxis As OPENcontrol.SelectProcAxis) - MyBase.New - Me.SelectProcAxis = SelectProcAxis - End Sub - End Class - - _ - Partial Public Class SelectProcAxisResponse - - _ - Public SelectProcAxisR As OPENcontrol.SelectProcAxisR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SelectProcAxisR As OPENcontrol.SelectProcAxisR) - MyBase.New - Me.SelectProcAxisR = SelectProcAxisR - End Sub - End Class - - ''' - _ - Partial Public Class SelectPartProgram - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private pPNameField As String - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property PPName() As String - Get - Return Me.pPNameField - End Get - Set - Me.pPNameField = value - Me.RaisePropertyChanged("PPName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SelectPartProgramR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SelectPartProgramRequest - - _ - Public SelectPartProgram As OPENcontrol.SelectPartProgram - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SelectPartProgram As OPENcontrol.SelectPartProgram) - MyBase.New - Me.SelectPartProgram = SelectPartProgram - End Sub - End Class - - _ - Partial Public Class SelectPartProgramResponse - - _ - Public SelectPartProgramR As OPENcontrol.SelectPartProgramR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SelectPartProgramR As OPENcontrol.SelectPartProgramR) - MyBase.New - Me.SelectPartProgramR = SelectPartProgramR - End Sub - End Class - - ''' - _ - Partial Public Class SelectPartProgramFromDrive - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private pPNameField As String - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property PPName() As String - Get - Return Me.pPNameField - End Get - Set - Me.pPNameField = value - Me.RaisePropertyChanged("PPName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SelectPartProgramFromDriveR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SelectPartProgramFromDriveRequest - - _ - Public SelectPartProgramFromDrive As OPENcontrol.SelectPartProgramFromDrive - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SelectPartProgramFromDrive As OPENcontrol.SelectPartProgramFromDrive) - MyBase.New - Me.SelectPartProgramFromDrive = SelectPartProgramFromDrive - End Sub - End Class - - _ - Partial Public Class SelectPartProgramFromDriveResponse - - _ - Public SelectPartProgramFromDriveR As OPENcontrol.SelectPartProgramFromDriveR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SelectPartProgramFromDriveR As OPENcontrol.SelectPartProgramFromDriveR) - MyBase.New - Me.SelectPartProgramFromDriveR = SelectPartProgramFromDriveR - End Sub - End Class - - ''' - _ - Partial Public Class GetActivePartProgram - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetActivePartProgramR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private levelField As UShort - - Private mainField As String - - Private subField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Level() As UShort - Get - Return Me.levelField - End Get - Set - Me.levelField = value - Me.RaisePropertyChanged("Level") - End Set - End Property - - ''' - _ - Public Property Main() As String - Get - Return Me.mainField - End Get - Set - Me.mainField = value - Me.RaisePropertyChanged("Main") - End Set - End Property - - ''' - _ - Public Property [Sub]() As String - Get - Return Me.subField - End Get - Set - Me.subField = value - Me.RaisePropertyChanged("Sub") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetActivePartProgramRequest - - _ - Public GetActivePartProgram As OPENcontrol.GetActivePartProgram - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetActivePartProgram As OPENcontrol.GetActivePartProgram) - MyBase.New - Me.GetActivePartProgram = GetActivePartProgram - End Sub - End Class - - _ - Partial Public Class GetActivePartProgramResponse - - _ - Public GetActivePartProgramR As OPENcontrol.GetActivePartProgramR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetActivePartProgramR As OPENcontrol.GetActivePartProgramR) - MyBase.New - Me.GetActivePartProgramR = GetActivePartProgramR - End Sub - End Class - - ''' - _ - Partial Public Class GetPartProgramLines - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetPartProgramLinesR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private pPLine1Field As String - - Private pPLine2Field As String - - Private pPLine3Field As String - - Private pPLine4Field As String - - Private pPLine5Field As String - - Private pPLine6Field As String - - Private pPLine7Field As String - - Private pPLine8Field As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property PPLine1() As String - Get - Return Me.pPLine1Field - End Get - Set - Me.pPLine1Field = value - Me.RaisePropertyChanged("PPLine1") - End Set - End Property - - ''' - _ - Public Property PPLine2() As String - Get - Return Me.pPLine2Field - End Get - Set - Me.pPLine2Field = value - Me.RaisePropertyChanged("PPLine2") - End Set - End Property - - ''' - _ - Public Property PPLine3() As String - Get - Return Me.pPLine3Field - End Get - Set - Me.pPLine3Field = value - Me.RaisePropertyChanged("PPLine3") - End Set - End Property - - ''' - _ - Public Property PPLine4() As String - Get - Return Me.pPLine4Field - End Get - Set - Me.pPLine4Field = value - Me.RaisePropertyChanged("PPLine4") - End Set - End Property - - ''' - _ - Public Property PPLine5() As String - Get - Return Me.pPLine5Field - End Get - Set - Me.pPLine5Field = value - Me.RaisePropertyChanged("PPLine5") - End Set - End Property - - ''' - _ - Public Property PPLine6() As String - Get - Return Me.pPLine6Field - End Get - Set - Me.pPLine6Field = value - Me.RaisePropertyChanged("PPLine6") - End Set - End Property - - ''' - _ - Public Property PPLine7() As String - Get - Return Me.pPLine7Field - End Get - Set - Me.pPLine7Field = value - Me.RaisePropertyChanged("PPLine7") - End Set - End Property - - ''' - _ - Public Property PPLine8() As String - Get - Return Me.pPLine8Field - End Get - Set - Me.pPLine8Field = value - Me.RaisePropertyChanged("PPLine8") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetPartProgramLinesRequest - - _ - Public GetPartProgramLines As OPENcontrol.GetPartProgramLines - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetPartProgramLines As OPENcontrol.GetPartProgramLines) - MyBase.New - Me.GetPartProgramLines = GetPartProgramLines - End Sub - End Class - - _ - Partial Public Class GetPartProgramLinesResponse - - _ - Public GetPartProgramLinesR As OPENcontrol.GetPartProgramLinesR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetPartProgramLinesR As OPENcontrol.GetPartProgramLinesR) - MyBase.New - Me.GetPartProgramLinesR = GetPartProgramLinesR - End Sub - End Class - - ''' - _ - Partial Public Class GetAxOriginNum - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private axesNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property AxesNum() As UShort - Get - Return Me.axesNumField - End Get - Set - Me.axesNumField = value - Me.RaisePropertyChanged("AxesNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetAxOriginNumR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private axesNumField As UShort - - Private axOriginNumField() As AXORIGNUM - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property AxesNum() As UShort - Get - Return Me.axesNumField - End Get - Set - Me.axesNumField = value - Me.RaisePropertyChanged("AxesNum") - End Set - End Property - - ''' - _ - Public Property AxOriginNum() As AXORIGNUM() - Get - Return Me.axOriginNumField - End Get - Set - Me.axOriginNumField = value - Me.RaisePropertyChanged("AxOriginNum") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetAxOriginNumRequest - - _ - Public GetAxOriginNum As OPENcontrol.GetAxOriginNum - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetAxOriginNum As OPENcontrol.GetAxOriginNum) - MyBase.New - Me.GetAxOriginNum = GetAxOriginNum - End Sub - End Class - - _ - Partial Public Class GetAxOriginNumResponse - - _ - Public GetAxOriginNumR As OPENcontrol.GetAxOriginNumR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetAxOriginNumR As OPENcontrol.GetAxOriginNumR) - MyBase.New - Me.GetAxOriginNumR = GetAxOriginNumR - End Sub - End Class - - ''' - _ - Partial Public Class GetAxesPosition - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private axisNameField As Byte - - Private selectField As UShort - - Private numAxisField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property AxisName() As Byte - Get - Return Me.axisNameField - End Get - Set - Me.axisNameField = value - Me.RaisePropertyChanged("AxisName") - End Set - End Property - - ''' - _ - Public Property [Select]() As UShort - Get - Return Me.selectField - End Get - Set - Me.selectField = value - Me.RaisePropertyChanged("Select") - End Set - End Property - - ''' - _ - Public Property NumAxis() As UShort - Get - Return Me.numAxisField - End Get - Set - Me.numAxisField = value - Me.RaisePropertyChanged("NumAxis") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetAxesPositionR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private numAxisField As UShort - - Private intPosField() As GETINTDATA - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property NumAxis() As UShort - Get - Return Me.numAxisField - End Get - Set - Me.numAxisField = value - Me.RaisePropertyChanged("NumAxis") - End Set - End Property - - ''' - _ - Public Property IntPos() As GETINTDATA() - Get - Return Me.intPosField - End Get - Set - Me.intPosField = value - Me.RaisePropertyChanged("IntPos") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetAxesPositionRequest - - _ - Public GetAxesPosition As OPENcontrol.GetAxesPosition - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetAxesPosition As OPENcontrol.GetAxesPosition) - MyBase.New - Me.GetAxesPosition = GetAxesPosition - End Sub - End Class - - _ - Partial Public Class GetAxesPositionResponse - - _ - Public GetAxesPositionR As OPENcontrol.GetAxesPositionR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetAxesPositionR As OPENcontrol.GetAxesPositionR) - MyBase.New - Me.GetAxesPositionR = GetAxesPositionR - End Sub - End Class - - ''' - _ - Partial Public Class GetNcInfo1 - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetNcInfo1R - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private getInfoField As GETINFO1DATA - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property GetInfo() As GETINFO1DATA - Get - Return Me.getInfoField - End Get - Set - Me.getInfoField = value - Me.RaisePropertyChanged("GetInfo") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetNcInfo1Request - - _ - Public GetNcInfo1 As OPENcontrol.GetNcInfo1 - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetNcInfo1 As OPENcontrol.GetNcInfo1) - MyBase.New - Me.GetNcInfo1 = GetNcInfo1 - End Sub - End Class - - _ - Partial Public Class GetNcInfo1Response - - _ - Public GetNcInfo1R As OPENcontrol.GetNcInfo1R - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetNcInfo1R As OPENcontrol.GetNcInfo1R) - MyBase.New - Me.GetNcInfo1R = GetNcInfo1R - End Sub - End Class - - ''' - _ - Partial Public Class GetNcInfo2 - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetNcInfo2R - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private getInfoField As GETINFO2DATA - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property GetInfo() As GETINFO2DATA - Get - Return Me.getInfoField - End Get - Set - Me.getInfoField = value - Me.RaisePropertyChanged("GetInfo") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetNcInfo2Request - - _ - Public GetNcInfo2 As OPENcontrol.GetNcInfo2 - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetNcInfo2 As OPENcontrol.GetNcInfo2) - MyBase.New - Me.GetNcInfo2 = GetNcInfo2 - End Sub - End Class - - _ - Partial Public Class GetNcInfo2Response - - _ - Public GetNcInfo2R As OPENcontrol.GetNcInfo2R - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetNcInfo2R As OPENcontrol.GetNcInfo2R) - MyBase.New - Me.GetNcInfo2R = GetNcInfo2R - End Sub - End Class - - ''' - _ - Partial Public Class GetToolNames - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetToolNamesR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private toolField As String - - Private progToolField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Tool() As String - Get - Return Me.toolField - End Get - Set - Me.toolField = value - Me.RaisePropertyChanged("Tool") - End Set - End Property - - ''' - _ - Public Property ProgTool() As String - Get - Return Me.progToolField - End Get - Set - Me.progToolField = value - Me.RaisePropertyChanged("ProgTool") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetToolNamesRequest - - _ - Public GetToolNames As OPENcontrol.GetToolNames - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetToolNames As OPENcontrol.GetToolNames) - MyBase.New - Me.GetToolNames = GetToolNames - End Sub - End Class - - _ - Partial Public Class GetToolNamesResponse - - _ - Public GetToolNamesR As OPENcontrol.GetToolNamesR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetToolNamesR As OPENcontrol.GetToolNamesR) - MyBase.New - Me.GetToolNamesR = GetToolNamesR - End Sub - End Class - - ''' - _ - Partial Public Class GetProcessStatus - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetProcessStatusR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private procStatField As PROCDATA - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ProcStat() As PROCDATA - Get - Return Me.procStatField - End Get - Set - Me.procStatField = value - Me.RaisePropertyChanged("ProcStat") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetProcessStatusRequest - - _ - Public GetProcessStatus As OPENcontrol.GetProcessStatus - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetProcessStatus As OPENcontrol.GetProcessStatus) - MyBase.New - Me.GetProcessStatus = GetProcessStatus - End Sub - End Class - - _ - Partial Public Class GetProcessStatusResponse - - _ - Public GetProcessStatusR As OPENcontrol.GetProcessStatusR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetProcessStatusR As OPENcontrol.GetProcessStatusR) - MyBase.New - Me.GetProcessStatusR = GetProcessStatusR - End Sub - End Class - - ''' - _ - Partial Public Class GetBlkNum - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetBlkNumR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private getBlkNumField As GETBLKNUMDATA - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property GetBlkNum() As GETBLKNUMDATA - Get - Return Me.getBlkNumField - End Get - Set - Me.getBlkNumField = value - Me.RaisePropertyChanged("GetBlkNum") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetBlkNumRequest - - _ - Public GetBlkNum As OPENcontrol.GetBlkNum - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetBlkNum As OPENcontrol.GetBlkNum) - MyBase.New - Me.GetBlkNum = GetBlkNum - End Sub - End Class - - _ - Partial Public Class GetBlkNumResponse - - _ - Public GetBlkNumR As OPENcontrol.GetBlkNumR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetBlkNumR As OPENcontrol.GetBlkNumR) - MyBase.New - Me.GetBlkNumR = GetBlkNumR - End Sub - End Class - - ''' - _ - Partial Public Class ReadErrMsg - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadErrMsgR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private sysErrMsgField As ERRMSG - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property SysErrMsg() As ERRMSG - Get - Return Me.sysErrMsgField - End Get - Set - Me.sysErrMsgField = value - Me.RaisePropertyChanged("SysErrMsg") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadErrMsgRequest - - _ - Public ReadErrMsg As OPENcontrol.ReadErrMsg - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadErrMsg As OPENcontrol.ReadErrMsg) - MyBase.New - Me.ReadErrMsg = ReadErrMsg - End Sub - End Class - - _ - Partial Public Class ReadErrMsgResponse - - _ - Public ReadErrMsgR As OPENcontrol.ReadErrMsgR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadErrMsgR As OPENcontrol.ReadErrMsgR) - MyBase.New - Me.ReadErrMsgR = ReadErrMsgR - End Sub - End Class - - ''' - _ - Partial Public Class ReadPartProgramMsg - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadPartProgramMsgR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private partProgramMsgField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property PartProgramMsg() As String - Get - Return Me.partProgramMsgField - End Get - Set - Me.partProgramMsgField = value - Me.RaisePropertyChanged("PartProgramMsg") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadPartProgramMsgRequest - - _ - Public ReadPartProgramMsg As OPENcontrol.ReadPartProgramMsg - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadPartProgramMsg As OPENcontrol.ReadPartProgramMsg) - MyBase.New - Me.ReadPartProgramMsg = ReadPartProgramMsg - End Sub - End Class - - _ - Partial Public Class ReadPartProgramMsgResponse - - _ - Public ReadPartProgramMsgR As OPENcontrol.ReadPartProgramMsgR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadPartProgramMsgR As OPENcontrol.ReadPartProgramMsgR) - MyBase.New - Me.ReadPartProgramMsgR = ReadPartProgramMsgR - End Sub - End Class - - ''' - _ - Partial Public Class GetGCode - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetGCodeR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private gCodeField() As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property GCode() As UShort() - Get - Return Me.gCodeField - End Get - Set - Me.gCodeField = value - Me.RaisePropertyChanged("GCode") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetGCodeRequest - - _ - Public GetGCode As OPENcontrol.GetGCode - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetGCode As OPENcontrol.GetGCode) - MyBase.New - Me.GetGCode = GetGCode - End Sub - End Class - - _ - Partial Public Class GetGCodeResponse - - _ - Public GetGCodeR As OPENcontrol.GetGCodeR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetGCodeR As OPENcontrol.GetGCodeR) - MyBase.New - Me.GetGCodeR = GetGCodeR - End Sub - End Class - - ''' - _ - Partial Public Class GetMCode - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetMCodeR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private mCodeField() As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property MCode() As UShort() - Get - Return Me.mCodeField - End Get - Set - Me.mCodeField = value - Me.RaisePropertyChanged("MCode") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetMCodeRequest - - _ - Public GetMCode As OPENcontrol.GetMCode - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetMCode As OPENcontrol.GetMCode) - MyBase.New - Me.GetMCode = GetMCode - End Sub - End Class - - _ - Partial Public Class GetMCodeResponse - - _ - Public GetMCodeR As OPENcontrol.GetMCodeR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetMCodeR As OPENcontrol.GetMCodeR) - MyBase.New - Me.GetMCodeR = GetMCodeR - End Sub - End Class - - ''' - _ - Partial Public Class SkipPProgBlock - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private numOfBlocksField As UInteger - - Private directionField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property NumOfBlocks() As UInteger - Get - Return Me.numOfBlocksField - End Get - Set - Me.numOfBlocksField = value - Me.RaisePropertyChanged("NumOfBlocks") - End Set - End Property - - ''' - _ - Public Property Direction() As UShort - Get - Return Me.directionField - End Get - Set - Me.directionField = value - Me.RaisePropertyChanged("Direction") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SkipPProgBlockR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SkipPProgBlockRequest - - _ - Public SkipPProgBlock As OPENcontrol.SkipPProgBlock - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SkipPProgBlock As OPENcontrol.SkipPProgBlock) - MyBase.New - Me.SkipPProgBlock = SkipPProgBlock - End Sub - End Class - - _ - Partial Public Class SkipPProgBlockResponse - - _ - Public SkipPProgBlockR As OPENcontrol.SkipPProgBlockR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SkipPProgBlockR As OPENcontrol.SkipPProgBlockR) - MyBase.New - Me.SkipPProgBlockR = SkipPProgBlockR - End Sub - End Class - - ''' - _ - Partial Public Class Ese - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private blockNumField As UInteger - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property BlockNum() As UInteger - Get - Return Me.blockNumField - End Get - Set - Me.blockNumField = value - Me.RaisePropertyChanged("BlockNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class EseR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class EseRequest - - _ - Public Ese As OPENcontrol.Ese - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal Ese As OPENcontrol.Ese) - MyBase.New - Me.Ese = Ese - End Sub - End Class - - _ - Partial Public Class EseResponse - - _ - Public EseR As OPENcontrol.EseR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal EseR As OPENcontrol.EseR) - MyBase.New - Me.EseR = EseR - End Sub - End Class - - ''' - _ - Partial Public Class EseEx - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private modeField As RCMTOMODE - - Private maskField As UInteger - - Private blockNumField As UInteger - - Private lineNumField As UInteger - - Private brkValField As UInteger - - Private labelField As String - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property Mode() As RCMTOMODE - Get - Return Me.modeField - End Get - Set - Me.modeField = value - Me.RaisePropertyChanged("Mode") - End Set - End Property - - ''' - _ - Public Property Mask() As UInteger - Get - Return Me.maskField - End Get - Set - Me.maskField = value - Me.RaisePropertyChanged("Mask") - End Set - End Property - - ''' - _ - Public Property BlockNum() As UInteger - Get - Return Me.blockNumField - End Get - Set - Me.blockNumField = value - Me.RaisePropertyChanged("BlockNum") - End Set - End Property - - ''' - _ - Public Property LineNum() As UInteger - Get - Return Me.lineNumField - End Get - Set - Me.lineNumField = value - Me.RaisePropertyChanged("LineNum") - End Set - End Property - - ''' - _ - Public Property BrkVal() As UInteger - Get - Return Me.brkValField - End Get - Set - Me.brkValField = value - Me.RaisePropertyChanged("BrkVal") - End Set - End Property - - ''' - _ - Public Property Label() As String - Get - Return Me.labelField - End Get - Set - Me.labelField = value - Me.RaisePropertyChanged("Label") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Public Enum RCMTOMODE - - ''' - _ - RCMTOTO - - ''' - _ - RCMTONEXT - End Enum - - ''' - _ - Partial Public Class EseExR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class EseExRequest - - _ - Public EseEx As OPENcontrol.EseEx - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal EseEx As OPENcontrol.EseEx) - MyBase.New - Me.EseEx = EseEx - End Sub - End Class - - _ - Partial Public Class EseExResponse - - _ - Public EseExR As OPENcontrol.EseExR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal EseExR As OPENcontrol.EseExR) - MyBase.New - Me.EseExR = EseExR - End Sub - End Class - - ''' - _ - Partial Public Class Exe - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private funcField As UShort - - Private modeField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property Func() As UShort - Get - Return Me.funcField - End Get - Set - Me.funcField = value - Me.RaisePropertyChanged("Func") - End Set - End Property - - ''' - _ - Public Property Mode() As UShort - Get - Return Me.modeField - End Get - Set - Me.modeField = value - Me.RaisePropertyChanged("Mode") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ExeR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ExeRequest - - _ - Public Exe As OPENcontrol.Exe - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal Exe As OPENcontrol.Exe) - MyBase.New - Me.Exe = Exe - End Sub - End Class - - _ - Partial Public Class ExeResponse - - _ - Public ExeR As OPENcontrol.ExeR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ExeR As OPENcontrol.ExeR) - MyBase.New - Me.ExeR = ExeR - End Sub - End Class - - ''' - _ - Partial Public Class AxesRef - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private numAxField As UShort - - Private axisNameField As String - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property NumAx() As UShort - Get - Return Me.numAxField - End Get - Set - Me.numAxField = value - Me.RaisePropertyChanged("NumAx") - End Set - End Property - - ''' - _ - Public Property AxisName() As String - Get - Return Me.axisNameField - End Get - Set - Me.axisNameField = value - Me.RaisePropertyChanged("AxisName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class AxesRefR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class AxesRefRequest - - _ - Public AxesRef As OPENcontrol.AxesRef - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal AxesRef As OPENcontrol.AxesRef) - MyBase.New - Me.AxesRef = AxesRef - End Sub - End Class - - _ - Partial Public Class AxesRefResponse - - _ - Public AxesRefR As OPENcontrol.AxesRefR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal AxesRefR As OPENcontrol.AxesRefR) - MyBase.New - Me.AxesRefR = AxesRefR - End Sub - End Class - - ''' - _ - Partial Public Class DncInit - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private pathNameField As String - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class DncInitR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class DncInitRequest - - _ - Public DncInit As OPENcontrol.DncInit - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal DncInit As OPENcontrol.DncInit) - MyBase.New - Me.DncInit = DncInit - End Sub - End Class - - _ - Partial Public Class DncInitResponse - - _ - Public DncInitR As OPENcontrol.DncInitR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal DncInitR As OPENcontrol.DncInitR) - MyBase.New - Me.DncInitR = DncInitR - End Sub - End Class - - ''' - _ - Partial Public Class DncData - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - Private dataField As String - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - ''' - _ - Public Property Data() As String - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class DncDataR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class DncDataRequest - - _ - Public DncData As OPENcontrol.DncData - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal DncData As OPENcontrol.DncData) - MyBase.New - Me.DncData = DncData - End Sub - End Class - - _ - Partial Public Class DncDataResponse - - _ - Public DncDataR As OPENcontrol.DncDataR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal DncDataR As OPENcontrol.DncDataR) - MyBase.New - Me.DncDataR = DncDataR - End Sub - End Class - - ''' - _ - Partial Public Class DncEof - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class DncEofR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class DncEofRequest - - _ - Public DncEof As OPENcontrol.DncEof - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal DncEof As OPENcontrol.DncEof) - MyBase.New - Me.DncEof = DncEof - End Sub - End Class - - _ - Partial Public Class DncEofResponse - - _ - Public DncEofR As OPENcontrol.DncEofR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal DncEofR As OPENcontrol.DncEofR) - MyBase.New - Me.DncEofR = DncEofR - End Sub - End Class - - ''' - _ - Partial Public Class DncStop - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private procNumField As UShort - - ''' - _ - Public Property ProcNum() As UShort - Get - Return Me.procNumField - End Get - Set - Me.procNumField = value - Me.RaisePropertyChanged("ProcNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class DncStopR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class DncStopRequest - - _ - Public DncStop As OPENcontrol.DncStop - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal DncStop As OPENcontrol.DncStop) - MyBase.New - Me.DncStop = DncStop - End Sub - End Class - - _ - Partial Public Class DncStopResponse - - _ - Public DncStopR As OPENcontrol.DncStopR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal DncStopR As OPENcontrol.DncStopR) - MyBase.New - Me.DncStopR = DncStopR - End Sub - End Class - - ''' - _ - Partial Public Class GetAxesInfo3 - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private axisIdField As UShort - - Private axesNumField As UShort - - ''' - _ - Public Property AxisId() As UShort - Get - Return Me.axisIdField - End Get - Set - Me.axisIdField = value - Me.RaisePropertyChanged("AxisId") - End Set - End Property - - ''' - _ - Public Property AxesNum() As UShort - Get - Return Me.axesNumField - End Get - Set - Me.axesNumField = value - Me.RaisePropertyChanged("AxesNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetAxesInfo3R - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private axesNumField As UShort - - Private axOwnerListField() As UShort - - Private axNameListField() As Byte - - Private axTypeField() As UShort - - Private axInterfaceField() As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property AxesNum() As UShort - Get - Return Me.axesNumField - End Get - Set - Me.axesNumField = value - Me.RaisePropertyChanged("AxesNum") - End Set - End Property - - ''' - _ - Public Property AxOwnerList() As UShort() - Get - Return Me.axOwnerListField - End Get - Set - Me.axOwnerListField = value - Me.RaisePropertyChanged("AxOwnerList") - End Set - End Property - - ''' - _ - Public Property AxNameList() As Byte() - Get - Return Me.axNameListField - End Get - Set - Me.axNameListField = value - Me.RaisePropertyChanged("AxNameList") - End Set - End Property - - ''' - _ - Public Property AxType() As UShort() - Get - Return Me.axTypeField - End Get - Set - Me.axTypeField = value - Me.RaisePropertyChanged("AxType") - End Set - End Property - - ''' - _ - Public Property AxInterface() As UShort() - Get - Return Me.axInterfaceField - End Get - Set - Me.axInterfaceField = value - Me.RaisePropertyChanged("AxInterface") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetAxesInfo3Request - - _ - Public GetAxesInfo3 As OPENcontrol.GetAxesInfo3 - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetAxesInfo3 As OPENcontrol.GetAxesInfo3) - MyBase.New - Me.GetAxesInfo3 = GetAxesInfo3 - End Sub - End Class - - _ - Partial Public Class GetAxesInfo3Response - - _ - Public GetAxesInfo3R As OPENcontrol.GetAxesInfo3R - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetAxesInfo3R As OPENcontrol.GetAxesInfo3R) - MyBase.New - Me.GetAxesInfo3R = GetAxesInfo3R - End Sub - End Class - - ''' - _ - Partial Public Class GetCodeNumber - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetCodeNumberR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private codeNumberField As String - - Private swVersionField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property CodeNumber() As String - Get - Return Me.codeNumberField - End Get - Set - Me.codeNumberField = value - Me.RaisePropertyChanged("CodeNumber") - End Set - End Property - - ''' - _ - Public Property SwVersion() As String - Get - Return Me.swVersionField - End Get - Set - Me.swVersionField = value - Me.RaisePropertyChanged("SwVersion") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetCodeNumberRequest - - _ - Public GetCodeNumber As OPENcontrol.GetCodeNumber - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetCodeNumber As OPENcontrol.GetCodeNumber) - MyBase.New - Me.GetCodeNumber = GetCodeNumber - End Sub - End Class - - _ - Partial Public Class GetCodeNumberResponse - - _ - Public GetCodeNumberR As OPENcontrol.GetCodeNumberR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetCodeNumberR As OPENcontrol.GetCodeNumberR) - MyBase.New - Me.GetCodeNumberR = GetCodeNumberR - End Sub - End Class - - ''' - _ - Partial Public Class GetOptions - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetOptionsR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private optionField() As Byte - - Private securLevelField() As Byte - - Private swVersionField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property [Option]() As Byte() - Get - Return Me.optionField - End Get - Set - Me.optionField = value - Me.RaisePropertyChanged("Option") - End Set - End Property - - ''' - _ - Public Property SecurLevel() As Byte() - Get - Return Me.securLevelField - End Get - Set - Me.securLevelField = value - Me.RaisePropertyChanged("SecurLevel") - End Set - End Property - - ''' - _ - Public Property SwVersion() As String - Get - Return Me.swVersionField - End Get - Set - Me.swVersionField = value - Me.RaisePropertyChanged("SwVersion") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetOptionsRequest - - _ - Public GetOptions As OPENcontrol.GetOptions - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetOptions As OPENcontrol.GetOptions) - MyBase.New - Me.GetOptions = GetOptions - End Sub - End Class - - _ - Partial Public Class GetOptionsResponse - - _ - Public GetOptionsR As OPENcontrol.GetOptionsR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetOptionsR As OPENcontrol.GetOptionsR) - MyBase.New - Me.GetOptionsR = GetOptionsR - End Sub - End Class - - ''' - _ - Partial Public Class GetDateTime - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetDateTimeR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private yearField As UShort - - Private monthField As UShort - - Private dayField As UShort - - Private hourField As UShort - - Private minuteField As UShort - - Private secondField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Year() As UShort - Get - Return Me.yearField - End Get - Set - Me.yearField = value - Me.RaisePropertyChanged("Year") - End Set - End Property - - ''' - _ - Public Property Month() As UShort - Get - Return Me.monthField - End Get - Set - Me.monthField = value - Me.RaisePropertyChanged("Month") - End Set - End Property - - ''' - _ - Public Property Day() As UShort - Get - Return Me.dayField - End Get - Set - Me.dayField = value - Me.RaisePropertyChanged("Day") - End Set - End Property - - ''' - _ - Public Property Hour() As UShort - Get - Return Me.hourField - End Get - Set - Me.hourField = value - Me.RaisePropertyChanged("Hour") - End Set - End Property - - ''' - _ - Public Property Minute() As UShort - Get - Return Me.minuteField - End Get - Set - Me.minuteField = value - Me.RaisePropertyChanged("Minute") - End Set - End Property - - ''' - _ - Public Property Second() As UShort - Get - Return Me.secondField - End Get - Set - Me.secondField = value - Me.RaisePropertyChanged("Second") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetDateTimeRequest - - _ - Public GetDateTime As OPENcontrol.GetDateTime - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetDateTime As OPENcontrol.GetDateTime) - MyBase.New - Me.GetDateTime = GetDateTime - End Sub - End Class - - _ - Partial Public Class GetDateTimeResponse - - _ - Public GetDateTimeR As OPENcontrol.GetDateTimeR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetDateTimeR As OPENcontrol.GetDateTimeR) - MyBase.New - Me.GetDateTimeR = GetDateTimeR - End Sub - End Class - - ''' - _ - Partial Public Class SetDateTime - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private yearField As UShort - - Private monthField As UShort - - Private dayField As UShort - - Private hourField As UShort - - Private minuteField As UShort - - Private secondField As UShort - - ''' - _ - Public Property Year() As UShort - Get - Return Me.yearField - End Get - Set - Me.yearField = value - Me.RaisePropertyChanged("Year") - End Set - End Property - - ''' - _ - Public Property Month() As UShort - Get - Return Me.monthField - End Get - Set - Me.monthField = value - Me.RaisePropertyChanged("Month") - End Set - End Property - - ''' - _ - Public Property Day() As UShort - Get - Return Me.dayField - End Get - Set - Me.dayField = value - Me.RaisePropertyChanged("Day") - End Set - End Property - - ''' - _ - Public Property Hour() As UShort - Get - Return Me.hourField - End Get - Set - Me.hourField = value - Me.RaisePropertyChanged("Hour") - End Set - End Property - - ''' - _ - Public Property Minute() As UShort - Get - Return Me.minuteField - End Get - Set - Me.minuteField = value - Me.RaisePropertyChanged("Minute") - End Set - End Property - - ''' - _ - Public Property Second() As UShort - Get - Return Me.secondField - End Get - Set - Me.secondField = value - Me.RaisePropertyChanged("Second") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetDateTimeR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetDateTimeRequest - - _ - Public SetDateTime As OPENcontrol.SetDateTime - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetDateTime As OPENcontrol.SetDateTime) - MyBase.New - Me.SetDateTime = SetDateTime - End Sub - End Class - - _ - Partial Public Class SetDateTimeResponse - - _ - Public SetDateTimeR As OPENcontrol.SetDateTimeR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetDateTimeR As OPENcontrol.SetDateTimeR) - MyBase.New - Me.SetDateTimeR = SetDateTimeR - End Sub - End Class - - ''' - _ - Partial Public Class GetSerialNumber - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetSerialNumberR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private serialNumberField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property SerialNumber() As String - Get - Return Me.serialNumberField - End Get - Set - Me.serialNumberField = value - Me.RaisePropertyChanged("SerialNumber") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetSerialNumberRequest - - _ - Public GetSerialNumber As OPENcontrol.GetSerialNumber - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetSerialNumber As OPENcontrol.GetSerialNumber) - MyBase.New - Me.GetSerialNumber = GetSerialNumber - End Sub - End Class - - _ - Partial Public Class GetSerialNumberResponse - - _ - Public GetSerialNumberR As OPENcontrol.GetSerialNumberR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetSerialNumberR As OPENcontrol.GetSerialNumberR) - MyBase.New - Me.GetSerialNumberR = GetSerialNumberR - End Sub - End Class - - ''' - _ - Partial Public Class PutFile - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private dataField As String - - Private sizeField As UInteger - - Private pathNameField As String - - ''' - _ - Public Property Data() As String - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - ''' - _ - Public Property Size() As UInteger - Get - Return Me.sizeField - End Get - Set - Me.sizeField = value - Me.RaisePropertyChanged("Size") - End Set - End Property - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class PutFileR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class PutFileRequest - - _ - Public PutFile As OPENcontrol.PutFile - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal PutFile As OPENcontrol.PutFile) - MyBase.New - Me.PutFile = PutFile - End Sub - End Class - - _ - Partial Public Class PutFileResponse - - _ - Public PutFileR As OPENcontrol.PutFileR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal PutFileR As OPENcontrol.PutFileR) - MyBase.New - Me.PutFileR = PutFileR - End Sub - End Class - - ''' - _ - Partial Public Class GetFile - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - Private sizeField As UInteger - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - ''' - _ - Public Property Size() As UInteger - Get - Return Me.sizeField - End Get - Set - Me.sizeField = value - Me.RaisePropertyChanged("Size") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetFileR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private sizeField As UInteger - - Private dataField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Size() As UInteger - Get - Return Me.sizeField - End Get - Set - Me.sizeField = value - Me.RaisePropertyChanged("Size") - End Set - End Property - - ''' - _ - Public Property Data() As String - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetFileRequest - - _ - Public GetFile As OPENcontrol.GetFile - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetFile As OPENcontrol.GetFile) - MyBase.New - Me.GetFile = GetFile - End Sub - End Class - - _ - Partial Public Class GetFileResponse - - _ - Public GetFileR As OPENcontrol.GetFileR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetFileR As OPENcontrol.GetFileR) - MyBase.New - Me.GetFileR = GetFileR - End Sub - End Class - - ''' - _ - Partial Public Class PutBinaryFile - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private dataField() As Byte - - Private pathNameField As String - - ''' - _ - Public Property Data() As Byte() - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class PutBinaryFileR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class PutBinaryFileRequest - - _ - Public PutBinaryFile As OPENcontrol.PutBinaryFile - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal PutBinaryFile As OPENcontrol.PutBinaryFile) - MyBase.New - Me.PutBinaryFile = PutBinaryFile - End Sub - End Class - - _ - Partial Public Class PutBinaryFileResponse - - _ - Public PutBinaryFileR As OPENcontrol.PutBinaryFileR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal PutBinaryFileR As OPENcontrol.PutBinaryFileR) - MyBase.New - Me.PutBinaryFileR = PutBinaryFileR - End Sub - End Class - - ''' - _ - Partial Public Class GetBinaryFile - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - Private sizeField As UInteger - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - ''' - _ - Public Property Size() As UInteger - Get - Return Me.sizeField - End Get - Set - Me.sizeField = value - Me.RaisePropertyChanged("Size") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetBinaryFileR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private dataField() As Byte - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Data() As Byte() - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetBinaryFileRequest - - _ - Public GetBinaryFile As OPENcontrol.GetBinaryFile - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetBinaryFile As OPENcontrol.GetBinaryFile) - MyBase.New - Me.GetBinaryFile = GetBinaryFile - End Sub - End Class - - _ - Partial Public Class GetBinaryFileResponse - - _ - Public GetBinaryFileR As OPENcontrol.GetBinaryFileR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetBinaryFileR As OPENcontrol.GetBinaryFileR) - MyBase.New - Me.GetBinaryFileR = GetBinaryFileR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSSetSecurityLevel - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private passwordField As String - - Private securityLevelField As SECURITYLEVEL - - ''' - _ - Public Property Password() As String - Get - Return Me.passwordField - End Get - Set - Me.passwordField = value - Me.RaisePropertyChanged("Password") - End Set - End Property - - ''' - _ - Public Property SecurityLevel() As SECURITYLEVEL - Get - Return Me.securityLevelField - End Get - Set - Me.securityLevelField = value - Me.RaisePropertyChanged("SecurityLevel") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Public Enum SECURITYLEVEL - - ''' - _ - SECURITYLEVELADMIN - - ''' - _ - SECURITYLEVELSERVICE - - ''' - _ - SECURITYLEVELOEMADMIN - - ''' - _ - SECURITYLEVELOEMSERVICE - - ''' - _ - SECURITYLEVELUSERADMIN - - ''' - _ - SECURITYLEVELUSERSERVICE - End Enum - - ''' - _ - Partial Public Class LogFSSetSecurityLevelR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private oldSecurityLevelField As SECURITYLEVEL - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property OldSecurityLevel() As SECURITYLEVEL - Get - Return Me.oldSecurityLevelField - End Get - Set - Me.oldSecurityLevelField = value - Me.RaisePropertyChanged("OldSecurityLevel") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSSetSecurityLevelRequest - - _ - Public LogFSSetSecurityLevel As OPENcontrol.LogFSSetSecurityLevel - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSSetSecurityLevel As OPENcontrol.LogFSSetSecurityLevel) - MyBase.New - Me.LogFSSetSecurityLevel = LogFSSetSecurityLevel - End Sub - End Class - - _ - Partial Public Class LogFSSetSecurityLevelResponse - - _ - Public LogFSSetSecurityLevelR As OPENcontrol.LogFSSetSecurityLevelR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSSetSecurityLevelR As OPENcontrol.LogFSSetSecurityLevelR) - MyBase.New - Me.LogFSSetSecurityLevelR = LogFSSetSecurityLevelR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetSecurityLevel - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetSecurityLevelR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private securityLevelField As SECURITYLEVEL - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property SecurityLevel() As SECURITYLEVEL - Get - Return Me.securityLevelField - End Get - Set - Me.securityLevelField = value - Me.RaisePropertyChanged("SecurityLevel") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSGetSecurityLevelRequest - - _ - Public LogFSGetSecurityLevel As OPENcontrol.LogFSGetSecurityLevel - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetSecurityLevel As OPENcontrol.LogFSGetSecurityLevel) - MyBase.New - Me.LogFSGetSecurityLevel = LogFSGetSecurityLevel - End Sub - End Class - - _ - Partial Public Class LogFSGetSecurityLevelResponse - - _ - Public LogFSGetSecurityLevelR As OPENcontrol.LogFSGetSecurityLevelR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetSecurityLevelR As OPENcontrol.LogFSGetSecurityLevelR) - MyBase.New - Me.LogFSGetSecurityLevelR = LogFSGetSecurityLevelR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSLongFileNames - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSLongFileNamesR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private useLongFileNamesField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property UseLongFileNames() As UShort - Get - Return Me.useLongFileNamesField - End Get - Set - Me.useLongFileNamesField = value - Me.RaisePropertyChanged("UseLongFileNames") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSLongFileNamesRequest - - _ - Public LogFSLongFileNames As OPENcontrol.LogFSLongFileNames - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSLongFileNames As OPENcontrol.LogFSLongFileNames) - MyBase.New - Me.LogFSLongFileNames = LogFSLongFileNames - End Sub - End Class - - _ - Partial Public Class LogFSLongFileNamesResponse - - _ - Public LogFSLongFileNamesR As OPENcontrol.LogFSLongFileNamesR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSLongFileNamesR As OPENcontrol.LogFSLongFileNamesR) - MyBase.New - Me.LogFSLongFileNamesR = LogFSLongFileNamesR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetNumDrive - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetNumDriveR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private numHiddenDriveField As UShort - - Private numUserDriveField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property NumHiddenDrive() As UShort - Get - Return Me.numHiddenDriveField - End Get - Set - Me.numHiddenDriveField = value - Me.RaisePropertyChanged("NumHiddenDrive") - End Set - End Property - - ''' - _ - Public Property NumUserDrive() As UShort - Get - Return Me.numUserDriveField - End Get - Set - Me.numUserDriveField = value - Me.RaisePropertyChanged("NumUserDrive") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSGetNumDriveRequest - - _ - Public LogFSGetNumDrive As OPENcontrol.LogFSGetNumDrive - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetNumDrive As OPENcontrol.LogFSGetNumDrive) - MyBase.New - Me.LogFSGetNumDrive = LogFSGetNumDrive - End Sub - End Class - - _ - Partial Public Class LogFSGetNumDriveResponse - - _ - Public LogFSGetNumDriveR As OPENcontrol.LogFSGetNumDriveR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetNumDriveR As OPENcontrol.LogFSGetNumDriveR) - MyBase.New - Me.LogFSGetNumDriveR = LogFSGetNumDriveR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetDriveList - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private indexField As UShort - - ''' - _ - Public Property Index() As UShort - Get - Return Me.indexField - End Get - Set - Me.indexField = value - Me.RaisePropertyChanged("Index") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetDriveListR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private driveNameField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property DriveName() As String - Get - Return Me.driveNameField - End Get - Set - Me.driveNameField = value - Me.RaisePropertyChanged("DriveName") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSGetDriveListRequest - - _ - Public LogFSGetDriveList As OPENcontrol.LogFSGetDriveList - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetDriveList As OPENcontrol.LogFSGetDriveList) - MyBase.New - Me.LogFSGetDriveList = LogFSGetDriveList - End Sub - End Class - - _ - Partial Public Class LogFSGetDriveListResponse - - _ - Public LogFSGetDriveListR As OPENcontrol.LogFSGetDriveListR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetDriveListR As OPENcontrol.LogFSGetDriveListR) - MyBase.New - Me.LogFSGetDriveListR = LogFSGetDriveListR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetHiddenDriveList - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private indexField As UShort - - ''' - _ - Public Property Index() As UShort - Get - Return Me.indexField - End Get - Set - Me.indexField = value - Me.RaisePropertyChanged("Index") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetHiddenDriveListR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private driveNameField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property DriveName() As String - Get - Return Me.driveNameField - End Get - Set - Me.driveNameField = value - Me.RaisePropertyChanged("DriveName") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSGetHiddenDriveListRequest - - _ - Public LogFSGetHiddenDriveList As OPENcontrol.LogFSGetHiddenDriveList - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetHiddenDriveList As OPENcontrol.LogFSGetHiddenDriveList) - MyBase.New - Me.LogFSGetHiddenDriveList = LogFSGetHiddenDriveList - End Sub - End Class - - _ - Partial Public Class LogFSGetHiddenDriveListResponse - - _ - Public LogFSGetHiddenDriveListR As OPENcontrol.LogFSGetHiddenDriveListR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetHiddenDriveListR As OPENcontrol.LogFSGetHiddenDriveListR) - MyBase.New - Me.LogFSGetHiddenDriveListR = LogFSGetHiddenDriveListR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetDrivePath - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private driveNameField As String - - Private securityLevelField As SECURITYLEVEL - - ''' - _ - Public Property DriveName() As String - Get - Return Me.driveNameField - End Get - Set - Me.driveNameField = value - Me.RaisePropertyChanged("DriveName") - End Set - End Property - - ''' - _ - Public Property SecurityLevel() As SECURITYLEVEL - Get - Return Me.securityLevelField - End Get - Set - Me.securityLevelField = value - Me.RaisePropertyChanged("SecurityLevel") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetDrivePathR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private drivePathField As String - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property DrivePath() As String - Get - Return Me.drivePathField - End Get - Set - Me.drivePathField = value - Me.RaisePropertyChanged("DrivePath") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSGetDrivePathRequest - - _ - Public LogFSGetDrivePath As OPENcontrol.LogFSGetDrivePath - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetDrivePath As OPENcontrol.LogFSGetDrivePath) - MyBase.New - Me.LogFSGetDrivePath = LogFSGetDrivePath - End Sub - End Class - - _ - Partial Public Class LogFSGetDrivePathResponse - - _ - Public LogFSGetDrivePathR As OPENcontrol.LogFSGetDrivePathR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetDrivePathR As OPENcontrol.LogFSGetDrivePathR) - MyBase.New - Me.LogFSGetDrivePathR = LogFSGetDrivePathR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSAddDrive - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private driveNameField As String - - Private pathNameField As String - - Private temporaryField As Boolean - - Private securityLevelField As SECURITYLEVEL - - ''' - _ - Public Property DriveName() As String - Get - Return Me.driveNameField - End Get - Set - Me.driveNameField = value - Me.RaisePropertyChanged("DriveName") - End Set - End Property - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - ''' - _ - Public Property Temporary() As Boolean - Get - Return Me.temporaryField - End Get - Set - Me.temporaryField = value - Me.RaisePropertyChanged("Temporary") - End Set - End Property - - ''' - _ - Public Property SecurityLevel() As SECURITYLEVEL - Get - Return Me.securityLevelField - End Get - Set - Me.securityLevelField = value - Me.RaisePropertyChanged("SecurityLevel") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSAddDriveR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSAddDriveRequest - - _ - Public LogFSAddDrive As OPENcontrol.LogFSAddDrive - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSAddDrive As OPENcontrol.LogFSAddDrive) - MyBase.New - Me.LogFSAddDrive = LogFSAddDrive - End Sub - End Class - - _ - Partial Public Class LogFSAddDriveResponse - - _ - Public LogFSAddDriveR As OPENcontrol.LogFSAddDriveR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSAddDriveR As OPENcontrol.LogFSAddDriveR) - MyBase.New - Me.LogFSAddDriveR = LogFSAddDriveR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSRemoveDrive - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private driveNameField As String - - Private securityLevelField As SECURITYLEVEL - - ''' - _ - Public Property DriveName() As String - Get - Return Me.driveNameField - End Get - Set - Me.driveNameField = value - Me.RaisePropertyChanged("DriveName") - End Set - End Property - - ''' - _ - Public Property SecurityLevel() As SECURITYLEVEL - Get - Return Me.securityLevelField - End Get - Set - Me.securityLevelField = value - Me.RaisePropertyChanged("SecurityLevel") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSRemoveDriveR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSRemoveDriveRequest - - _ - Public LogFSRemoveDrive As OPENcontrol.LogFSRemoveDrive - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSRemoveDrive As OPENcontrol.LogFSRemoveDrive) - MyBase.New - Me.LogFSRemoveDrive = LogFSRemoveDrive - End Sub - End Class - - _ - Partial Public Class LogFSRemoveDriveResponse - - _ - Public LogFSRemoveDriveR As OPENcontrol.LogFSRemoveDriveR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSRemoveDriveR As OPENcontrol.LogFSRemoveDriveR) - MyBase.New - Me.LogFSRemoveDriveR = LogFSRemoveDriveR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSReloadDriveList - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSReloadDriveListR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSReloadDriveListRequest - - _ - Public LogFSReloadDriveList As OPENcontrol.LogFSReloadDriveList - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSReloadDriveList As OPENcontrol.LogFSReloadDriveList) - MyBase.New - Me.LogFSReloadDriveList = LogFSReloadDriveList - End Sub - End Class - - _ - Partial Public Class LogFSReloadDriveListResponse - - _ - Public LogFSReloadDriveListR As OPENcontrol.LogFSReloadDriveListR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSReloadDriveListR As OPENcontrol.LogFSReloadDriveListR) - MyBase.New - Me.LogFSReloadDriveListR = LogFSReloadDriveListR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSCreateDir - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSCreateDirR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSCreateDirRequest - - _ - Public LogFSCreateDir As OPENcontrol.LogFSCreateDir - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSCreateDir As OPENcontrol.LogFSCreateDir) - MyBase.New - Me.LogFSCreateDir = LogFSCreateDir - End Sub - End Class - - _ - Partial Public Class LogFSCreateDirResponse - - _ - Public LogFSCreateDirR As OPENcontrol.LogFSCreateDirR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSCreateDirR As OPENcontrol.LogFSCreateDirR) - MyBase.New - Me.LogFSCreateDirR = LogFSCreateDirR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSCreateFile - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSCreateFileR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSCreateFileRequest - - _ - Public LogFSCreateFile As OPENcontrol.LogFSCreateFile - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSCreateFile As OPENcontrol.LogFSCreateFile) - MyBase.New - Me.LogFSCreateFile = LogFSCreateFile - End Sub - End Class - - _ - Partial Public Class LogFSCreateFileResponse - - _ - Public LogFSCreateFileR As OPENcontrol.LogFSCreateFileR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSCreateFileR As OPENcontrol.LogFSCreateFileR) - MyBase.New - Me.LogFSCreateFileR = LogFSCreateFileR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetFileSize - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetFileSizeR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private sizeField As UInteger - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Size() As UInteger - Get - Return Me.sizeField - End Get - Set - Me.sizeField = value - Me.RaisePropertyChanged("Size") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSGetFileSizeRequest - - _ - Public LogFSGetFileSize As OPENcontrol.LogFSGetFileSize - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetFileSize As OPENcontrol.LogFSGetFileSize) - MyBase.New - Me.LogFSGetFileSize = LogFSGetFileSize - End Sub - End Class - - _ - Partial Public Class LogFSGetFileSizeResponse - - _ - Public LogFSGetFileSizeR As OPENcontrol.LogFSGetFileSizeR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetFileSizeR As OPENcontrol.LogFSGetFileSizeR) - MyBase.New - Me.LogFSGetFileSizeR = LogFSGetFileSizeR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetFileAttrib - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetFileAttribR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private attribField As UInteger - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Attrib() As UInteger - Get - Return Me.attribField - End Get - Set - Me.attribField = value - Me.RaisePropertyChanged("Attrib") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSGetFileAttribRequest - - _ - Public LogFSGetFileAttrib As OPENcontrol.LogFSGetFileAttrib - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetFileAttrib As OPENcontrol.LogFSGetFileAttrib) - MyBase.New - Me.LogFSGetFileAttrib = LogFSGetFileAttrib - End Sub - End Class - - _ - Partial Public Class LogFSGetFileAttribResponse - - _ - Public LogFSGetFileAttribR As OPENcontrol.LogFSGetFileAttribR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetFileAttribR As OPENcontrol.LogFSGetFileAttribR) - MyBase.New - Me.LogFSGetFileAttribR = LogFSGetFileAttribR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSSetFileAttrib - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - Private attribField As UInteger - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - ''' - _ - Public Property Attrib() As UInteger - Get - Return Me.attribField - End Get - Set - Me.attribField = value - Me.RaisePropertyChanged("Attrib") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSSetFileAttribR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSSetFileAttribRequest - - _ - Public LogFSSetFileAttrib As OPENcontrol.LogFSSetFileAttrib - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSSetFileAttrib As OPENcontrol.LogFSSetFileAttrib) - MyBase.New - Me.LogFSSetFileAttrib = LogFSSetFileAttrib - End Sub - End Class - - _ - Partial Public Class LogFSSetFileAttribResponse - - _ - Public LogFSSetFileAttribR As OPENcontrol.LogFSSetFileAttribR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSSetFileAttribR As OPENcontrol.LogFSSetFileAttribR) - MyBase.New - Me.LogFSSetFileAttribR = LogFSSetFileAttribR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSChangeFileAttrib - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - Private addField As UInteger - - Private removeField As UInteger - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - ''' - _ - Public Property Add() As UInteger - Get - Return Me.addField - End Get - Set - Me.addField = value - Me.RaisePropertyChanged("Add") - End Set - End Property - - ''' - _ - Public Property Remove() As UInteger - Get - Return Me.removeField - End Get - Set - Me.removeField = value - Me.RaisePropertyChanged("Remove") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSChangeFileAttribR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSChangeFileAttribRequest - - _ - Public LogFSChangeFileAttrib As OPENcontrol.LogFSChangeFileAttrib - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSChangeFileAttrib As OPENcontrol.LogFSChangeFileAttrib) - MyBase.New - Me.LogFSChangeFileAttrib = LogFSChangeFileAttrib - End Sub - End Class - - _ - Partial Public Class LogFSChangeFileAttribResponse - - _ - Public LogFSChangeFileAttribR As OPENcontrol.LogFSChangeFileAttribR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSChangeFileAttribR As OPENcontrol.LogFSChangeFileAttribR) - MyBase.New - Me.LogFSChangeFileAttribR = LogFSChangeFileAttribR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSFindFirst - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private fileNameField As String - - ''' - _ - Public Property FileName() As String - Get - Return Me.fileNameField - End Get - Set - Me.fileNameField = value - Me.RaisePropertyChanged("FileName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSFindFirstR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private findDataField As FILEFINDDATA - - Private finderField As UInteger - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property FindData() As FILEFINDDATA - Get - Return Me.findDataField - End Get - Set - Me.findDataField = value - Me.RaisePropertyChanged("FindData") - End Set - End Property - - ''' - _ - Public Property Finder() As UInteger - Get - Return Me.finderField - End Get - Set - Me.finderField = value - Me.RaisePropertyChanged("Finder") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSFindFirstRequest - - _ - Public LogFSFindFirst As OPENcontrol.LogFSFindFirst - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSFindFirst As OPENcontrol.LogFSFindFirst) - MyBase.New - Me.LogFSFindFirst = LogFSFindFirst - End Sub - End Class - - _ - Partial Public Class LogFSFindFirstResponse - - _ - Public LogFSFindFirstR As OPENcontrol.LogFSFindFirstR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSFindFirstR As OPENcontrol.LogFSFindFirstR) - MyBase.New - Me.LogFSFindFirstR = LogFSFindFirstR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSFindNext - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private finderField As UInteger - - ''' - _ - Public Property Finder() As UInteger - Get - Return Me.finderField - End Get - Set - Me.finderField = value - Me.RaisePropertyChanged("Finder") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSFindNextR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private findDataField As FILEFINDDATA - - Private foundField As Boolean - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property FindData() As FILEFINDDATA - Get - Return Me.findDataField - End Get - Set - Me.findDataField = value - Me.RaisePropertyChanged("FindData") - End Set - End Property - - ''' - _ - Public Property Found() As Boolean - Get - Return Me.foundField - End Get - Set - Me.foundField = value - Me.RaisePropertyChanged("Found") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSFindNextRequest - - _ - Public LogFSFindNext As OPENcontrol.LogFSFindNext - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSFindNext As OPENcontrol.LogFSFindNext) - MyBase.New - Me.LogFSFindNext = LogFSFindNext - End Sub - End Class - - _ - Partial Public Class LogFSFindNextResponse - - _ - Public LogFSFindNextR As OPENcontrol.LogFSFindNextR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSFindNextR As OPENcontrol.LogFSFindNextR) - MyBase.New - Me.LogFSFindNextR = LogFSFindNextR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSFindClose - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private finderField As UInteger - - ''' - _ - Public Property Finder() As UInteger - Get - Return Me.finderField - End Get - Set - Me.finderField = value - Me.RaisePropertyChanged("Finder") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSFindCloseR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSFindCloseRequest - - _ - Public LogFSFindClose As OPENcontrol.LogFSFindClose - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSFindClose As OPENcontrol.LogFSFindClose) - MyBase.New - Me.LogFSFindClose = LogFSFindClose - End Sub - End Class - - _ - Partial Public Class LogFSFindCloseResponse - - _ - Public LogFSFindCloseR As OPENcontrol.LogFSFindCloseR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSFindCloseR As OPENcontrol.LogFSFindCloseR) - MyBase.New - Me.LogFSFindCloseR = LogFSFindCloseR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSRemoveFile - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - Private fileNameField As String - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - ''' - _ - Public Property FileName() As String - Get - Return Me.fileNameField - End Get - Set - Me.fileNameField = value - Me.RaisePropertyChanged("FileName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSRemoveFileR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSRemoveFileRequest - - _ - Public LogFSRemoveFile As OPENcontrol.LogFSRemoveFile - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSRemoveFile As OPENcontrol.LogFSRemoveFile) - MyBase.New - Me.LogFSRemoveFile = LogFSRemoveFile - End Sub - End Class - - _ - Partial Public Class LogFSRemoveFileResponse - - _ - Public LogFSRemoveFileR As OPENcontrol.LogFSRemoveFileR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSRemoveFileR As OPENcontrol.LogFSRemoveFileR) - MyBase.New - Me.LogFSRemoveFileR = LogFSRemoveFileR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSRemoveDir - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSRemoveDirR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSRemoveDirRequest - - _ - Public LogFSRemoveDir As OPENcontrol.LogFSRemoveDir - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSRemoveDir As OPENcontrol.LogFSRemoveDir) - MyBase.New - Me.LogFSRemoveDir = LogFSRemoveDir - End Sub - End Class - - _ - Partial Public Class LogFSRemoveDirResponse - - _ - Public LogFSRemoveDirR As OPENcontrol.LogFSRemoveDirR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSRemoveDirR As OPENcontrol.LogFSRemoveDirR) - MyBase.New - Me.LogFSRemoveDirR = LogFSRemoveDirR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSRename - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - Private newPathNameField As String - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - ''' - _ - Public Property NewPathName() As String - Get - Return Me.newPathNameField - End Get - Set - Me.newPathNameField = value - Me.RaisePropertyChanged("NewPathName") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSRenameR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSRenameRequest - - _ - Public LogFSRename As OPENcontrol.LogFSRename - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSRename As OPENcontrol.LogFSRename) - MyBase.New - Me.LogFSRename = LogFSRename - End Sub - End Class - - _ - Partial Public Class LogFSRenameResponse - - _ - Public LogFSRenameR As OPENcontrol.LogFSRenameR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSRenameR As OPENcontrol.LogFSRenameR) - MyBase.New - Me.LogFSRenameR = LogFSRenameR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSCopyFile - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - Private newPathNameField As String - - Private failIfExistsField As Boolean - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - ''' - _ - Public Property NewPathName() As String - Get - Return Me.newPathNameField - End Get - Set - Me.newPathNameField = value - Me.RaisePropertyChanged("NewPathName") - End Set - End Property - - ''' - _ - Public Property FailIfExists() As Boolean - Get - Return Me.failIfExistsField - End Get - Set - Me.failIfExistsField = value - Me.RaisePropertyChanged("FailIfExists") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSCopyFileR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSCopyFileRequest - - _ - Public LogFSCopyFile As OPENcontrol.LogFSCopyFile - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSCopyFile As OPENcontrol.LogFSCopyFile) - MyBase.New - Me.LogFSCopyFile = LogFSCopyFile - End Sub - End Class - - _ - Partial Public Class LogFSCopyFileResponse - - _ - Public LogFSCopyFileR As OPENcontrol.LogFSCopyFileR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSCopyFileR As OPENcontrol.LogFSCopyFileR) - MyBase.New - Me.LogFSCopyFileR = LogFSCopyFileR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetInfo - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - Private selectorField As UInteger - - Private itemCounterField As UShort - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - ''' - _ - Public Property Selector() As UInteger - Get - Return Me.selectorField - End Get - Set - Me.selectorField = value - Me.RaisePropertyChanged("Selector") - End Set - End Property - - ''' - _ - Public Property ItemCounter() As UShort - Get - Return Me.itemCounterField - End Get - Set - Me.itemCounterField = value - Me.RaisePropertyChanged("ItemCounter") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSGetInfoR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private bufferField() As UInteger - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Buffer() As UInteger() - Get - Return Me.bufferField - End Get - Set - Me.bufferField = value - Me.RaisePropertyChanged("Buffer") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSGetInfoRequest - - _ - Public LogFSGetInfo As OPENcontrol.LogFSGetInfo - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetInfo As OPENcontrol.LogFSGetInfo) - MyBase.New - Me.LogFSGetInfo = LogFSGetInfo - End Sub - End Class - - _ - Partial Public Class LogFSGetInfoResponse - - _ - Public LogFSGetInfoR As OPENcontrol.LogFSGetInfoR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSGetInfoR As OPENcontrol.LogFSGetInfoR) - MyBase.New - Me.LogFSGetInfoR = LogFSGetInfoR - End Sub - End Class - - ''' - _ - Partial Public Class GetAvailableCustomEvents - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private maxEventsField As UShort - - ''' - _ - Public Property MaxEvents() As UShort - Get - Return Me.maxEventsField - End Get - Set - Me.maxEventsField = value - Me.RaisePropertyChanged("MaxEvents") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetAvailableCustomEventsR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private numEventsField As UShort - - Private eventDataField() As MONCUSTOMEVENTINFO - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property NumEvents() As UShort - Get - Return Me.numEventsField - End Get - Set - Me.numEventsField = value - Me.RaisePropertyChanged("NumEvents") - End Set - End Property - - ''' - _ - Public Property EventData() As MONCUSTOMEVENTINFO() - Get - Return Me.eventDataField - End Get - Set - Me.eventDataField = value - Me.RaisePropertyChanged("EventData") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetAvailableCustomEventsRequest - - _ - Public GetAvailableCustomEvents As OPENcontrol.GetAvailableCustomEvents - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetAvailableCustomEvents As OPENcontrol.GetAvailableCustomEvents) - MyBase.New - Me.GetAvailableCustomEvents = GetAvailableCustomEvents - End Sub - End Class - - _ - Partial Public Class GetAvailableCustomEventsResponse - - _ - Public GetAvailableCustomEventsR As OPENcontrol.GetAvailableCustomEventsR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetAvailableCustomEventsR As OPENcontrol.GetAvailableCustomEventsR) - MyBase.New - Me.GetAvailableCustomEventsR = GetAvailableCustomEventsR - End Sub - End Class - - ''' - _ - Partial Public Class GetSysTick - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetSysTickR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private sysTickField As Double - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property SysTick() As Double - Get - Return Me.sysTickField - End Get - Set - Me.sysTickField = value - Me.RaisePropertyChanged("SysTick") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetSysTickRequest - - _ - Public GetSysTick As OPENcontrol.GetSysTick - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetSysTick As OPENcontrol.GetSysTick) - MyBase.New - Me.GetSysTick = GetSysTick - End Sub - End Class - - _ - Partial Public Class GetSysTickResponse - - _ - Public GetSysTickR As OPENcontrol.GetSysTickR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetSysTickR As OPENcontrol.GetSysTickR) - MyBase.New - Me.GetSysTickR = GetSysTickR - End Sub - End Class - - ''' - _ - Partial Public Class GetProcessConfNum - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetProcessConfNumR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private processConfNumField As Byte - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ProcessConfNum() As Byte - Get - Return Me.processConfNumField - End Get - Set - Me.processConfNumField = value - Me.RaisePropertyChanged("ProcessConfNum") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetProcessConfNumRequest - - _ - Public GetProcessConfNum As OPENcontrol.GetProcessConfNum - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetProcessConfNum As OPENcontrol.GetProcessConfNum) - MyBase.New - Me.GetProcessConfNum = GetProcessConfNum - End Sub - End Class - - _ - Partial Public Class GetProcessConfNumResponse - - _ - Public GetProcessConfNumR As OPENcontrol.GetProcessConfNumR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetProcessConfNumR As OPENcontrol.GetProcessConfNumR) - MyBase.New - Me.GetProcessConfNumR = GetProcessConfNumR - End Sub - End Class - - ''' - _ - Partial Public Class MonOpenChannel - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private synchronizedField As Boolean - - ''' - _ - Public Property Synchronized() As Boolean - Get - Return Me.synchronizedField - End Get - Set - Me.synchronizedField = value - Me.RaisePropertyChanged("Synchronized") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MonOpenChannelR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private channelIDField As UInteger - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ChannelID() As UInteger - Get - Return Me.channelIDField - End Get - Set - Me.channelIDField = value - Me.RaisePropertyChanged("ChannelID") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class MonOpenChannelRequest - - _ - Public MonOpenChannel As OPENcontrol.MonOpenChannel - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonOpenChannel As OPENcontrol.MonOpenChannel) - MyBase.New - Me.MonOpenChannel = MonOpenChannel - End Sub - End Class - - _ - Partial Public Class MonOpenChannelResponse - - _ - Public MonOpenChannelR As OPENcontrol.MonOpenChannelR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonOpenChannelR As OPENcontrol.MonOpenChannelR) - MyBase.New - Me.MonOpenChannelR = MonOpenChannelR - End Sub - End Class - - ''' - _ - Partial Public Class MonCloseChannel - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private channelIDField As UInteger - - ''' - _ - Public Property ChannelID() As UInteger - Get - Return Me.channelIDField - End Get - Set - Me.channelIDField = value - Me.RaisePropertyChanged("ChannelID") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MonCloseChannelR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class MonCloseChannelRequest - - _ - Public MonCloseChannel As OPENcontrol.MonCloseChannel - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonCloseChannel As OPENcontrol.MonCloseChannel) - MyBase.New - Me.MonCloseChannel = MonCloseChannel - End Sub - End Class - - _ - Partial Public Class MonCloseChannelResponse - - _ - Public MonCloseChannelR As OPENcontrol.MonCloseChannelR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonCloseChannelR As OPENcontrol.MonCloseChannelR) - MyBase.New - Me.MonCloseChannelR = MonCloseChannelR - End Sub - End Class - - ''' - _ - Partial Public Class MonAddVariable - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private channelIDField As UInteger - - Private varDescrField As MONVARDESCR - - ''' - _ - Public Property ChannelID() As UInteger - Get - Return Me.channelIDField - End Get - Set - Me.channelIDField = value - Me.RaisePropertyChanged("ChannelID") - End Set - End Property - - ''' - _ - Public Property VarDescr() As MONVARDESCR - Get - Return Me.varDescrField - End Get - Set - Me.varDescrField = value - Me.RaisePropertyChanged("VarDescr") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MonAddVariableR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private variableIDField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property VariableID() As UShort - Get - Return Me.variableIDField - End Get - Set - Me.variableIDField = value - Me.RaisePropertyChanged("VariableID") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class MonAddVariableRequest - - _ - Public MonAddVariable As OPENcontrol.MonAddVariable - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonAddVariable As OPENcontrol.MonAddVariable) - MyBase.New - Me.MonAddVariable = MonAddVariable - End Sub - End Class - - _ - Partial Public Class MonAddVariableResponse - - _ - Public MonAddVariableR As OPENcontrol.MonAddVariableR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonAddVariableR As OPENcontrol.MonAddVariableR) - MyBase.New - Me.MonAddVariableR = MonAddVariableR - End Sub - End Class - - ''' - _ - Partial Public Class MonDeleteVariable - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private channelIDField As UInteger - - Private variableIDField As UShort - - ''' - _ - Public Property ChannelID() As UInteger - Get - Return Me.channelIDField - End Get - Set - Me.channelIDField = value - Me.RaisePropertyChanged("ChannelID") - End Set - End Property - - ''' - _ - Public Property VariableID() As UShort - Get - Return Me.variableIDField - End Get - Set - Me.variableIDField = value - Me.RaisePropertyChanged("VariableID") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MonDeleteVariableR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class MonDeleteVariableRequest - - _ - Public MonDeleteVariable As OPENcontrol.MonDeleteVariable - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonDeleteVariable As OPENcontrol.MonDeleteVariable) - MyBase.New - Me.MonDeleteVariable = MonDeleteVariable - End Sub - End Class - - _ - Partial Public Class MonDeleteVariableResponse - - _ - Public MonDeleteVariableR As OPENcontrol.MonDeleteVariableR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonDeleteVariableR As OPENcontrol.MonDeleteVariableR) - MyBase.New - Me.MonDeleteVariableR = MonDeleteVariableR - End Sub - End Class - - ''' - _ - Partial Public Class MonStartSampling - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private channelIDField As UInteger - - ''' - _ - Public Property ChannelID() As UInteger - Get - Return Me.channelIDField - End Get - Set - Me.channelIDField = value - Me.RaisePropertyChanged("ChannelID") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MonStartSamplingR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class MonStartSamplingRequest - - _ - Public MonStartSampling As OPENcontrol.MonStartSampling - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonStartSampling As OPENcontrol.MonStartSampling) - MyBase.New - Me.MonStartSampling = MonStartSampling - End Sub - End Class - - _ - Partial Public Class MonStartSamplingResponse - - _ - Public MonStartSamplingR As OPENcontrol.MonStartSamplingR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonStartSamplingR As OPENcontrol.MonStartSamplingR) - MyBase.New - Me.MonStartSamplingR = MonStartSamplingR - End Sub - End Class - - ''' - _ - Partial Public Class MonStopSampling - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private channelIDField As UInteger - - ''' - _ - Public Property ChannelID() As UInteger - Get - Return Me.channelIDField - End Get - Set - Me.channelIDField = value - Me.RaisePropertyChanged("ChannelID") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MonStopSamplingR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class MonStopSamplingRequest - - _ - Public MonStopSampling As OPENcontrol.MonStopSampling - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonStopSampling As OPENcontrol.MonStopSampling) - MyBase.New - Me.MonStopSampling = MonStopSampling - End Sub - End Class - - _ - Partial Public Class MonStopSamplingResponse - - _ - Public MonStopSamplingR As OPENcontrol.MonStopSamplingR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonStopSamplingR As OPENcontrol.MonStopSamplingR) - MyBase.New - Me.MonStopSamplingR = MonStopSamplingR - End Sub - End Class - - ''' - _ - Partial Public Class MonGetVariable - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private channelIDField As UInteger - - Private variableIDField As UShort - - Private maxSamplesField As UShort - - ''' - _ - Public Property ChannelID() As UInteger - Get - Return Me.channelIDField - End Get - Set - Me.channelIDField = value - Me.RaisePropertyChanged("ChannelID") - End Set - End Property - - ''' - _ - Public Property VariableID() As UShort - Get - Return Me.variableIDField - End Get - Set - Me.variableIDField = value - Me.RaisePropertyChanged("VariableID") - End Set - End Property - - ''' - _ - Public Property MaxSamples() As UShort - Get - Return Me.maxSamplesField - End Get - Set - Me.maxSamplesField = value - Me.RaisePropertyChanged("MaxSamples") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class MonGetVariableR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private numSampleReadField As UShort - - Private dataBufferField() As Double - - Private timeBufferField() As Long - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property NumSampleRead() As UShort - Get - Return Me.numSampleReadField - End Get - Set - Me.numSampleReadField = value - Me.RaisePropertyChanged("NumSampleRead") - End Set - End Property - - ''' - _ - Public Property DataBuffer() As Double() - Get - Return Me.dataBufferField - End Get - Set - Me.dataBufferField = value - Me.RaisePropertyChanged("DataBuffer") - End Set - End Property - - ''' - _ - Public Property TimeBuffer() As Long() - Get - Return Me.timeBufferField - End Get - Set - Me.timeBufferField = value - Me.RaisePropertyChanged("TimeBuffer") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class MonGetVariableRequest - - _ - Public MonGetVariable As OPENcontrol.MonGetVariable - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonGetVariable As OPENcontrol.MonGetVariable) - MyBase.New - Me.MonGetVariable = MonGetVariable - End Sub - End Class - - _ - Partial Public Class MonGetVariableResponse - - _ - Public MonGetVariableR As OPENcontrol.MonGetVariableR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal MonGetVariableR As OPENcontrol.MonGetVariableR) - MyBase.New - Me.MonGetVariableR = MonGetVariableR - End Sub - End Class - - ''' - _ - Partial Public Class CheckHistory - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class CheckHistoryR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private thisBootMsgCounterField() As UInteger - - Private allBootMsgCounterField() As UInteger - - Private thisBootIDField() As UInteger - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ThisBootMsgCounter() As UInteger() - Get - Return Me.thisBootMsgCounterField - End Get - Set - Me.thisBootMsgCounterField = value - Me.RaisePropertyChanged("ThisBootMsgCounter") - End Set - End Property - - ''' - _ - Public Property AllBootMsgCounter() As UInteger() - Get - Return Me.allBootMsgCounterField - End Get - Set - Me.allBootMsgCounterField = value - Me.RaisePropertyChanged("AllBootMsgCounter") - End Set - End Property - - ''' - _ - Public Property ThisBootID() As UInteger() - Get - Return Me.thisBootIDField - End Get - Set - Me.thisBootIDField = value - Me.RaisePropertyChanged("ThisBootID") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class CheckHistoryRequest - - _ - Public CheckHistory As OPENcontrol.CheckHistory - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal CheckHistory As OPENcontrol.CheckHistory) - MyBase.New - Me.CheckHistory = CheckHistory - End Sub - End Class - - _ - Partial Public Class CheckHistoryResponse - - _ - Public CheckHistoryR As OPENcontrol.CheckHistoryR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal CheckHistoryR As OPENcontrol.CheckHistoryR) - MyBase.New - Me.CheckHistoryR = CheckHistoryR - End Sub - End Class - - ''' - _ - Partial Public Class ReadHistoryEmergMsg - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private readModeField As Integer - - Private recNumField As UInteger - - ''' - _ - Public Property ReadMode() As Integer - Get - Return Me.readModeField - End Get - Set - Me.readModeField = value - Me.RaisePropertyChanged("ReadMode") - End Set - End Property - - ''' - _ - Public Property RecNum() As UInteger - Get - Return Me.recNumField - End Get - Set - Me.recNumField = value - Me.RaisePropertyChanged("RecNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadHistoryEmergMsgR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private dataField As MSGEMERGENCY - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Data() As MSGEMERGENCY - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadHistoryEmergMsgRequest - - _ - Public ReadHistoryEmergMsg As OPENcontrol.ReadHistoryEmergMsg - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadHistoryEmergMsg As OPENcontrol.ReadHistoryEmergMsg) - MyBase.New - Me.ReadHistoryEmergMsg = ReadHistoryEmergMsg - End Sub - End Class - - _ - Partial Public Class ReadHistoryEmergMsgResponse - - _ - Public ReadHistoryEmergMsgR As OPENcontrol.ReadHistoryEmergMsgR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadHistoryEmergMsgR As OPENcontrol.ReadHistoryEmergMsgR) - MyBase.New - Me.ReadHistoryEmergMsgR = ReadHistoryEmergMsgR - End Sub - End Class - - ''' - _ - Partial Public Class ReadHistoryErrorMsg - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private readModeField As Integer - - Private recNumField As UInteger - - ''' - _ - Public Property ReadMode() As Integer - Get - Return Me.readModeField - End Get - Set - Me.readModeField = value - Me.RaisePropertyChanged("ReadMode") - End Set - End Property - - ''' - _ - Public Property RecNum() As UInteger - Get - Return Me.recNumField - End Get - Set - Me.recNumField = value - Me.RaisePropertyChanged("RecNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadHistoryErrorMsgR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private dataField As MSGERROR - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Data() As MSGERROR - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadHistoryErrorMsgRequest - - _ - Public ReadHistoryErrorMsg As OPENcontrol.ReadHistoryErrorMsg - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadHistoryErrorMsg As OPENcontrol.ReadHistoryErrorMsg) - MyBase.New - Me.ReadHistoryErrorMsg = ReadHistoryErrorMsg - End Sub - End Class - - _ - Partial Public Class ReadHistoryErrorMsgResponse - - _ - Public ReadHistoryErrorMsgR As OPENcontrol.ReadHistoryErrorMsgR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadHistoryErrorMsgR As OPENcontrol.ReadHistoryErrorMsgR) - MyBase.New - Me.ReadHistoryErrorMsgR = ReadHistoryErrorMsgR - End Sub - End Class - - ''' - _ - Partial Public Class ReadHistoryLogMsg - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private noHistoryField As Integer - - Private readModeField As Integer - - Private recNumField As UInteger - - ''' - _ - Public Property NoHistory() As Integer - Get - Return Me.noHistoryField - End Get - Set - Me.noHistoryField = value - Me.RaisePropertyChanged("NoHistory") - End Set - End Property - - ''' - _ - Public Property ReadMode() As Integer - Get - Return Me.readModeField - End Get - Set - Me.readModeField = value - Me.RaisePropertyChanged("ReadMode") - End Set - End Property - - ''' - _ - Public Property RecNum() As UInteger - Get - Return Me.recNumField - End Get - Set - Me.recNumField = value - Me.RaisePropertyChanged("RecNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadHistoryLogMsgR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private dataField As MSGLOGS - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Data() As MSGLOGS - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadHistoryLogMsgRequest - - _ - Public ReadHistoryLogMsg As OPENcontrol.ReadHistoryLogMsg - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadHistoryLogMsg As OPENcontrol.ReadHistoryLogMsg) - MyBase.New - Me.ReadHistoryLogMsg = ReadHistoryLogMsg - End Sub - End Class - - _ - Partial Public Class ReadHistoryLogMsgResponse - - _ - Public ReadHistoryLogMsgR As OPENcontrol.ReadHistoryLogMsgR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadHistoryLogMsgR As OPENcontrol.ReadHistoryLogMsgR) - MyBase.New - Me.ReadHistoryLogMsgR = ReadHistoryLogMsgR - End Sub - End Class - - ''' - _ - Partial Public Class ReadHistoryAnomalyMsg - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private readModeField As Integer - - Private recNumField As UInteger - - ''' - _ - Public Property ReadMode() As Integer - Get - Return Me.readModeField - End Get - Set - Me.readModeField = value - Me.RaisePropertyChanged("ReadMode") - End Set - End Property - - ''' - _ - Public Property RecNum() As UInteger - Get - Return Me.recNumField - End Get - Set - Me.recNumField = value - Me.RaisePropertyChanged("RecNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadHistoryAnomalyMsgR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private dataField As MSGANOMALY - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Data() As MSGANOMALY - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadHistoryAnomalyMsgRequest - - _ - Public ReadHistoryAnomalyMsg As OPENcontrol.ReadHistoryAnomalyMsg - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadHistoryAnomalyMsg As OPENcontrol.ReadHistoryAnomalyMsg) - MyBase.New - Me.ReadHistoryAnomalyMsg = ReadHistoryAnomalyMsg - End Sub - End Class - - _ - Partial Public Class ReadHistoryAnomalyMsgResponse - - _ - Public ReadHistoryAnomalyMsgR As OPENcontrol.ReadHistoryAnomalyMsgR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadHistoryAnomalyMsgR As OPENcontrol.ReadHistoryAnomalyMsgR) - MyBase.New - Me.ReadHistoryAnomalyMsgR = ReadHistoryAnomalyMsgR - End Sub - End Class - - ''' - _ - Partial Public Class ReadCurrentErrorMsg - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private processField As UShort - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadCurrentErrorMsgR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private dataField As MSGERROR - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Data() As MSGERROR - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadCurrentErrorMsgRequest - - _ - Public ReadCurrentErrorMsg As OPENcontrol.ReadCurrentErrorMsg - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadCurrentErrorMsg As OPENcontrol.ReadCurrentErrorMsg) - MyBase.New - Me.ReadCurrentErrorMsg = ReadCurrentErrorMsg - End Sub - End Class - - _ - Partial Public Class ReadCurrentErrorMsgResponse - - _ - Public ReadCurrentErrorMsgR As OPENcontrol.ReadCurrentErrorMsgR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadCurrentErrorMsgR As OPENcontrol.ReadCurrentErrorMsgR) - MyBase.New - Me.ReadCurrentErrorMsgR = ReadCurrentErrorMsgR - End Sub - End Class - - ''' - _ - Partial Public Class ReadCurrentEmergMsg - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private processField As UShort - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadCurrentEmergMsgR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private dataField As MSGEMERGENCY - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Data() As MSGEMERGENCY - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadCurrentEmergMsgRequest - - _ - Public ReadCurrentEmergMsg As OPENcontrol.ReadCurrentEmergMsg - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadCurrentEmergMsg As OPENcontrol.ReadCurrentEmergMsg) - MyBase.New - Me.ReadCurrentEmergMsg = ReadCurrentEmergMsg - End Sub - End Class - - _ - Partial Public Class ReadCurrentEmergMsgResponse - - _ - Public ReadCurrentEmergMsgR As OPENcontrol.ReadCurrentEmergMsgR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadCurrentEmergMsgR As OPENcontrol.ReadCurrentEmergMsgR) - MyBase.New - Me.ReadCurrentEmergMsgR = ReadCurrentEmergMsgR - End Sub - End Class - - ''' - _ - Partial Public Class ReadCurrentAnomalyMsg - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadCurrentAnomalyMsgR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private dataField As MSGANOMALY - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Data() As MSGANOMALY - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadCurrentAnomalyMsgRequest - - _ - Public ReadCurrentAnomalyMsg As OPENcontrol.ReadCurrentAnomalyMsg - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadCurrentAnomalyMsg As OPENcontrol.ReadCurrentAnomalyMsg) - MyBase.New - Me.ReadCurrentAnomalyMsg = ReadCurrentAnomalyMsg - End Sub - End Class - - _ - Partial Public Class ReadCurrentAnomalyMsgResponse - - _ - Public ReadCurrentAnomalyMsgR As OPENcontrol.ReadCurrentAnomalyMsgR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadCurrentAnomalyMsgR As OPENcontrol.ReadCurrentAnomalyMsgR) - MyBase.New - Me.ReadCurrentAnomalyMsgR = ReadCurrentAnomalyMsgR - End Sub - End Class - - ''' - _ - Partial Public Class GetPTechSizes - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private processField As UShort - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetPTechSizesR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private ind1Field As UShort - - Private ind2Field As UShort - - Private ind3Field As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Ind1() As UShort - Get - Return Me.ind1Field - End Get - Set - Me.ind1Field = value - Me.RaisePropertyChanged("Ind1") - End Set - End Property - - ''' - _ - Public Property Ind2() As UShort - Get - Return Me.ind2Field - End Get - Set - Me.ind2Field = value - Me.RaisePropertyChanged("Ind2") - End Set - End Property - - ''' - _ - Public Property Ind3() As UShort - Get - Return Me.ind3Field - End Get - Set - Me.ind3Field = value - Me.RaisePropertyChanged("Ind3") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetPTechSizesRequest - - _ - Public GetPTechSizes As OPENcontrol.GetPTechSizes - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetPTechSizes As OPENcontrol.GetPTechSizes) - MyBase.New - Me.GetPTechSizes = GetPTechSizes - End Sub - End Class - - _ - Partial Public Class GetPTechSizesResponse - - _ - Public GetPTechSizesR As OPENcontrol.GetPTechSizesR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetPTechSizesR As OPENcontrol.GetPTechSizesR) - MyBase.New - Me.GetPTechSizesR = GetPTechSizesR - End Sub - End Class - - ''' - _ - Partial Public Class LoadPTech - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private processField As UShort - - Private pPPathNameField As String - - Private writeModeField As UShort - - Private sheetField As UShort - - Private lineField As UShort - - Private columnField As UShort - - Private numVarField As UShort - - Private dataField() As Double - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property PPPathName() As String - Get - Return Me.pPPathNameField - End Get - Set - Me.pPPathNameField = value - Me.RaisePropertyChanged("PPPathName") - End Set - End Property - - ''' - _ - Public Property WriteMode() As UShort - Get - Return Me.writeModeField - End Get - Set - Me.writeModeField = value - Me.RaisePropertyChanged("WriteMode") - End Set - End Property - - ''' - _ - Public Property Sheet() As UShort - Get - Return Me.sheetField - End Get - Set - Me.sheetField = value - Me.RaisePropertyChanged("Sheet") - End Set - End Property - - ''' - _ - Public Property Line() As UShort - Get - Return Me.lineField - End Get - Set - Me.lineField = value - Me.RaisePropertyChanged("Line") - End Set - End Property - - ''' - _ - Public Property Column() As UShort - Get - Return Me.columnField - End Get - Set - Me.columnField = value - Me.RaisePropertyChanged("Column") - End Set - End Property - - ''' - _ - Public Property NumVar() As UShort - Get - Return Me.numVarField - End Get - Set - Me.numVarField = value - Me.RaisePropertyChanged("NumVar") - End Set - End Property - - ''' - _ - Public Property Data() As Double() - Get - Return Me.dataField - End Get - Set - Me.dataField = value - Me.RaisePropertyChanged("Data") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LoadPTechR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LoadPTechRequest - - _ - Public LoadPTech As OPENcontrol.LoadPTech - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LoadPTech As OPENcontrol.LoadPTech) - MyBase.New - Me.LoadPTech = LoadPTech - End Sub - End Class - - _ - Partial Public Class LoadPTechResponse - - _ - Public LoadPTechR As OPENcontrol.LoadPTechR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LoadPTechR As OPENcontrol.LoadPTechR) - MyBase.New - Me.LoadPTechR = LoadPTechR - End Sub - End Class - - ''' - _ - Partial Public Class GetMarkerInfo - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private processField As UShort - - Private requestField As Byte - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property Request() As Byte - Get - Return Me.requestField - End Get - Set - Me.requestField = value - Me.RaisePropertyChanged("Request") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetMarkerInfoR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private markerInfoField As MARKERINFO - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property MarkerInfo() As MARKERINFO - Get - Return Me.markerInfoField - End Get - Set - Me.markerInfoField = value - Me.RaisePropertyChanged("MarkerInfo") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetMarkerInfoRequest - - _ - Public GetMarkerInfo As OPENcontrol.GetMarkerInfo - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetMarkerInfo As OPENcontrol.GetMarkerInfo) - MyBase.New - Me.GetMarkerInfo = GetMarkerInfo - End Sub - End Class - - _ - Partial Public Class GetMarkerInfoResponse - - _ - Public GetMarkerInfoR As OPENcontrol.GetMarkerInfoR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetMarkerInfoR As OPENcontrol.GetMarkerInfoR) - MyBase.New - Me.GetMarkerInfoR = GetMarkerInfoR - End Sub - End Class - - ''' - _ - Partial Public Class ManagePartProgram - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private processField As UShort - - Private modeField As UShort - - Private pPPathField As String - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property Mode() As UShort - Get - Return Me.modeField - End Get - Set - Me.modeField = value - Me.RaisePropertyChanged("Mode") - End Set - End Property - - ''' - _ - Public Property PPPath() As String - Get - Return Me.pPPathField - End Get - Set - Me.pPPathField = value - Me.RaisePropertyChanged("PPPath") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ManagePartProgramR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errStringField() As Byte - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrString() As Byte() - Get - Return Me.errStringField - End Get - Set - Me.errStringField = value - Me.RaisePropertyChanged("ErrString") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ManagePartProgramRequest - - _ - Public ManagePartProgram As OPENcontrol.ManagePartProgram - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ManagePartProgram As OPENcontrol.ManagePartProgram) - MyBase.New - Me.ManagePartProgram = ManagePartProgram - End Sub - End Class - - _ - Partial Public Class ManagePartProgramResponse - - _ - Public ManagePartProgramR As OPENcontrol.ManagePartProgramR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ManagePartProgramR As OPENcontrol.ManagePartProgramR) - MyBase.New - Me.ManagePartProgramR = ManagePartProgramR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSOpenFile - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private pathNameField As String - - Private writeModeField As Boolean - - Private dOSDateLastWriteField As UShort - - Private dOSTimeLastWriteField As UShort - - ''' - _ - Public Property PathName() As String - Get - Return Me.pathNameField - End Get - Set - Me.pathNameField = value - Me.RaisePropertyChanged("PathName") - End Set - End Property - - ''' - _ - Public Property WriteMode() As Boolean - Get - Return Me.writeModeField - End Get - Set - Me.writeModeField = value - Me.RaisePropertyChanged("WriteMode") - End Set - End Property - - ''' - _ - Public Property DOSDateLastWrite() As UShort - Get - Return Me.dOSDateLastWriteField - End Get - Set - Me.dOSDateLastWriteField = value - Me.RaisePropertyChanged("DOSDateLastWrite") - End Set - End Property - - ''' - _ - Public Property DOSTimeLastWrite() As UShort - Get - Return Me.dOSTimeLastWriteField - End Get - Set - Me.dOSTimeLastWriteField = value - Me.RaisePropertyChanged("DOSTimeLastWrite") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSOpenFileR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private fileIDField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property FileID() As UShort - Get - Return Me.fileIDField - End Get - Set - Me.fileIDField = value - Me.RaisePropertyChanged("FileID") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSOpenFileRequest - - _ - Public LogFSOpenFile As OPENcontrol.LogFSOpenFile - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSOpenFile As OPENcontrol.LogFSOpenFile) - MyBase.New - Me.LogFSOpenFile = LogFSOpenFile - End Sub - End Class - - _ - Partial Public Class LogFSOpenFileResponse - - _ - Public LogFSOpenFileR As OPENcontrol.LogFSOpenFileR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSOpenFileR As OPENcontrol.LogFSOpenFileR) - MyBase.New - Me.LogFSOpenFileR = LogFSOpenFileR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSCloseFile - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private fileIDField As UShort - - Private transactionField As UShort - - ''' - _ - Public Property FileID() As UShort - Get - Return Me.fileIDField - End Get - Set - Me.fileIDField = value - Me.RaisePropertyChanged("FileID") - End Set - End Property - - ''' - _ - Public Property Transaction() As UShort - Get - Return Me.transactionField - End Get - Set - Me.transactionField = value - Me.RaisePropertyChanged("Transaction") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSCloseFileR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private fileIDField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property FileID() As UShort - Get - Return Me.fileIDField - End Get - Set - Me.fileIDField = value - Me.RaisePropertyChanged("FileID") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSCloseFileRequest - - _ - Public LogFSCloseFile As OPENcontrol.LogFSCloseFile - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSCloseFile As OPENcontrol.LogFSCloseFile) - MyBase.New - Me.LogFSCloseFile = LogFSCloseFile - End Sub - End Class - - _ - Partial Public Class LogFSCloseFileResponse - - _ - Public LogFSCloseFileR As OPENcontrol.LogFSCloseFileR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSCloseFileR As OPENcontrol.LogFSCloseFileR) - MyBase.New - Me.LogFSCloseFileR = LogFSCloseFileR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSWriteRecord - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private fileIDField As UShort - - Private transactionField As UShort - - Private recordLenField As UInteger - - Private recordField() As Byte - - ''' - _ - Public Property FileID() As UShort - Get - Return Me.fileIDField - End Get - Set - Me.fileIDField = value - Me.RaisePropertyChanged("FileID") - End Set - End Property - - ''' - _ - Public Property Transaction() As UShort - Get - Return Me.transactionField - End Get - Set - Me.transactionField = value - Me.RaisePropertyChanged("Transaction") - End Set - End Property - - ''' - _ - Public Property RecordLen() As UInteger - Get - Return Me.recordLenField - End Get - Set - Me.recordLenField = value - Me.RaisePropertyChanged("RecordLen") - End Set - End Property - - ''' - _ - Public Property Record() As Byte() - Get - Return Me.recordField - End Get - Set - Me.recordField = value - Me.RaisePropertyChanged("Record") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSWriteRecordR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSWriteRecordRequest - - _ - Public LogFSWriteRecord As OPENcontrol.LogFSWriteRecord - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSWriteRecord As OPENcontrol.LogFSWriteRecord) - MyBase.New - Me.LogFSWriteRecord = LogFSWriteRecord - End Sub - End Class - - _ - Partial Public Class LogFSWriteRecordResponse - - _ - Public LogFSWriteRecordR As OPENcontrol.LogFSWriteRecordR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSWriteRecordR As OPENcontrol.LogFSWriteRecordR) - MyBase.New - Me.LogFSWriteRecordR = LogFSWriteRecordR - End Sub - End Class - - ''' - _ - Partial Public Class LogFSReadRecord - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private fileIDField As UShort - - Private transactionField As UShort - - Private recordLenField As UInteger - - ''' - _ - Public Property FileID() As UShort - Get - Return Me.fileIDField - End Get - Set - Me.fileIDField = value - Me.RaisePropertyChanged("FileID") - End Set - End Property - - ''' - _ - Public Property Transaction() As UShort - Get - Return Me.transactionField - End Get - Set - Me.transactionField = value - Me.RaisePropertyChanged("Transaction") - End Set - End Property - - ''' - _ - Public Property RecordLen() As UInteger - Get - Return Me.recordLenField - End Get - Set - Me.recordLenField = value - Me.RaisePropertyChanged("RecordLen") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class LogFSReadRecordR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private dataSizeField As UInteger - - Private recordField() As Byte - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property DataSize() As UInteger - Get - Return Me.dataSizeField - End Get - Set - Me.dataSizeField = value - Me.RaisePropertyChanged("DataSize") - End Set - End Property - - ''' - _ - Public Property Record() As Byte() - Get - Return Me.recordField - End Get - Set - Me.recordField = value - Me.RaisePropertyChanged("Record") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class LogFSReadRecordRequest - - _ - Public LogFSReadRecord As OPENcontrol.LogFSReadRecord - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSReadRecord As OPENcontrol.LogFSReadRecord) - MyBase.New - Me.LogFSReadRecord = LogFSReadRecord - End Sub - End Class - - _ - Partial Public Class LogFSReadRecordResponse - - _ - Public LogFSReadRecordR As OPENcontrol.LogFSReadRecordR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal LogFSReadRecordR As OPENcontrol.LogFSReadRecordR) - MyBase.New - Me.LogFSReadRecordR = LogFSReadRecordR - End Sub - End Class - - ''' - _ - Partial Public Class ReadRemapDefinitions - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private arraySizeField As Integer - - Private typeField As Integer - - ''' - _ - Public Property ArraySize() As Integer - Get - Return Me.arraySizeField - End Get - Set - Me.arraySizeField = value - Me.RaisePropertyChanged("ArraySize") - End Set - End Property - - ''' - _ - Public Property Type() As Integer - Get - Return Me.typeField - End Get - Set - Me.typeField = value - Me.RaisePropertyChanged("Type") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class ReadRemapDefinitionsR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private arrayField() As REMAPDEF - - Private definitionsCntField As Integer - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Array() As REMAPDEF() - Get - Return Me.arrayField - End Get - Set - Me.arrayField = value - Me.RaisePropertyChanged("Array") - End Set - End Property - - ''' - _ - Public Property DefinitionsCnt() As Integer - Get - Return Me.definitionsCntField - End Get - Set - Me.definitionsCntField = value - Me.RaisePropertyChanged("DefinitionsCnt") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class ReadRemapDefinitionsRequest - - _ - Public ReadRemapDefinitions As OPENcontrol.ReadRemapDefinitions - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadRemapDefinitions As OPENcontrol.ReadRemapDefinitions) - MyBase.New - Me.ReadRemapDefinitions = ReadRemapDefinitions - End Sub - End Class - - _ - Partial Public Class ReadRemapDefinitionsResponse - - _ - Public ReadRemapDefinitionsR As OPENcontrol.ReadRemapDefinitionsR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal ReadRemapDefinitionsR As OPENcontrol.ReadRemapDefinitionsR) - MyBase.New - Me.ReadRemapDefinitionsR = ReadRemapDefinitionsR - End Sub - End Class - - ''' - _ - Partial Public Class WriteRemapDefinitions - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private arraySizeField As Integer - - Private arrayField() As REMAPDEF - - Private typeField As Integer - - Private modeField As Integer - - ''' - _ - Public Property ArraySize() As Integer - Get - Return Me.arraySizeField - End Get - Set - Me.arraySizeField = value - Me.RaisePropertyChanged("ArraySize") - End Set - End Property - - ''' - _ - Public Property Array() As REMAPDEF() - Get - Return Me.arrayField - End Get - Set - Me.arrayField = value - Me.RaisePropertyChanged("Array") - End Set - End Property - - ''' - _ - Public Property Type() As Integer - Get - Return Me.typeField - End Get - Set - Me.typeField = value - Me.RaisePropertyChanged("Type") - End Set - End Property - - ''' - _ - Public Property Mode() As Integer - Get - Return Me.modeField - End Get - Set - Me.modeField = value - Me.RaisePropertyChanged("Mode") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class WriteRemapDefinitionsR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class WriteRemapDefinitionsRequest - - _ - Public WriteRemapDefinitions As OPENcontrol.WriteRemapDefinitions - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal WriteRemapDefinitions As OPENcontrol.WriteRemapDefinitions) - MyBase.New - Me.WriteRemapDefinitions = WriteRemapDefinitions - End Sub - End Class - - _ - Partial Public Class WriteRemapDefinitionsResponse - - _ - Public WriteRemapDefinitionsR As OPENcontrol.WriteRemapDefinitionsR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal WriteRemapDefinitionsR As OPENcontrol.WriteRemapDefinitionsR) - MyBase.New - Me.WriteRemapDefinitionsR = WriteRemapDefinitionsR - End Sub - End Class - - ''' - _ - Partial Public Class GetServoPar - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private axisIdField As UShort - - Private parIdField As UShort - - ''' - _ - Public Property AxisId() As UShort - Get - Return Me.axisIdField - End Get - Set - Me.axisIdField = value - Me.RaisePropertyChanged("AxisId") - End Set - End Property - - ''' - _ - Public Property ParId() As UShort - Get - Return Me.parIdField - End Get - Set - Me.parIdField = value - Me.RaisePropertyChanged("ParId") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetServoParR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private valueField As Double - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property Value() As Double - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetServoParRequest - - _ - Public GetServoPar As OPENcontrol.GetServoPar - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetServoPar As OPENcontrol.GetServoPar) - MyBase.New - Me.GetServoPar = GetServoPar - End Sub - End Class - - _ - Partial Public Class GetServoParResponse - - _ - Public GetServoParR As OPENcontrol.GetServoParR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetServoParR As OPENcontrol.GetServoParR) - MyBase.New - Me.GetServoParR = GetServoParR - End Sub - End Class - - ''' - _ - Partial Public Class SetServoPar - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private axisIdField As UShort - - Private parIdField As UShort - - Private valueField As Double - - ''' - _ - Public Property AxisId() As UShort - Get - Return Me.axisIdField - End Get - Set - Me.axisIdField = value - Me.RaisePropertyChanged("AxisId") - End Set - End Property - - ''' - _ - Public Property ParId() As UShort - Get - Return Me.parIdField - End Get - Set - Me.parIdField = value - Me.RaisePropertyChanged("ParId") - End Set - End Property - - ''' - _ - Public Property Value() As Double - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetServoParR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetServoParRequest - - _ - Public SetServoPar As OPENcontrol.SetServoPar - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetServoPar As OPENcontrol.SetServoPar) - MyBase.New - Me.SetServoPar = SetServoPar - End Sub - End Class - - _ - Partial Public Class SetServoParResponse - - _ - Public SetServoParR As OPENcontrol.SetServoParR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetServoParR As OPENcontrol.SetServoParR) - MyBase.New - Me.SetServoParR = SetServoParR - End Sub - End Class - - ''' - _ - Partial Public Class GetCNCRegKey - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private keyField As String - - Private subKeyField As String - - Private valueLenField As Integer - - ''' - _ - Public Property Key() As String - Get - Return Me.keyField - End Get - Set - Me.keyField = value - Me.RaisePropertyChanged("Key") - End Set - End Property - - ''' - _ - Public Property SubKey() As String - Get - Return Me.subKeyField - End Get - Set - Me.subKeyField = value - Me.RaisePropertyChanged("SubKey") - End Set - End Property - - ''' - _ - Public Property ValueLen() As Integer - Get - Return Me.valueLenField - End Get - Set - Me.valueLenField = value - Me.RaisePropertyChanged("ValueLen") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetCNCRegKeyR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private valueLenField As Integer - - Private valueField() As Byte - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ValueLen() As Integer - Get - Return Me.valueLenField - End Get - Set - Me.valueLenField = value - Me.RaisePropertyChanged("ValueLen") - End Set - End Property - - ''' - _ - Public Property Value() As Byte() - Get - Return Me.valueField - End Get - Set - Me.valueField = value - Me.RaisePropertyChanged("Value") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetCNCRegKeyRequest - - _ - Public GetCNCRegKey As OPENcontrol.GetCNCRegKey - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetCNCRegKey As OPENcontrol.GetCNCRegKey) - MyBase.New - Me.GetCNCRegKey = GetCNCRegKey - End Sub - End Class - - _ - Partial Public Class GetCNCRegKeyResponse - - _ - Public GetCNCRegKeyR As OPENcontrol.GetCNCRegKeyR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetCNCRegKeyR As OPENcontrol.GetCNCRegKeyR) - MyBase.New - Me.GetCNCRegKeyR = GetCNCRegKeyR - End Sub - End Class - - ''' - _ - Partial Public Class SetIpAddress - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private ipAddressField As String - - Private subNetMaskField As String - - Private defaultGatewayField As String - - Private dnsField As String - - Private winsField As String - - Private netField As String - - ''' - _ - Public Property IpAddress() As String - Get - Return Me.ipAddressField - End Get - Set - Me.ipAddressField = value - Me.RaisePropertyChanged("IpAddress") - End Set - End Property - - ''' - _ - Public Property SubNetMask() As String - Get - Return Me.subNetMaskField - End Get - Set - Me.subNetMaskField = value - Me.RaisePropertyChanged("SubNetMask") - End Set - End Property - - ''' - _ - Public Property DefaultGateway() As String - Get - Return Me.defaultGatewayField - End Get - Set - Me.defaultGatewayField = value - Me.RaisePropertyChanged("DefaultGateway") - End Set - End Property - - ''' - _ - Public Property Dns() As String - Get - Return Me.dnsField - End Get - Set - Me.dnsField = value - Me.RaisePropertyChanged("Dns") - End Set - End Property - - ''' - _ - Public Property Wins() As String - Get - Return Me.winsField - End Get - Set - Me.winsField = value - Me.RaisePropertyChanged("Wins") - End Set - End Property - - ''' - _ - Public Property Net() As String - Get - Return Me.netField - End Get - Set - Me.netField = value - Me.RaisePropertyChanged("Net") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SetIpAddressR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SetIpAddressRequest - - _ - Public SetIpAddress As OPENcontrol.SetIpAddress - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetIpAddress As OPENcontrol.SetIpAddress) - MyBase.New - Me.SetIpAddress = SetIpAddress - End Sub - End Class - - _ - Partial Public Class SetIpAddressResponse - - _ - Public SetIpAddressR As OPENcontrol.SetIpAddressR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SetIpAddressR As OPENcontrol.SetIpAddressR) - MyBase.New - Me.SetIpAddressR = SetIpAddressR - End Sub - End Class - - ''' - _ - Partial Public Class GetProcInInput - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private processField As UShort - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class GetProcInInputR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private procInfoField As INPUTINFO - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ProcInfo() As INPUTINFO - Get - Return Me.procInfoField - End Get - Set - Me.procInfoField = value - Me.RaisePropertyChanged("ProcInfo") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class GetProcInInputRequest - - _ - Public GetProcInInput As OPENcontrol.GetProcInInput - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetProcInInput As OPENcontrol.GetProcInInput) - MyBase.New - Me.GetProcInInput = GetProcInInput - End Sub - End Class - - _ - Partial Public Class GetProcInInputResponse - - _ - Public GetProcInInputR As OPENcontrol.GetProcInInputR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal GetProcInInputR As OPENcontrol.GetProcInInputR) - MyBase.New - Me.GetProcInInputR = GetProcInInputR - End Sub - End Class - - ''' - _ - Partial Public Class SndProcInpData - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private processField As UShort - - Private keyPressedField As UShort - - Private numDataField As UShort - - Private arDataField() As Byte - - Private arSizeField As UShort - - ''' - _ - Public Property Process() As UShort - Get - Return Me.processField - End Get - Set - Me.processField = value - Me.RaisePropertyChanged("Process") - End Set - End Property - - ''' - _ - Public Property keyPressed() As UShort - Get - Return Me.keyPressedField - End Get - Set - Me.keyPressedField = value - Me.RaisePropertyChanged("keyPressed") - End Set - End Property - - ''' - _ - Public Property numData() As UShort - Get - Return Me.numDataField - End Get - Set - Me.numDataField = value - Me.RaisePropertyChanged("numData") - End Set - End Property - - ''' - _ - Public Property arData() As Byte() - Get - Return Me.arDataField - End Get - Set - Me.arDataField = value - Me.RaisePropertyChanged("arData") - End Set - End Property - - ''' - _ - Public Property arSize() As UShort - Get - Return Me.arSizeField - End Get - Set - Me.arSizeField = value - Me.RaisePropertyChanged("arSize") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - ''' - _ - Partial Public Class SndProcInpDataR - Inherits Object - Implements System.ComponentModel.INotifyPropertyChanged - - Private retvalField As UShort - - Private errClassField As UInteger - - Private errNumField As UInteger - - ''' - _ - Public Property retval() As UShort - Get - Return Me.retvalField - End Get - Set - Me.retvalField = value - Me.RaisePropertyChanged("retval") - End Set - End Property - - ''' - _ - Public Property ErrClass() As UInteger - Get - Return Me.errClassField - End Get - Set - Me.errClassField = value - Me.RaisePropertyChanged("ErrClass") - End Set - End Property - - ''' - _ - Public Property ErrNum() As UInteger - Get - Return Me.errNumField - End Get - Set - Me.errNumField = value - Me.RaisePropertyChanged("ErrNum") - End Set - End Property - - Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged - - Protected Sub RaisePropertyChanged(ByVal propertyName As String) - Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent - If (Not (propertyChanged) Is Nothing) Then - propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName)) - End If - End Sub - End Class - - _ - Partial Public Class SndProcInpDataRequest - - _ - Public SndProcInpData As OPENcontrol.SndProcInpData - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SndProcInpData As OPENcontrol.SndProcInpData) - MyBase.New - Me.SndProcInpData = SndProcInpData - End Sub - End Class - - _ - Partial Public Class SndProcInpDataResponse - - _ - Public SndProcInpDataR As OPENcontrol.SndProcInpDataR - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal SndProcInpDataR As OPENcontrol.SndProcInpDataR) - MyBase.New - Me.SndProcInpDataR = SndProcInpDataR - End Sub - End Class - - _ - Public Interface OPENcontrolPortTypeChannel - Inherits OPENcontrol.OPENcontrolPortType, System.ServiceModel.IClientChannel - End Interface - - _ - Partial Public Class OPENcontrolPortTypeClient - Inherits System.ServiceModel.ClientBase(Of OPENcontrol.OPENcontrolPortType) - Implements OPENcontrol.OPENcontrolPortType - - Public Sub New() - MyBase.New - End Sub - - Public Sub New(ByVal endpointConfigurationName As String) - MyBase.New(endpointConfigurationName) - End Sub - - Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As String) - MyBase.New(endpointConfigurationName, remoteAddress) - End Sub - - Public Sub New(ByVal endpointConfigurationName As String, ByVal remoteAddress As System.ServiceModel.EndpointAddress) - MyBase.New(endpointConfigurationName, remoteAddress) - End Sub - - Public Sub New(ByVal binding As System.ServiceModel.Channels.Binding, ByVal remoteAddress As System.ServiceModel.EndpointAddress) - MyBase.New(binding, remoteAddress) - End Sub - - _ - Function OPENcontrol_OPENcontrolPortType_BootPhaseEnquiry(ByVal request As OPENcontrol.BootPhaseEnquiryRequest) As OPENcontrol.BootPhaseEnquiryResponse Implements OPENcontrol.OPENcontrolPortType.BootPhaseEnquiry - Return MyBase.Channel.BootPhaseEnquiry(request) - End Function - - Public Function BootPhaseEnquiry(ByVal BootPhaseEnquiry1 As OPENcontrol.BootPhaseEnquiry) As OPENcontrol.BootPhaseEnquiryR - Dim inValue As OPENcontrol.BootPhaseEnquiryRequest = New OPENcontrol.BootPhaseEnquiryRequest() - inValue.BootPhaseEnquiry = BootPhaseEnquiry1 - Dim retVal As OPENcontrol.BootPhaseEnquiryResponse = CType(Me,OPENcontrol.OPENcontrolPortType).BootPhaseEnquiry(inValue) - Return retVal.BootPhaseEnquiryR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_BootReboot(ByVal request As OPENcontrol.BootRebootRequest) As OPENcontrol.BootRebootResponse Implements OPENcontrol.OPENcontrolPortType.BootReboot - Return MyBase.Channel.BootReboot(request) - End Function - - Public Function BootReboot(ByVal BootReboot1 As OPENcontrol.BootReboot) As OPENcontrol.BootRebootR - Dim inValue As OPENcontrol.BootRebootRequest = New OPENcontrol.BootRebootRequest() - inValue.BootReboot = BootReboot1 - Dim retVal As OPENcontrol.BootRebootResponse = CType(Me,OPENcontrol.OPENcontrolPortType).BootReboot(inValue) - Return retVal.BootRebootR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_BootShutDown(ByVal request As OPENcontrol.BootShutDownRequest) As OPENcontrol.BootShutDownResponse Implements OPENcontrol.OPENcontrolPortType.BootShutDown - Return MyBase.Channel.BootShutDown(request) - End Function - - Public Function BootShutDown(ByVal BootShutDown1 As OPENcontrol.BootShutDown) As OPENcontrol.BootShutDownR - Dim inValue As OPENcontrol.BootShutDownRequest = New OPENcontrol.BootShutDownRequest() - inValue.BootShutDown = BootShutDown1 - Dim retVal As OPENcontrol.BootShutDownResponse = CType(Me,OPENcontrol.OPENcontrolPortType).BootShutDown(inValue) - Return retVal.BootShutDownR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_BootMode(ByVal request As OPENcontrol.BootModeRequest) As OPENcontrol.BootModeResponse Implements OPENcontrol.OPENcontrolPortType.BootMode - Return MyBase.Channel.BootMode(request) - End Function - - Public Function BootMode(ByVal BootMode1 As OPENcontrol.BootMode) As OPENcontrol.BootModeR - Dim inValue As OPENcontrol.BootModeRequest = New OPENcontrol.BootModeRequest() - inValue.BootMode = BootMode1 - Dim retVal As OPENcontrol.BootModeResponse = CType(Me,OPENcontrol.OPENcontrolPortType).BootMode(inValue) - Return retVal.BootModeR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetHWKey(ByVal request As OPENcontrol.GetHWKeyRequest) As OPENcontrol.GetHWKeyResponse Implements OPENcontrol.OPENcontrolPortType.GetHWKey - Return MyBase.Channel.GetHWKey(request) - End Function - - Public Function GetHWKey(ByVal GetHWKey1 As OPENcontrol.GetHWKey) As OPENcontrol.GetHWKeyR - Dim inValue As OPENcontrol.GetHWKeyRequest = New OPENcontrol.GetHWKeyRequest() - inValue.GetHWKey = GetHWKey1 - Dim retVal As OPENcontrol.GetHWKeyResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetHWKey(inValue) - Return retVal.GetHWKeyR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadVarWord(ByVal request As OPENcontrol.ReadVarWordRequest) As OPENcontrol.ReadVarWordResponse Implements OPENcontrol.OPENcontrolPortType.ReadVarWord - Return MyBase.Channel.ReadVarWord(request) - End Function - - Public Function ReadVarWord(ByVal ReadVarWord1 As OPENcontrol.ReadVarWord) As OPENcontrol.ReadVarWordR - Dim inValue As OPENcontrol.ReadVarWordRequest = New OPENcontrol.ReadVarWordRequest() - inValue.ReadVarWord = ReadVarWord1 - Dim retVal As OPENcontrol.ReadVarWordResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadVarWord(inValue) - Return retVal.ReadVarWordR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadVarDouble(ByVal request As OPENcontrol.ReadVarDoubleRequest) As OPENcontrol.ReadVarDoubleResponse Implements OPENcontrol.OPENcontrolPortType.ReadVarDouble - Return MyBase.Channel.ReadVarDouble(request) - End Function - - Public Function ReadVarDouble(ByVal ReadVarDouble1 As OPENcontrol.ReadVarDouble) As OPENcontrol.ReadVarDoubleR - Dim inValue As OPENcontrol.ReadVarDoubleRequest = New OPENcontrol.ReadVarDoubleRequest() - inValue.ReadVarDouble = ReadVarDouble1 - Dim retVal As OPENcontrol.ReadVarDoubleResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadVarDouble(inValue) - Return retVal.ReadVarDoubleR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_WriteVarWord(ByVal request As OPENcontrol.WriteVarWordRequest) As OPENcontrol.WriteVarWordResponse Implements OPENcontrol.OPENcontrolPortType.WriteVarWord - Return MyBase.Channel.WriteVarWord(request) - End Function - - Public Function WriteVarWord(ByVal WriteVarWord1 As OPENcontrol.WriteVarWord) As OPENcontrol.WriteVarWordR - Dim inValue As OPENcontrol.WriteVarWordRequest = New OPENcontrol.WriteVarWordRequest() - inValue.WriteVarWord = WriteVarWord1 - Dim retVal As OPENcontrol.WriteVarWordResponse = CType(Me,OPENcontrol.OPENcontrolPortType).WriteVarWord(inValue) - Return retVal.WriteVarWordR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_WriteVarWordBit(ByVal request As OPENcontrol.WriteVarWordBitRequest) As OPENcontrol.WriteVarWordBitResponse Implements OPENcontrol.OPENcontrolPortType.WriteVarWordBit - Return MyBase.Channel.WriteVarWordBit(request) - End Function - - Public Function WriteVarWordBit(ByVal WriteVarWordBit1 As OPENcontrol.WriteVarWordBit) As OPENcontrol.WriteVarWordBitR - Dim inValue As OPENcontrol.WriteVarWordBitRequest = New OPENcontrol.WriteVarWordBitRequest() - inValue.WriteVarWordBit = WriteVarWordBit1 - Dim retVal As OPENcontrol.WriteVarWordBitResponse = CType(Me,OPENcontrol.OPENcontrolPortType).WriteVarWordBit(inValue) - Return retVal.WriteVarWordBitR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_WriteVarDouble(ByVal request As OPENcontrol.WriteVarDoubleRequest) As OPENcontrol.WriteVarDoubleResponse Implements OPENcontrol.OPENcontrolPortType.WriteVarDouble - Return MyBase.Channel.WriteVarDouble(request) - End Function - - Public Function WriteVarDouble(ByVal WriteVarDouble1 As OPENcontrol.WriteVarDouble) As OPENcontrol.WriteVarDoubleR - Dim inValue As OPENcontrol.WriteVarDoubleRequest = New OPENcontrol.WriteVarDoubleRequest() - inValue.WriteVarDouble = WriteVarDouble1 - Dim retVal As OPENcontrol.WriteVarDoubleResponse = CType(Me,OPENcontrol.OPENcontrolPortType).WriteVarDouble(inValue) - Return retVal.WriteVarDoubleR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadVarText(ByVal request As OPENcontrol.ReadVarTextRequest) As OPENcontrol.ReadVarTextResponse Implements OPENcontrol.OPENcontrolPortType.ReadVarText - Return MyBase.Channel.ReadVarText(request) - End Function - - Public Function ReadVarText(ByVal ReadVarText1 As OPENcontrol.ReadVarText) As OPENcontrol.ReadVarTextR - Dim inValue As OPENcontrol.ReadVarTextRequest = New OPENcontrol.ReadVarTextRequest() - inValue.ReadVarText = ReadVarText1 - Dim retVal As OPENcontrol.ReadVarTextResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadVarText(inValue) - Return retVal.ReadVarTextR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_WriteVarText(ByVal request As OPENcontrol.WriteVarTextRequest) As OPENcontrol.WriteVarTextResponse Implements OPENcontrol.OPENcontrolPortType.WriteVarText - Return MyBase.Channel.WriteVarText(request) - End Function - - Public Function WriteVarText(ByVal WriteVarText1 As OPENcontrol.WriteVarText) As OPENcontrol.WriteVarTextR - Dim inValue As OPENcontrol.WriteVarTextRequest = New OPENcontrol.WriteVarTextRequest() - inValue.WriteVarText = WriteVarText1 - Dim retVal As OPENcontrol.WriteVarTextResponse = CType(Me,OPENcontrol.OPENcontrolPortType).WriteVarText(inValue) - Return retVal.WriteVarTextR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadWarningMsg(ByVal request As OPENcontrol.ReadWarningMsgRequest) As OPENcontrol.ReadWarningMsgResponse Implements OPENcontrol.OPENcontrolPortType.ReadWarningMsg - Return MyBase.Channel.ReadWarningMsg(request) - End Function - - Public Function ReadWarningMsg(ByVal ReadWarningMsg1 As OPENcontrol.ReadWarningMsg) As OPENcontrol.ReadWarningMsgR - Dim inValue As OPENcontrol.ReadWarningMsgRequest = New OPENcontrol.ReadWarningMsgRequest() - inValue.ReadWarningMsg = ReadWarningMsg1 - Dim retVal As OPENcontrol.ReadWarningMsgResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadWarningMsg(inValue) - Return retVal.ReadWarningMsgR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ResetSingleTableII(ByVal request As OPENcontrol.ResetSingleTableIIRequest) As OPENcontrol.ResetSingleTableIIResponse Implements OPENcontrol.OPENcontrolPortType.ResetSingleTableII - Return MyBase.Channel.ResetSingleTableII(request) - End Function - - Public Function ResetSingleTableII(ByVal ResetSingleTableII1 As OPENcontrol.ResetSingleTableII) As OPENcontrol.ResetSingleTableIIR - Dim inValue As OPENcontrol.ResetSingleTableIIRequest = New OPENcontrol.ResetSingleTableIIRequest() - inValue.ResetSingleTableII = ResetSingleTableII1 - Dim retVal As OPENcontrol.ResetSingleTableIIResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ResetSingleTableII(inValue) - Return retVal.ResetSingleTableIIR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LockTableII(ByVal request As OPENcontrol.LockTableIIRequest) As OPENcontrol.LockTableIIResponse Implements OPENcontrol.OPENcontrolPortType.LockTableII - Return MyBase.Channel.LockTableII(request) - End Function - - Public Function LockTableII(ByVal LockTableII1 As OPENcontrol.LockTableII) As OPENcontrol.LockTableIIR - Dim inValue As OPENcontrol.LockTableIIRequest = New OPENcontrol.LockTableIIRequest() - inValue.LockTableII = LockTableII1 - Dim retVal As OPENcontrol.LockTableIIResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LockTableII(inValue) - Return retVal.LockTableIIR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_UnLockTableII(ByVal request As OPENcontrol.UnLockTableIIRequest) As OPENcontrol.UnLockTableIIResponse Implements OPENcontrol.OPENcontrolPortType.UnLockTableII - Return MyBase.Channel.UnLockTableII(request) - End Function - - Public Function UnLockTableII(ByVal UnLockTableII1 As OPENcontrol.UnLockTableII) As OPENcontrol.UnLockTableIIR - Dim inValue As OPENcontrol.UnLockTableIIRequest = New OPENcontrol.UnLockTableIIRequest() - inValue.UnLockTableII = UnLockTableII1 - Dim retVal As OPENcontrol.UnLockTableIIResponse = CType(Me,OPENcontrol.OPENcontrolPortType).UnLockTableII(inValue) - Return retVal.UnLockTableIIR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetOriginTabRecordII(ByVal request As OPENcontrol.GetOriginTabRecordIIRequest) As OPENcontrol.GetOriginTabRecordIIResponse Implements OPENcontrol.OPENcontrolPortType.GetOriginTabRecordII - Return MyBase.Channel.GetOriginTabRecordII(request) - End Function - - Public Function GetOriginTabRecordII(ByVal GetOriginTabRecordII1 As OPENcontrol.GetOriginTabRecordII) As OPENcontrol.GetOriginTabRecordIIR - Dim inValue As OPENcontrol.GetOriginTabRecordIIRequest = New OPENcontrol.GetOriginTabRecordIIRequest() - inValue.GetOriginTabRecordII = GetOriginTabRecordII1 - Dim retVal As OPENcontrol.GetOriginTabRecordIIResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetOriginTabRecordII(inValue) - Return retVal.GetOriginTabRecordIIR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetOriginTabRecordII(ByVal request As OPENcontrol.SetOriginTabRecordIIRequest) As OPENcontrol.SetOriginTabRecordIIResponse Implements OPENcontrol.OPENcontrolPortType.SetOriginTabRecordII - Return MyBase.Channel.SetOriginTabRecordII(request) - End Function - - Public Function SetOriginTabRecordII(ByVal SetOriginTabRecordII1 As OPENcontrol.SetOriginTabRecordII) As OPENcontrol.SetOriginTabRecordIIR - Dim inValue As OPENcontrol.SetOriginTabRecordIIRequest = New OPENcontrol.SetOriginTabRecordIIRequest() - inValue.SetOriginTabRecordII = SetOriginTabRecordII1 - Dim retVal As OPENcontrol.SetOriginTabRecordIIResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetOriginTabRecordII(inValue) - Return retVal.SetOriginTabRecordIIR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetToolTabRecordII(ByVal request As OPENcontrol.GetToolTabRecordIIRequest) As OPENcontrol.GetToolTabRecordIIResponse Implements OPENcontrol.OPENcontrolPortType.GetToolTabRecordII - Return MyBase.Channel.GetToolTabRecordII(request) - End Function - - Public Function GetToolTabRecordII(ByVal GetToolTabRecordII1 As OPENcontrol.GetToolTabRecordII) As OPENcontrol.GetToolTabRecordIIR - Dim inValue As OPENcontrol.GetToolTabRecordIIRequest = New OPENcontrol.GetToolTabRecordIIRequest() - inValue.GetToolTabRecordII = GetToolTabRecordII1 - Dim retVal As OPENcontrol.GetToolTabRecordIIResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetToolTabRecordII(inValue) - Return retVal.GetToolTabRecordIIR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetToolTabRecordII(ByVal request As OPENcontrol.SetToolTabRecordIIRequest) As OPENcontrol.SetToolTabRecordIIResponse Implements OPENcontrol.OPENcontrolPortType.SetToolTabRecordII - Return MyBase.Channel.SetToolTabRecordII(request) - End Function - - Public Function SetToolTabRecordII(ByVal SetToolTabRecordII1 As OPENcontrol.SetToolTabRecordII) As OPENcontrol.SetToolTabRecordIIR - Dim inValue As OPENcontrol.SetToolTabRecordIIRequest = New OPENcontrol.SetToolTabRecordIIRequest() - inValue.SetToolTabRecordII = SetToolTabRecordII1 - Dim retVal As OPENcontrol.SetToolTabRecordIIResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetToolTabRecordII(inValue) - Return retVal.SetToolTabRecordIIR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetOffsetTabRecordII(ByVal request As OPENcontrol.GetOffsetTabRecordIIRequest) As OPENcontrol.GetOffsetTabRecordIIResponse Implements OPENcontrol.OPENcontrolPortType.GetOffsetTabRecordII - Return MyBase.Channel.GetOffsetTabRecordII(request) - End Function - - Public Function GetOffsetTabRecordII(ByVal GetOffsetTabRecordII1 As OPENcontrol.GetOffsetTabRecordII) As OPENcontrol.GetOffsetTabRecordIIR - Dim inValue As OPENcontrol.GetOffsetTabRecordIIRequest = New OPENcontrol.GetOffsetTabRecordIIRequest() - inValue.GetOffsetTabRecordII = GetOffsetTabRecordII1 - Dim retVal As OPENcontrol.GetOffsetTabRecordIIResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetOffsetTabRecordII(inValue) - Return retVal.GetOffsetTabRecordIIR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetOffsetTabRecordII(ByVal request As OPENcontrol.SetOffsetTabRecordIIRequest) As OPENcontrol.SetOffsetTabRecordIIResponse Implements OPENcontrol.OPENcontrolPortType.SetOffsetTabRecordII - Return MyBase.Channel.SetOffsetTabRecordII(request) - End Function - - Public Function SetOffsetTabRecordII(ByVal SetOffsetTabRecordII1 As OPENcontrol.SetOffsetTabRecordII) As OPENcontrol.SetOffsetTabRecordIIR - Dim inValue As OPENcontrol.SetOffsetTabRecordIIRequest = New OPENcontrol.SetOffsetTabRecordIIRequest() - inValue.SetOffsetTabRecordII = SetOffsetTabRecordII1 - Dim retVal As OPENcontrol.SetOffsetTabRecordIIResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetOffsetTabRecordII(inValue) - Return retVal.SetOffsetTabRecordIIR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetUserTabRecordII(ByVal request As OPENcontrol.GetUserTabRecordIIRequest) As OPENcontrol.GetUserTabRecordIIResponse Implements OPENcontrol.OPENcontrolPortType.GetUserTabRecordII - Return MyBase.Channel.GetUserTabRecordII(request) - End Function - - Public Function GetUserTabRecordII(ByVal GetUserTabRecordII1 As OPENcontrol.GetUserTabRecordII) As OPENcontrol.GetUserTabRecordIIR - Dim inValue As OPENcontrol.GetUserTabRecordIIRequest = New OPENcontrol.GetUserTabRecordIIRequest() - inValue.GetUserTabRecordII = GetUserTabRecordII1 - Dim retVal As OPENcontrol.GetUserTabRecordIIResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetUserTabRecordII(inValue) - Return retVal.GetUserTabRecordIIR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetUserTabRecordII(ByVal request As OPENcontrol.SetUserTabRecordIIRequest) As OPENcontrol.SetUserTabRecordIIResponse Implements OPENcontrol.OPENcontrolPortType.SetUserTabRecordII - Return MyBase.Channel.SetUserTabRecordII(request) - End Function - - Public Function SetUserTabRecordII(ByVal SetUserTabRecordII1 As OPENcontrol.SetUserTabRecordII) As OPENcontrol.SetUserTabRecordIIR - Dim inValue As OPENcontrol.SetUserTabRecordIIRequest = New OPENcontrol.SetUserTabRecordIIRequest() - inValue.SetUserTabRecordII = SetUserTabRecordII1 - Dim retVal As OPENcontrol.SetUserTabRecordIIResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetUserTabRecordII(inValue) - Return retVal.SetUserTabRecordIIR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SaveTables(ByVal request As OPENcontrol.SaveTablesRequest) As OPENcontrol.SaveTablesResponse Implements OPENcontrol.OPENcontrolPortType.SaveTables - Return MyBase.Channel.SaveTables(request) - End Function - - Public Function SaveTables(ByVal SaveTables1 As OPENcontrol.SaveTables) As OPENcontrol.SaveTablesR - Dim inValue As OPENcontrol.SaveTablesRequest = New OPENcontrol.SaveTablesRequest() - inValue.SaveTables = SaveTables1 - Dim retVal As OPENcontrol.SaveTablesResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SaveTables(inValue) - Return retVal.SaveTablesR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_RestoreSingleTable(ByVal request As OPENcontrol.RestoreSingleTableRequest) As OPENcontrol.RestoreSingleTableResponse Implements OPENcontrol.OPENcontrolPortType.RestoreSingleTable - Return MyBase.Channel.RestoreSingleTable(request) - End Function - - Public Function RestoreSingleTable(ByVal RestoreSingleTable1 As OPENcontrol.RestoreSingleTable) As OPENcontrol.RestoreSingleTableR - Dim inValue As OPENcontrol.RestoreSingleTableRequest = New OPENcontrol.RestoreSingleTableRequest() - inValue.RestoreSingleTable = RestoreSingleTable1 - Dim retVal As OPENcontrol.RestoreSingleTableResponse = CType(Me,OPENcontrol.OPENcontrolPortType).RestoreSingleTable(inValue) - Return retVal.RestoreSingleTableR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SaveSingleTable(ByVal request As OPENcontrol.SaveSingleTableRequest) As OPENcontrol.SaveSingleTableResponse Implements OPENcontrol.OPENcontrolPortType.SaveSingleTable - Return MyBase.Channel.SaveSingleTable(request) - End Function - - Public Function SaveSingleTable(ByVal SaveSingleTable1 As OPENcontrol.SaveSingleTable) As OPENcontrol.SaveSingleTableR - Dim inValue As OPENcontrol.SaveSingleTableRequest = New OPENcontrol.SaveSingleTableRequest() - inValue.SaveSingleTable = SaveSingleTable1 - Dim retVal As OPENcontrol.SaveSingleTableResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SaveSingleTable(inValue) - Return retVal.SaveSingleTableR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SaveBackupMemory(ByVal request As OPENcontrol.SaveBackupMemoryRequest) As OPENcontrol.SaveBackupMemoryResponse Implements OPENcontrol.OPENcontrolPortType.SaveBackupMemory - Return MyBase.Channel.SaveBackupMemory(request) - End Function - - Public Function SaveBackupMemory(ByVal SaveBackupMemory1 As OPENcontrol.SaveBackupMemory) As OPENcontrol.SaveBackupMemoryR - Dim inValue As OPENcontrol.SaveBackupMemoryRequest = New OPENcontrol.SaveBackupMemoryRequest() - inValue.SaveBackupMemory = SaveBackupMemory1 - Dim retVal As OPENcontrol.SaveBackupMemoryResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SaveBackupMemory(inValue) - Return retVal.SaveBackupMemoryR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_RestoreBackupMemory(ByVal request As OPENcontrol.RestoreBackupMemoryRequest) As OPENcontrol.RestoreBackupMemoryResponse Implements OPENcontrol.OPENcontrolPortType.RestoreBackupMemory - Return MyBase.Channel.RestoreBackupMemory(request) - End Function - - Public Function RestoreBackupMemory(ByVal RestoreBackupMemory1 As OPENcontrol.RestoreBackupMemory) As OPENcontrol.RestoreBackupMemoryR - Dim inValue As OPENcontrol.RestoreBackupMemoryRequest = New OPENcontrol.RestoreBackupMemoryRequest() - inValue.RestoreBackupMemory = RestoreBackupMemory1 - Dim retVal As OPENcontrol.RestoreBackupMemoryResponse = CType(Me,OPENcontrol.OPENcontrolPortType).RestoreBackupMemory(inValue) - Return retVal.RestoreBackupMemoryR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_Cycle(ByVal request As OPENcontrol.CycleRequest) As OPENcontrol.CycleResponse Implements OPENcontrol.OPENcontrolPortType.Cycle - Return MyBase.Channel.Cycle(request) - End Function - - Public Function Cycle(ByVal Cycle1 As OPENcontrol.Cycle) As OPENcontrol.CycleR - Dim inValue As OPENcontrol.CycleRequest = New OPENcontrol.CycleRequest() - inValue.Cycle = Cycle1 - Dim retVal As OPENcontrol.CycleResponse = CType(Me,OPENcontrol.OPENcontrolPortType).Cycle(inValue) - Return retVal.CycleR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SyncroCycle(ByVal request As OPENcontrol.SyncroCycleRequest) As OPENcontrol.SyncroCycleResponse Implements OPENcontrol.OPENcontrolPortType.SyncroCycle - Return MyBase.Channel.SyncroCycle(request) - End Function - - Public Function SyncroCycle(ByVal SyncroCycle1 As OPENcontrol.SyncroCycle) As OPENcontrol.SyncroCycleR - Dim inValue As OPENcontrol.SyncroCycleRequest = New OPENcontrol.SyncroCycleRequest() - inValue.SyncroCycle = SyncroCycle1 - Dim retVal As OPENcontrol.SyncroCycleResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SyncroCycle(inValue) - Return retVal.SyncroCycleR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_Reset(ByVal request As OPENcontrol.ResetRequest) As OPENcontrol.ResetResponse Implements OPENcontrol.OPENcontrolPortType.Reset - Return MyBase.Channel.Reset(request) - End Function - - Public Function Reset(ByVal Reset1 As OPENcontrol.Reset) As OPENcontrol.ResetR - Dim inValue As OPENcontrol.ResetRequest = New OPENcontrol.ResetRequest() - inValue.Reset = Reset1 - Dim retVal As OPENcontrol.ResetResponse = CType(Me,OPENcontrol.OPENcontrolPortType).Reset(inValue) - Return retVal.ResetR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_Hold(ByVal request As OPENcontrol.HoldRequest) As OPENcontrol.HoldResponse Implements OPENcontrol.OPENcontrolPortType.Hold - Return MyBase.Channel.Hold(request) - End Function - - Public Function Hold(ByVal Hold1 As OPENcontrol.Hold) As OPENcontrol.HoldR - Dim inValue As OPENcontrol.HoldRequest = New OPENcontrol.HoldRequest() - inValue.Hold = Hold1 - Dim retVal As OPENcontrol.HoldResponse = CType(Me,OPENcontrol.OPENcontrolPortType).Hold(inValue) - Return retVal.HoldR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetFeedManOver(ByVal request As OPENcontrol.SetFeedManOverRequest) As OPENcontrol.SetFeedManOverResponse Implements OPENcontrol.OPENcontrolPortType.SetFeedManOver - Return MyBase.Channel.SetFeedManOver(request) - End Function - - Public Function SetFeedManOver(ByVal SetFeedManOver1 As OPENcontrol.SetFeedManOver) As OPENcontrol.SetFeedManOverR - Dim inValue As OPENcontrol.SetFeedManOverRequest = New OPENcontrol.SetFeedManOverRequest() - inValue.SetFeedManOver = SetFeedManOver1 - Dim retVal As OPENcontrol.SetFeedManOverResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetFeedManOver(inValue) - Return retVal.SetFeedManOverR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetFeedRateOver(ByVal request As OPENcontrol.SetFeedRateOverRequest) As OPENcontrol.SetFeedRateOverResponse Implements OPENcontrol.OPENcontrolPortType.SetFeedRateOver - Return MyBase.Channel.SetFeedRateOver(request) - End Function - - Public Function SetFeedRateOver(ByVal SetFeedRateOver1 As OPENcontrol.SetFeedRateOver) As OPENcontrol.SetFeedRateOverR - Dim inValue As OPENcontrol.SetFeedRateOverRequest = New OPENcontrol.SetFeedRateOverRequest() - inValue.SetFeedRateOver = SetFeedRateOver1 - Dim retVal As OPENcontrol.SetFeedRateOverResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetFeedRateOver(inValue) - Return retVal.SetFeedRateOverR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetFeedRapidOver(ByVal request As OPENcontrol.SetFeedRapidOverRequest) As OPENcontrol.SetFeedRapidOverResponse Implements OPENcontrol.OPENcontrolPortType.SetFeedRapidOver - Return MyBase.Channel.SetFeedRapidOver(request) - End Function - - Public Function SetFeedRapidOver(ByVal SetFeedRapidOver1 As OPENcontrol.SetFeedRapidOver) As OPENcontrol.SetFeedRapidOverR - Dim inValue As OPENcontrol.SetFeedRapidOverRequest = New OPENcontrol.SetFeedRapidOverRequest() - inValue.SetFeedRapidOver = SetFeedRapidOver1 - Dim retVal As OPENcontrol.SetFeedRapidOverResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetFeedRapidOver(inValue) - Return retVal.SetFeedRapidOverR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetSpeedRateOver(ByVal request As OPENcontrol.SetSpeedRateOverRequest) As OPENcontrol.SetSpeedRateOverResponse Implements OPENcontrol.OPENcontrolPortType.SetSpeedRateOver - Return MyBase.Channel.SetSpeedRateOver(request) - End Function - - Public Function SetSpeedRateOver(ByVal SetSpeedRateOver1 As OPENcontrol.SetSpeedRateOver) As OPENcontrol.SetSpeedRateOverR - Dim inValue As OPENcontrol.SetSpeedRateOverRequest = New OPENcontrol.SetSpeedRateOverRequest() - inValue.SetSpeedRateOver = SetSpeedRateOver1 - Dim retVal As OPENcontrol.SetSpeedRateOverResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetSpeedRateOver(inValue) - Return retVal.SetSpeedRateOverR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetManMovDirection(ByVal request As OPENcontrol.SetManMovDirectionRequest) As OPENcontrol.SetManMovDirectionResponse Implements OPENcontrol.OPENcontrolPortType.SetManMovDirection - Return MyBase.Channel.SetManMovDirection(request) - End Function - - Public Function SetManMovDirection(ByVal SetManMovDirection1 As OPENcontrol.SetManMovDirection) As OPENcontrol.SetManMovDirectionR - Dim inValue As OPENcontrol.SetManMovDirectionRequest = New OPENcontrol.SetManMovDirectionRequest() - inValue.SetManMovDirection = SetManMovDirection1 - Dim retVal As OPENcontrol.SetManMovDirectionResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetManMovDirection(inValue) - Return retVal.SetManMovDirectionR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetVarJOG(ByVal request As OPENcontrol.GetVarJOGRequest) As OPENcontrol.GetVarJOGResponse Implements OPENcontrol.OPENcontrolPortType.GetVarJOG - Return MyBase.Channel.GetVarJOG(request) - End Function - - Public Function GetVarJOG(ByVal GetVarJOG1 As OPENcontrol.GetVarJOG) As OPENcontrol.GetVarJOGR - Dim inValue As OPENcontrol.GetVarJOGRequest = New OPENcontrol.GetVarJOGRequest() - inValue.GetVarJOG = GetVarJOG1 - Dim retVal As OPENcontrol.GetVarJOGResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetVarJOG(inValue) - Return retVal.GetVarJOGR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetVarJOG(ByVal request As OPENcontrol.SetVarJOGRequest) As OPENcontrol.SetVarJOGResponse Implements OPENcontrol.OPENcontrolPortType.SetVarJOG - Return MyBase.Channel.SetVarJOG(request) - End Function - - Public Function SetVarJOG(ByVal SetVarJOG1 As OPENcontrol.SetVarJOG) As OPENcontrol.SetVarJOGR - Dim inValue As OPENcontrol.SetVarJOGRequest = New OPENcontrol.SetVarJOGRequest() - inValue.SetVarJOG = SetVarJOG1 - Dim retVal As OPENcontrol.SetVarJOGResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetVarJOG(inValue) - Return retVal.SetVarJOGR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetVarUAS(ByVal request As OPENcontrol.SetVarUASRequest) As OPENcontrol.SetVarUASResponse Implements OPENcontrol.OPENcontrolPortType.SetVarUAS - Return MyBase.Channel.SetVarUAS(request) - End Function - - Public Function SetVarUAS(ByVal SetVarUAS1 As OPENcontrol.SetVarUAS) As OPENcontrol.SetVarUASR - Dim inValue As OPENcontrol.SetVarUASRequest = New OPENcontrol.SetVarUASRequest() - inValue.SetVarUAS = SetVarUAS1 - Dim retVal As OPENcontrol.SetVarUASResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetVarUAS(inValue) - Return retVal.SetVarUASR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetVarRCM(ByVal request As OPENcontrol.GetVarRCMRequest) As OPENcontrol.GetVarRCMResponse Implements OPENcontrol.OPENcontrolPortType.GetVarRCM - Return MyBase.Channel.GetVarRCM(request) - End Function - - Public Function GetVarRCM(ByVal GetVarRCM1 As OPENcontrol.GetVarRCM) As OPENcontrol.GetVarRCMR - Dim inValue As OPENcontrol.GetVarRCMRequest = New OPENcontrol.GetVarRCMRequest() - inValue.GetVarRCM = GetVarRCM1 - Dim retVal As OPENcontrol.GetVarRCMResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetVarRCM(inValue) - Return retVal.GetVarRCMR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetVarRCM(ByVal request As OPENcontrol.SetVarRCMRequest) As OPENcontrol.SetVarRCMResponse Implements OPENcontrol.OPENcontrolPortType.SetVarRCM - Return MyBase.Channel.SetVarRCM(request) - End Function - - Public Function SetVarRCM(ByVal SetVarRCM1 As OPENcontrol.SetVarRCM) As OPENcontrol.SetVarRCMR - Dim inValue As OPENcontrol.SetVarRCMRequest = New OPENcontrol.SetVarRCMRequest() - inValue.SetVarRCM = SetVarRCM1 - Dim retVal As OPENcontrol.SetVarRCMResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetVarRCM(inValue) - Return retVal.SetVarRCMR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetProcVarWord(ByVal request As OPENcontrol.GetProcVarWordRequest) As OPENcontrol.GetProcVarWordResponse Implements OPENcontrol.OPENcontrolPortType.GetProcVarWord - Return MyBase.Channel.GetProcVarWord(request) - End Function - - Public Function GetProcVarWord(ByVal GetProcVarWord1 As OPENcontrol.GetProcVarWord) As OPENcontrol.GetProcVarWordR - Dim inValue As OPENcontrol.GetProcVarWordRequest = New OPENcontrol.GetProcVarWordRequest() - inValue.GetProcVarWord = GetProcVarWord1 - Dim retVal As OPENcontrol.GetProcVarWordResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetProcVarWord(inValue) - Return retVal.GetProcVarWordR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetProcVarWord(ByVal request As OPENcontrol.SetProcVarWordRequest) As OPENcontrol.SetProcVarWordResponse Implements OPENcontrol.OPENcontrolPortType.SetProcVarWord - Return MyBase.Channel.SetProcVarWord(request) - End Function - - Public Function SetProcVarWord(ByVal SetProcVarWord1 As OPENcontrol.SetProcVarWord) As OPENcontrol.SetProcVarWordR - Dim inValue As OPENcontrol.SetProcVarWordRequest = New OPENcontrol.SetProcVarWordRequest() - inValue.SetProcVarWord = SetProcVarWord1 - Dim retVal As OPENcontrol.SetProcVarWordResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetProcVarWord(inValue) - Return retVal.SetProcVarWordR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetProcVarDouble(ByVal request As OPENcontrol.GetProcVarDoubleRequest) As OPENcontrol.GetProcVarDoubleResponse Implements OPENcontrol.OPENcontrolPortType.GetProcVarDouble - Return MyBase.Channel.GetProcVarDouble(request) - End Function - - Public Function GetProcVarDouble(ByVal GetProcVarDouble1 As OPENcontrol.GetProcVarDouble) As OPENcontrol.GetProcVarDoubleR - Dim inValue As OPENcontrol.GetProcVarDoubleRequest = New OPENcontrol.GetProcVarDoubleRequest() - inValue.GetProcVarDouble = GetProcVarDouble1 - Dim retVal As OPENcontrol.GetProcVarDoubleResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetProcVarDouble(inValue) - Return retVal.GetProcVarDoubleR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetProcVarDouble(ByVal request As OPENcontrol.SetProcVarDoubleRequest) As OPENcontrol.SetProcVarDoubleResponse Implements OPENcontrol.OPENcontrolPortType.SetProcVarDouble - Return MyBase.Channel.SetProcVarDouble(request) - End Function - - Public Function SetProcVarDouble(ByVal SetProcVarDouble1 As OPENcontrol.SetProcVarDouble) As OPENcontrol.SetProcVarDoubleR - Dim inValue As OPENcontrol.SetProcVarDoubleRequest = New OPENcontrol.SetProcVarDoubleRequest() - inValue.SetProcVarDouble = SetProcVarDouble1 - Dim retVal As OPENcontrol.SetProcVarDoubleResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetProcVarDouble(inValue) - Return retVal.SetProcVarDoubleR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetMdiString(ByVal request As OPENcontrol.SetMdiStringRequest) As OPENcontrol.SetMdiStringResponse Implements OPENcontrol.OPENcontrolPortType.SetMdiString - Return MyBase.Channel.SetMdiString(request) - End Function - - Public Function SetMdiString(ByVal SetMdiString1 As OPENcontrol.SetMdiString) As OPENcontrol.SetMdiStringR - Dim inValue As OPENcontrol.SetMdiStringRequest = New OPENcontrol.SetMdiStringRequest() - inValue.SetMdiString = SetMdiString1 - Dim retVal As OPENcontrol.SetMdiStringResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetMdiString(inValue) - Return retVal.SetMdiStringR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetProcessMode(ByVal request As OPENcontrol.SetProcessModeRequest) As OPENcontrol.SetProcessModeResponse Implements OPENcontrol.OPENcontrolPortType.SetProcessMode - Return MyBase.Channel.SetProcessMode(request) - End Function - - Public Function SetProcessMode(ByVal SetProcessMode1 As OPENcontrol.SetProcessMode) As OPENcontrol.SetProcessModeR - Dim inValue As OPENcontrol.SetProcessModeRequest = New OPENcontrol.SetProcessModeRequest() - inValue.SetProcessMode = SetProcessMode1 - Dim retVal As OPENcontrol.SetProcessModeResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetProcessMode(inValue) - Return retVal.SetProcessModeR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SelectProcess(ByVal request As OPENcontrol.SelectProcessRequest) As OPENcontrol.SelectProcessResponse Implements OPENcontrol.OPENcontrolPortType.SelectProcess - Return MyBase.Channel.SelectProcess(request) - End Function - - Public Function SelectProcess(ByVal SelectProcess1 As OPENcontrol.SelectProcess) As OPENcontrol.SelectProcessR - Dim inValue As OPENcontrol.SelectProcessRequest = New OPENcontrol.SelectProcessRequest() - inValue.SelectProcess = SelectProcess1 - Dim retVal As OPENcontrol.SelectProcessResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SelectProcess(inValue) - Return retVal.SelectProcessR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetSelectedProcess(ByVal request As OPENcontrol.GetSelectedProcessRequest) As OPENcontrol.GetSelectedProcessResponse Implements OPENcontrol.OPENcontrolPortType.GetSelectedProcess - Return MyBase.Channel.GetSelectedProcess(request) - End Function - - Public Function GetSelectedProcess(ByVal GetSelectedProcess1 As OPENcontrol.GetSelectedProcess) As OPENcontrol.GetSelectedProcessR - Dim inValue As OPENcontrol.GetSelectedProcessRequest = New OPENcontrol.GetSelectedProcessRequest() - inValue.GetSelectedProcess = GetSelectedProcess1 - Dim retVal As OPENcontrol.GetSelectedProcessResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetSelectedProcess(inValue) - Return retVal.GetSelectedProcessR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SelectProcAxis(ByVal request As OPENcontrol.SelectProcAxisRequest) As OPENcontrol.SelectProcAxisResponse Implements OPENcontrol.OPENcontrolPortType.SelectProcAxis - Return MyBase.Channel.SelectProcAxis(request) - End Function - - Public Function SelectProcAxis(ByVal SelectProcAxis1 As OPENcontrol.SelectProcAxis) As OPENcontrol.SelectProcAxisR - Dim inValue As OPENcontrol.SelectProcAxisRequest = New OPENcontrol.SelectProcAxisRequest() - inValue.SelectProcAxis = SelectProcAxis1 - Dim retVal As OPENcontrol.SelectProcAxisResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SelectProcAxis(inValue) - Return retVal.SelectProcAxisR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SelectPartProgram(ByVal request As OPENcontrol.SelectPartProgramRequest) As OPENcontrol.SelectPartProgramResponse Implements OPENcontrol.OPENcontrolPortType.SelectPartProgram - Return MyBase.Channel.SelectPartProgram(request) - End Function - - Public Function SelectPartProgram(ByVal SelectPartProgram1 As OPENcontrol.SelectPartProgram) As OPENcontrol.SelectPartProgramR - Dim inValue As OPENcontrol.SelectPartProgramRequest = New OPENcontrol.SelectPartProgramRequest() - inValue.SelectPartProgram = SelectPartProgram1 - Dim retVal As OPENcontrol.SelectPartProgramResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SelectPartProgram(inValue) - Return retVal.SelectPartProgramR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SelectPartProgramFromDrive(ByVal request As OPENcontrol.SelectPartProgramFromDriveRequest) As OPENcontrol.SelectPartProgramFromDriveResponse Implements OPENcontrol.OPENcontrolPortType.SelectPartProgramFromDrive - Return MyBase.Channel.SelectPartProgramFromDrive(request) - End Function - - Public Function SelectPartProgramFromDrive(ByVal SelectPartProgramFromDrive1 As OPENcontrol.SelectPartProgramFromDrive) As OPENcontrol.SelectPartProgramFromDriveR - Dim inValue As OPENcontrol.SelectPartProgramFromDriveRequest = New OPENcontrol.SelectPartProgramFromDriveRequest() - inValue.SelectPartProgramFromDrive = SelectPartProgramFromDrive1 - Dim retVal As OPENcontrol.SelectPartProgramFromDriveResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SelectPartProgramFromDrive(inValue) - Return retVal.SelectPartProgramFromDriveR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetActivePartProgram(ByVal request As OPENcontrol.GetActivePartProgramRequest) As OPENcontrol.GetActivePartProgramResponse Implements OPENcontrol.OPENcontrolPortType.GetActivePartProgram - Return MyBase.Channel.GetActivePartProgram(request) - End Function - - Public Function GetActivePartProgram(ByVal GetActivePartProgram1 As OPENcontrol.GetActivePartProgram) As OPENcontrol.GetActivePartProgramR - Dim inValue As OPENcontrol.GetActivePartProgramRequest = New OPENcontrol.GetActivePartProgramRequest() - inValue.GetActivePartProgram = GetActivePartProgram1 - Dim retVal As OPENcontrol.GetActivePartProgramResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetActivePartProgram(inValue) - Return retVal.GetActivePartProgramR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetPartProgramLines(ByVal request As OPENcontrol.GetPartProgramLinesRequest) As OPENcontrol.GetPartProgramLinesResponse Implements OPENcontrol.OPENcontrolPortType.GetPartProgramLines - Return MyBase.Channel.GetPartProgramLines(request) - End Function - - Public Function GetPartProgramLines(ByVal GetPartProgramLines1 As OPENcontrol.GetPartProgramLines) As OPENcontrol.GetPartProgramLinesR - Dim inValue As OPENcontrol.GetPartProgramLinesRequest = New OPENcontrol.GetPartProgramLinesRequest() - inValue.GetPartProgramLines = GetPartProgramLines1 - Dim retVal As OPENcontrol.GetPartProgramLinesResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetPartProgramLines(inValue) - Return retVal.GetPartProgramLinesR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetAxOriginNum(ByVal request As OPENcontrol.GetAxOriginNumRequest) As OPENcontrol.GetAxOriginNumResponse Implements OPENcontrol.OPENcontrolPortType.GetAxOriginNum - Return MyBase.Channel.GetAxOriginNum(request) - End Function - - Public Function GetAxOriginNum(ByVal GetAxOriginNum1 As OPENcontrol.GetAxOriginNum) As OPENcontrol.GetAxOriginNumR - Dim inValue As OPENcontrol.GetAxOriginNumRequest = New OPENcontrol.GetAxOriginNumRequest() - inValue.GetAxOriginNum = GetAxOriginNum1 - Dim retVal As OPENcontrol.GetAxOriginNumResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetAxOriginNum(inValue) - Return retVal.GetAxOriginNumR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetAxesPosition(ByVal request As OPENcontrol.GetAxesPositionRequest) As OPENcontrol.GetAxesPositionResponse Implements OPENcontrol.OPENcontrolPortType.GetAxesPosition - Return MyBase.Channel.GetAxesPosition(request) - End Function - - Public Function GetAxesPosition(ByVal GetAxesPosition1 As OPENcontrol.GetAxesPosition) As OPENcontrol.GetAxesPositionR - Dim inValue As OPENcontrol.GetAxesPositionRequest = New OPENcontrol.GetAxesPositionRequest() - inValue.GetAxesPosition = GetAxesPosition1 - Dim retVal As OPENcontrol.GetAxesPositionResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetAxesPosition(inValue) - Return retVal.GetAxesPositionR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetNcInfo1(ByVal request As OPENcontrol.GetNcInfo1Request) As OPENcontrol.GetNcInfo1Response Implements OPENcontrol.OPENcontrolPortType.GetNcInfo1 - Return MyBase.Channel.GetNcInfo1(request) - End Function - - Public Function GetNcInfo1(ByVal GetNcInfo11 As OPENcontrol.GetNcInfo1) As OPENcontrol.GetNcInfo1R - Dim inValue As OPENcontrol.GetNcInfo1Request = New OPENcontrol.GetNcInfo1Request() - inValue.GetNcInfo1 = GetNcInfo11 - Dim retVal As OPENcontrol.GetNcInfo1Response = CType(Me,OPENcontrol.OPENcontrolPortType).GetNcInfo1(inValue) - Return retVal.GetNcInfo1R - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetNcInfo2(ByVal request As OPENcontrol.GetNcInfo2Request) As OPENcontrol.GetNcInfo2Response Implements OPENcontrol.OPENcontrolPortType.GetNcInfo2 - Return MyBase.Channel.GetNcInfo2(request) - End Function - - Public Function GetNcInfo2(ByVal GetNcInfo21 As OPENcontrol.GetNcInfo2) As OPENcontrol.GetNcInfo2R - Dim inValue As OPENcontrol.GetNcInfo2Request = New OPENcontrol.GetNcInfo2Request() - inValue.GetNcInfo2 = GetNcInfo21 - Dim retVal As OPENcontrol.GetNcInfo2Response = CType(Me,OPENcontrol.OPENcontrolPortType).GetNcInfo2(inValue) - Return retVal.GetNcInfo2R - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetToolNames(ByVal request As OPENcontrol.GetToolNamesRequest) As OPENcontrol.GetToolNamesResponse Implements OPENcontrol.OPENcontrolPortType.GetToolNames - Return MyBase.Channel.GetToolNames(request) - End Function - - Public Function GetToolNames(ByVal GetToolNames1 As OPENcontrol.GetToolNames) As OPENcontrol.GetToolNamesR - Dim inValue As OPENcontrol.GetToolNamesRequest = New OPENcontrol.GetToolNamesRequest() - inValue.GetToolNames = GetToolNames1 - Dim retVal As OPENcontrol.GetToolNamesResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetToolNames(inValue) - Return retVal.GetToolNamesR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetProcessStatus(ByVal request As OPENcontrol.GetProcessStatusRequest) As OPENcontrol.GetProcessStatusResponse Implements OPENcontrol.OPENcontrolPortType.GetProcessStatus - Return MyBase.Channel.GetProcessStatus(request) - End Function - - Public Function GetProcessStatus(ByVal GetProcessStatus1 As OPENcontrol.GetProcessStatus) As OPENcontrol.GetProcessStatusR - Dim inValue As OPENcontrol.GetProcessStatusRequest = New OPENcontrol.GetProcessStatusRequest() - inValue.GetProcessStatus = GetProcessStatus1 - Dim retVal As OPENcontrol.GetProcessStatusResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetProcessStatus(inValue) - Return retVal.GetProcessStatusR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetBlkNum(ByVal request As OPENcontrol.GetBlkNumRequest) As OPENcontrol.GetBlkNumResponse Implements OPENcontrol.OPENcontrolPortType.GetBlkNum - Return MyBase.Channel.GetBlkNum(request) - End Function - - Public Function GetBlkNum(ByVal GetBlkNum1 As OPENcontrol.GetBlkNum) As OPENcontrol.GetBlkNumR - Dim inValue As OPENcontrol.GetBlkNumRequest = New OPENcontrol.GetBlkNumRequest() - inValue.GetBlkNum = GetBlkNum1 - Dim retVal As OPENcontrol.GetBlkNumResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetBlkNum(inValue) - Return retVal.GetBlkNumR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadErrMsg(ByVal request As OPENcontrol.ReadErrMsgRequest) As OPENcontrol.ReadErrMsgResponse Implements OPENcontrol.OPENcontrolPortType.ReadErrMsg - Return MyBase.Channel.ReadErrMsg(request) - End Function - - Public Function ReadErrMsg(ByVal ReadErrMsg1 As OPENcontrol.ReadErrMsg) As OPENcontrol.ReadErrMsgR - Dim inValue As OPENcontrol.ReadErrMsgRequest = New OPENcontrol.ReadErrMsgRequest() - inValue.ReadErrMsg = ReadErrMsg1 - Dim retVal As OPENcontrol.ReadErrMsgResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadErrMsg(inValue) - Return retVal.ReadErrMsgR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadPartProgramMsg(ByVal request As OPENcontrol.ReadPartProgramMsgRequest) As OPENcontrol.ReadPartProgramMsgResponse Implements OPENcontrol.OPENcontrolPortType.ReadPartProgramMsg - Return MyBase.Channel.ReadPartProgramMsg(request) - End Function - - Public Function ReadPartProgramMsg(ByVal ReadPartProgramMsg1 As OPENcontrol.ReadPartProgramMsg) As OPENcontrol.ReadPartProgramMsgR - Dim inValue As OPENcontrol.ReadPartProgramMsgRequest = New OPENcontrol.ReadPartProgramMsgRequest() - inValue.ReadPartProgramMsg = ReadPartProgramMsg1 - Dim retVal As OPENcontrol.ReadPartProgramMsgResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadPartProgramMsg(inValue) - Return retVal.ReadPartProgramMsgR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetGCode(ByVal request As OPENcontrol.GetGCodeRequest) As OPENcontrol.GetGCodeResponse Implements OPENcontrol.OPENcontrolPortType.GetGCode - Return MyBase.Channel.GetGCode(request) - End Function - - Public Function GetGCode(ByVal GetGCode1 As OPENcontrol.GetGCode) As OPENcontrol.GetGCodeR - Dim inValue As OPENcontrol.GetGCodeRequest = New OPENcontrol.GetGCodeRequest() - inValue.GetGCode = GetGCode1 - Dim retVal As OPENcontrol.GetGCodeResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetGCode(inValue) - Return retVal.GetGCodeR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetMCode(ByVal request As OPENcontrol.GetMCodeRequest) As OPENcontrol.GetMCodeResponse Implements OPENcontrol.OPENcontrolPortType.GetMCode - Return MyBase.Channel.GetMCode(request) - End Function - - Public Function GetMCode(ByVal GetMCode1 As OPENcontrol.GetMCode) As OPENcontrol.GetMCodeR - Dim inValue As OPENcontrol.GetMCodeRequest = New OPENcontrol.GetMCodeRequest() - inValue.GetMCode = GetMCode1 - Dim retVal As OPENcontrol.GetMCodeResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetMCode(inValue) - Return retVal.GetMCodeR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SkipPProgBlock(ByVal request As OPENcontrol.SkipPProgBlockRequest) As OPENcontrol.SkipPProgBlockResponse Implements OPENcontrol.OPENcontrolPortType.SkipPProgBlock - Return MyBase.Channel.SkipPProgBlock(request) - End Function - - Public Function SkipPProgBlock(ByVal SkipPProgBlock1 As OPENcontrol.SkipPProgBlock) As OPENcontrol.SkipPProgBlockR - Dim inValue As OPENcontrol.SkipPProgBlockRequest = New OPENcontrol.SkipPProgBlockRequest() - inValue.SkipPProgBlock = SkipPProgBlock1 - Dim retVal As OPENcontrol.SkipPProgBlockResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SkipPProgBlock(inValue) - Return retVal.SkipPProgBlockR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_Ese(ByVal request As OPENcontrol.EseRequest) As OPENcontrol.EseResponse Implements OPENcontrol.OPENcontrolPortType.Ese - Return MyBase.Channel.Ese(request) - End Function - - Public Function Ese(ByVal Ese1 As OPENcontrol.Ese) As OPENcontrol.EseR - Dim inValue As OPENcontrol.EseRequest = New OPENcontrol.EseRequest() - inValue.Ese = Ese1 - Dim retVal As OPENcontrol.EseResponse = CType(Me,OPENcontrol.OPENcontrolPortType).Ese(inValue) - Return retVal.EseR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_EseEx(ByVal request As OPENcontrol.EseExRequest) As OPENcontrol.EseExResponse Implements OPENcontrol.OPENcontrolPortType.EseEx - Return MyBase.Channel.EseEx(request) - End Function - - Public Function EseEx(ByVal EseEx1 As OPENcontrol.EseEx) As OPENcontrol.EseExR - Dim inValue As OPENcontrol.EseExRequest = New OPENcontrol.EseExRequest() - inValue.EseEx = EseEx1 - Dim retVal As OPENcontrol.EseExResponse = CType(Me,OPENcontrol.OPENcontrolPortType).EseEx(inValue) - Return retVal.EseExR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_Exe(ByVal request As OPENcontrol.ExeRequest) As OPENcontrol.ExeResponse Implements OPENcontrol.OPENcontrolPortType.Exe - Return MyBase.Channel.Exe(request) - End Function - - Public Function Exe(ByVal Exe1 As OPENcontrol.Exe) As OPENcontrol.ExeR - Dim inValue As OPENcontrol.ExeRequest = New OPENcontrol.ExeRequest() - inValue.Exe = Exe1 - Dim retVal As OPENcontrol.ExeResponse = CType(Me,OPENcontrol.OPENcontrolPortType).Exe(inValue) - Return retVal.ExeR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_AxesRef(ByVal request As OPENcontrol.AxesRefRequest) As OPENcontrol.AxesRefResponse Implements OPENcontrol.OPENcontrolPortType.AxesRef - Return MyBase.Channel.AxesRef(request) - End Function - - Public Function AxesRef(ByVal AxesRef1 As OPENcontrol.AxesRef) As OPENcontrol.AxesRefR - Dim inValue As OPENcontrol.AxesRefRequest = New OPENcontrol.AxesRefRequest() - inValue.AxesRef = AxesRef1 - Dim retVal As OPENcontrol.AxesRefResponse = CType(Me,OPENcontrol.OPENcontrolPortType).AxesRef(inValue) - Return retVal.AxesRefR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_DncInit(ByVal request As OPENcontrol.DncInitRequest) As OPENcontrol.DncInitResponse Implements OPENcontrol.OPENcontrolPortType.DncInit - Return MyBase.Channel.DncInit(request) - End Function - - Public Function DncInit(ByVal DncInit1 As OPENcontrol.DncInit) As OPENcontrol.DncInitR - Dim inValue As OPENcontrol.DncInitRequest = New OPENcontrol.DncInitRequest() - inValue.DncInit = DncInit1 - Dim retVal As OPENcontrol.DncInitResponse = CType(Me,OPENcontrol.OPENcontrolPortType).DncInit(inValue) - Return retVal.DncInitR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_DncData(ByVal request As OPENcontrol.DncDataRequest) As OPENcontrol.DncDataResponse Implements OPENcontrol.OPENcontrolPortType.DncData - Return MyBase.Channel.DncData(request) - End Function - - Public Function DncData(ByVal DncData1 As OPENcontrol.DncData) As OPENcontrol.DncDataR - Dim inValue As OPENcontrol.DncDataRequest = New OPENcontrol.DncDataRequest() - inValue.DncData = DncData1 - Dim retVal As OPENcontrol.DncDataResponse = CType(Me,OPENcontrol.OPENcontrolPortType).DncData(inValue) - Return retVal.DncDataR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_DncEof(ByVal request As OPENcontrol.DncEofRequest) As OPENcontrol.DncEofResponse Implements OPENcontrol.OPENcontrolPortType.DncEof - Return MyBase.Channel.DncEof(request) - End Function - - Public Function DncEof(ByVal DncEof1 As OPENcontrol.DncEof) As OPENcontrol.DncEofR - Dim inValue As OPENcontrol.DncEofRequest = New OPENcontrol.DncEofRequest() - inValue.DncEof = DncEof1 - Dim retVal As OPENcontrol.DncEofResponse = CType(Me,OPENcontrol.OPENcontrolPortType).DncEof(inValue) - Return retVal.DncEofR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_DncStop(ByVal request As OPENcontrol.DncStopRequest) As OPENcontrol.DncStopResponse Implements OPENcontrol.OPENcontrolPortType.DncStop - Return MyBase.Channel.DncStop(request) - End Function - - Public Function DncStop(ByVal DncStop1 As OPENcontrol.DncStop) As OPENcontrol.DncStopR - Dim inValue As OPENcontrol.DncStopRequest = New OPENcontrol.DncStopRequest() - inValue.DncStop = DncStop1 - Dim retVal As OPENcontrol.DncStopResponse = CType(Me,OPENcontrol.OPENcontrolPortType).DncStop(inValue) - Return retVal.DncStopR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetAxesInfo3(ByVal request As OPENcontrol.GetAxesInfo3Request) As OPENcontrol.GetAxesInfo3Response Implements OPENcontrol.OPENcontrolPortType.GetAxesInfo3 - Return MyBase.Channel.GetAxesInfo3(request) - End Function - - Public Function GetAxesInfo3(ByVal GetAxesInfo31 As OPENcontrol.GetAxesInfo3) As OPENcontrol.GetAxesInfo3R - Dim inValue As OPENcontrol.GetAxesInfo3Request = New OPENcontrol.GetAxesInfo3Request() - inValue.GetAxesInfo3 = GetAxesInfo31 - Dim retVal As OPENcontrol.GetAxesInfo3Response = CType(Me,OPENcontrol.OPENcontrolPortType).GetAxesInfo3(inValue) - Return retVal.GetAxesInfo3R - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetCodeNumber(ByVal request As OPENcontrol.GetCodeNumberRequest) As OPENcontrol.GetCodeNumberResponse Implements OPENcontrol.OPENcontrolPortType.GetCodeNumber - Return MyBase.Channel.GetCodeNumber(request) - End Function - - Public Function GetCodeNumber(ByVal GetCodeNumber1 As OPENcontrol.GetCodeNumber) As OPENcontrol.GetCodeNumberR - Dim inValue As OPENcontrol.GetCodeNumberRequest = New OPENcontrol.GetCodeNumberRequest() - inValue.GetCodeNumber = GetCodeNumber1 - Dim retVal As OPENcontrol.GetCodeNumberResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetCodeNumber(inValue) - Return retVal.GetCodeNumberR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetOptions(ByVal request As OPENcontrol.GetOptionsRequest) As OPENcontrol.GetOptionsResponse Implements OPENcontrol.OPENcontrolPortType.GetOptions - Return MyBase.Channel.GetOptions(request) - End Function - - Public Function GetOptions(ByVal GetOptions1 As OPENcontrol.GetOptions) As OPENcontrol.GetOptionsR - Dim inValue As OPENcontrol.GetOptionsRequest = New OPENcontrol.GetOptionsRequest() - inValue.GetOptions = GetOptions1 - Dim retVal As OPENcontrol.GetOptionsResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetOptions(inValue) - Return retVal.GetOptionsR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetDateTime(ByVal request As OPENcontrol.GetDateTimeRequest) As OPENcontrol.GetDateTimeResponse Implements OPENcontrol.OPENcontrolPortType.GetDateTime - Return MyBase.Channel.GetDateTime(request) - End Function - - Public Function GetDateTime(ByVal GetDateTime1 As OPENcontrol.GetDateTime) As OPENcontrol.GetDateTimeR - Dim inValue As OPENcontrol.GetDateTimeRequest = New OPENcontrol.GetDateTimeRequest() - inValue.GetDateTime = GetDateTime1 - Dim retVal As OPENcontrol.GetDateTimeResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetDateTime(inValue) - Return retVal.GetDateTimeR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetDateTime(ByVal request As OPENcontrol.SetDateTimeRequest) As OPENcontrol.SetDateTimeResponse Implements OPENcontrol.OPENcontrolPortType.SetDateTime - Return MyBase.Channel.SetDateTime(request) - End Function - - Public Function SetDateTime(ByVal SetDateTime1 As OPENcontrol.SetDateTime) As OPENcontrol.SetDateTimeR - Dim inValue As OPENcontrol.SetDateTimeRequest = New OPENcontrol.SetDateTimeRequest() - inValue.SetDateTime = SetDateTime1 - Dim retVal As OPENcontrol.SetDateTimeResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetDateTime(inValue) - Return retVal.SetDateTimeR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetSerialNumber(ByVal request As OPENcontrol.GetSerialNumberRequest) As OPENcontrol.GetSerialNumberResponse Implements OPENcontrol.OPENcontrolPortType.GetSerialNumber - Return MyBase.Channel.GetSerialNumber(request) - End Function - - Public Function GetSerialNumber(ByVal GetSerialNumber1 As OPENcontrol.GetSerialNumber) As OPENcontrol.GetSerialNumberR - Dim inValue As OPENcontrol.GetSerialNumberRequest = New OPENcontrol.GetSerialNumberRequest() - inValue.GetSerialNumber = GetSerialNumber1 - Dim retVal As OPENcontrol.GetSerialNumberResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetSerialNumber(inValue) - Return retVal.GetSerialNumberR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_PutFile(ByVal request As OPENcontrol.PutFileRequest) As OPENcontrol.PutFileResponse Implements OPENcontrol.OPENcontrolPortType.PutFile - Return MyBase.Channel.PutFile(request) - End Function - - Public Function PutFile(ByVal PutFile1 As OPENcontrol.PutFile) As OPENcontrol.PutFileR - Dim inValue As OPENcontrol.PutFileRequest = New OPENcontrol.PutFileRequest() - inValue.PutFile = PutFile1 - Dim retVal As OPENcontrol.PutFileResponse = CType(Me,OPENcontrol.OPENcontrolPortType).PutFile(inValue) - Return retVal.PutFileR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetFile(ByVal request As OPENcontrol.GetFileRequest) As OPENcontrol.GetFileResponse Implements OPENcontrol.OPENcontrolPortType.GetFile - Return MyBase.Channel.GetFile(request) - End Function - - Public Function GetFile(ByVal GetFile1 As OPENcontrol.GetFile) As OPENcontrol.GetFileR - Dim inValue As OPENcontrol.GetFileRequest = New OPENcontrol.GetFileRequest() - inValue.GetFile = GetFile1 - Dim retVal As OPENcontrol.GetFileResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetFile(inValue) - Return retVal.GetFileR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_PutBinaryFile(ByVal request As OPENcontrol.PutBinaryFileRequest) As OPENcontrol.PutBinaryFileResponse Implements OPENcontrol.OPENcontrolPortType.PutBinaryFile - Return MyBase.Channel.PutBinaryFile(request) - End Function - - Public Function PutBinaryFile(ByVal PutBinaryFile1 As OPENcontrol.PutBinaryFile) As OPENcontrol.PutBinaryFileR - Dim inValue As OPENcontrol.PutBinaryFileRequest = New OPENcontrol.PutBinaryFileRequest() - inValue.PutBinaryFile = PutBinaryFile1 - Dim retVal As OPENcontrol.PutBinaryFileResponse = CType(Me,OPENcontrol.OPENcontrolPortType).PutBinaryFile(inValue) - Return retVal.PutBinaryFileR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetBinaryFile(ByVal request As OPENcontrol.GetBinaryFileRequest) As OPENcontrol.GetBinaryFileResponse Implements OPENcontrol.OPENcontrolPortType.GetBinaryFile - Return MyBase.Channel.GetBinaryFile(request) - End Function - - Public Function GetBinaryFile(ByVal GetBinaryFile1 As OPENcontrol.GetBinaryFile) As OPENcontrol.GetBinaryFileR - Dim inValue As OPENcontrol.GetBinaryFileRequest = New OPENcontrol.GetBinaryFileRequest() - inValue.GetBinaryFile = GetBinaryFile1 - Dim retVal As OPENcontrol.GetBinaryFileResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetBinaryFile(inValue) - Return retVal.GetBinaryFileR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSSetSecurityLevel(ByVal request As OPENcontrol.LogFSSetSecurityLevelRequest) As OPENcontrol.LogFSSetSecurityLevelResponse Implements OPENcontrol.OPENcontrolPortType.LogFSSetSecurityLevel - Return MyBase.Channel.LogFSSetSecurityLevel(request) - End Function - - Public Function LogFSSetSecurityLevel(ByVal LogFSSetSecurityLevel1 As OPENcontrol.LogFSSetSecurityLevel) As OPENcontrol.LogFSSetSecurityLevelR - Dim inValue As OPENcontrol.LogFSSetSecurityLevelRequest = New OPENcontrol.LogFSSetSecurityLevelRequest() - inValue.LogFSSetSecurityLevel = LogFSSetSecurityLevel1 - Dim retVal As OPENcontrol.LogFSSetSecurityLevelResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSSetSecurityLevel(inValue) - Return retVal.LogFSSetSecurityLevelR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSGetSecurityLevel(ByVal request As OPENcontrol.LogFSGetSecurityLevelRequest) As OPENcontrol.LogFSGetSecurityLevelResponse Implements OPENcontrol.OPENcontrolPortType.LogFSGetSecurityLevel - Return MyBase.Channel.LogFSGetSecurityLevel(request) - End Function - - Public Function LogFSGetSecurityLevel(ByVal LogFSGetSecurityLevel1 As OPENcontrol.LogFSGetSecurityLevel) As OPENcontrol.LogFSGetSecurityLevelR - Dim inValue As OPENcontrol.LogFSGetSecurityLevelRequest = New OPENcontrol.LogFSGetSecurityLevelRequest() - inValue.LogFSGetSecurityLevel = LogFSGetSecurityLevel1 - Dim retVal As OPENcontrol.LogFSGetSecurityLevelResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSGetSecurityLevel(inValue) - Return retVal.LogFSGetSecurityLevelR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSLongFileNames(ByVal request As OPENcontrol.LogFSLongFileNamesRequest) As OPENcontrol.LogFSLongFileNamesResponse Implements OPENcontrol.OPENcontrolPortType.LogFSLongFileNames - Return MyBase.Channel.LogFSLongFileNames(request) - End Function - - Public Function LogFSLongFileNames(ByVal LogFSLongFileNames1 As OPENcontrol.LogFSLongFileNames) As OPENcontrol.LogFSLongFileNamesR - Dim inValue As OPENcontrol.LogFSLongFileNamesRequest = New OPENcontrol.LogFSLongFileNamesRequest() - inValue.LogFSLongFileNames = LogFSLongFileNames1 - Dim retVal As OPENcontrol.LogFSLongFileNamesResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSLongFileNames(inValue) - Return retVal.LogFSLongFileNamesR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSGetNumDrive(ByVal request As OPENcontrol.LogFSGetNumDriveRequest) As OPENcontrol.LogFSGetNumDriveResponse Implements OPENcontrol.OPENcontrolPortType.LogFSGetNumDrive - Return MyBase.Channel.LogFSGetNumDrive(request) - End Function - - Public Function LogFSGetNumDrive(ByVal LogFSGetNumDrive1 As OPENcontrol.LogFSGetNumDrive) As OPENcontrol.LogFSGetNumDriveR - Dim inValue As OPENcontrol.LogFSGetNumDriveRequest = New OPENcontrol.LogFSGetNumDriveRequest() - inValue.LogFSGetNumDrive = LogFSGetNumDrive1 - Dim retVal As OPENcontrol.LogFSGetNumDriveResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSGetNumDrive(inValue) - Return retVal.LogFSGetNumDriveR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSGetDriveList(ByVal request As OPENcontrol.LogFSGetDriveListRequest) As OPENcontrol.LogFSGetDriveListResponse Implements OPENcontrol.OPENcontrolPortType.LogFSGetDriveList - Return MyBase.Channel.LogFSGetDriveList(request) - End Function - - Public Function LogFSGetDriveList(ByVal LogFSGetDriveList1 As OPENcontrol.LogFSGetDriveList) As OPENcontrol.LogFSGetDriveListR - Dim inValue As OPENcontrol.LogFSGetDriveListRequest = New OPENcontrol.LogFSGetDriveListRequest() - inValue.LogFSGetDriveList = LogFSGetDriveList1 - Dim retVal As OPENcontrol.LogFSGetDriveListResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSGetDriveList(inValue) - Return retVal.LogFSGetDriveListR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSGetHiddenDriveList(ByVal request As OPENcontrol.LogFSGetHiddenDriveListRequest) As OPENcontrol.LogFSGetHiddenDriveListResponse Implements OPENcontrol.OPENcontrolPortType.LogFSGetHiddenDriveList - Return MyBase.Channel.LogFSGetHiddenDriveList(request) - End Function - - Public Function LogFSGetHiddenDriveList(ByVal LogFSGetHiddenDriveList1 As OPENcontrol.LogFSGetHiddenDriveList) As OPENcontrol.LogFSGetHiddenDriveListR - Dim inValue As OPENcontrol.LogFSGetHiddenDriveListRequest = New OPENcontrol.LogFSGetHiddenDriveListRequest() - inValue.LogFSGetHiddenDriveList = LogFSGetHiddenDriveList1 - Dim retVal As OPENcontrol.LogFSGetHiddenDriveListResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSGetHiddenDriveList(inValue) - Return retVal.LogFSGetHiddenDriveListR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSGetDrivePath(ByVal request As OPENcontrol.LogFSGetDrivePathRequest) As OPENcontrol.LogFSGetDrivePathResponse Implements OPENcontrol.OPENcontrolPortType.LogFSGetDrivePath - Return MyBase.Channel.LogFSGetDrivePath(request) - End Function - - Public Function LogFSGetDrivePath(ByVal LogFSGetDrivePath1 As OPENcontrol.LogFSGetDrivePath) As OPENcontrol.LogFSGetDrivePathR - Dim inValue As OPENcontrol.LogFSGetDrivePathRequest = New OPENcontrol.LogFSGetDrivePathRequest() - inValue.LogFSGetDrivePath = LogFSGetDrivePath1 - Dim retVal As OPENcontrol.LogFSGetDrivePathResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSGetDrivePath(inValue) - Return retVal.LogFSGetDrivePathR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSAddDrive(ByVal request As OPENcontrol.LogFSAddDriveRequest) As OPENcontrol.LogFSAddDriveResponse Implements OPENcontrol.OPENcontrolPortType.LogFSAddDrive - Return MyBase.Channel.LogFSAddDrive(request) - End Function - - Public Function LogFSAddDrive(ByVal LogFSAddDrive1 As OPENcontrol.LogFSAddDrive) As OPENcontrol.LogFSAddDriveR - Dim inValue As OPENcontrol.LogFSAddDriveRequest = New OPENcontrol.LogFSAddDriveRequest() - inValue.LogFSAddDrive = LogFSAddDrive1 - Dim retVal As OPENcontrol.LogFSAddDriveResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSAddDrive(inValue) - Return retVal.LogFSAddDriveR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSRemoveDrive(ByVal request As OPENcontrol.LogFSRemoveDriveRequest) As OPENcontrol.LogFSRemoveDriveResponse Implements OPENcontrol.OPENcontrolPortType.LogFSRemoveDrive - Return MyBase.Channel.LogFSRemoveDrive(request) - End Function - - Public Function LogFSRemoveDrive(ByVal LogFSRemoveDrive1 As OPENcontrol.LogFSRemoveDrive) As OPENcontrol.LogFSRemoveDriveR - Dim inValue As OPENcontrol.LogFSRemoveDriveRequest = New OPENcontrol.LogFSRemoveDriveRequest() - inValue.LogFSRemoveDrive = LogFSRemoveDrive1 - Dim retVal As OPENcontrol.LogFSRemoveDriveResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSRemoveDrive(inValue) - Return retVal.LogFSRemoveDriveR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSReloadDriveList(ByVal request As OPENcontrol.LogFSReloadDriveListRequest) As OPENcontrol.LogFSReloadDriveListResponse Implements OPENcontrol.OPENcontrolPortType.LogFSReloadDriveList - Return MyBase.Channel.LogFSReloadDriveList(request) - End Function - - Public Function LogFSReloadDriveList(ByVal LogFSReloadDriveList1 As OPENcontrol.LogFSReloadDriveList) As OPENcontrol.LogFSReloadDriveListR - Dim inValue As OPENcontrol.LogFSReloadDriveListRequest = New OPENcontrol.LogFSReloadDriveListRequest() - inValue.LogFSReloadDriveList = LogFSReloadDriveList1 - Dim retVal As OPENcontrol.LogFSReloadDriveListResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSReloadDriveList(inValue) - Return retVal.LogFSReloadDriveListR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSCreateDir(ByVal request As OPENcontrol.LogFSCreateDirRequest) As OPENcontrol.LogFSCreateDirResponse Implements OPENcontrol.OPENcontrolPortType.LogFSCreateDir - Return MyBase.Channel.LogFSCreateDir(request) - End Function - - Public Function LogFSCreateDir(ByVal LogFSCreateDir1 As OPENcontrol.LogFSCreateDir) As OPENcontrol.LogFSCreateDirR - Dim inValue As OPENcontrol.LogFSCreateDirRequest = New OPENcontrol.LogFSCreateDirRequest() - inValue.LogFSCreateDir = LogFSCreateDir1 - Dim retVal As OPENcontrol.LogFSCreateDirResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSCreateDir(inValue) - Return retVal.LogFSCreateDirR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSCreateFile(ByVal request As OPENcontrol.LogFSCreateFileRequest) As OPENcontrol.LogFSCreateFileResponse Implements OPENcontrol.OPENcontrolPortType.LogFSCreateFile - Return MyBase.Channel.LogFSCreateFile(request) - End Function - - Public Function LogFSCreateFile(ByVal LogFSCreateFile1 As OPENcontrol.LogFSCreateFile) As OPENcontrol.LogFSCreateFileR - Dim inValue As OPENcontrol.LogFSCreateFileRequest = New OPENcontrol.LogFSCreateFileRequest() - inValue.LogFSCreateFile = LogFSCreateFile1 - Dim retVal As OPENcontrol.LogFSCreateFileResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSCreateFile(inValue) - Return retVal.LogFSCreateFileR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSGetFileSize(ByVal request As OPENcontrol.LogFSGetFileSizeRequest) As OPENcontrol.LogFSGetFileSizeResponse Implements OPENcontrol.OPENcontrolPortType.LogFSGetFileSize - Return MyBase.Channel.LogFSGetFileSize(request) - End Function - - Public Function LogFSGetFileSize(ByVal LogFSGetFileSize1 As OPENcontrol.LogFSGetFileSize) As OPENcontrol.LogFSGetFileSizeR - Dim inValue As OPENcontrol.LogFSGetFileSizeRequest = New OPENcontrol.LogFSGetFileSizeRequest() - inValue.LogFSGetFileSize = LogFSGetFileSize1 - Dim retVal As OPENcontrol.LogFSGetFileSizeResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSGetFileSize(inValue) - Return retVal.LogFSGetFileSizeR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSGetFileAttrib(ByVal request As OPENcontrol.LogFSGetFileAttribRequest) As OPENcontrol.LogFSGetFileAttribResponse Implements OPENcontrol.OPENcontrolPortType.LogFSGetFileAttrib - Return MyBase.Channel.LogFSGetFileAttrib(request) - End Function - - Public Function LogFSGetFileAttrib(ByVal LogFSGetFileAttrib1 As OPENcontrol.LogFSGetFileAttrib) As OPENcontrol.LogFSGetFileAttribR - Dim inValue As OPENcontrol.LogFSGetFileAttribRequest = New OPENcontrol.LogFSGetFileAttribRequest() - inValue.LogFSGetFileAttrib = LogFSGetFileAttrib1 - Dim retVal As OPENcontrol.LogFSGetFileAttribResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSGetFileAttrib(inValue) - Return retVal.LogFSGetFileAttribR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSSetFileAttrib(ByVal request As OPENcontrol.LogFSSetFileAttribRequest) As OPENcontrol.LogFSSetFileAttribResponse Implements OPENcontrol.OPENcontrolPortType.LogFSSetFileAttrib - Return MyBase.Channel.LogFSSetFileAttrib(request) - End Function - - Public Function LogFSSetFileAttrib(ByVal LogFSSetFileAttrib1 As OPENcontrol.LogFSSetFileAttrib) As OPENcontrol.LogFSSetFileAttribR - Dim inValue As OPENcontrol.LogFSSetFileAttribRequest = New OPENcontrol.LogFSSetFileAttribRequest() - inValue.LogFSSetFileAttrib = LogFSSetFileAttrib1 - Dim retVal As OPENcontrol.LogFSSetFileAttribResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSSetFileAttrib(inValue) - Return retVal.LogFSSetFileAttribR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSChangeFileAttrib(ByVal request As OPENcontrol.LogFSChangeFileAttribRequest) As OPENcontrol.LogFSChangeFileAttribResponse Implements OPENcontrol.OPENcontrolPortType.LogFSChangeFileAttrib - Return MyBase.Channel.LogFSChangeFileAttrib(request) - End Function - - Public Function LogFSChangeFileAttrib(ByVal LogFSChangeFileAttrib1 As OPENcontrol.LogFSChangeFileAttrib) As OPENcontrol.LogFSChangeFileAttribR - Dim inValue As OPENcontrol.LogFSChangeFileAttribRequest = New OPENcontrol.LogFSChangeFileAttribRequest() - inValue.LogFSChangeFileAttrib = LogFSChangeFileAttrib1 - Dim retVal As OPENcontrol.LogFSChangeFileAttribResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSChangeFileAttrib(inValue) - Return retVal.LogFSChangeFileAttribR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSFindFirst(ByVal request As OPENcontrol.LogFSFindFirstRequest) As OPENcontrol.LogFSFindFirstResponse Implements OPENcontrol.OPENcontrolPortType.LogFSFindFirst - Return MyBase.Channel.LogFSFindFirst(request) - End Function - - Public Function LogFSFindFirst(ByVal LogFSFindFirst1 As OPENcontrol.LogFSFindFirst) As OPENcontrol.LogFSFindFirstR - Dim inValue As OPENcontrol.LogFSFindFirstRequest = New OPENcontrol.LogFSFindFirstRequest() - inValue.LogFSFindFirst = LogFSFindFirst1 - Dim retVal As OPENcontrol.LogFSFindFirstResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSFindFirst(inValue) - Return retVal.LogFSFindFirstR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSFindNext(ByVal request As OPENcontrol.LogFSFindNextRequest) As OPENcontrol.LogFSFindNextResponse Implements OPENcontrol.OPENcontrolPortType.LogFSFindNext - Return MyBase.Channel.LogFSFindNext(request) - End Function - - Public Function LogFSFindNext(ByVal LogFSFindNext1 As OPENcontrol.LogFSFindNext) As OPENcontrol.LogFSFindNextR - Dim inValue As OPENcontrol.LogFSFindNextRequest = New OPENcontrol.LogFSFindNextRequest() - inValue.LogFSFindNext = LogFSFindNext1 - Dim retVal As OPENcontrol.LogFSFindNextResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSFindNext(inValue) - Return retVal.LogFSFindNextR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSFindClose(ByVal request As OPENcontrol.LogFSFindCloseRequest) As OPENcontrol.LogFSFindCloseResponse Implements OPENcontrol.OPENcontrolPortType.LogFSFindClose - Return MyBase.Channel.LogFSFindClose(request) - End Function - - Public Function LogFSFindClose(ByVal LogFSFindClose1 As OPENcontrol.LogFSFindClose) As OPENcontrol.LogFSFindCloseR - Dim inValue As OPENcontrol.LogFSFindCloseRequest = New OPENcontrol.LogFSFindCloseRequest() - inValue.LogFSFindClose = LogFSFindClose1 - Dim retVal As OPENcontrol.LogFSFindCloseResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSFindClose(inValue) - Return retVal.LogFSFindCloseR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSRemoveFile(ByVal request As OPENcontrol.LogFSRemoveFileRequest) As OPENcontrol.LogFSRemoveFileResponse Implements OPENcontrol.OPENcontrolPortType.LogFSRemoveFile - Return MyBase.Channel.LogFSRemoveFile(request) - End Function - - Public Function LogFSRemoveFile(ByVal LogFSRemoveFile1 As OPENcontrol.LogFSRemoveFile) As OPENcontrol.LogFSRemoveFileR - Dim inValue As OPENcontrol.LogFSRemoveFileRequest = New OPENcontrol.LogFSRemoveFileRequest() - inValue.LogFSRemoveFile = LogFSRemoveFile1 - Dim retVal As OPENcontrol.LogFSRemoveFileResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSRemoveFile(inValue) - Return retVal.LogFSRemoveFileR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSRemoveDir(ByVal request As OPENcontrol.LogFSRemoveDirRequest) As OPENcontrol.LogFSRemoveDirResponse Implements OPENcontrol.OPENcontrolPortType.LogFSRemoveDir - Return MyBase.Channel.LogFSRemoveDir(request) - End Function - - Public Function LogFSRemoveDir(ByVal LogFSRemoveDir1 As OPENcontrol.LogFSRemoveDir) As OPENcontrol.LogFSRemoveDirR - Dim inValue As OPENcontrol.LogFSRemoveDirRequest = New OPENcontrol.LogFSRemoveDirRequest() - inValue.LogFSRemoveDir = LogFSRemoveDir1 - Dim retVal As OPENcontrol.LogFSRemoveDirResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSRemoveDir(inValue) - Return retVal.LogFSRemoveDirR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSRename(ByVal request As OPENcontrol.LogFSRenameRequest) As OPENcontrol.LogFSRenameResponse Implements OPENcontrol.OPENcontrolPortType.LogFSRename - Return MyBase.Channel.LogFSRename(request) - End Function - - Public Function LogFSRename(ByVal LogFSRename1 As OPENcontrol.LogFSRename) As OPENcontrol.LogFSRenameR - Dim inValue As OPENcontrol.LogFSRenameRequest = New OPENcontrol.LogFSRenameRequest() - inValue.LogFSRename = LogFSRename1 - Dim retVal As OPENcontrol.LogFSRenameResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSRename(inValue) - Return retVal.LogFSRenameR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSCopyFile(ByVal request As OPENcontrol.LogFSCopyFileRequest) As OPENcontrol.LogFSCopyFileResponse Implements OPENcontrol.OPENcontrolPortType.LogFSCopyFile - Return MyBase.Channel.LogFSCopyFile(request) - End Function - - Public Function LogFSCopyFile(ByVal LogFSCopyFile1 As OPENcontrol.LogFSCopyFile) As OPENcontrol.LogFSCopyFileR - Dim inValue As OPENcontrol.LogFSCopyFileRequest = New OPENcontrol.LogFSCopyFileRequest() - inValue.LogFSCopyFile = LogFSCopyFile1 - Dim retVal As OPENcontrol.LogFSCopyFileResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSCopyFile(inValue) - Return retVal.LogFSCopyFileR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSGetInfo(ByVal request As OPENcontrol.LogFSGetInfoRequest) As OPENcontrol.LogFSGetInfoResponse Implements OPENcontrol.OPENcontrolPortType.LogFSGetInfo - Return MyBase.Channel.LogFSGetInfo(request) - End Function - - Public Function LogFSGetInfo(ByVal LogFSGetInfo1 As OPENcontrol.LogFSGetInfo) As OPENcontrol.LogFSGetInfoR - Dim inValue As OPENcontrol.LogFSGetInfoRequest = New OPENcontrol.LogFSGetInfoRequest() - inValue.LogFSGetInfo = LogFSGetInfo1 - Dim retVal As OPENcontrol.LogFSGetInfoResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSGetInfo(inValue) - Return retVal.LogFSGetInfoR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetAvailableCustomEvents(ByVal request As OPENcontrol.GetAvailableCustomEventsRequest) As OPENcontrol.GetAvailableCustomEventsResponse Implements OPENcontrol.OPENcontrolPortType.GetAvailableCustomEvents - Return MyBase.Channel.GetAvailableCustomEvents(request) - End Function - - Public Function GetAvailableCustomEvents(ByVal GetAvailableCustomEvents1 As OPENcontrol.GetAvailableCustomEvents) As OPENcontrol.GetAvailableCustomEventsR - Dim inValue As OPENcontrol.GetAvailableCustomEventsRequest = New OPENcontrol.GetAvailableCustomEventsRequest() - inValue.GetAvailableCustomEvents = GetAvailableCustomEvents1 - Dim retVal As OPENcontrol.GetAvailableCustomEventsResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetAvailableCustomEvents(inValue) - Return retVal.GetAvailableCustomEventsR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetSysTick(ByVal request As OPENcontrol.GetSysTickRequest) As OPENcontrol.GetSysTickResponse Implements OPENcontrol.OPENcontrolPortType.GetSysTick - Return MyBase.Channel.GetSysTick(request) - End Function - - Public Function GetSysTick(ByVal GetSysTick1 As OPENcontrol.GetSysTick) As OPENcontrol.GetSysTickR - Dim inValue As OPENcontrol.GetSysTickRequest = New OPENcontrol.GetSysTickRequest() - inValue.GetSysTick = GetSysTick1 - Dim retVal As OPENcontrol.GetSysTickResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetSysTick(inValue) - Return retVal.GetSysTickR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetProcessConfNum(ByVal request As OPENcontrol.GetProcessConfNumRequest) As OPENcontrol.GetProcessConfNumResponse Implements OPENcontrol.OPENcontrolPortType.GetProcessConfNum - Return MyBase.Channel.GetProcessConfNum(request) - End Function - - Public Function GetProcessConfNum(ByVal GetProcessConfNum1 As OPENcontrol.GetProcessConfNum) As OPENcontrol.GetProcessConfNumR - Dim inValue As OPENcontrol.GetProcessConfNumRequest = New OPENcontrol.GetProcessConfNumRequest() - inValue.GetProcessConfNum = GetProcessConfNum1 - Dim retVal As OPENcontrol.GetProcessConfNumResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetProcessConfNum(inValue) - Return retVal.GetProcessConfNumR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_MonOpenChannel(ByVal request As OPENcontrol.MonOpenChannelRequest) As OPENcontrol.MonOpenChannelResponse Implements OPENcontrol.OPENcontrolPortType.MonOpenChannel - Return MyBase.Channel.MonOpenChannel(request) - End Function - - Public Function MonOpenChannel(ByVal MonOpenChannel1 As OPENcontrol.MonOpenChannel) As OPENcontrol.MonOpenChannelR - Dim inValue As OPENcontrol.MonOpenChannelRequest = New OPENcontrol.MonOpenChannelRequest() - inValue.MonOpenChannel = MonOpenChannel1 - Dim retVal As OPENcontrol.MonOpenChannelResponse = CType(Me,OPENcontrol.OPENcontrolPortType).MonOpenChannel(inValue) - Return retVal.MonOpenChannelR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_MonCloseChannel(ByVal request As OPENcontrol.MonCloseChannelRequest) As OPENcontrol.MonCloseChannelResponse Implements OPENcontrol.OPENcontrolPortType.MonCloseChannel - Return MyBase.Channel.MonCloseChannel(request) - End Function - - Public Function MonCloseChannel(ByVal MonCloseChannel1 As OPENcontrol.MonCloseChannel) As OPENcontrol.MonCloseChannelR - Dim inValue As OPENcontrol.MonCloseChannelRequest = New OPENcontrol.MonCloseChannelRequest() - inValue.MonCloseChannel = MonCloseChannel1 - Dim retVal As OPENcontrol.MonCloseChannelResponse = CType(Me,OPENcontrol.OPENcontrolPortType).MonCloseChannel(inValue) - Return retVal.MonCloseChannelR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_MonAddVariable(ByVal request As OPENcontrol.MonAddVariableRequest) As OPENcontrol.MonAddVariableResponse Implements OPENcontrol.OPENcontrolPortType.MonAddVariable - Return MyBase.Channel.MonAddVariable(request) - End Function - - Public Function MonAddVariable(ByVal MonAddVariable1 As OPENcontrol.MonAddVariable) As OPENcontrol.MonAddVariableR - Dim inValue As OPENcontrol.MonAddVariableRequest = New OPENcontrol.MonAddVariableRequest() - inValue.MonAddVariable = MonAddVariable1 - Dim retVal As OPENcontrol.MonAddVariableResponse = CType(Me,OPENcontrol.OPENcontrolPortType).MonAddVariable(inValue) - Return retVal.MonAddVariableR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_MonDeleteVariable(ByVal request As OPENcontrol.MonDeleteVariableRequest) As OPENcontrol.MonDeleteVariableResponse Implements OPENcontrol.OPENcontrolPortType.MonDeleteVariable - Return MyBase.Channel.MonDeleteVariable(request) - End Function - - Public Function MonDeleteVariable(ByVal MonDeleteVariable1 As OPENcontrol.MonDeleteVariable) As OPENcontrol.MonDeleteVariableR - Dim inValue As OPENcontrol.MonDeleteVariableRequest = New OPENcontrol.MonDeleteVariableRequest() - inValue.MonDeleteVariable = MonDeleteVariable1 - Dim retVal As OPENcontrol.MonDeleteVariableResponse = CType(Me,OPENcontrol.OPENcontrolPortType).MonDeleteVariable(inValue) - Return retVal.MonDeleteVariableR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_MonStartSampling(ByVal request As OPENcontrol.MonStartSamplingRequest) As OPENcontrol.MonStartSamplingResponse Implements OPENcontrol.OPENcontrolPortType.MonStartSampling - Return MyBase.Channel.MonStartSampling(request) - End Function - - Public Function MonStartSampling(ByVal MonStartSampling1 As OPENcontrol.MonStartSampling) As OPENcontrol.MonStartSamplingR - Dim inValue As OPENcontrol.MonStartSamplingRequest = New OPENcontrol.MonStartSamplingRequest() - inValue.MonStartSampling = MonStartSampling1 - Dim retVal As OPENcontrol.MonStartSamplingResponse = CType(Me,OPENcontrol.OPENcontrolPortType).MonStartSampling(inValue) - Return retVal.MonStartSamplingR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_MonStopSampling(ByVal request As OPENcontrol.MonStopSamplingRequest) As OPENcontrol.MonStopSamplingResponse Implements OPENcontrol.OPENcontrolPortType.MonStopSampling - Return MyBase.Channel.MonStopSampling(request) - End Function - - Public Function MonStopSampling(ByVal MonStopSampling1 As OPENcontrol.MonStopSampling) As OPENcontrol.MonStopSamplingR - Dim inValue As OPENcontrol.MonStopSamplingRequest = New OPENcontrol.MonStopSamplingRequest() - inValue.MonStopSampling = MonStopSampling1 - Dim retVal As OPENcontrol.MonStopSamplingResponse = CType(Me,OPENcontrol.OPENcontrolPortType).MonStopSampling(inValue) - Return retVal.MonStopSamplingR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_MonGetVariable(ByVal request As OPENcontrol.MonGetVariableRequest) As OPENcontrol.MonGetVariableResponse Implements OPENcontrol.OPENcontrolPortType.MonGetVariable - Return MyBase.Channel.MonGetVariable(request) - End Function - - Public Function MonGetVariable(ByVal MonGetVariable1 As OPENcontrol.MonGetVariable) As OPENcontrol.MonGetVariableR - Dim inValue As OPENcontrol.MonGetVariableRequest = New OPENcontrol.MonGetVariableRequest() - inValue.MonGetVariable = MonGetVariable1 - Dim retVal As OPENcontrol.MonGetVariableResponse = CType(Me,OPENcontrol.OPENcontrolPortType).MonGetVariable(inValue) - Return retVal.MonGetVariableR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_CheckHistory(ByVal request As OPENcontrol.CheckHistoryRequest) As OPENcontrol.CheckHistoryResponse Implements OPENcontrol.OPENcontrolPortType.CheckHistory - Return MyBase.Channel.CheckHistory(request) - End Function - - Public Function CheckHistory(ByVal CheckHistory1 As OPENcontrol.CheckHistory) As OPENcontrol.CheckHistoryR - Dim inValue As OPENcontrol.CheckHistoryRequest = New OPENcontrol.CheckHistoryRequest() - inValue.CheckHistory = CheckHistory1 - Dim retVal As OPENcontrol.CheckHistoryResponse = CType(Me,OPENcontrol.OPENcontrolPortType).CheckHistory(inValue) - Return retVal.CheckHistoryR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadHistoryEmergMsg(ByVal request As OPENcontrol.ReadHistoryEmergMsgRequest) As OPENcontrol.ReadHistoryEmergMsgResponse Implements OPENcontrol.OPENcontrolPortType.ReadHistoryEmergMsg - Return MyBase.Channel.ReadHistoryEmergMsg(request) - End Function - - Public Function ReadHistoryEmergMsg(ByVal ReadHistoryEmergMsg1 As OPENcontrol.ReadHistoryEmergMsg) As OPENcontrol.ReadHistoryEmergMsgR - Dim inValue As OPENcontrol.ReadHistoryEmergMsgRequest = New OPENcontrol.ReadHistoryEmergMsgRequest() - inValue.ReadHistoryEmergMsg = ReadHistoryEmergMsg1 - Dim retVal As OPENcontrol.ReadHistoryEmergMsgResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadHistoryEmergMsg(inValue) - Return retVal.ReadHistoryEmergMsgR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadHistoryErrorMsg(ByVal request As OPENcontrol.ReadHistoryErrorMsgRequest) As OPENcontrol.ReadHistoryErrorMsgResponse Implements OPENcontrol.OPENcontrolPortType.ReadHistoryErrorMsg - Return MyBase.Channel.ReadHistoryErrorMsg(request) - End Function - - Public Function ReadHistoryErrorMsg(ByVal ReadHistoryErrorMsg1 As OPENcontrol.ReadHistoryErrorMsg) As OPENcontrol.ReadHistoryErrorMsgR - Dim inValue As OPENcontrol.ReadHistoryErrorMsgRequest = New OPENcontrol.ReadHistoryErrorMsgRequest() - inValue.ReadHistoryErrorMsg = ReadHistoryErrorMsg1 - Dim retVal As OPENcontrol.ReadHistoryErrorMsgResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadHistoryErrorMsg(inValue) - Return retVal.ReadHistoryErrorMsgR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadHistoryLogMsg(ByVal request As OPENcontrol.ReadHistoryLogMsgRequest) As OPENcontrol.ReadHistoryLogMsgResponse Implements OPENcontrol.OPENcontrolPortType.ReadHistoryLogMsg - Return MyBase.Channel.ReadHistoryLogMsg(request) - End Function - - Public Function ReadHistoryLogMsg(ByVal ReadHistoryLogMsg1 As OPENcontrol.ReadHistoryLogMsg) As OPENcontrol.ReadHistoryLogMsgR - Dim inValue As OPENcontrol.ReadHistoryLogMsgRequest = New OPENcontrol.ReadHistoryLogMsgRequest() - inValue.ReadHistoryLogMsg = ReadHistoryLogMsg1 - Dim retVal As OPENcontrol.ReadHistoryLogMsgResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadHistoryLogMsg(inValue) - Return retVal.ReadHistoryLogMsgR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadHistoryAnomalyMsg(ByVal request As OPENcontrol.ReadHistoryAnomalyMsgRequest) As OPENcontrol.ReadHistoryAnomalyMsgResponse Implements OPENcontrol.OPENcontrolPortType.ReadHistoryAnomalyMsg - Return MyBase.Channel.ReadHistoryAnomalyMsg(request) - End Function - - Public Function ReadHistoryAnomalyMsg(ByVal ReadHistoryAnomalyMsg1 As OPENcontrol.ReadHistoryAnomalyMsg) As OPENcontrol.ReadHistoryAnomalyMsgR - Dim inValue As OPENcontrol.ReadHistoryAnomalyMsgRequest = New OPENcontrol.ReadHistoryAnomalyMsgRequest() - inValue.ReadHistoryAnomalyMsg = ReadHistoryAnomalyMsg1 - Dim retVal As OPENcontrol.ReadHistoryAnomalyMsgResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadHistoryAnomalyMsg(inValue) - Return retVal.ReadHistoryAnomalyMsgR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadCurrentErrorMsg(ByVal request As OPENcontrol.ReadCurrentErrorMsgRequest) As OPENcontrol.ReadCurrentErrorMsgResponse Implements OPENcontrol.OPENcontrolPortType.ReadCurrentErrorMsg - Return MyBase.Channel.ReadCurrentErrorMsg(request) - End Function - - Public Function ReadCurrentErrorMsg(ByVal ReadCurrentErrorMsg1 As OPENcontrol.ReadCurrentErrorMsg) As OPENcontrol.ReadCurrentErrorMsgR - Dim inValue As OPENcontrol.ReadCurrentErrorMsgRequest = New OPENcontrol.ReadCurrentErrorMsgRequest() - inValue.ReadCurrentErrorMsg = ReadCurrentErrorMsg1 - Dim retVal As OPENcontrol.ReadCurrentErrorMsgResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadCurrentErrorMsg(inValue) - Return retVal.ReadCurrentErrorMsgR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadCurrentEmergMsg(ByVal request As OPENcontrol.ReadCurrentEmergMsgRequest) As OPENcontrol.ReadCurrentEmergMsgResponse Implements OPENcontrol.OPENcontrolPortType.ReadCurrentEmergMsg - Return MyBase.Channel.ReadCurrentEmergMsg(request) - End Function - - Public Function ReadCurrentEmergMsg(ByVal ReadCurrentEmergMsg1 As OPENcontrol.ReadCurrentEmergMsg) As OPENcontrol.ReadCurrentEmergMsgR - Dim inValue As OPENcontrol.ReadCurrentEmergMsgRequest = New OPENcontrol.ReadCurrentEmergMsgRequest() - inValue.ReadCurrentEmergMsg = ReadCurrentEmergMsg1 - Dim retVal As OPENcontrol.ReadCurrentEmergMsgResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadCurrentEmergMsg(inValue) - Return retVal.ReadCurrentEmergMsgR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadCurrentAnomalyMsg(ByVal request As OPENcontrol.ReadCurrentAnomalyMsgRequest) As OPENcontrol.ReadCurrentAnomalyMsgResponse Implements OPENcontrol.OPENcontrolPortType.ReadCurrentAnomalyMsg - Return MyBase.Channel.ReadCurrentAnomalyMsg(request) - End Function - - Public Function ReadCurrentAnomalyMsg(ByVal ReadCurrentAnomalyMsg1 As OPENcontrol.ReadCurrentAnomalyMsg) As OPENcontrol.ReadCurrentAnomalyMsgR - Dim inValue As OPENcontrol.ReadCurrentAnomalyMsgRequest = New OPENcontrol.ReadCurrentAnomalyMsgRequest() - inValue.ReadCurrentAnomalyMsg = ReadCurrentAnomalyMsg1 - Dim retVal As OPENcontrol.ReadCurrentAnomalyMsgResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadCurrentAnomalyMsg(inValue) - Return retVal.ReadCurrentAnomalyMsgR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetPTechSizes(ByVal request As OPENcontrol.GetPTechSizesRequest) As OPENcontrol.GetPTechSizesResponse Implements OPENcontrol.OPENcontrolPortType.GetPTechSizes - Return MyBase.Channel.GetPTechSizes(request) - End Function - - Public Function GetPTechSizes(ByVal GetPTechSizes1 As OPENcontrol.GetPTechSizes) As OPENcontrol.GetPTechSizesR - Dim inValue As OPENcontrol.GetPTechSizesRequest = New OPENcontrol.GetPTechSizesRequest() - inValue.GetPTechSizes = GetPTechSizes1 - Dim retVal As OPENcontrol.GetPTechSizesResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetPTechSizes(inValue) - Return retVal.GetPTechSizesR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LoadPTech(ByVal request As OPENcontrol.LoadPTechRequest) As OPENcontrol.LoadPTechResponse Implements OPENcontrol.OPENcontrolPortType.LoadPTech - Return MyBase.Channel.LoadPTech(request) - End Function - - Public Function LoadPTech(ByVal LoadPTech1 As OPENcontrol.LoadPTech) As OPENcontrol.LoadPTechR - Dim inValue As OPENcontrol.LoadPTechRequest = New OPENcontrol.LoadPTechRequest() - inValue.LoadPTech = LoadPTech1 - Dim retVal As OPENcontrol.LoadPTechResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LoadPTech(inValue) - Return retVal.LoadPTechR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetMarkerInfo(ByVal request As OPENcontrol.GetMarkerInfoRequest) As OPENcontrol.GetMarkerInfoResponse Implements OPENcontrol.OPENcontrolPortType.GetMarkerInfo - Return MyBase.Channel.GetMarkerInfo(request) - End Function - - Public Function GetMarkerInfo(ByVal GetMarkerInfo1 As OPENcontrol.GetMarkerInfo) As OPENcontrol.GetMarkerInfoR - Dim inValue As OPENcontrol.GetMarkerInfoRequest = New OPENcontrol.GetMarkerInfoRequest() - inValue.GetMarkerInfo = GetMarkerInfo1 - Dim retVal As OPENcontrol.GetMarkerInfoResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetMarkerInfo(inValue) - Return retVal.GetMarkerInfoR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ManagePartProgram(ByVal request As OPENcontrol.ManagePartProgramRequest) As OPENcontrol.ManagePartProgramResponse Implements OPENcontrol.OPENcontrolPortType.ManagePartProgram - Return MyBase.Channel.ManagePartProgram(request) - End Function - - Public Function ManagePartProgram(ByVal ManagePartProgram1 As OPENcontrol.ManagePartProgram) As OPENcontrol.ManagePartProgramR - Dim inValue As OPENcontrol.ManagePartProgramRequest = New OPENcontrol.ManagePartProgramRequest() - inValue.ManagePartProgram = ManagePartProgram1 - Dim retVal As OPENcontrol.ManagePartProgramResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ManagePartProgram(inValue) - Return retVal.ManagePartProgramR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSOpenFile(ByVal request As OPENcontrol.LogFSOpenFileRequest) As OPENcontrol.LogFSOpenFileResponse Implements OPENcontrol.OPENcontrolPortType.LogFSOpenFile - Return MyBase.Channel.LogFSOpenFile(request) - End Function - - Public Function LogFSOpenFile(ByVal LogFSOpenFile1 As OPENcontrol.LogFSOpenFile) As OPENcontrol.LogFSOpenFileR - Dim inValue As OPENcontrol.LogFSOpenFileRequest = New OPENcontrol.LogFSOpenFileRequest() - inValue.LogFSOpenFile = LogFSOpenFile1 - Dim retVal As OPENcontrol.LogFSOpenFileResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSOpenFile(inValue) - Return retVal.LogFSOpenFileR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSCloseFile(ByVal request As OPENcontrol.LogFSCloseFileRequest) As OPENcontrol.LogFSCloseFileResponse Implements OPENcontrol.OPENcontrolPortType.LogFSCloseFile - Return MyBase.Channel.LogFSCloseFile(request) - End Function - - Public Function LogFSCloseFile(ByVal LogFSCloseFile1 As OPENcontrol.LogFSCloseFile) As OPENcontrol.LogFSCloseFileR - Dim inValue As OPENcontrol.LogFSCloseFileRequest = New OPENcontrol.LogFSCloseFileRequest() - inValue.LogFSCloseFile = LogFSCloseFile1 - Dim retVal As OPENcontrol.LogFSCloseFileResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSCloseFile(inValue) - Return retVal.LogFSCloseFileR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSWriteRecord(ByVal request As OPENcontrol.LogFSWriteRecordRequest) As OPENcontrol.LogFSWriteRecordResponse Implements OPENcontrol.OPENcontrolPortType.LogFSWriteRecord - Return MyBase.Channel.LogFSWriteRecord(request) - End Function - - Public Function LogFSWriteRecord(ByVal LogFSWriteRecord1 As OPENcontrol.LogFSWriteRecord) As OPENcontrol.LogFSWriteRecordR - Dim inValue As OPENcontrol.LogFSWriteRecordRequest = New OPENcontrol.LogFSWriteRecordRequest() - inValue.LogFSWriteRecord = LogFSWriteRecord1 - Dim retVal As OPENcontrol.LogFSWriteRecordResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSWriteRecord(inValue) - Return retVal.LogFSWriteRecordR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_LogFSReadRecord(ByVal request As OPENcontrol.LogFSReadRecordRequest) As OPENcontrol.LogFSReadRecordResponse Implements OPENcontrol.OPENcontrolPortType.LogFSReadRecord - Return MyBase.Channel.LogFSReadRecord(request) - End Function - - Public Function LogFSReadRecord(ByVal LogFSReadRecord1 As OPENcontrol.LogFSReadRecord) As OPENcontrol.LogFSReadRecordR - Dim inValue As OPENcontrol.LogFSReadRecordRequest = New OPENcontrol.LogFSReadRecordRequest() - inValue.LogFSReadRecord = LogFSReadRecord1 - Dim retVal As OPENcontrol.LogFSReadRecordResponse = CType(Me,OPENcontrol.OPENcontrolPortType).LogFSReadRecord(inValue) - Return retVal.LogFSReadRecordR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_ReadRemapDefinitions(ByVal request As OPENcontrol.ReadRemapDefinitionsRequest) As OPENcontrol.ReadRemapDefinitionsResponse Implements OPENcontrol.OPENcontrolPortType.ReadRemapDefinitions - Return MyBase.Channel.ReadRemapDefinitions(request) - End Function - - Public Function ReadRemapDefinitions(ByVal ReadRemapDefinitions1 As OPENcontrol.ReadRemapDefinitions) As OPENcontrol.ReadRemapDefinitionsR - Dim inValue As OPENcontrol.ReadRemapDefinitionsRequest = New OPENcontrol.ReadRemapDefinitionsRequest() - inValue.ReadRemapDefinitions = ReadRemapDefinitions1 - Dim retVal As OPENcontrol.ReadRemapDefinitionsResponse = CType(Me,OPENcontrol.OPENcontrolPortType).ReadRemapDefinitions(inValue) - Return retVal.ReadRemapDefinitionsR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_WriteRemapDefinitions(ByVal request As OPENcontrol.WriteRemapDefinitionsRequest) As OPENcontrol.WriteRemapDefinitionsResponse Implements OPENcontrol.OPENcontrolPortType.WriteRemapDefinitions - Return MyBase.Channel.WriteRemapDefinitions(request) - End Function - - Public Function WriteRemapDefinitions(ByVal WriteRemapDefinitions1 As OPENcontrol.WriteRemapDefinitions) As OPENcontrol.WriteRemapDefinitionsR - Dim inValue As OPENcontrol.WriteRemapDefinitionsRequest = New OPENcontrol.WriteRemapDefinitionsRequest() - inValue.WriteRemapDefinitions = WriteRemapDefinitions1 - Dim retVal As OPENcontrol.WriteRemapDefinitionsResponse = CType(Me,OPENcontrol.OPENcontrolPortType).WriteRemapDefinitions(inValue) - Return retVal.WriteRemapDefinitionsR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetServoPar(ByVal request As OPENcontrol.GetServoParRequest) As OPENcontrol.GetServoParResponse Implements OPENcontrol.OPENcontrolPortType.GetServoPar - Return MyBase.Channel.GetServoPar(request) - End Function - - Public Function GetServoPar(ByVal GetServoPar1 As OPENcontrol.GetServoPar) As OPENcontrol.GetServoParR - Dim inValue As OPENcontrol.GetServoParRequest = New OPENcontrol.GetServoParRequest() - inValue.GetServoPar = GetServoPar1 - Dim retVal As OPENcontrol.GetServoParResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetServoPar(inValue) - Return retVal.GetServoParR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetServoPar(ByVal request As OPENcontrol.SetServoParRequest) As OPENcontrol.SetServoParResponse Implements OPENcontrol.OPENcontrolPortType.SetServoPar - Return MyBase.Channel.SetServoPar(request) - End Function - - Public Function SetServoPar(ByVal SetServoPar1 As OPENcontrol.SetServoPar) As OPENcontrol.SetServoParR - Dim inValue As OPENcontrol.SetServoParRequest = New OPENcontrol.SetServoParRequest() - inValue.SetServoPar = SetServoPar1 - Dim retVal As OPENcontrol.SetServoParResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetServoPar(inValue) - Return retVal.SetServoParR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetCNCRegKey(ByVal request As OPENcontrol.GetCNCRegKeyRequest) As OPENcontrol.GetCNCRegKeyResponse Implements OPENcontrol.OPENcontrolPortType.GetCNCRegKey - Return MyBase.Channel.GetCNCRegKey(request) - End Function - - Public Function GetCNCRegKey(ByVal GetCNCRegKey1 As OPENcontrol.GetCNCRegKey) As OPENcontrol.GetCNCRegKeyR - Dim inValue As OPENcontrol.GetCNCRegKeyRequest = New OPENcontrol.GetCNCRegKeyRequest() - inValue.GetCNCRegKey = GetCNCRegKey1 - Dim retVal As OPENcontrol.GetCNCRegKeyResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetCNCRegKey(inValue) - Return retVal.GetCNCRegKeyR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SetIpAddress(ByVal request As OPENcontrol.SetIpAddressRequest) As OPENcontrol.SetIpAddressResponse Implements OPENcontrol.OPENcontrolPortType.SetIpAddress - Return MyBase.Channel.SetIpAddress(request) - End Function - - Public Function SetIpAddress(ByVal SetIpAddress1 As OPENcontrol.SetIpAddress) As OPENcontrol.SetIpAddressR - Dim inValue As OPENcontrol.SetIpAddressRequest = New OPENcontrol.SetIpAddressRequest() - inValue.SetIpAddress = SetIpAddress1 - Dim retVal As OPENcontrol.SetIpAddressResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SetIpAddress(inValue) - Return retVal.SetIpAddressR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_GetProcInInput(ByVal request As OPENcontrol.GetProcInInputRequest) As OPENcontrol.GetProcInInputResponse Implements OPENcontrol.OPENcontrolPortType.GetProcInInput - Return MyBase.Channel.GetProcInInput(request) - End Function - - Public Function GetProcInInput(ByVal GetProcInInput1 As OPENcontrol.GetProcInInput) As OPENcontrol.GetProcInInputR - Dim inValue As OPENcontrol.GetProcInInputRequest = New OPENcontrol.GetProcInInputRequest() - inValue.GetProcInInput = GetProcInInput1 - Dim retVal As OPENcontrol.GetProcInInputResponse = CType(Me,OPENcontrol.OPENcontrolPortType).GetProcInInput(inValue) - Return retVal.GetProcInInputR - End Function - - _ - Function OPENcontrol_OPENcontrolPortType_SndProcInpData(ByVal request As OPENcontrol.SndProcInpDataRequest) As OPENcontrol.SndProcInpDataResponse Implements OPENcontrol.OPENcontrolPortType.SndProcInpData - Return MyBase.Channel.SndProcInpData(request) - End Function - - Public Function SndProcInpData(ByVal SndProcInpData1 As OPENcontrol.SndProcInpData) As OPENcontrol.SndProcInpDataR - Dim inValue As OPENcontrol.SndProcInpDataRequest = New OPENcontrol.SndProcInpDataRequest() - inValue.SndProcInpData = SndProcInpData1 - Dim retVal As OPENcontrol.SndProcInpDataResponse = CType(Me,OPENcontrol.OPENcontrolPortType).SndProcInpData(inValue) - Return retVal.SndProcInpDataR - End Function - End Class -End Namespace diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/configuration.svcinfo b/IOB-WIN/CncLib/Service References/OPENcontrol/configuration.svcinfo deleted file mode 100644 index 198883d..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/configuration.svcinfo +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/IOB-WIN/CncLib/Service References/OPENcontrol/configuration91.svcinfo b/IOB-WIN/CncLib/Service References/OPENcontrol/configuration91.svcinfo deleted file mode 100644 index 0a06217..0000000 --- a/IOB-WIN/CncLib/Service References/OPENcontrol/configuration91.svcinfo +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - OPENcontrol - - - - - - - - - - - - - - - - - - - - - StrongWildcard - - - - - - 65536 - - - - - - - - - System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - System.Text.UTF8Encoding - - - Buffered - - - - - - Text - - - System.ServiceModel.Configuration.BasicHttpSecurityElement - - - None - - - System.ServiceModel.Configuration.HttpTransportSecurityElement - - - None - - - None - - - System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement - - - Never - - - TransportSelected - - - (Raccolta) - - - - - - System.ServiceModel.Configuration.BasicHttpMessageSecurityElement - - - UserName - - - Default - - - - - - - - - http://192.168.20.2:8080 - - - - - - basicHttpBinding - - - OPENcontrol - - - OPENcontrol.OPENcontrolPortType - - - System.ServiceModel.Configuration.AddressHeaderCollectionElement - - - <Header /> - - - System.ServiceModel.Configuration.IdentityElement - - - System.ServiceModel.Configuration.UserPrincipalNameElement - - - - - - System.ServiceModel.Configuration.ServicePrincipalNameElement - - - - - - System.ServiceModel.Configuration.DnsElement - - - - - - System.ServiceModel.Configuration.RsaElement - - - - - - System.ServiceModel.Configuration.CertificateElement - - - - - - System.ServiceModel.Configuration.CertificateReferenceElement - - - My - - - LocalMachine - - - FindBySubjectDistinguishedName - - - - - - False - - - OPENcontrol - - - - - - - - - - - \ No newline at end of file diff --git a/IOB-WIN/CncLib/app.config b/IOB-WIN/CncLib/app.config deleted file mode 100644 index ae1f778..0000000 --- a/IOB-WIN/CncLib/app.config +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IOB-WIN/IOB-UT/BinaryFormatter.cs b/IOB-WIN/IOB-UT/BinaryFormatter.cs deleted file mode 100644 index 9ab1f0a..0000000 --- a/IOB-WIN/IOB-UT/BinaryFormatter.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.Globalization; -using System.Numerics; - -namespace IOB_UT -{ - - public class BinaryFormatter : IFormatProvider, ICustomFormatter - { - // IFormatProvider.GetFormat implementation. - public object GetFormat(Type formatType) - { - // Determine whether custom formatting object is requested. - if (formatType == typeof(ICustomFormatter)) - return this; - else - return null; - } - - // Format number in binary (B), octal (O), or hexadecimal (H). - public string Format(string format, object arg, IFormatProvider formatProvider) - { - // Handle format string. - int baseNumber; - // Handle null or empty format string, string with precision specifier. - string thisFmt = String.Empty; - // Extract first character of format string (precision specifiers - // are not supported). - if (!String.IsNullOrEmpty(format)) - thisFmt = format.Length > 1 ? format.Substring(0, 1) : format; - - - // Get a byte array representing the numeric value. - byte[] bytes; - if (arg is sbyte) - { - string byteString = ((sbyte)arg).ToString("X2"); - bytes = new byte[1] { Byte.Parse(byteString, System.Globalization.NumberStyles.HexNumber) }; - } - else if (arg is byte) - { - bytes = new byte[1] { (byte)arg }; - } - else if (arg is short) - { - bytes = BitConverter.GetBytes((short)arg); - } - else if (arg is int) - { - bytes = BitConverter.GetBytes((int)arg); - } - else if (arg is long) - { - bytes = BitConverter.GetBytes((long)arg); - } - else if (arg is ushort) - { - bytes = BitConverter.GetBytes((ushort)arg); - } - else if (arg is uint) - { - bytes = BitConverter.GetBytes((uint)arg); - } - else if (arg is ulong) - { - bytes = BitConverter.GetBytes((ulong)arg); - } - else if (arg is BigInteger) - { - bytes = ((BigInteger)arg).ToByteArray(); - } - else - { - try - { - return HandleOtherFormats(format, arg); - } - catch (FormatException e) - { - throw new FormatException(String.Format("The format of '{0}' is invalid.", format), e); - } - } - - switch (thisFmt.ToUpper()) - { - // Binary formatting. - case "B": - baseNumber = 2; - break; - case "O": - baseNumber = 8; - break; - case "H": - baseNumber = 16; - break; - // Handle unsupported format strings. - default: - try - { - return HandleOtherFormats(format, arg); - } - catch (FormatException e) - { - throw new FormatException(String.Format("The format of '{0}' is invalid.", format), e); - } - } - - // Return a formatted string. - string numericString = String.Empty; - for (int ctr = bytes.GetUpperBound(0); ctr >= bytes.GetLowerBound(0); ctr--) - { - string byteString = Convert.ToString(bytes[ctr], baseNumber); - if (baseNumber == 2) - byteString = new String('0', 8 - byteString.Length) + byteString; - else if (baseNumber == 8) - byteString = new String('0', 4 - byteString.Length) + byteString; - // Base is 16. - else - byteString = new String('0', 2 - byteString.Length) + byteString; - - numericString += byteString + " "; - } - return numericString.Trim(); - } - - private string HandleOtherFormats(string format, object arg) - { - if (arg is IFormattable) - return ((IFormattable)arg).ToString(format, CultureInfo.CurrentCulture); - else if (arg != null) - return arg.ToString(); - else - return String.Empty; - } - } -} diff --git a/IOB-WIN/IOB-UT/IOB-UT.csproj b/IOB-WIN/IOB-UT/IOB-UT.csproj deleted file mode 100644 index 90aa78c..0000000 --- a/IOB-WIN/IOB-UT/IOB-UT.csproj +++ /dev/null @@ -1,63 +0,0 @@ - - - - - Debug - AnyCPU - {90512E12-29FC-460D-94CC-648C2A072DBD} - Library - Properties - IOB_UT - IOB-UT - v4.6.1 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\packages\NLog.4.4.12\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - - - - Always - - - Designer - - - - - \ No newline at end of file diff --git a/IOB-WIN/IOB-UT/IniFile.cs b/IOB-WIN/IOB-UT/IniFile.cs deleted file mode 100644 index f6a2e2d..0000000 --- a/IOB-WIN/IOB-UT/IniFile.cs +++ /dev/null @@ -1,247 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using System.Text; -using System.Globalization; - -namespace IOB_UT -{ - /// - /// Create a new INI file to store or load data - /// - public class IniFile - { - public string FileName; // INI filename - - // import windows dll functions - #region DLL_IMPORT_FUNCTIONS - [DllImport("kernel32", CharSet = CharSet.Auto, BestFitMapping = false)] - private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); - [DllImport("kernel32")] - private static extern bool WritePrivateProfileSection(string section, string value, string filePath); - [DllImport("kernel32")] - private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); - [DllImport("kernel32")] - private static extern int GetPrivateProfileInt(string section, string key, int def, string filePath); - [DllImport("kernel32")] - private static extern int GetPrivateProfileSection(string section, IntPtr retVal, uint size, string filePath); - #endregion - - /// - /// Constructor - /// - /// - public IniFile(string INIPath) - { - FileName = INIPath; - } - - /// - /// Write data to the INI file - /// - /// - /// Section name - /// - /// Key Name - /// - /// Value Name - public void WriteString(string Section, string Key, string Value) - { - WritePrivateProfileString(Section, Key, Value, FileName); - } - - /// - /// Write a boolean value - /// - /// - /// - /// - public void WriteBoolean(string Section, string Key, bool Value) - { - int flag = Value ? 1 : 0; - WriteString(Section, Key, Convert.ToString(flag)); - } - - /// - /// Write an integer value - /// - /// - /// - /// - public void WriteInteger(string Section, string Key, int Value) - { - WriteString(Section, Key, Convert.ToString(Value)); - } - - /// - /// Write a double value - /// - /// - /// - /// - public void WriteDouble(string Section, string Key, double Value) - { - WriteString(Section, Key, Convert.ToString(Value, NumberFormatInfo.InvariantInfo)); - } - - /// - /// Read data from the Ini file - /// - /// - /// - /// - /// - public string ReadString(string Section, string Key) - { - StringBuilder temp = new StringBuilder(255); - int i = GetPrivateProfileString(Section, Key, "", temp, 255, FileName); - return temp.ToString(); - } - - /// - /// Read a string. If not found use default value - /// - /// - /// - /// - /// - public string ReadString(string Section, string Key, string DefaultVal) - { - string temp = ReadString(Section, Key); - if (temp == "") temp = DefaultVal; - return temp; - } - - /// - /// Read an integer - /// - /// - /// - /// - public int ReadInteger(string Section, string Key) - { - return GetPrivateProfileInt(Section, Key, 0, FileName); - //System.Convert.ToInt32(IniReadValue(Section, Key)); - } - - /// - /// Read an integer. If not found use default value - /// - /// - /// - /// - /// - public int ReadInteger(string Section, string Key, int DefaultVal) - { - //int temp = System.Convert.ToInt32(IniReadString(Section, Key, Convert.ToString(DefaultVal))); - //return temp; - return GetPrivateProfileInt(Section, Key, DefaultVal, FileName); - } - - /// - /// Read a boolean - /// - /// - /// - /// - public bool ReadBoolean(string Section, string Key) - { - return (ReadInteger(Section, Key, 0) != 0); - } - - /// - /// Read a boolean with default value - /// - /// - /// - /// - /// - public bool ReadBoolean(string Section, string Key, bool DefaultVal) - { - int v = DefaultVal ? 1 : 0; - return (ReadInteger(Section, Key, v) != 0); - } - - /// - /// Read a complete section (keys=values) - /// - /// - /// Section name - /// - public string[] ReadSection(string Section) - { - const int bufferSize = 2048; // max is 32767 - - StringBuilder returnedString = new StringBuilder(); - - IntPtr pReturnedString = Marshal.AllocCoTaskMem(bufferSize); - try - { - int bytesReturned = GetPrivateProfileSection(Section, pReturnedString, bufferSize, FileName); - - //bytesReturned -1 to remove trailing \0 - for (int i = 0; i < bytesReturned - 1; i++) - returnedString.Append((char)Marshal.ReadByte(new IntPtr((uint)pReturnedString + (uint)i))); - } - finally - { - Marshal.FreeCoTaskMem(pReturnedString); - } - - string sectionData = returnedString.ToString(); - return sectionData.Split('\0'); - } - - /// - /// Return true if value exists - /// - /// - /// - /// - public bool ValueExists(string Section, string Key) - { - StringBuilder temp = new StringBuilder(255); - int i = GetPrivateProfileString(Section, Key, "", temp, 255, FileName); - return (i > 0); - } - - /// - /// Completely remove one section - /// - /// - public void IniDeleteSection(string Section) - { - WritePrivateProfileSection(Section, null, FileName); - } - - /// - /// Return true if section exists - /// - /// - /// - public bool IniSectionExists(string Section) - { - int bytesReturned = 0; - const int bufferSize = 2048; // max is 32767 - IntPtr pReturnedString = Marshal.AllocCoTaskMem(bufferSize); - try - { - bytesReturned = GetPrivateProfileSection(Section, pReturnedString, bufferSize, FileName); - } - finally - { - Marshal.FreeCoTaskMem(pReturnedString); - } - return (bytesReturned > 0); - } - - /// - /// Delete a key from section - /// - /// - /// - public void IniDeleteKey(string Section, string Key) - { - WritePrivateProfileString(Section, Key, null, FileName); - } - } -} diff --git a/IOB-WIN/IOB-UT/NLog.config b/IOB-WIN/IOB-UT/NLog.config deleted file mode 100644 index 7a0f3aa..0000000 --- a/IOB-WIN/IOB-UT/NLog.config +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/IOB-WIN/IOB-UT/NLog.xsd b/IOB-WIN/IOB-UT/NLog.xsd deleted file mode 100644 index 4740d80..0000000 --- a/IOB-WIN/IOB-UT/NLog.xsd +++ /dev/null @@ -1,3103 +0,0 @@ - - - - - - - - - - - - - - - Watch config file for changes and reload automatically. - - - - - Print internal NLog messages to the console. Default value is: false - - - - - Print internal NLog messages to the console error output. Default value is: false - - - - - Write internal NLog messages to the specified file. - - - - - Log level threshold for internal log messages. Default value is: Info. - - - - - Global log level threshold for application log messages. Messages below this level won't be logged.. - - - - - Throw an exception when there is an internal error. Default value is: false. - - - - - Throw an exception when there is a configuration error. If not set, determined by throwExceptions. - - - - - Gets or sets a value indicating whether Variables should be kept on configuration reload. Default value is: false. - - - - - Write internal NLog messages to the System.Diagnostics.Trace. Default value is: false. - - - - - Write timestamps for internal NLog messages. Default value is: true. - - - - - Use InvariantCulture as default culture instead of CurrentCulture. Default value is: false. - - - - - - - - - - - - - - Make all targets within this section asynchronous (creates additional threads but the calling thread isn't blocked by any target writes). - - - - - - - - - - - - - - - - - Prefix for targets/layout renderers/filters/conditions loaded from this assembly. - - - - - Load NLog extensions from the specified file (*.dll) - - - - - Load NLog extensions from the specified assembly. Assembly name should be fully qualified. - - - - - - - - - - Name of the logger. May include '*' character which acts like a wildcard. Allowed forms are: *, Name, *Name, Name* and *Name* - - - - - Comma separated list of levels that this rule matches. - - - - - Minimum level that this rule matches. - - - - - Maximum level that this rule matches. - - - - - Level that this rule matches. - - - - - Comma separated list of target names. - - - - - Ignore further rules if this one matches. - - - - - Enable or disable logging rule. Disabled rules are ignored. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the file to be included. You could use * wildcard. The name is relative to the name of the current config file. - - - - - Ignore any errors in the include file. - - - - - - - Variable name. - - - - - Variable value. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Number of log events that should be processed in a batch by the lazy writer thread. - - - - - Limit of full s to write before yielding into Performance is better when writing many small batches, than writing a single large batch - - - - - Action to be taken when the lazy writer thread request queue count exceeds the set limit. - - - - - Limit on the number of requests in the lazy writer thread request queue. - - - - - Time in milliseconds to sleep between batches. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Delay the flush until the LogEvent has been confirmed as written - - - - - Condition expression. Log events who meet this condition will cause a flush on the wrapped target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Number of log events to be buffered. - - - - - Timeout (in milliseconds) after which the contents of buffer will be flushed if there's no write in the specified period of time. Use -1 to disable timed flushes. - - - - - Indicates whether to use sliding timeout. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Encoding to be used. - - - - - Instance of that is used to format log messages. - - - - - End of line value if a newline is appended at the end of log message . - - - - - Maximum message size in bytes. - - - - - Indicates whether to append newline at the end of log message. - - - - - Action that should be taken if the will be more connections than . - - - - - Action that should be taken if the message is larger than maxMessageSize. - - - - - Maximum current connections. 0 = no maximum. - - - - - Indicates whether to keep connection open whenever possible. - - - - - Size of the connection cache (number of connections which are kept alive). - - - - - Network address. - - - - - Maximum queue size. - - - - - Indicates whether to include stack contents. - - - - - Indicates whether to include source info (file name and line number) in the information sent over the network. - - - - - Indicates whether to include NLog-specific extensions to log4j schema. - - - - - Indicates whether to include dictionary contents. - - - - - Indicates whether to include call site (class and method name) in the information sent over the network. - - - - - AppInfo field. By default it's the friendly name of the current AppDomain. - - - - - NDC item separator. - - - - - Indicates whether to include dictionary contents. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - Layout that should be use to calcuate the value for the parameter. - - - - - Viewer parameter name. - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Text to be rendered. - - - - - Header. - - - - - Footer. - - - - - Indicates whether to use default row highlighting rules. - - - - - Indicates whether to auto-check if the console is available. - Disables console writing if Environment.UserInteractive = False (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App) - - - - - The encoding for writing messages to the . - - - - - Indicates whether the error stream (stderr) should be used instead of the output stream (stdout). - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Condition that must be met in order to set the specified foreground and background color. - - - - - Background color. - - - - - Foreground color. - - - - - - - - - - - - - - - - Indicates whether to ignore case when comparing texts. - - - - - Regular expression to be matched. You must specify either text or regex. - - - - - Text to be matched. You must specify either text or regex. - - - - - Indicates whether to match whole words only. - - - - - Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. - - - - - Background color. - - - - - Foreground color. - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Text to be rendered. - - - - - Header. - - - - - Footer. - - - - - Indicates whether to send the log messages to the standard error instead of the standard output. - - - - - Indicates whether to auto-check if the console is available - Disables console writing if Environment.UserInteractive = False (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App) - - - - - The encoding for writing messages to the . - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Obsolete - value will be ignored! The logging code always runs outside of transaction. Gets or sets a value indicating whether to use database transactions. Some data providers require this. - - - - - Database user name. If the ConnectionString is not provided this value will be used to construct the "User ID=" part of the connection string. - - - - - Name of the database provider. - - - - - Database password. If the ConnectionString is not provided this value will be used to construct the "Password=" part of the connection string. - - - - - Indicates whether to keep the database connection open between the log events. - - - - - Database name. If the ConnectionString is not provided this value will be used to construct the "Database=" part of the connection string. - - - - - Name of the connection string (as specified in <connectionStrings> configuration section. - - - - - Connection string. When provided, it overrides the values specified in DBHost, DBUserName, DBPassword, DBDatabase. - - - - - Database host name. If the ConnectionString is not provided this value will be used to construct the "Server=" part of the connection string. - - - - - Connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - Text of the SQL command to be run on each log level. - - - - - Type of the SQL command to be run on each log level. - - - - - - - - - - - - - - - - - - - - - - - Type of the command. - - - - - Connection string to run the command against. If not provided, connection string from the target is used. - - - - - Indicates whether to ignore failures. - - - - - Command text. - - - - - - - - - - - - - - Layout that should be use to calcuate the value for the parameter. - - - - - Database parameter name. - - - - - Database parameter precision. - - - - - Database parameter scale. - - - - - Database parameter size. - - - - - - - - - - - - - - - - Name of the target. - - - - - Text to be rendered. - - - - - Header. - - - - - Footer. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Layout that renders event Category. - - - - - Layout that renders event ID. - - - - - Name of the Event Log to write to. This can be System, Application or any user-defined name. - - - - - Name of the machine on which Event Log service is running. - - - - - Value to be used as the event Source. - - - - - Action to take if the message is larger than the option. - - - - - Optional entrytype. When not set, or when not convertable to then determined by - - - - - Maximum Event log size in kilobytes. If null, the value won't be set. Default is 512 Kilobytes as specified by Eventlog API - - - - - Message length limit to write to the Event Log. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Indicates whether to return to the first target after any successful write. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Text to be rendered. - - - - - Header. - - - - - Footer. - - - - - File encoding. - - - - - Line ending mode. - - - - - Way file archives are numbered. - - - - - Name of the file to be used for an archive. - - - - - Indicates whether to automatically archive log files every time the specified time passes. - - - - - Size in bytes above which log files will be automatically archived. Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. Choose: - - - - - Indicates whether to compress archive files into the zip archive format. - - - - - Maximum number of archive files that should be kept. - - - - - Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. - - - - - Is the an absolute or relative path? - - - - - Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. If set to false, nothing gets written when the filename is wrong. - - - - - Whether or not this target should just discard all data that its asked to write. Mostly used for when testing NLog Stack except final write - - - - - Is the an absolute or relative path? - - - - - Value indicationg whether file creation calls should be synchronized by a system global mutex. - - - - - Maximum number of log filenames that should be stored as existing. - - - - - Indicates whether the footer should be written only when the file is archived. - - - - - Name of the file to write to. - - - - - Value specifying the date format to use when archiving files. - - - - - Indicates whether to archive old log file on startup. - - - - - Indicates whether to create directories if they do not exist. - - - - - File attributes (Windows only). - - - - - Indicates whether to delete old log file on startup. - - - - - Indicates whether to replace file contents on each write instead of appending log message at the end. - - - - - Indicates whether to enable log file(s) to be deleted. - - - - - Number of times the write is appended on the file before NLog discards the log message. - - - - - Indicates whether concurrent writes to the log file by multiple processes on the same host. - - - - - Indicates whether to keep log file open instead of opening and closing it on each logging event. - - - - - Indicates whether concurrent writes to the log file by multiple processes on different network hosts. - - - - - Number of files to be kept open. Setting this to a higher value may improve performance in a situation where a single File target is writing to many files (such as splitting by level or by logger). - - - - - Maximum number of seconds that files are kept open. If this number is negative the files are not automatically closed after a period of inactivity. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - Log file buffer size in bytes. - - - - - Indicates whether to automatically flush the file buffers after each log message. - - - - - Delay in milliseconds to wait before attempting to write to the file again. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Condition expression. Log events who meet this condition will be forwarded to the wrapped target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Windows domain name to change context to. - - - - - Required impersonation level. - - - - - Type of the logon provider. - - - - - Logon Type. - - - - - User account password. - - - - - Indicates whether to revert to the credentials of the process instead of impersonating another user. - - - - - Username to change context to. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Interval in which messages will be written up to the number of messages. - - - - - Maximum allowed number of messages written per . - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Endpoint address. - - - - - Name of the endpoint configuration in WCF configuration file. - - - - - Indicates whether to use a WCF service contract that is one way (fire and forget) or two way (request-reply) - - - - - Client ID. - - - - - Indicates whether to include per-event properties in the payload sent to the server. - - - - - Indicates whether to use binary message encoding. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - Layout that should be use to calculate the value for the parameter. - - - - - Name of the parameter. - - - - - Type of the parameter. - - - - - Type of the parameter. Obsolete alias for - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Text to be rendered. - - - - - Header. - - - - - Footer. - - - - - Indicates whether to send message as HTML instead of plain text. - - - - - Encoding to be used for sending e-mail. - - - - - Indicates whether to add new lines between log entries. - - - - - CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). - - - - - Recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). - - - - - BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). - - - - - Mail message body (repeated for each log message send in one mail). - - - - - Mail subject. - - - - - Sender's email address (e.g. joe@domain.com). - - - - - Indicates the SMTP client timeout. - - - - - Priority used for sending mails. - - - - - Indicates whether NewLine characters in the body should be replaced with tags. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - SMTP Server to be used for sending. - - - - - SMTP Authentication mode. - - - - - Username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). - - - - - Password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). - - - - - Indicates whether SSL (secure sockets layer) should be used when communicating with SMTP server. - - - - - Port number that SMTP Server is listening on. - - - - - Indicates whether the default Settings from System.Net.MailSettings should be used. - - - - - Folder where applications save mail messages to be processed by the local SMTP server. - - - - - Specifies how outgoing email messages will be handled. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Encoding to be used when writing text to the queue. - - - - - Indicates whether to use the XML format when serializing message. This will also disable creating queues. - - - - - Indicates whether to check if a queue exists before writing to it. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - Indicates whether to create the queue if it doesn't exists. - - - - - Label to associate with each message. - - - - - Name of the queue to write to. - - - - - Indicates whether to use recoverable messages (with guaranteed delivery). - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Class name. - - - - - Method name. The method must be public and static. Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx e.g. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Encoding to be used. - - - - - End of line value if a newline is appended at the end of log message . - - - - - Maximum message size in bytes. - - - - - Indicates whether to append newline at the end of log message. - - - - - Action that should be taken if the will be more connections than . - - - - - Action that should be taken if the message is larger than maxMessageSize. - - - - - Network address. - - - - - Size of the connection cache (number of connections which are kept alive). - - - - - Indicates whether to keep connection open whenever possible. - - - - - Maximum current connections. 0 = no maximum. - - - - - Maximum queue size. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Encoding to be used. - - - - - Instance of that is used to format log messages. - - - - - End of line value if a newline is appended at the end of log message . - - - - - Maximum message size in bytes. - - - - - Indicates whether to append newline at the end of log message. - - - - - Action that should be taken if the will be more connections than . - - - - - Action that should be taken if the message is larger than maxMessageSize. - - - - - Maximum current connections. 0 = no maximum. - - - - - Indicates whether to keep connection open whenever possible. - - - - - Size of the connection cache (number of connections which are kept alive). - - - - - Network address. - - - - - Maximum queue size. - - - - - Indicates whether to include stack contents. - - - - - Indicates whether to include source info (file name and line number) in the information sent over the network. - - - - - Indicates whether to include NLog-specific extensions to log4j schema. - - - - - Indicates whether to include dictionary contents. - - - - - Indicates whether to include call site (class and method name) in the information sent over the network. - - - - - AppInfo field. By default it's the friendly name of the current AppDomain. - - - - - NDC item separator. - - - - - Indicates whether to include dictionary contents. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Indicates whether to perform layout calculation. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Indicates whether performance counter should be automatically created. - - - - - Name of the performance counter category. - - - - - Counter help text. - - - - - Name of the performance counter. - - - - - Performance counter type. - - - - - The value by which to increment the counter. - - - - - Performance counter instance name. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Default filter to be applied when no specific rule matches. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - Condition to be tested. - - - - - Resulting filter to be applied when the condition matches. - - - - - - - - - - - - - Name of the target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - Name of the target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - Number of times to repeat each log message. - - - - - - - - - - - - - - - - - Name of the target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - Number of retries that should be attempted on the wrapped target in case of a failure. - - - - - Time to wait between retries in milliseconds. - - - - - - - - - - - - - - - Name of the target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - Name of the target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Should we include the BOM (Byte-order-mark) for UTF? Influences the property. This will only work for UTF-8. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - Encoding. - - - - - Value whether escaping be done according to the old NLog style (Very non-standard) - - - - - Value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) - - - - - Web service method name. Only used with Soap. - - - - - Web service namespace. Only used with Soap. - - - - - Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) - - - - - Protocol to be used when calling web service. - - - - - Web service URL. - - - - - Name of the root XML element, if POST of XML document chosen. If so, this property must not be null. (see and ). - - - - - (optional) root namespace of the XML document, if POST of XML document chosen. (see and ). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Footer layout. - - - - - Header layout. - - - - - Body layout (can be repeated multiple times). - - - - - Custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). - - - - - Column delimiter. - - - - - Quote Character. - - - - - Quoting mode. - - - - - Indicates whether CVS should include header. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Layout of the column. - - - - - Name of the column. - - - - - - - - - - - - - - - - - - List of property names to exclude when is true - - - - - Option to include all properties from the log events - - - - - Indicates whether to include contents of the dictionary. - - - - - Option to render the empty object value {} - - - - - Option to suppress the extra spaces in the output json - - - - - Indicates whether to include contents of the dictionary. - - - - - - - - - - - - - - - Determines wether or not this attribute will be Json encoded. - - - - - Indicates whether to escape non-ascii characters - - - - - Layout that will be rendered as the attribute's value. - - - - - Name of the attribute. - - - - - - - - - - - - - - Footer layout. - - - - - Header layout. - - - - - Body layout (can be repeated multiple times). - - - - - - - - - - - - - - - - Option to include all properties from the log events - - - - - Indicates whether to include contents of the dictionary. - - - - - Indicates whether to include contents of the dictionary. - - - - - - - - - - - - - - Layout text. - - - - - - - - - - - - - - - Action to be taken when filter matches. - - - - - Condition expression. - - - - - - - - - - - - - - - - - - - - - - - - - - Action to be taken when filter matches. - - - - - Indicates whether to ignore case when comparing strings. - - - - - Layout to be used to filter log messages. - - - - - Substring to be matched. - - - - - - - - - - - - - - - - - Action to be taken when filter matches. - - - - - String to compare the layout to. - - - - - Indicates whether to ignore case when comparing strings. - - - - - Layout to be used to filter log messages. - - - - - - - - - - - - - - - - - Action to be taken when filter matches. - - - - - Indicates whether to ignore case when comparing strings. - - - - - Layout to be used to filter log messages. - - - - - Substring to be matched. - - - - - - - - - - - - - - - - - Action to be taken when filter matches. - - - - - String to compare the layout to. - - - - - Indicates whether to ignore case when comparing strings. - - - - - Layout to be used to filter log messages. - - - - - - - - - - - - - - - - - - - - - - - Action to be taken when filter matches. - - - - - Layout to be used to filter log messages. - - - - - Default number of unique filter values to expect, will automatically increase if needed - - - - - Append FilterCount to the when an event is no longer filtered - - - - - Insert FilterCount value into when an event is no longer filtered - - - - - Max number of unique filter values to expect simultaneously - - - - - Max length of filter values, will truncate if above limit - - - - - Default buffer size for the internal buffers - - - - - Reuse internal buffers, and doesn't have to constantly allocate new buffers - - - - - How long before a filter expires, and logging is accepted again - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/IOB-WIN/IOB-UT/Properties/AssemblyInfo.cs b/IOB-WIN/IOB-UT/Properties/AssemblyInfo.cs deleted file mode 100644 index 742e7bb..0000000 --- a/IOB-WIN/IOB-UT/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// Le informazioni generali relative a un assembly sono controllate dal seguente -// set di attributi. Modificare i valori di questi attributi per modificare le informazioni -// associate a un assembly. -[assembly: AssemblyTitle("IOB-UT")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("IOB-UT")] -[assembly: AssemblyCopyright("Copyright © 2017")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili -// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da -// COM, impostare su true l'attributo ComVisible per tale tipo. -[assembly: ComVisible(false)] - -// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi -[assembly: Guid("90512e12-29fc-460d-94cc-648c2a072dbd")] - -// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori: -// -// Versione principale -// Versione secondaria -// Numero di build -// Revisione -// -// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build -// usando l'asterisco '*' come illustrato di seguito: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/IOB-WIN/IOB-UT/baseUtils.cs b/IOB-WIN/IOB-UT/baseUtils.cs deleted file mode 100644 index 28bf300..0000000 --- a/IOB-WIN/IOB-UT/baseUtils.cs +++ /dev/null @@ -1,990 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Configuration; -using System.Data; -using System.IO; -using System.Linq; -using NLog; - -namespace IOB_UT -{ - public class baseUtils - { - /// - /// classe logger - /// - public static Logger lg; - - /// - /// legge conf in formato char - /// - /// - /// - public static char CRC(string key) - { - char answ = '-'; - try - { - answ = ConfigurationManager.AppSettings[key].ToCharArray()[0]; - } - catch - { } - return answ; - } - /// - /// legge conf in formato stringa - /// - /// - /// - public static string CRS(string key) - { - string answ = ""; - try - { - answ = ConfigurationManager.AppSettings[key].ToString(); - } - catch - { } - return answ; - } - /// - /// legge conf in formato INT - /// - /// - /// - public static Int32 CRI(string key) - { - int answ = 0; - try - { - answ = Convert.ToInt32(CRS(key)); - } - catch - { } - return answ; - } - /// - /// legge conf in formato BOOLean - /// - /// - /// - public static bool CRB(string key) - { - bool answ = false; - try - { - answ = Convert.ToBoolean(CRS(key)); - } - catch - { } - return answ; - } - /// - /// verifica se un dato bit sia alzato (come flag di strobe) - /// - /// valore da testare - /// valore cercato, può essere un singolo valore o un insieme in modalità AND - /// - public static bool IsSetAll(Strobe value, Strobe flag) - { - return ((value & flag) == flag); - } - /// - /// verifica se un dato bit sia alzato (come flag di strobe) - /// - /// valore da testare - /// valore cercato, può essere un singolo valore o un insieme in modalità OR - /// - public static bool IsSetAny(Strobe value, Strobe flag) - { - return ((value & flag) != 0); - } - /// - /// verifica se un dato bit sia alzato (come flag di strobe) - /// - /// valore da testare - /// valore cercato, può essere un singolo valore o un insieme in modalità AND - /// - public static bool IsSetAll(StatusBitMap value, StatusBitMap flag) - { - return ((value & flag) == flag); - } - /// - /// verifica se un dato bit sia alzato (come flag di strobe) - /// - /// valore da testare - /// valore cercato, può essere un singolo valore o un insieme in modalità OR - /// - public static bool IsSetAny(StatusBitMap value, StatusBitMap flag) - { - return ((value & flag) != 0); - } - /// - /// formatta un numero in forma binaria 0/1 - /// - /// - /// - public static string binaryForm(int valore) - { - string answ = ""; - try - { - answ = string.Format(new BinaryFormatter(), "{0:B}", valore); - } - catch - { } - return answ; - } - /// - /// Method to convert an integer to a string containing the number in binary. A negative - /// number will be formatted as a 32-character binary number in two's compliment. - /// - /// self-explanatory - /// if binary number contains fewer characters leading zeros are added - /// string as described above - public static string IntToBinStr(int theNumber, int minimumDigits) - { - return Convert.ToString(theNumber, 2).PadLeft(minimumDigits, '0'); - } - /// - /// imposta un bit al valore richiesto duplicando il valore IN come OUT - /// - /// valore originale da aggiornare - /// valore richiesto x il bit (0/1) - /// indice bit, 0 based (es: 0..31 per 32bit) - /// - public static byte[] setBitOnStFlag(byte[] original, bool bitBool, int bitIndex) - { - int bitVal = 0; - if (bitBool) bitVal = 1; - // risposta è identica ad originale... - byte[] answ = original; - // verifico se il bit è 0/1b - if (bitVal <= 1 && bitVal >= 0) - { - // verifico se si possa aggiornare il bit richiesto (<= al totale dei bit...) - if (bitIndex <= original.Length * 8 - 1) - { - // calcolo byte - int byteIndex = bitIndex / 8; - // bit nel byte - int bitInByteIndex = bitIndex % 8; - // bit richiesto - byte mask = (byte)(bitVal << bitInByteIndex); - // imposto! - answ[byteIndex] |= mask; - } - } - return answ; - } - /// - /// Converte un bitarray a byte[] - /// - /// - /// - public static byte[] ToByteArray(BitArray bits) - { - int numBytes = bits.Count / 8; - if (bits.Count % 8 != 0) numBytes++; - - byte[] bytes = new byte[numBytes]; - int byteIndex = 0, bitIndex = 0; - - for (int i = 0; i < bits.Count; i++) - { - if (bits[i]) - bytes[byteIndex] |= (byte)(1 << (7 - bitIndex)); - - bitIndex++; - if (bitIndex == 8) - { - bitIndex = 0; - byteIndex++; - } - } - - return bytes; - } - - /// - /// Scrittura dictionary su file - /// - /// - /// - public static void WriteBin(Dictionary dictionary, string file) - { - using (FileStream fs = File.OpenWrite(file)) - using (BinaryWriter writer = new BinaryWriter(fs)) - { - // Put count. - writer.Write(dictionary.Count); - // Write pairs. - foreach (var pair in dictionary) - { - writer.Write(pair.Key); - writer.Write(pair.Value); - } - } - } - /// - /// Lettura dictionary da file - /// - /// - /// - public static Dictionary ReadBin(string file) - { - var result = new Dictionary(); - // verifico file esista... - if (!File.Exists(file)) - { - FileStream fs = File.Create(file); - fs.Close(); - } - using (FileStream fs = File.OpenRead(file)) - using (BinaryReader reader = new BinaryReader(fs)) - { - // Get count. - int count = 0; - try - { - count = reader.ReadInt32(); - } - catch - { } - // Read in all pairs. - for (int i = 0; i < count; i++) - { - string key = reader.ReadString(); - string value = reader.ReadString(); - result[key] = value; - } - } - return result; - } - - /// - /// Scrittura dictionary su file - /// - /// - /// - public static void WritePlain(Dictionary dictionary, string file) - { - string dirPath = file.Substring(0, file.LastIndexOf('\\')); - // verifico directory - if (!Directory.Exists(dirPath)) - { - Directory.CreateDirectory(dirPath); - } - string[] lines = dictionary.OrderBy(i => i.Key).Select(kvp => kvp.Key + ":" + kvp.Value).ToArray(); - try - { - File.WriteAllLines(file, lines); - } - catch (Exception exc) - { - lg.Info(exc, string.Format("Errore in scrittura file {0}", file)); - } - } - /// - /// Lettura dictionary da file - /// - /// - /// - public static Dictionary ReadPlain(string file) - { - // inizializzo num righe lette... - int numRow = 0; - var result = new Dictionary(); - // verifico file esista... - if (!File.Exists(file)) - { - FileStream fs = File.Create(file); - fs.Close(); - } - try - { - string[] lines = File.ReadAllLines(file); - result = lines.Select(l => l.Split(':')).ToDictionary(a => a[0], a => a[1]); - numRow = result.Count; - } - catch - { } - // se leggesse un valore NON coerente (senza righe) restituisce un file vuoto... - if (numRow == 0) - { - result = new Dictionary(); - } - return result; - } - - } - /// - /// Oggetto timing x archiviazione dati perfomances - /// - public class TimeRec - { - /// - /// Codice univoco chiamata: tipo R4 (read 4 byte), W2 (write 2 Byte) - /// - public string codCall; - /// - /// Num chiamate totale - /// - public int numCall; - /// - /// Tempo medio chiamata - /// - public double avgMsec - { - get - { - return totMsec.TotalMilliseconds / numCall; - } - } - /// - /// Totale Msec accumulati - /// - public TimeSpan totMsec; - /// - /// Classe record timing - /// - public TimeRec() - { - codCall = ""; - numCall = 0; - totMsec = new TimeSpan(0); - } - /// - /// Classe record timing - /// - /// - /// - public TimeRec(string codice, long nTicks) - { - codCall = codice; - numCall = 1; - totMsec = new TimeSpan(nTicks); - } - } - - /// - /// Classe gestione valori campionati su periodo - /// - public class sampleVect - { - /// - /// Dimensione finestra di campionamento (secondi) - /// - protected int windSize; - /// - /// vettore valori temporali della serie - /// - protected List lTime; - /// - /// vettore valoti puntuali della serie - /// - protected List lVal; - /// - /// Inizializzo l'oggetto - /// - public sampleVect() - { - // init valori default... - windSize = baseUtils.CRI("countWindSize") > 0 ? baseUtils.CRI("countWindSize") : 60; - lTime = new List(); - lVal = new List(); - } - /// - /// Conteggio elementi - /// - protected int numElem - { - get - { - int answ = 0; - try - { - answ = lTime.Count; - } - catch - { } - return answ; - } - } - /// - /// Verifica ampiezza finestra valori First-Last - /// - protected double flWindSize - { - get - { - double answ = 0; - if (numElem > 1) - { - answ = lTime.Last().Subtract(lTime[0]).TotalSeconds; - } - return answ; - } - } - /// - /// Verifica ampiezza finestra valori Second-Last - /// - protected double slWindSize - { - get - { - double answ = 0; - if (numElem > 2) // altrimenti SE non ne ho almeno 3 NON posso avere secondo/ultimo... - { - - answ = lTime.Last().Subtract(lTime[1]).TotalSeconds; - } - return answ; - } - } - /// - /// Aggiunge un valore alla serie ed eventualmente elimina i valori superflui a garantirne una finestra temporale valida - /// - /// - /// - public void addValue(DateTime tempo, int valore) - { - lTime.Add(tempo); - lVal.Add(valore); - // verifico se siano da accorciare le serie... ovvero i 2 intervalli ENTRAMBI sono superiori al periodo minimo (in tal caso riduco.. - while (flWindSize > windSize && slWindSize > windSize) - { - // elimino i 2 valori + vecchi - lTime.RemoveAt(0); - lVal.RemoveAt(0); - // ora ricontrollo... - } - } - /// - /// Calcola il valore mediano... - /// - public double vcMedian - { - get - { - double answ = 0; - // restituisce la mediana SE valida, altrimenti null... - if (numElem > 2 && flWindSize > windSize) - { - try - { - // calcolo mediana! - //answ = Statistics.Median(lVal.ToArray()); - - // rif: https://blogs.msmvps.com/deborahk/linq-mean-median-and-mode/ - var sortedNumbers = lVal.OrderBy(n => n); - int numCount = lVal.Count; - int indice50 = lVal.Count / 2; - if ((numCount % 2) == 0) - { - answ = ((sortedNumbers.ElementAt(indice50) + sortedNumbers.ElementAt(indice50 - 1)) / 2); - } - else - { - answ = sortedNumbers.ElementAt(indice50); - } - } - catch - { } - } - return answ; - } - } - /// - /// Verifica se la vc sia valida (ovvero almeno 2 valori e intervallo > window richiesta) - /// - public bool vcValid - { - get - { - return (flWindSize > windSize && numElem > 1); - } - } - - } - - public static class TimingData - { - public static List results = new List(); - - /// - /// aggiorno vettore aggiungendo risultato - /// - /// - /// - public static void addResult(string codice, long ticks) - { - if (results.Count == 0) - { - results.Add(new TimeRec(codice, ticks)); - } - int indice = -1; - for (int i = 0; i < results.Count; i++) - { - // se il codice è quello cercato... - if (results[i].codCall == codice) indice = i; - } - // se c'è aggiorno... - if (indice >= 0) - { - results[indice].numCall++; - results[indice].totMsec = results[indice].totMsec.Add(new TimeSpan(ticks)); - } - // altrimenti aggiungo... - else - { - results.Add(new TimeRec(codice, ticks)); - } - } - /// - /// Resetta i dati registrati (ad avvio adapter...) - /// - public static void resetData() - { - results = new List(); - } - } - /// - /// Gestione Endianness - /// - public static class Endian - { - /// - /// Scambia MSB/LSB per 16bit - /// - /// - /// - public static UInt16 SwapUInt16(UInt16 inValue) - { - return (UInt16)(((inValue & 0xff00) >> 8) | - ((inValue & 0x00ff) << 8)); - } - - /// - /// Scambia MSB/LSB per 32bit - /// - /// - /// - public static UInt32 SwapUInt32(UInt32 inValue) - { - return (UInt32)(((inValue & 0xff000000) >> 24) | - ((inValue & 0x00ff0000) >> 8) | - ((inValue & 0x0000ff00) << 8) | - ((inValue & 0x000000ff) << 24)); - } - } - - - public enum tipoAdapter - { - /// - /// Adapter generico/demo - /// - DEMO, - /// - /// adapter FANUC - /// - FANUC, - /// - /// Adapter non specificato - /// - ND, - /// - /// Adapter SIEMENS - /// - SIEMENS - } - - public enum gatherCycle - { - /// - /// Very High Frequency (solo x invii...) - /// - VHF, - /// - /// lettura dati ad alta frequenza - /// - HF, - /// - /// lettura dati standard - /// - MF, - /// - /// lettura dati bassa freq - /// - LF, - /// - /// lettura dati bassissima priorità (re-sync stato allarmi) - /// - VLF - } - - /// - /// informazioni di produzione - /// - public struct prodData - { - public string Operator; - - public bool Status; - public int AccTime; - public int Power; - public string FuncMode; - public bool EmrStop; - public string MessageCode; - public string MessageText; - - } - - public struct PathData - { - public int PathSel; - public string PathType; // LAVOR/ASSERV - public string RunMode; - public string ExeMode; - public int pzTot; - public string ProgramName; - public string ProgrRow; - public string PartId; - public string ActiveAxes; - public string CodG_Act; - public string SubMode; - - public int PathFeedrate; - public int PathFeedrateOver; - public int PathRapidOver; - public int PathJogOver; - public int PathSpindleOver_01; - public int PathSpindleOver_02; - public int PathSpindleOver_03; - public int PathSpindleOver_04; - public position PathPosAct; - } - - - public struct UnOpData - { - public int UnOpSel; - public int UnOpToolId; - public int UnOpNumCU; - public string UnOpStatus; - public int UnOpVitaRes; - public int UnOpSpeed; - public int UnOpLoad; - public int UnOpAccTime; - } - - public struct AxisData - { - public int AxisSel; - public string AxisMainProc; - public bool AxisIsMaster; - public string AxisMastId; - public string AxisType; - public string AxisDir; - public int AxisLoad; - public int AxisPosAct; - public int AxisPosTgt; - public int AxisFeedAct; - public int AxisFeedOver; - public string AxisAccel; - public string AxisAccTime; - public string AxisBattery; - public string DistDone; - public string InvDDone; - } - - /// - /// Vettore completo posizione (X-Y-Z con versori i-j-k) - /// - public class position - { - public float x; - public float y; - public float z; - public float i; - public float j; - public float k; - public position() - { - x = 0; - y = 0; - z = 0; - i = 0; - j = 0; - k = 0; - } - } - - /// - /// Dati Prod SCM (per decodifica) - /// - public class datiProdSCM - { - public string area; - public string fileName; - public string dimensioni; - public DateTime start; - public DateTime stop; - public TimeSpan tEff; - public TimeSpan tTot; - public int qta; - public TimeSpan tMed; - public datiProdSCM() - { - area = ""; - fileName = ""; - dimensioni = ""; - start = DateTime.Now; - stop = DateTime.Now; - tEff = new TimeSpan(0); - tTot = new TimeSpan(0); - qta = 0; - tMed = new TimeSpan(0); - } - /// - /// crea un nuovo oggetto a partire da un array di stringhe - /// - /// - public datiProdSCM(string[] valori) - { - try - { - area = valori[0]; - fileName = valori[1]; - dimensioni = string.Format("{0}x{1}x{2}", valori[3], valori[4], valori[5]); - start = DateTime.Today.AddHours(Convert.ToInt16(valori[6])).AddMinutes(Convert.ToInt16(valori[7])).AddSeconds(Convert.ToInt16(valori[8])); - - stop = DateTime.Today.AddHours(Convert.ToInt16(valori[9])).AddMinutes(Convert.ToInt16(valori[10])).AddSeconds(Convert.ToInt16(valori[11])); - // se ore == 0 --> aggiungo 1 gg!!! - if (Convert.ToInt16(valori[9]) == 0) stop.AddDays(1); - - tEff = new TimeSpan(Convert.ToInt16(valori[12]), Convert.ToInt16(valori[13]), Convert.ToInt16(valori[14])); - - tTot = new TimeSpan(Convert.ToInt16(valori[15]), Convert.ToInt16(valori[16]), Convert.ToInt16(valori[17])); - - qta = Convert.ToInt16(valori[18]); - - tMed = new TimeSpan(Convert.ToInt16(valori[19]), Convert.ToInt16(valori[20]), Convert.ToInt16(valori[22]), Convert.ToInt16(valori[23])); - } - catch - { } - } - } - /// - /// Allarme (per decodifica) - /// - public class allarme - { - public string codNum; - public string gruppo; - public string livello; - public string descrizione; - public allarme() - { - codNum = ""; - gruppo = ""; - livello = ""; - descrizione = ""; - } - public allarme(string _codNum, string _gruppo, string _livello, string _descrizione) - { - codNum = _codNum; - gruppo = _gruppo; - livello = _livello; - descrizione = _descrizione; - } - } - - - /// - /// Dato generico (per decodifica) - /// - public class otherData - { - public string codNum; - public string memAddr; - public string varName; - public string dataType; - public otherData() - { - codNum = ""; - memAddr = ""; - varName = ""; - dataType = ""; - } - public otherData(string _codNum, string _memAddr, string _varName, string _dataType) - { - codNum = _codNum; - memAddr = _memAddr; - varName = _varName; - dataType = _dataType; - } - } - - - /// - /// Strobe: contiene il set di strobe di comunicazione - /// - /// rif: http://stackoverflow.com/questions/17209054/parse-bits-in-a-byte-to-enum - /// - [Flags] - public enum Strobe : int - { - NONE = 0, - M_CODE = 1 << 0, - S_CODE = 1 << 1, - T_CODE = 1 << 2, - PZ_OK = 1 << 3, - PZ_KO = 1 << 4, - FEED_SPEED = 1 << 5, - POS_ACT = 1 << 6, - SP07 = 1 << 7, - SP08 = 1 << 8, - SP09 = 1 << 9, - SP10 = 1 << 10, - SP11 = 1 << 11, - SP12 = 1 << 12, - SP13 = 1 << 13, - SP14 = 1 << 14, - SP15 = 1 << 15, - SP16 = 1 << 16, - SP17 = 1 << 17, - SP18 = 1 << 18, - SP19 = 1 << 19, - SP20 = 1 << 20, - SP21 = 1 << 21, - SP22 = 1 << 22, - SP23 = 1 << 23, - SP24 = 1 << 24, - SP25 = 1 << 25, - SP26 = 1 << 26, - SP27 = 1 << 27, - SP28 = 1 << 28, - SP29 = 1 << 29, - SP30 = 1 << 30, - SP31 = 1 << 31 - } - /// - /// StFlag8: set di 8 bit (1 word) contente semaforo di variabili - /// - [Flags] - public enum StFlag8 : int - { - NONE = 0, - B0 = 1 << 0, - B1 = 1 << 1, - B2 = 1 << 2, - B3 = 1 << 3, - B4 = 1 << 4, - B5 = 1 << 5, - B6 = 1 << 6, - B7 = 1 << 7 - } - /// - /// StFlag32: set di 32 bit (4 word) contente semaforo di variabili - /// - [Flags] - public enum StFlag32 : int - { - NONE = 0, - B00 = 1 << 0, - B01 = 1 << 1, - B02 = 1 << 2, - B03 = 1 << 3, - B04 = 1 << 4, - B05 = 1 << 5, - B06 = 1 << 6, - B07 = 1 << 7, - B08 = 1 << 8, - B09 = 1 << 9, - B10 = 1 << 10, - B11 = 1 << 11, - B12 = 1 << 12, - B13 = 1 << 13, - B14 = 1 << 14, - B15 = 1 << 15, - B16 = 1 << 16, - B17 = 1 << 17, - B18 = 1 << 18, - B19 = 1 << 19, - B20 = 1 << 20, - B21 = 1 << 21, - B22 = 1 << 22, - B23 = 1 << 23, - B24 = 1 << 24, - B25 = 1 << 25, - B26 = 1 << 26, - B27 = 1 << 27, - B28 = 1 << 28, - B29 = 1 << 29, - B30 = 1 << 30, - B31 = 1 << 31 - } - /// - /// StatusBitMap: contiene il set di semafori/flag x status + allarmi (x classi) - /// - [Flags] - public enum StatusBitMap : int - { - NONE = 0, - ESTOP = 1 << 0, - RM_AUTO = 1 << 1, - RM_MANUAL = 1 << 2, - RM_MDI = 1 << 3, - RM_EDIT = 1 << 4, - EM_RUN = 1 << 5, - EM_READY = 1 << 6, - EM_STOP = 1 << 7, - EM_FEEDHOLD = 1 << 8, - HM = 1 << 9, - ST11 = 1 << 10, - ST12 = 1 << 11, - ST13 = 1 << 12, - ST14 = 1 << 13, - ST15 = 1 << 14, - ST16 = 1 << 15, - AL01 = 1 << 16, - AL02 = 1 << 17, - AL03 = 1 << 18, - AL04 = 1 << 19, - AL05 = 1 << 20, - AL06 = 1 << 21, - AL07 = 1 << 22, - AL08 = 1 << 23, - AL09 = 1 << 24, - AL10 = 1 << 25, - AL11 = 1 << 26, - AL12 = 1 << 27, - AL13 = 1 << 28, - AL14 = 1 << 29, - AL15 = 1 << 30, - AL16 = 1 << 31 - } - - public enum Semaforo - { - /// - /// Verde - /// - SV, - /// - /// Giallo - /// - SG, - /// - /// Rosso - /// - SR, - /// - /// Grigio/Spento - /// - SS - } -} \ No newline at end of file diff --git a/IOB-WIN/IOB-UT/packages.config b/IOB-WIN/IOB-UT/packages.config deleted file mode 100644 index bbf6b99..0000000 --- a/IOB-WIN/IOB-UT/packages.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN.sln b/IOB-WIN/IOB-WIN.sln deleted file mode 100644 index a44133b..0000000 --- a/IOB-WIN/IOB-WIN.sln +++ /dev/null @@ -1,82 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26730.12 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-WIN", "IOB-WIN\IOB-WIN.csproj", "{ADCB8028-79C4-4896-A9A7-E3C5140FC00B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VersGen", "..\..\..\Visual Studio 2017\Projects\Mapo-IOB\IOB-WIN\VersGen\VersGen.csproj", "{58E399F3-9D4E-49D3-AB35-9ED536543D50}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-UT", "IOB-UT\IOB-UT.csproj", "{90512E12-29FC-460D-94CC-648C2A072DBD}" -EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "CncLib", "..\..\..\Visual Studio 2017\Projects\Mapo-IOB\IOB-WIN\CncLib\CncLib.vbproj", "{2D769FFD-1122-4276-A115-29246E6D23C5}" -EndProject -Global - GlobalSection(Performance) = preSolution - HasPerformanceSessions = true - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - ESA|Any CPU = ESA|Any CPU - FANUC|Any CPU = FANUC|Any CPU - OSAI|Any CPU = OSAI|Any CPU - Release|Any CPU = Release|Any CPU - SIEMENS|Any CPU = SIEMENS|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B}.ESA|Any CPU.ActiveCfg = Release|Any CPU - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B}.ESA|Any CPU.Build.0 = Release|Any CPU - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B}.FANUC|Any CPU.ActiveCfg = Release|Any CPU - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B}.FANUC|Any CPU.Build.0 = Release|Any CPU - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B}.OSAI|Any CPU.ActiveCfg = Release|Any CPU - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B}.OSAI|Any CPU.Build.0 = Release|Any CPU - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B}.Release|Any CPU.Build.0 = Release|Any CPU - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B}.SIEMENS|Any CPU.Build.0 = Release|Any CPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50}.ESA|Any CPU.ActiveCfg = Release|Any CPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50}.ESA|Any CPU.Build.0 = Release|Any CPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50}.FANUC|Any CPU.ActiveCfg = Release|Any CPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50}.FANUC|Any CPU.Build.0 = Release|Any CPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50}.OSAI|Any CPU.ActiveCfg = Release|Any CPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50}.OSAI|Any CPU.Build.0 = Release|Any CPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|Any CPU.ActiveCfg = Release|Any CPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|Any CPU.Build.0 = Release|Any CPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50}.SIEMENS|Any CPU.Build.0 = Release|Any CPU - {90512E12-29FC-460D-94CC-648C2A072DBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {90512E12-29FC-460D-94CC-648C2A072DBD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {90512E12-29FC-460D-94CC-648C2A072DBD}.ESA|Any CPU.ActiveCfg = Release|Any CPU - {90512E12-29FC-460D-94CC-648C2A072DBD}.ESA|Any CPU.Build.0 = Release|Any CPU - {90512E12-29FC-460D-94CC-648C2A072DBD}.FANUC|Any CPU.ActiveCfg = Release|Any CPU - {90512E12-29FC-460D-94CC-648C2A072DBD}.FANUC|Any CPU.Build.0 = Release|Any CPU - {90512E12-29FC-460D-94CC-648C2A072DBD}.OSAI|Any CPU.ActiveCfg = Release|Any CPU - {90512E12-29FC-460D-94CC-648C2A072DBD}.OSAI|Any CPU.Build.0 = Release|Any CPU - {90512E12-29FC-460D-94CC-648C2A072DBD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {90512E12-29FC-460D-94CC-648C2A072DBD}.Release|Any CPU.Build.0 = Release|Any CPU - {90512E12-29FC-460D-94CC-648C2A072DBD}.SIEMENS|Any CPU.ActiveCfg = Release|Any CPU - {90512E12-29FC-460D-94CC-648C2A072DBD}.SIEMENS|Any CPU.Build.0 = Release|Any CPU - {2D769FFD-1122-4276-A115-29246E6D23C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2D769FFD-1122-4276-A115-29246E6D23C5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2D769FFD-1122-4276-A115-29246E6D23C5}.ESA|Any CPU.ActiveCfg = ESA|Any CPU - {2D769FFD-1122-4276-A115-29246E6D23C5}.ESA|Any CPU.Build.0 = ESA|Any CPU - {2D769FFD-1122-4276-A115-29246E6D23C5}.FANUC|Any CPU.ActiveCfg = FANUC|Any CPU - {2D769FFD-1122-4276-A115-29246E6D23C5}.FANUC|Any CPU.Build.0 = FANUC|Any CPU - {2D769FFD-1122-4276-A115-29246E6D23C5}.OSAI|Any CPU.ActiveCfg = OSAI|Any CPU - {2D769FFD-1122-4276-A115-29246E6D23C5}.OSAI|Any CPU.Build.0 = OSAI|Any CPU - {2D769FFD-1122-4276-A115-29246E6D23C5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2D769FFD-1122-4276-A115-29246E6D23C5}.Release|Any CPU.Build.0 = Release|Any CPU - {2D769FFD-1122-4276-A115-29246E6D23C5}.SIEMENS|Any CPU.ActiveCfg = SIEMENS|Any CPU - {2D769FFD-1122-4276-A115-29246E6D23C5}.SIEMENS|Any CPU.Build.0 = SIEMENS|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {801DCDC5-B7D3-4EA5-B543-783D2C91765F} - EndGlobalSection -EndGlobal diff --git a/IOB-WIN/IOB-WIN/App.config b/IOB-WIN/IOB-WIN/App.config deleted file mode 100644 index 4f7c4fc..0000000 --- a/IOB-WIN/IOB-WIN/App.config +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/DATA/CONF/IOB.ini b/IOB-WIN/IOB-WIN/DATA/CONF/IOB.ini deleted file mode 100644 index 6a1eeae..0000000 --- a/IOB-WIN/IOB-WIN/DATA/CONF/IOB.ini +++ /dev/null @@ -1,37 +0,0 @@ -;Configurazione IOB-WIN -[IOB] -CNCTYPE=FANUC -IDXMACC=3001 - -[CNC] -; TEST TORNOS! -IP=192.168.1.80 -PORT=8193 - -[SERVER] -MPIP=http://10.74.82.219 -MPURL=/MP/IO -CMDBASE=/IOB/input/ -CMDALIVE=/IOB -CMDENABLED=/IOB/enabled/ -CMDADV1=?valore= -CMDREBO=/sendReboot.aspx?idxMacchina= - -[MEMORY] -BITRED=Y8.4 -BITYELLOW=Y8.5 -BITGREEN=Y8.6 - -[BLINK] -;MAX_COUNTER_BLINK = 30 -MAX_COUNTER_BLINK = 15 -;bit0 = 0 -;bit1 = 0 -;bit2 = 1 -;bit3 = 1 -;bit4 = 1 -;bit5 = 0 -;bit6 = 0 -;bit7 = 0 -BLINK_FILT=0 -;BLINK_FILT=28 diff --git a/IOB-WIN/IOB-WIN/DATA/DAT/PersistData.dat b/IOB-WIN/IOB-WIN/DATA/DAT/PersistData.dat deleted file mode 100644 index 5f28270..0000000 --- a/IOB-WIN/IOB-WIN/DATA/DAT/PersistData.dat +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/DATA/DAT/SimData.dat b/IOB-WIN/IOB-WIN/DATA/DAT/SimData.dat deleted file mode 100644 index c59e482..0000000 --- a/IOB-WIN/IOB-WIN/DATA/DAT/SimData.dat +++ /dev/null @@ -1,959 +0,0 @@ -;------------------------------------------------------------------------------------ -; filevalori simulati x provare sistema dati e filtraggio... commenti iniziano per ';', valori formato data#valore#counter -; NOTE FILE: -; - bit come macchine std IOB -; B0 = POWERON -; B1 = RUN -; B2 = CONTAPEZZO -; B3 = ALLARME -; B4 = MANUALE -; B5 = NA -; B6 = NA -; B7 = NA -; - segnali alternanti su 00011100 -;------------------------------------------------------------------------------------ -; -;---------------------------- -; inizio da spenta -0 -0 -; indico accesa -1 -1 -1 -; allarme (BLINK) -9 -9 -9 -9 -9 -1 -1 -1 -1 -1 -1 -9 -9 -9 -9 -9 -1 -1 -1 -1 -1 -19 -9 -9 -9 -9 -1 -1 -1 -1 -1 -1 -; allarme manuale (2 blink, periodo diverso) -25 -25 -17 -17 -9 -9 -1 -1 -25 -25 -17 -17 -9 -9 -1 -1 -25 -25 -17 -17 -9 -9 -1 -1 -25 -25 -17 -17 -9 -9 -1 -1 -25 -25 -17 -17 -9 -9 -1 -1 -; indico manuale -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -1 -1 -1 -1 -1 -1 -1 -1 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -1 -1 -1 -1 -1 -1 -1 -1 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -1 -1 -1 -1 -1 -1 -1 -1 -; RUN! -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -; contapezzo -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -; RUN -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -; contapezzo -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -; RUN -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -; contapezzo -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -; RUN -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -; allarme (BLINK) -9 -9 -9 -9 -9 -1 -1 -1 -1 -1 -1 -9 -9 -9 -9 -9 -1 -1 -1 -1 -1 -19 -9 -9 -9 -9 -1 -1 -1 -1 -1 -1 -; allarme manuale (2 blink, periodo diverso) -25 -25 -17 -17 -9 -9 -1 -1 -25 -25 -17 -17 -9 -9 -1 -1 -25 -25 -17 -17 -9 -9 -1 -1 -25 -25 -17 -17 -9 -9 -1 -1 -25 -25 -17 -17 -9 -9 -1 -1 -; indico manuale -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -1 -1 -1 -1 -1 -1 -1 -1 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -1 -1 -1 -1 -1 -1 -1 -1 -17 -17 -17 -17 -17 -17 -17 -17 -17 -17 -1 -1 -1 -1 -1 -1 -1 -1 -; RUN! -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -; contapezzo -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -; RUN -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -; contapezzo -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -7 -7 -7 -7 -7 -3 -3 -3 -3 -3 -3 -; RUN -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/IOB-WIN.csproj b/IOB-WIN/IOB-WIN/IOB-WIN.csproj deleted file mode 100644 index 7103cf4..0000000 --- a/IOB-WIN/IOB-WIN/IOB-WIN.csproj +++ /dev/null @@ -1,154 +0,0 @@ - - - - - Debug - AnyCPU - {ADCB8028-79C4-4896-A9A7-E3C5140FC00B} - WinExe - IOB_WIN - IOB-WIN - v4.6.1 - 512 - true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\packages\Autoupdater.NET.Official.1.4.3\lib\net452\AutoUpdater.NET.dll - - - ..\packages\NLog.4.4.12\lib\net45\NLog.dll - - - - - - - - - - - - - - - - - - VersGen.cs - - - - - - - - Form - - - MainForm.cs - - - - - - - Always - - - Always - - - - Always - - - MainForm.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - Always - - - Always - - - Always - - - Always - - - - - Designer - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - - {2d769ffd-1122-4276-a115-29246e6d23c5} - CncLib - - - {90512e12-29fc-460d-94cc-648c2a072dbd} - IOB-UT - - - - - - - - - - - "$(ProjectDir)setupTgt.bat" "$(ConfigurationName)" "$(ProjectDir)" - - - - - "$(ProjectDir)postBuildTgt.bat" "$(ConfigurationName)" "$(TargetDir)" - - \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/IobConfiguration.cs b/IOB-WIN/IOB-WIN/IobConfiguration.cs deleted file mode 100644 index f62272e..0000000 --- a/IOB-WIN/IOB-WIN/IobConfiguration.cs +++ /dev/null @@ -1,120 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using IOB_UT; -using System.IO; -using System.Xml.Serialization; - -namespace IOB_WIN -{ - /// - /// This Configuration class is basically just a set of - /// properties with a couple of static methods to manage - /// the serialization to and deserialization from a - /// simple XML file. - /// - /// ref: http://www.cambiaresearch.com/articles/33/how-can-i-easily-manage-an-xml-configuration-file-in-dotnet - /// - [Serializable] - public class IobConfiguration - { - - /// - /// Codice univoco IOB - /// - public string codIOB { get; set; } - /// - /// Versione IOB - /// - public string versIOB { get; set; } - /// - /// Indirizzo Ip del CNC Controllato - /// - public string cncIpAddr { get; set; } - /// - /// Porta del CNC Controllato - /// - public string cncPort { get; set; } - /// - /// Dati di conf del server MoonPro cui comunicare - /// - public serverMapo serverData { get; set; } - /// - /// Porta del CNC Controllato - /// - public tipoAdapter tipoIob { get; set; } - /// - /// Valore MAX per countdown segnali blinking - /// - public int MAX_COUNTER_BLINK; - /// - /// Valore intero corrispondente ai BIT da filtrare x blinking - /// - public int BLINK_FILT; - - /// - /// Avvio configurazione DUMMY - /// - public IobConfiguration() - { - codIOB = "ND"; - versIOB = "0"; - cncIpAddr = "127.0.0.1"; - cncPort = "0"; - tipoIob = tipoAdapter.DEMO; - serverData = new serverMapo("127.0.0.1", "/", "/IOB/input/", "/IOB", "/IOB/enabled/", "/sendReboot.aspx?idxMacchina="); - MAX_COUNTER_BLINK = 10; - BLINK_FILT = 0; - } - } - - public class serverMapo - { - /// - /// Indirizzo IP server - /// - public string MPIP = ""; - /// - /// URL Base del server applicativo - /// - public string MPURL = ""; - /// - /// comando base x INPUT - /// - public string CMDBASE = ""; - /// - /// comando base x check ALIVE - /// - public string CMDALIVE = ""; - /// - /// comando base x check ENABLED - /// - public string CMDENABLED = ""; - /// - /// comando base x comando reboot - /// - public string CMDREBO = ""; - /// - /// Parametri configurazione server MoonPro cui inviare dati - /// - /// Indirizzo IP del server MoonPro - /// URL Base server applicativo - /// Comando x invio INPUT - /// Comando x check alive - /// Comando x check abilitato - /// Comando x parametri opz - /// Comando x reboot - public serverMapo(string MPIP_, string MPURL_, string CMDBASE_, string CMDALIVE_, string CMDENABLED_, string CMDREBO_) - { - MPIP = MPIP_; - MPURL = MPURL_; - CMDBASE = CMDBASE_; - CMDALIVE = CMDALIVE_; - CMDENABLED = CMDENABLED_; - CMDREBO = CMDREBO_; - } - } - -} diff --git a/IOB-WIN/IOB-WIN/IobDemo.cs b/IOB-WIN/IOB-WIN/IobDemo.cs deleted file mode 100644 index 9efe492..0000000 --- a/IOB-WIN/IOB-WIN/IobDemo.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using IOB_UT; - -namespace IOB_WIN -{ - public class IobDemo : IobGeneric - { - /// - /// estende l'init della classe base... - /// - /// - /// - public IobDemo(MainForm caller, IobConfiguration IOBConf) : base(caller, IOBConf) - { - } - } -} diff --git a/IOB-WIN/IOB-WIN/IobFanuc.cs b/IOB-WIN/IOB-WIN/IobFanuc.cs deleted file mode 100644 index e08eec8..0000000 --- a/IOB-WIN/IOB-WIN/IobFanuc.cs +++ /dev/null @@ -1,255 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using IOB_UT; -using CncLib.CNC; - -namespace IOB_WIN -{ - public class IobFanuc : IobGeneric - { - /// - /// wrapper chiamata lettura/scrittura SINGOLO BYTE... - /// - /// - /// - /// - /// - /// - public bool FanucMemRW(bool bWrite, FANUC.MemType MemType, Int32 memIndex, ref byte Value) - { - bool answ = false; - if (FANUC_ref.Connected) - { - try - { - parentForm.commPlcActive = true; - answ = FANUC_ref.F_RW_Byte(bWrite, MemType, memIndex, ref Value); - } - catch - { } - } - parentForm.commPlcActive = false; - return answ; - } - /// - /// wrapper chiamata lettura/scrittura MULTI BYTE... - /// - /// - /// - /// - /// - /// - public bool FanucMemRW(bool bWrite, FANUC.MemType MemType, Int32 memIndex, ref byte[] Value) - { - bool answ = false; - if (FANUC_ref.Connected) - { - try - { - parentForm.commPlcActive = true; - answ = FANUC_ref.F_RW_Byte(bWrite, MemType, memIndex, ref Value); - } - catch - { } - } - parentForm.commPlcActive = false; - return answ; - } - /// - /// Oggetto MAIN x connessione FANUC - /// - protected FANUC FANUC_ref; - - /// - /// estende l'init della classe base... - /// - /// - /// - public IobFanuc(MainForm caller, IobConfiguration IOBConf) : base(caller, IOBConf) - { - // i dati RAW principali sono 6 byte... - RawInput = new byte[6]; - // è little endian (NON serve conversione) - hasBigEndian = false; - lg.Info("Start init Adapter FANUC all'IP {0}:{1} per IOB {2}", IOBConf.cncIpAddr, IOBConf.cncPort, IOBConf.codIOB); - - // Creo oggetto connessione NC - parentForm.commPlcActive = true; - Runtime.CreateNC(CNC.NcType.FANUC, IOBConf.cncIpAddr, IOBConf.cncPort); - parentForm.commPlcActive = false; - - // aggiungo referenza obj FANUC - FANUC_ref = (FANUC)Runtime.NC; - if (utils.CRB("verbose")) lg.Info("FANUC_ref da CncLib"); - - // disconnetto e connetto... - if (utils.CRB("verbose")) lg.Info("FANUC: tryDisconnect"); - tryDisconnect(); - lg.Info("FANUC: tryConnect"); - tryConnect(); - lg.Info("End init Adapter FANUC"); - } - - /// - /// Override disconnessione - /// - public override void tryDisconnect() - { - if (connectionOk) - { - string szStatusConnection = ""; - try - { - FANUC_ref.Disconnect(ref szStatusConnection); - connectionOk = false; - lg.Info(szStatusConnection); - lg.Info("Effettuata disconnessione adapter FANUC!"); - } - catch (Exception exc) - { - lg.Fatal(exc, "Errore nella disconnessione dall'adapter FANUC"); - } - } - else - { - lg.Error("IMPOSSIBILE effettuare disconnessione: Connessione non disponibile..."); - } - } - /// - /// Override connessione - /// - public override void tryConnect() - { - if (!connectionOk) - { - string szStatusConnection = ""; - try - { - parentForm.commPlcActive = true; - FANUC_ref.Connect(ref szStatusConnection); - parentForm.commPlcActive = false; - lg.Info("szStatusConnection: " + szStatusConnection); - connectionOk = true; - // refresh stato allarmi!!! - if (connectionOk) - { - if (adpRunning) - { - // carico status allarmi (completo) - lg.Info("Inizio refresh completo stato allarmi..."); - forceAlarmCheck(); - lg.Info("Completato refresh completo stato allarmi!"); - } - else - { - lg.Info("Connessione OK"); - } - } - else - { - lg.Error("Impossibile procedere, connessione mancante..."); - } - } - catch (Exception exc) - { - lg.Fatal(string.Format("Errore nella connessione all'adapter FANUC: {0}{1}{2}", szStatusConnection, Environment.NewLine, exc)); - connectionOk = false; - lg.Info(string.Format("Segnalo Adapter NON running, pausa di {0} msec prima di ulteriori tentativi di riconnessione", utils.CRI("waitRecMSec"))); - } - } - } - - public override void readSemafori() - { - base.readSemafori(); - - if (verboseLog) lg.Info("inizio read semafori"); - parentForm.sIN = Semaforo.SV; - // leggo SEMAFORI, leggo da Y8 ...leggo 6 bit da Y8 a Y13... - byte[] MemBlock = new byte[RawInput.Length]; - // Red: Y8.4 | Yellow: Y8.5 | Green Y8.6 | WrkZone Y8.7 | All DOorsClosed: Y10.5 - int memIndex = 8; - inizio = DateTime.Now; - if (verboseLog) lg.Info("START FanucMemRW"); - FanucMemRW(R, FANUC.MemType.Y, memIndex, ref MemBlock); - if (verboseLog) lg.Info("END FanucMemRW"); - if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-SEM", MemBlock.Length), DateTime.Now.Subtract(inizio).Ticks); - - if (verboseLog) lg.Info(string.Format("MemBlock: {0}", utils.binaryForm((int)MemBlock[0]))); - // suddivido! - Buffer.BlockCopy(MemBlock, 0, RawInput, 0, 6); - if (verboseLog) lg.Info(string.Format("RawInput: {0}", utils.binaryForm((int)RawInput[0]))); - // salvo il solo BYTE dell'input decifrando il semaforo... - decodeToBitmap(); - } - /// - /// Effettua decodifica aree memoria alla bitmap usata x MAPO - /// - private void decodeToBitmap() - { - // init a zero... - B_input = 0; - // !!!FARE!!! generalizzazione... x ora usa dati "hard coded"... - //Red: Y8.4 | Yellow: Y8.5 | Green Y8.6 - - // leggo primo byte... - int primoByte = RawInput[0]; - if (verboseLog) lg.Info(string.Format("PrimoByte: {0}", primoByte)); - - if (utils.CRB("macOnFromConn")) - { - // SE SI E' CONNESSO al FANUC allora è 1... - if (FANUC_ref.Connected) - { - B_input += 1 << 0; - } - } - else - { - // B0: facio un OR tra i 3 semafori... - if ((primoByte & 112) > 0) - { - B_input += 1 << 0; - } - } - // B1: verde! Y8.6 - if ((primoByte & 64) > 0) - { - B_input += 1 << 1; - } - // NON HO CONTAPEZZI ovvero 1 << 3 - // B1: verde! Y8.4 - if ((primoByte & 16) > 0) - { - B_input += 1 << 3; - } - // B1: verde! Y8.5 - if ((primoByte & 32) > 0) - { - B_input += 1 << 4; - } - if (verboseLog) lg.Info(string.Format("Trasformazione B_input: {0}", B_input)); - } - - public override void readPrgName() - { - CncLib.Focas1.ODBEXEPRG answ = FANUC_ref.getPrgName(); - string prgName = ""; - try - { - string nome = new string(answ.name); - prgName= string.Format("{0} | {1}", answ.o_num, nome); - } - catch(Exception exc) - { - lg.Error(exc, "Errore in readPrgName"); - } - if (verboseLog) lg.Info(string.Format("PrgName: {0}", prgName)); - parentForm.dataMonitor_3 += prgName; - } - - } -} diff --git a/IOB-WIN/IOB-WIN/IobGeneric.cs b/IOB-WIN/IOB-WIN/IobGeneric.cs deleted file mode 100644 index 61dd85e..0000000 --- a/IOB-WIN/IOB-WIN/IobGeneric.cs +++ /dev/null @@ -1,1202 +0,0 @@ -using IOB_UT; -using NLog; -using System; -using System.Collections; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Net; -using System.Text; -using System.Threading; -using System.Threading.Tasks; - -namespace IOB_WIN -{ - public class IobGeneric - { - /// - /// Evento Iob ha subito un refresh - /// - public event EventHandler eh_refreshed; - /// - /// Determina se sia encessario convertire valori little/big endian (SIEMENS=true, OSAI=FALSE) - /// - public bool hasBigEndian = false; - /// - /// alias booleano false = R - /// - public bool R = false; - /// - /// alias booleano true = W - /// - public bool W = true; - /// - /// wrapper di log - /// - public static Logger lg; - /// - /// dataOra ultimo log periodico... - /// - public DateTime lastPeriodicLog; - /// - /// Oggetto della coda degli elementi letti (e non ancora trasmessi) - /// - public Queue QueueIN = new Queue(); - /// - /// Coda valori simulazione deterministica... - /// - public Queue QueueSIM = new Queue(); - /// - /// Coda valori letti x DEBUG... - /// - public Queue QueueDebug = new Queue(); - - /// - /// valore booleano di check se sia in fase di COMUNICAZIONE ATTIVA con il PLC/NC - /// - protected bool adpCommAct; - /// - /// valore booleano di check se sia stato AVVIATO l'adapter (Running) - /// - public bool adpRunning = false; - /// - /// valore booleano di check se l'adapter STIA SALVANDO - /// - public bool adpSaving = false; - /// - /// valore booleano (richiesta di riavvio automatico) - /// - public bool adpTryRestart; - /// - /// Ultimo valore watchdog rilevato - /// - public bool lastWatchDog = false; - /// - /// Verifica se sia in modalità DEMO x dati INPUT - /// - public bool DemoIn - { - get - { - return IOB_UT.baseUtils.CRB("DemoIn"); - } - } - /// - /// Verifica se sia in modalità DEMO avanzata (campionamento da set di valori ammessi...) - /// - public bool DemoInSample - { - get - { - return IOB_UT.baseUtils.CRB("DemoInSample"); - } - } - /// - /// Numero simulazioni ammesse... - /// - protected int numSim { get; set; } - /// - /// Numero letture IN da avvio - /// - protected int nReadIN { get; set; } - /// - /// Numero letture IN da avvio - /// - protected int nReadFilt { get; set; } - /// - /// Numero invii OUT (svuotamento coda) - /// - protected int nSendOut { get; set; } - /// - /// Verifica se sia in modalità DEMO x dati OUTPUT - /// - public bool DemoOut - { - get - { - return utils.CRB("DemoOut"); - } - } - /// - /// Contatore x invio dati - /// - public int counter { get; set; } - /// - /// Ultimo URL - /// - public string lastUrl { get; set; } - - /// - /// Array dei contatori x segnali blinking - /// - protected int[] i_counters; - /// - /// Vettore 16 BIT valori precedenti - /// - protected int B_previous; - /// - /// Vettore 16 BIT valori in ingresso al filtro - /// - protected int B_input; - /// - /// Vettore 16 BIT valori in uscita dal filtro - /// - protected int B_output; - // 16 byte di strobe (4 word da 32 bit di flags...) - public byte[] RawInput = new byte[4]; - - /// - /// Verifica SE si debba fare log verboso (verboso + ogni tot letture IN) - /// - public bool verboseLog - { - get - { - bool answ = false; - int logEvery = utils.CRI("logEvery"); - if (logEvery < 1) logEvery = 10; - answ = utils.CRB("verbose") && (nReadIN % logEvery == 0); - return answ; - } - } - /// - /// Verifica SE si debba fare log periodico (ogni "verboseLogTOut" sec...) - /// - public bool periodicLog - { - get - { - bool answ = false; - answ = (DateTime.Now.Subtract(lastPeriodicLog).TotalSeconds > utils.CRI("verboseLogTOut")); - if (answ) lastPeriodicLog = DateTime.Now; - return answ; - } - } - - - /// - /// Determina se utilizzare blocchi di memoria IOT contigui (e quindi processing "monoblocco" semplificato"= - /// - public bool procIotMem = false; - /// - /// porta x adapter (x restart) - /// - protected int adpPortNum; - /// - /// DataOra ultimo avvio adapter x watchdog - /// - protected DateTime adpStartRun; - /// - /// Data/ora ultimo avvio adapter - /// - public DateTime dtAvvioAdp = DateTime.Now; - /// - /// Data/ora ultimo spegnimento adapter - /// - public DateTime dtStopAdp = DateTime.Now; - /// - /// vettore gestione cronometraggi - /// - public DateTime inizio; - /// - /// Conteggio ATTUALE ore macchina ON - /// - public double contOreMaccOn; - /// - /// Conteggio ATTUALE ore macchina IN LAVORO - /// - public double contOreMaccLav; - /// - /// stato Online/Offline della IOB - /// - public bool IobOnline; - /// - /// stato Online/Offline della IOB - /// - public bool MPOnline; - - /// - /// Form chiamante - /// - protected MainForm parentForm; - /// - /// Conf adapter corrente - /// - public IobConfiguration currIobConf; - - - /// - /// inizializzo l'oggetto sulla form SULLA BASE DEL FILE DI CONFIGURAZIONE letto - /// - /// - /// - public IobGeneric(MainForm caller, IobConfiguration IOBConf) - { - lg = LogManager.GetCurrentClassLogger(); - lg.Info("Avvio preliminare AdapterGeneric"); - - // configurazione... - currIobConf = IOBConf; - // aggiungo altri defaults - setDefaults(); - // salvo il form chiamante - parentForm = caller; - - // concluso! - lg.Info("Istanziata classe preliminare IOBGeneric"); - } - /// - /// Imposto alcuni valori di default - /// - private void setDefaults() - { - numSim = utils.CRI("numSim"); - nReadIN = 0; - nReadFilt = 0; - nSendOut = 0; - // svuoto code... - QueueIN.Clear(); - QueueSIM.Clear(); - // imposto contatori blink a zero... - i_counters = new int[32]; - lastPeriodicLog = DateTime.Now; - } - - - #region metodi adapter - - - /// - /// lettura file di persistenza - /// - public void loadPersData() - { - } - - /// - /// Avvia l'adapter sulla porta richiesta - /// - /// - public virtual void startAdapter(int port) - { - lg.Info("Starting adapter..."); - parentForm.commPlcActive = false; - adpRunning = true; - dtAvvioAdp = DateTime.Now; - TimingData.resetData(); - // aggiungo altri defaults - setDefaults(); - adpTryRestart = true; - parentForm.displayTaskAndLog("Adapter Started!"); - } - - /// - /// ferma l'adapter... - /// - /// indica se si debba tentare di riavviare l'adapter (con caduta connessione viene fermato in automatico) - public void stopAdapter(bool tryRestart) - { - parentForm.displayTaskAndLog("Svuotamento FORZATO coda invio..."); - while (QueueIN.Count > 0) - { - // INVIO SE PERMESSO...!!! - sendToMoonPro(QueueIN.Dequeue()); - } - //reportDataProc(); - - parentForm.displayTaskAndLog("Stopping adapter..."); - adpTryRestart = false; - - parentForm.displayTaskAndLog("Stopping adapter - last periodic data read..."); - - // chiudo la connessione all'adapter... - tryDisconnect(); - dtStopAdp = DateTime.Now; - adpTryRestart = tryRestart; - adpRunning = false; - // chiudo! - parentForm.resetProgBar(); - parentForm.displayTaskAndLog("Adapter Stopped."); - parentForm.commPlcActive = false; - } - - /// - /// effettua recupero dati ed invio valori modificati... - /// - /// - public void getAndSend(gatherCycle ciclo) - { - lg.Info("START getAndSend"); - // controllo connessione/connettività - if (connectionOk) - { - // controllo non sia già in esecuzione... - if (!adpCommAct) - { - // provo ad avviare - try - { - // imposto flag adapter running.. - adpCommAct = true; - adpStartRun = DateTime.Now; - } - catch (Exception exc) - { - parentForm.displayTaskAndLog(string.Format("Adapter NOT STARTED!!!{0}{1}", Environment.NewLine, exc)); - adpCommAct = false; - adpStartRun = DateTime.Now; - } - if (adpCommAct) - { - // try / catch generale altrimenti segno che è disconnesso... - try - { - bool showDebugData = false; - - lg.Info("STEP 01"); - // processing dati memoria (lettura, filtraggio, enqueque) - if (ciclo == gatherCycle.VHF) - { - } - else if (ciclo == gatherCycle.HF) - { - processAllMemory(); - } - else if (ciclo == gatherCycle.MF) - { - parentForm.dataMonitor_3 = ""; - readPrgName(); - } - else if (ciclo == gatherCycle.LF) - { - } - else if (ciclo == gatherCycle.VLF) - { - // recupero dati SETUP (sysinfo e sysinfo_ex) - // eventuale log! - if (utils.CRB("recTime")) logTimeResults(); - } - lg.Info("STEP 02"); - // gestione queue (invio, display) - svuotaCoda(); - reportDataProc(); - if (showDebugData) - { - // verifica se debba salvare e mostrare dati - checkSavePersDataLayer(); - } - lg.Info("STEP 03"); - } - catch (Exception exc) - { - // segnalo eccezione e indico disconnesso... - lg.Error(exc, string.Format("Errore in gestione ciclo principale ADP, fermo adapter{0}{1}", Environment.NewLine, exc)); - parentForm.fermaAdapter(true); - } - // tolgo flag running - adpCommAct = false; - } - else - { - if (periodicLog) lg.Info("ADP not running..."); - } - } - else - { - // log ADP running - lg.Error("Non eseguo chiamata: ADP ancora in running"); - // se è bloccato da oltre maxSec lo sblocco... - if (DateTime.Now.Subtract(adpStartRun).TotalSeconds > utils.CRI("maxAdapterLockSec")) - { - // tolgo flag running - adpCommAct = false; - adpStartRun = DateTime.Now; - } - } - } - else - { - // log connessione KO - lg.Error("getAndSend - Connessione non disponibile, provo a riconnettere"); - // provo a riconnettere SE abilitato tryRestart... - if (adpTryRestart && !connectionOk) - { - lg.Info("ConnKO - tryConnect"); - tryConnect(); - } - } - if (eh_refreshed != null) - { - eh_refreshed(this, new EventArgs()); - } - lg.Info("STOP getAndSend"); - } - - private void reportDataProc() - { - // update valori visualizzazione... - parentForm.dataProcLabel = string.Format("RAW: {0} --> IN: {1} --> OUT: {2}", nReadIN, nReadFilt, nSendOut); - } - - /// - /// riporta il log di tutti i dati di results temporali registrati - /// - public void logTimeResults() - { - if (TimingData.results.Count > 0) - { - lg.Info("{0}--------------- START TIMING DATA ---------------", Environment.NewLine); - int globNumCall = 0; - TimeSpan globAvgMsec = new TimeSpan(0); - foreach (TimeRec item in TimingData.results) - { - lg.Info("Chiamate {0}: effettuate {1}, tempo medio {2:N2} msec | impegno canale {3:P3}", item.codCall, item.numCall, item.avgMsec, item.totMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds); - globNumCall += item.numCall; - globAvgMsec += item.totMsec; - } - // riporto conteggio medio al secondo... - lg.Info("Chiamate GLOBALI: {0}, periodo: {1:N2} minuti.cent, tempo medio {2:N2} msec | impegno canale {3:P3}", globNumCall, DateTime.Now.Subtract(dtAvvioAdp).TotalMinutes, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds); - lg.Info("{0}--------------- STOP TIMING DATA ---------------{0}", Environment.NewLine); - // mostro in form statistiche globali! - parentForm.updateComStats(string.Format("Periodo: {0:N2}min | {1} x {2:N2}ms | canale {3:P3}", DateTime.Now.Subtract(dtAvvioAdp).TotalMinutes, globNumCall, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds)); - } - } - /// - /// processa dataLayer e se necessario salva/mostra - /// - public void checkSavePersDataLayer() - { - } - public void resetDebugConsole() - { - } - - /// - /// Metodo base connessione... - /// - public virtual void tryConnect() - { - - } - /// - /// Metodo base disconnessione... - /// - public virtual void tryDisconnect() - { - - } - protected bool _connOk = false; - /// - /// Salva verifica stato connessione OK - /// - /// - public virtual bool connectionOk - { - get - { - return _connOk; - } - set - { - _connOk = value; - } - } - - #endregion - - #region layer persistenza dati - - /// - /// Dizionario di persistenza per i valori da salvare da/su file - /// - public Dictionary persistenceLayer; - - /// - /// recupera valore salvato in persistence layer (se non c'è crea...) - /// - /// - /// - private string getStoredVal(string keyVal) - { - string value = ""; - try - { - if (persistenceLayer != null) - { - if (!persistenceLayer.TryGetValue(keyVal, out value)) - { - persistenceLayer.Add(keyVal, "0"); - } - } - } - catch (Exception exc) - { - lg.Error(string.Format("Eccezione in getStoredVal: {0}{1}", Environment.NewLine, exc)); - } - return value; - } - /// - /// recupera valore salvato in persistence layer (se non c'è crea...) come UINT - /// - /// - /// - private uint getStoredValUInt(string keyVal) - { - uint answ = 0; - try - { - answ = Convert.ToUInt32(getStoredVal(keyVal)); - } - catch (Exception exc) - { - lg.Error(string.Format("Eccezione in getStoredValUInt: {0}{1}", Environment.NewLine, exc)); - } - // verifico che il valore sia minore di 9/10 del valore massimo... - answ = (answ < (uint.MaxValue / 10 * 9)) ? answ : 0; - return answ; - } - /// - /// recupera valore salvato in persistence layer (se non c'è crea...) come INT - /// - /// - /// - private long getStoredValLong(string keyVal) - { - long answ = 0; - try - { - answ = Convert.ToInt64(getStoredVal(keyVal)); - } - catch - { } - // verifico che il valore sia minore di 9/10 del valore massimo... - answ = (answ < (long.MaxValue / 10 * 9)) ? answ : 0; - return answ; - } - /// - /// recupera valore salvato in persistence layer (se non c'è crea...) come double - /// - /// - /// - private double getStoredValDouble(string keyVal) - { - double answ = 0; - try - { - answ = Convert.ToDouble(getStoredVal(keyVal)); - } - catch (Exception exc) - { - lg.Error(string.Format("Eccezione in getStoredValDouble: {0}{1}", Environment.NewLine, exc)); - } - answ = (answ < (double.MaxValue / 10 * 9)) ? answ : 0; - return answ; - } - - /// - /// Aggiorna un valore del dizionario in SOSTITUZIONE - /// - /// - /// - /// - /// Nuovo valore incrementato - private void updateValString(int i, string newVal, string searchString) - { - // stringa da cercare.. - string keyVal = string.Format(searchString, i + 1); - // salvo in ram! - persistenceLayer[keyVal] = newVal; - } - /// - /// Aggiorna un valore del dizionario in SOSTITUZIONE e lo restituisce - /// - /// - /// - /// - /// Nuovo valore incrementato - private void updateValUInt(int i, uint newVal, string searchString) - { - // stringa da cercare.. - string keyVal = string.Format(searchString, i + 1); - // salvo in ram! - persistenceLayer[keyVal] = newVal.ToString(); - } - /// - /// Aggiorna un valore del dizionario in INCREMENTO e lo restituisce - /// - /// - /// - /// - /// Nuovo valore incrementato - private uint updateValUIntByIncr(int i, uint delta, string searchString) - { - // stringa da cercare.. - string keyVal = string.Format(searchString, i + 1); - // recupero valore precedente... - uint contAct = getStoredValUInt(keyVal); - // nuovo valore... - contAct += delta; - // salvo in ram! - persistenceLayer[keyVal] = contAct.ToString(); - // rendo il valore! - return contAct; - } - /// - /// Aggiorna un valore del dizionario in INCREMENTO e lo restituisce - /// - /// - /// - /// - /// Nuovo valore incrementato - private long updateValLongByIncr(int i, long delta, string searchString) - { - // stringa da cercare.. - string keyVal = string.Format(searchString, i + 1); - // recupero valore precedente... - long contAct = getStoredValLong(keyVal); - // nuovo valore... - contAct += delta; - // salvo in ram! - persistenceLayer[keyVal] = contAct.ToString(); - // rendo il valore! - return contAct; - } - /// - /// Aggiorna un valore del dizionario in INCREMENTO e lo restituisce - /// - /// - /// - /// - /// Nuovo valore incrementato - private double updateValDoubleByIncr(int i, double delta, string searchString) - { - // stringa da cercare.. - string keyVal = string.Format(searchString, i + 1); - // recupero valore precedente... - double contAct = getStoredValDouble(keyVal); - // nuovo valore... - contAct += delta; - // salvo in ram! - persistenceLayer[keyVal] = contAct.ToString(); - // rendo il valore! - return contAct; - } - - #endregion - - - /// - /// effettua ogni log period una rilettura di TUTTI gli allarmi... - /// - public virtual void forceAlarmCheck() - { - } - - - #region IOB METHODS - - /// - /// Valore del num max invii consecutivi da coda... - /// - protected int nMaxSend = 5; - /// - /// DateTime Ultimo valore simulazione generato - /// - public DateTime lastSim; - /// - /// contatore x simulazione valori input - /// - public int countSim = 0; - /// - /// URL per check alive... - /// - public string urlAlive - { - get - { - return string.Format(@"{0}{1}{2}", currIobConf.serverData.MPIP, currIobConf.serverData.MPURL, currIobConf.serverData.CMDALIVE); - } - } - /// - /// URL per check alive... - /// - public string urlIobEnabled - { - get - { - return string.Format(@"{0}{1}{2}{3}", currIobConf.serverData.MPIP, currIobConf.serverData.MPURL, currIobConf.serverData.CMDENABLED, currIobConf.codIOB); - } - } - /// - /// Fornisce URL INPUT per i parametri richiesti - /// - /// valore salvato in coda formatodtEve#valore#counter - /// - public string urlInput(string queueVal) - { - // URL base x input - string answ = string.Format(@"{0}{1}{2}", currIobConf.serverData.MPIP, currIobConf.serverData.MPURL, currIobConf.serverData.CMDBASE); - // decodifica valore! - string[] valori = qDecodeIN(queueVal); - // aggiungo macchina e valore... - answ += string.Format(@"{0}?valore={1}", currIobConf.codIOB, valori[1]); - // aggiondo dataOra evento e corrente + contatore... - answ += string.Format(@"&&dtEve={0}&&dtCurr={1:yyyyMMddHHmmssfff}&&cnt={2}", valori[0], DateTime.Now, valori[2]); - return answ; - } - /// - /// Effettua chaimata URL e restituisce risultato - /// - /// - /// - public string callUrl(string URL) - { - string answ = ""; - var client = new WebClient(); - answ = client.DownloadString(URL); - // restituisco valore! - return answ; - } - /// - /// Verifica se il server sia ALIVE - /// - private bool checkServerAlive - { - get - { - bool answ = false; - if (DemoOut) - { - answ = true; - } - else - { - try - { - // chiamo URL, se restituisce "OK" è alive! - answ = (callUrl(urlAlive) == "OK"); - } - catch - { } - // verifico SE è variato stato online/offline... - if (MPOnline != answ) - { - // se ORA sono online riporto... - if (answ) - { - lg.Info("SERVER ONLINE"); - } - else - { - lg.Info("SERVER OFFLINE"); - } - // salvo nuovo status... - MPOnline = answ; - } - } - return answ; - } - } - /// - /// Verifica se la IOB sia ENABLED (da server o Demo) - /// - private bool checkIobEnabled - { - get - { - bool answ = false; - if (DemoOut) - { - answ = (QueueIN.Count >= nMaxSend); - } - else - { - try - { - // chiamo URL, se restituisce "OK" è enabled! - answ = (callUrl(urlIobEnabled) == "OK"); - } - catch - { } - } - // verifico SE è variato stato online/offline... - if (IobOnline != answ) - { - // se ORA sono online riporto... - if (answ) - { - lg.Info("IOB ONLINE"); - } - else - { - lg.Info("IOB OFFLINE"); - } - // salvo nuovo status... - IobOnline = answ; - } - return answ; - } - } - - /// - /// Processo la coda... - /// - private void svuotaCoda() - { - // verifico SE la coda abbia dei valori... - if (QueueIN.Count > 0) - { - // verifico se risponde il server... - if (checkServerAlive) - { - // verifico SE posso inviare dati - if (checkIobEnabled) - { - // invio pacchetto di dati (max da conf) - for (int i = 0; i < nMaxSend; i++) - { - // SE ho qualcosa in coda... - if (QueueIN.Count > 0) - { - // INVIO!!! - sendToMoonPro(QueueIN.Dequeue()); - } - } - } - else - { - // mostro VETO-SEND x invio... GIALLO - parentForm.sOUT = Semaforo.SG; - } - } - else - { - // mostro SERVER KO x invio... ROSSO - parentForm.sOUT = Semaforo.SR; - } - } - } - /// - /// Classe fittizia in caso di processing GLOBALE di tutto in 1 solo colpo... - /// - private void processAllMemory() - { - // in primis SALVO valori previous/precedenti - B_previous = B_output; - // poi faccio lettura NUOVI valori - readAllData(); - // eseguo il filtering dei valori (per i bit "blinking") - filterData(); - // effettuo confronto valori vecchi/nuovi... SE trovo variazione - if (B_output != B_previous) - { - // mostro dati variati letti... - displayInData(); - // --> accodo (valore già formattato)! - QueueIN.Enqueue(qEncodeIN); - nReadFilt++; - // Gestione counter! - counter++; - // se supera 10k resetto... - if (counter > 9999) counter = 0; - } - } - /// - /// Esegue filtraggio dati x bit blinking!!! - /// - private void filterData() - { - // effettuo filtraggio dei valori letti... inizializzo OUT! - B_output = 0; - // in primis verifico SE ci siano bit blinkng... se non ci sono OUT=IN... - if (currIobConf.BLINK_FILT == 0) - { - B_output = B_input; - } - else - { - // incomincio con i valori NON blinking: questi "passano invariati", inizio a sommare nel valore OUT... - B_output = B_input & ~currIobConf.BLINK_FILT; - // calcolo il valore dei BIT che "passano la maschera" - int iBlink = B_input & currIobConf.BLINK_FILT; - // ...aggiungo i "bit che passano" - B_output += iBlink; - - // calcolo QUALI valori (tra quelli blink) siano PASSATI da 0 a 1 --> init counters... - BitArray bBlinkStart = new BitArray(new byte[] { Convert.ToByte(iBlink) }); - int[] bitsUp = bBlinkStart.Cast().Select(bit => bit ? 1 : 0).ToArray(); - for (int i = 0; i < bitsUp.Length; i++) - { - // SE 1... impostiamo contatori al MAX - if (bitsUp[i] == 1) - { - // se era zero indico START blink... - if (i_counters[i] == 0) - { - lg.Info("START BLINK: B{0}", i); - } - // imposto comunque contatore al cambio fronte... - i_counters[i] = currIobConf.MAX_COUNTER_BLINK; - } - } - - // quelli che sono zero... LI RECUPERO E LI PROCESSO... - int iZero = ~B_input & currIobConf.BLINK_FILT; - BitArray bBlinkEnd = new BitArray(new byte[] { Convert.ToByte(iZero) }); - int[] bitsDown = bBlinkEnd.Cast().Select(bit => bit ? 1 : 0).ToArray(); - for (int i = 0; i < bitsDown.Length; i++) - { - // se era a zero (invertito...) - if (bitsDown[i] == 1) - { - // SE è in corso il conteggio... - if (i_counters[i] > 0) - { - // decremento! - i_counters[i] -= 1; - // se è zero NON faccio nulla, altrimenti SOMMO... - if (i_counters[i] > 0) - { - B_output += 1 << i; - } - else - { - lg.Info("END BLINK: B{0}", i); - } - } - } - } - } - } - /// - /// Fornisce il valore letto da BITMAP in formato valido x messa in coda nel formato dtEve#value#cont - /// - protected string qEncodeIN - { - get - { - string answ = ""; - try - { - answ = string.Format("{0:yyyyMMddHHmmssfff}#{1:X2}#{2}", DateTime.Now, (int)B_output, counter); - } - catch - { } - return answ; - } - } - /// - /// Decodifica valore della coda IN nel formato - /// answ[0]=dtEve - /// answ[1]=valore - /// answ[2]=counter - /// - /// dtEve + '#' + value + '#' + cont - /// - protected string[] qDecodeIN(string queueVal) - { - return queueVal.Split('#'); - } - /// - /// Effettua lettura dati - /// - public virtual void readAllData() - { - if (!DemoIn) - { - if (connectionOk) - { - readSemafori(); - } - else - { - lg.Error("Errore connessione mancante x readSemafori"); - } - } - else - { - // segnalo ceh sono in Demo - parentForm.sIN = Semaforo.SS; - // simulo letura - simReadMem(); - } - nReadIN++; - // aggiorno valore mostrato... - displayRawData(); - } - /// - /// lettura programma in esecuzione - /// - public virtual void readPrgName() - { - } - - /// - /// Effettua lettura semafori principale - /// - public virtual void readSemafori() - { - } - - private void displayRawData() - { - // mostro update...... - string newString = string.Format("{0}{1}{2}", (int)B_input, Environment.NewLine, parentForm.dataMonitor_0); - // se num righe superiore a limite trimmo... - if (newString.Split('\n').Length > parentForm.nLine2show) - { - int idx = newString.LastIndexOf(Environment.NewLine); - newString = newString.Substring(0, idx); - } - parentForm.dataMonitor_0 = newString; - // salvo coda debug... - QueueDebug.Enqueue(B_input); - } - - /// - /// Effettua invio a MoonPro dello status rilevato in HEX - /// - public void sendToMoonPro(string queueVal) - { - // recupero e formatto URL dati da coda... - lastUrl = urlInput(queueVal); - // se NON sono in demo effettuo invio! - if (!DemoOut) - { - // chiamo URL! - string answ = callUrl(lastUrl); - // loggo! - lg.Info(string.Format("{0} -> {1}", queueVal, answ)); - // se "OK" verde, altrimenti errore --> ROSSO - if (answ == "OK") - { - parentForm.sOUT = Semaforo.SV; - } - else - { - parentForm.sOUT = Semaforo.SR; - } - } - else - { - parentForm.sOUT = Semaforo.SV; - // loggo! - lg.Info(string.Format("{0} -> [SIM]", queueVal)); - } - nSendOut++; - // riporto cosa inviato - displayOutData(); - } - /// - /// Mostra cosa ha/avrebbe inviato - /// - public void displayOutData() - { - // mostro update...... - string newString = string.Format("{0}{1}{2}", lastUrl, Environment.NewLine, parentForm.dataMonitor_2); - // se num righe superiore a limite trimmo... - if (newString.Split('\n').Length > parentForm.nLine2show) - { - int idx = newString.LastIndexOf(Environment.NewLine); - newString = newString.Substring(0, idx); - } - parentForm.dataMonitor_2 = newString; - } - /// - /// Update visualizzaizone BIT in ingresso - /// - public void displayInData() - { - // mostro update...... - string newString = string.Format("{0:0000}|{1}{2}{3}", counter, utils.IntToBinStr((int)B_output, 8), Environment.NewLine, parentForm.dataMonitor_1); - // se num righe superiore a limite trimmo... - if (newString.Split('\n').Length > parentForm.nLine2show) - { - int idx = newString.LastIndexOf(Environment.NewLine); - newString = newString.Substring(0, idx); - } - parentForm.dataMonitor_1 = newString; - } - - public void simReadMem() - { - if (lastSim == null) - { - lastSim = DateTime.Now; - } - // simulazione complessa (basata su samples dei parametri effettivi...) - if (utils.CRB("DemoInSample")) - { - if (numSim >= 0) - { - // verifico se la coda di simulazione sia piena altrimenti la RICARICO... - if (QueueSIM.Count == 0) - { - leggiSimFile(); - numSim--; - } - // processo la coda di simulazione (stacco ed accodo 1 valore...) - B_input = QueueSIM.Dequeue(); - countSim++; - // ogni 5 loggo... - if (countSim % 5 == 0) - { - lg.Info("Read {0} sim data", countSim); - } - } - else - { - // fermo tutto! - parentForm.sIN = Semaforo.SR; - parentForm.fermaAdapter(false); - } - } - // simulazione semplice (counter crescente) - else - { - // se passato 1 sec genero NUOV num casuale e lo metto nel bit strobe... ogni 2 sec... - if (DateTime.Now.Subtract(lastSim).TotalMilliseconds > 100) - { - countSim++; - if (countSim > 255) countSim = 0; - B_input = countSim; - } - } - lastSim = DateTime.Now; - } - /// - /// legge ed accoda file Sim in QueueSIM - /// - private void leggiSimFile() - { - int totRighe = 0; - string fileName = utils.simDataFile; - string linea; - totRighe = File.ReadLines(fileName).Count(); - lg.Info("File SIM: TROVATE {0} righe", totRighe); - // ora conto righe effettive... - totRighe = 0; - // carica da file... - StreamReader file = new StreamReader(fileName); - // leggo 1 linea alla volta... - int valore = 0; - while ((linea = file.ReadLine()) != null) - { - // SE non è un commento... - if (linea.Substring(0, 1) != ";") - { - //elencoAllarmi[rumRiga] = decodeAlarmLine(linea, ':'); - Int32.TryParse(linea, out valore); - QueueSIM.Enqueue(valore); - totRighe++; - } - } - // chiudo file - file.Close(); - lg.Info("File SIM: LETTE {0} righe", totRighe); - } - - #endregion - - } -} diff --git a/IOB-WIN/IOB-WIN/IobSiemens.cs b/IOB-WIN/IOB-WIN/IobSiemens.cs deleted file mode 100644 index 2118a49..0000000 --- a/IOB-WIN/IOB-WIN/IobSiemens.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using IOB_UT; - -namespace IOB_WIN -{ - public class IobSiemens : IobGeneric - { - /// - /// estende l'init della classe base... - /// - /// - /// - public IobSiemens(MainForm caller, IobConfiguration IOBConf) : base(caller, IOBConf) - { - } - } -} diff --git a/IOB-WIN/IOB-WIN/MainForm.Designer.cs b/IOB-WIN/IOB-WIN/MainForm.Designer.cs deleted file mode 100644 index cb40f0a..0000000 --- a/IOB-WIN/IOB-WIN/MainForm.Designer.cs +++ /dev/null @@ -1,657 +0,0 @@ -namespace IOB_WIN -{ - partial class MainForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.gather = new System.Windows.Forms.Timer(this.components); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.lblApp = new System.Windows.Forms.ToolStripStatusLabel(); - this.lblVers = new System.Windows.Forms.ToolStripStatusLabel(); - this.MainProgrBar = new System.Windows.Forms.ToolStripProgressBar(); - this.lblComStats = new System.Windows.Forms.ToolStripStatusLabel(); - this.lblStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); - this.tslUptime = new System.Windows.Forms.ToolStripStatusLabel(); - this.toolStripStatusLabel2 = new System.Windows.Forms.ToolStripStatusLabel(); - this.tslDataProc = new System.Windows.Forms.ToolStripStatusLabel(); - this.toolStripStatusLabel3 = new System.Windows.Forms.ToolStripStatusLabel(); - this.tslRunTime = new System.Windows.Forms.ToolStripStatusLabel(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.FileTSMI = new System.Windows.Forms.ToolStripMenuItem(); - this.mLoadConf = new System.Windows.Forms.ToolStripMenuItem(); - this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); - this.trayMenu = new System.Windows.Forms.ContextMenuStrip(this.components); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.lblTopCent = new System.Windows.Forms.Label(); - this.lblTopDx = new System.Windows.Forms.Label(); - this.lblTopSx = new System.Windows.Forms.Label(); - this.bIN = new System.Windows.Forms.Button(); - this.bOUT = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.dump = new System.Windows.Forms.Button(); - this.stop = new System.Windows.Forms.Button(); - this.start = new System.Windows.Forms.Button(); - this.port = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.gbMonitor = new System.Windows.Forms.GroupBox(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.lblOutMessage = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.lblOutMessage2 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.lblRawData = new System.Windows.Forms.Label(); - this.lblOutMessage3 = new System.Windows.Forms.Label(); - this.panel1 = new System.Windows.Forms.Panel(); - this.lQueueLen = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.nLines = new System.Windows.Forms.TextBox(); - this.displTimer = new System.Windows.Forms.Timer(this.components); - this.mCheckUpdates = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1.SuspendLayout(); - this.menuStrip1.SuspendLayout(); - this.tableLayoutPanel1.SuspendLayout(); - this.groupBox1.SuspendLayout(); - this.gbMonitor.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // gather - // - this.gather.Tick += new System.EventHandler(this.gather_Tick); - // - // statusStrip1 - // - this.statusStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.lblApp, - this.lblVers, - this.MainProgrBar, - this.lblComStats, - this.lblStatus, - this.toolStripStatusLabel1, - this.tslUptime, - this.toolStripStatusLabel2, - this.tslDataProc, - this.toolStripStatusLabel3, - this.tslRunTime}); - this.statusStrip1.Location = new System.Drawing.Point(0, 675); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(869, 25); - this.statusStrip1.TabIndex = 0; - this.statusStrip1.Text = "statusStrip1"; - // - // lblApp - // - this.lblApp.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold); - this.lblApp.Name = "lblApp"; - this.lblApp.Size = new System.Drawing.Size(21, 20); - this.lblApp.Text = "..."; - // - // lblVers - // - this.lblVers.Name = "lblVers"; - this.lblVers.Size = new System.Drawing.Size(18, 20); - this.lblVers.Text = "..."; - // - // MainProgrBar - // - this.MainProgrBar.Name = "MainProgrBar"; - this.MainProgrBar.Size = new System.Drawing.Size(100, 19); - // - // lblComStats - // - this.lblComStats.Name = "lblComStats"; - this.lblComStats.Size = new System.Drawing.Size(39, 20); - this.lblComStats.Text = "stats"; - // - // lblStatus - // - this.lblStatus.Name = "lblStatus"; - this.lblStatus.Size = new System.Drawing.Size(27, 20); - this.lblStatus.Text = "---"; - // - // toolStripStatusLabel1 - // - this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; - this.toolStripStatusLabel1.Size = new System.Drawing.Size(13, 20); - this.toolStripStatusLabel1.Text = "|"; - // - // tslUptime - // - this.tslUptime.Name = "tslUptime"; - this.tslUptime.Size = new System.Drawing.Size(15, 20); - this.tslUptime.Text = "-"; - // - // toolStripStatusLabel2 - // - this.toolStripStatusLabel2.Name = "toolStripStatusLabel2"; - this.toolStripStatusLabel2.Size = new System.Drawing.Size(13, 20); - this.toolStripStatusLabel2.Text = "|"; - // - // tslDataProc - // - this.tslDataProc.Name = "tslDataProc"; - this.tslDataProc.Size = new System.Drawing.Size(15, 20); - this.tslDataProc.Text = "-"; - // - // toolStripStatusLabel3 - // - this.toolStripStatusLabel3.Name = "toolStripStatusLabel3"; - this.toolStripStatusLabel3.Size = new System.Drawing.Size(13, 20); - this.toolStripStatusLabel3.Text = "|"; - // - // tslRunTime - // - this.tslRunTime.Name = "tslRunTime"; - this.tslRunTime.Size = new System.Drawing.Size(0, 20); - // - // menuStrip1 - // - this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.FileTSMI}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(869, 28); - this.menuStrip1.TabIndex = 1; - this.menuStrip1.Text = "menuStrip1"; - // - // FileTSMI - // - this.FileTSMI.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.mLoadConf, - this.mCheckUpdates}); - this.FileTSMI.Name = "FileTSMI"; - this.FileTSMI.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.F))); - this.FileTSMI.Size = new System.Drawing.Size(47, 24); - this.FileTSMI.Text = "&FILE"; - // - // mLoadConf - // - this.mLoadConf.Name = "mLoadConf"; - this.mLoadConf.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.L))); - this.mLoadConf.Size = new System.Drawing.Size(214, 26); - this.mLoadConf.Text = "LOAD CONF"; - this.mLoadConf.Click += new System.EventHandler(this.mLoadConf_Click); - // - // notifyIcon1 - // - this.notifyIcon1.ContextMenuStrip = this.trayMenu; - this.notifyIcon1.Text = "IOB-WIN"; - this.notifyIcon1.Visible = true; - this.notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick); - // - // trayMenu - // - this.trayMenu.ImageScalingSize = new System.Drawing.Size(20, 20); - this.trayMenu.Name = "trayMenu"; - this.trayMenu.Size = new System.Drawing.Size(61, 4); - this.trayMenu.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.trayMenu_ItemClicked); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tableLayoutPanel1.ColumnCount = 5; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 30F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 33F)); - this.tableLayoutPanel1.Controls.Add(this.lblTopCent, 2, 0); - this.tableLayoutPanel1.Controls.Add(this.lblTopDx, 3, 0); - this.tableLayoutPanel1.Controls.Add(this.lblTopSx, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.bIN, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.bOUT, 4, 0); - this.tableLayoutPanel1.Location = new System.Drawing.Point(6, 31); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 1; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(863, 42); - this.tableLayoutPanel1.TabIndex = 66; - // - // lblTopCent - // - this.lblTopCent.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblTopCent.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblTopCent.Location = new System.Drawing.Point(234, 0); - this.lblTopCent.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.lblTopCent.Name = "lblTopCent"; - this.lblTopCent.Size = new System.Drawing.Size(392, 42); - this.lblTopCent.TabIndex = 68; - this.lblTopCent.Text = "IOB loaded: N.A."; - this.lblTopCent.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // lblTopDx - // - this.lblTopDx.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblTopDx.AutoSize = true; - this.lblTopDx.Location = new System.Drawing.Point(633, 0); - this.lblTopDx.Name = "lblTopDx"; - this.lblTopDx.Size = new System.Drawing.Size(194, 42); - this.lblTopDx.TabIndex = 69; - this.lblTopDx.Text = "..."; - this.lblTopDx.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // lblTopSx - // - this.lblTopSx.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblTopSx.AutoSize = true; - this.lblTopSx.Location = new System.Drawing.Point(33, 0); - this.lblTopSx.Name = "lblTopSx"; - this.lblTopSx.Size = new System.Drawing.Size(194, 42); - this.lblTopSx.TabIndex = 70; - this.lblTopSx.Text = "..."; - this.lblTopSx.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // bIN - // - this.bIN.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.bIN.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.bIN.Location = new System.Drawing.Point(3, 3); - this.bIN.Name = "bIN"; - this.bIN.Size = new System.Drawing.Size(24, 36); - this.bIN.TabIndex = 71; - this.bIN.Text = "I"; - this.bIN.UseVisualStyleBackColor = true; - // - // bOUT - // - this.bOUT.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.bOUT.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.bOUT.Location = new System.Drawing.Point(833, 3); - this.bOUT.Name = "bOUT"; - this.bOUT.Size = new System.Drawing.Size(27, 36); - this.bOUT.TabIndex = 72; - this.bOUT.Text = "O"; - this.bOUT.UseVisualStyleBackColor = true; - // - // groupBox1 - // - this.groupBox1.Controls.Add(this.dump); - this.groupBox1.Controls.Add(this.stop); - this.groupBox1.Controls.Add(this.start); - this.groupBox1.Controls.Add(this.port); - this.groupBox1.Controls.Add(this.label1); - this.groupBox1.Location = new System.Drawing.Point(6, 80); - this.groupBox1.Margin = new System.Windows.Forms.Padding(4); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Padding = new System.Windows.Forms.Padding(4); - this.groupBox1.Size = new System.Drawing.Size(505, 53); - this.groupBox1.TabIndex = 67; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "IOB Info"; - // - // dump - // - this.dump.Location = new System.Drawing.Point(397, 18); - this.dump.Margin = new System.Windows.Forms.Padding(4); - this.dump.Name = "dump"; - this.dump.Size = new System.Drawing.Size(100, 28); - this.dump.TabIndex = 4; - this.dump.Text = "Show Dump"; - this.dump.UseVisualStyleBackColor = true; - this.dump.Click += new System.EventHandler(this.dump_Click); - // - // stop - // - this.stop.Location = new System.Drawing.Point(269, 18); - this.stop.Margin = new System.Windows.Forms.Padding(4); - this.stop.Name = "stop"; - this.stop.Size = new System.Drawing.Size(100, 28); - this.stop.TabIndex = 3; - this.stop.Text = "Stop"; - this.stop.UseVisualStyleBackColor = true; - this.stop.Click += new System.EventHandler(this.stop_Click); - // - // start - // - this.start.Location = new System.Drawing.Point(161, 18); - this.start.Margin = new System.Windows.Forms.Padding(4); - this.start.Name = "start"; - this.start.Size = new System.Drawing.Size(100, 28); - this.start.TabIndex = 2; - this.start.Text = "Start"; - this.start.UseVisualStyleBackColor = true; - this.start.Click += new System.EventHandler(this.start_Click); - // - // port - // - this.port.Enabled = false; - this.port.Location = new System.Drawing.Point(67, 21); - this.port.Margin = new System.Windows.Forms.Padding(4); - this.port.Name = "port"; - this.port.Size = new System.Drawing.Size(81, 22); - this.port.TabIndex = 1; - this.port.Text = "7878"; - this.port.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - this.port.Visible = false; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(24, 25); - this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(34, 17); - this.label1.TabIndex = 0; - this.label1.Text = "Port"; - this.label1.Visible = false; - // - // gbMonitor - // - this.gbMonitor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.gbMonitor.BackColor = System.Drawing.Color.Black; - this.gbMonitor.Controls.Add(this.tableLayoutPanel2); - this.gbMonitor.ForeColor = System.Drawing.SystemColors.Control; - this.gbMonitor.Location = new System.Drawing.Point(6, 137); - this.gbMonitor.Margin = new System.Windows.Forms.Padding(0); - this.gbMonitor.Name = "gbMonitor"; - this.gbMonitor.Padding = new System.Windows.Forms.Padding(0); - this.gbMonitor.Size = new System.Drawing.Size(860, 538); - this.gbMonitor.TabIndex = 70; - this.gbMonitor.TabStop = false; - this.gbMonitor.Text = "Monitor variabili"; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tableLayoutPanel2.ColumnCount = 4; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel2.Controls.Add(this.lblOutMessage, 1, 1); - this.tableLayoutPanel2.Controls.Add(this.label3, 2, 0); - this.tableLayoutPanel2.Controls.Add(this.label4, 3, 0); - this.tableLayoutPanel2.Controls.Add(this.lblOutMessage2, 2, 1); - this.tableLayoutPanel2.Controls.Add(this.label2, 1, 0); - this.tableLayoutPanel2.Controls.Add(this.label7, 0, 0); - this.tableLayoutPanel2.Controls.Add(this.lblRawData, 0, 1); - this.tableLayoutPanel2.Controls.Add(this.lblOutMessage3, 3, 1); - this.tableLayoutPanel2.Location = new System.Drawing.Point(6, 27); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 2; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel2.Size = new System.Drawing.Size(851, 508); - this.tableLayoutPanel2.TabIndex = 63; - // - // lblOutMessage - // - this.lblOutMessage.AutoSize = true; - this.lblOutMessage.Dock = System.Windows.Forms.DockStyle.Top; - this.lblOutMessage.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblOutMessage.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.lblOutMessage.Location = new System.Drawing.Point(31, 20); - this.lblOutMessage.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.lblOutMessage.Name = "lblOutMessage"; - this.lblOutMessage.Size = new System.Drawing.Size(56, 15); - this.lblOutMessage.TabIndex = 61; - this.lblOutMessage.Text = "..."; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(94, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(93, 17); - this.label3.TabIndex = 64; - this.label3.Text = "URL CALLED"; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(193, 0); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(98, 17); - this.label4.TabIndex = 65; - this.label4.Text = "OTHER DATA"; - // - // lblOutMessage2 - // - this.lblOutMessage2.AutoSize = true; - this.lblOutMessage2.Dock = System.Windows.Forms.DockStyle.Top; - this.lblOutMessage2.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblOutMessage2.ForeColor = System.Drawing.Color.Yellow; - this.lblOutMessage2.Location = new System.Drawing.Point(95, 20); - this.lblOutMessage2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.lblOutMessage2.Name = "lblOutMessage2"; - this.lblOutMessage2.Size = new System.Drawing.Size(91, 15); - this.lblOutMessage2.TabIndex = 62; - this.lblOutMessage2.Text = "..."; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(30, 0); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(58, 17); - this.label2.TabIndex = 65; - this.label2.Text = "SIGNAL"; - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(3, 0); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(21, 17); - this.label7.TabIndex = 66; - this.label7.Text = "IN"; - // - // lblRawData - // - this.lblRawData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblRawData.AutoSize = true; - this.lblRawData.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblRawData.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.lblRawData.Location = new System.Drawing.Point(3, 20); - this.lblRawData.Name = "lblRawData"; - this.lblRawData.Size = new System.Drawing.Size(21, 15); - this.lblRawData.TabIndex = 67; - this.lblRawData.Text = "..."; - // - // lblOutMessage3 - // - this.lblOutMessage3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblOutMessage3.AutoSize = true; - this.lblOutMessage3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); - this.lblOutMessage3.Location = new System.Drawing.Point(193, 20); - this.lblOutMessage3.Name = "lblOutMessage3"; - this.lblOutMessage3.Size = new System.Drawing.Size(655, 17); - this.lblOutMessage3.TabIndex = 68; - this.lblOutMessage3.Text = "..."; - // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.panel1.Controls.Add(this.lQueueLen); - this.panel1.Controls.Add(this.label6); - this.panel1.Controls.Add(this.label5); - this.panel1.Controls.Add(this.nLines); - this.panel1.Location = new System.Drawing.Point(674, 98); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(192, 32); - this.panel1.TabIndex = 73; - // - // lQueueLen - // - this.lQueueLen.AutoSize = true; - this.lQueueLen.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lQueueLen.Location = new System.Drawing.Point(48, 8); - this.lQueueLen.Name = "lQueueLen"; - this.lQueueLen.Size = new System.Drawing.Size(17, 17); - this.lQueueLen.TabIndex = 77; - this.lQueueLen.Text = "#"; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(3, 8); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(48, 17); - this.label6.TabIndex = 76; - this.label6.Text = "queue"; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(116, 7); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(37, 17); - this.label5.TabIndex = 74; - this.label5.Text = "rows"; - // - // nLines - // - this.nLines.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.nLines.Location = new System.Drawing.Point(159, 1); - this.nLines.Name = "nLines"; - this.nLines.Size = new System.Drawing.Size(33, 26); - this.nLines.TabIndex = 73; - this.nLines.Text = "50"; - this.nLines.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; - // - // displTimer - // - this.displTimer.Tick += new System.EventHandler(this.displTimer_Tick); - // - // mCheckUpdates - // - this.mCheckUpdates.Name = "mCheckUpdates"; - this.mCheckUpdates.Size = new System.Drawing.Size(214, 26); - this.mCheckUpdates.Text = "CHECK &UPDATES"; - this.mCheckUpdates.Click += new System.EventHandler(this.mCheckUpdates_Click); - // - // MainForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(869, 700); - this.Controls.Add(this.panel1); - this.Controls.Add(this.gbMonitor); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.tableLayoutPanel1); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.MainMenuStrip = this.menuStrip1; - this.Name = "MainForm"; - this.Text = "IOB-WIN"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); - this.Shown += new System.EventHandler(this.MainForm_Shown); - this.Resize += new System.EventHandler(this.MainForm_Resize); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel1.PerformLayout(); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - this.gbMonitor.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel2.PerformLayout(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Timer gather; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.NotifyIcon notifyIcon1; - private System.Windows.Forms.ContextMenuStrip trayMenu; - private System.Windows.Forms.ToolStripStatusLabel lblApp; - private System.Windows.Forms.ToolStripStatusLabel lblVers; - private System.Windows.Forms.ToolStripProgressBar MainProgrBar; - private System.Windows.Forms.ToolStripStatusLabel lblComStats; - private System.Windows.Forms.ToolStripStatusLabel lblStatus; - private System.Windows.Forms.ToolStripMenuItem FileTSMI; - private System.Windows.Forms.ToolStripMenuItem mLoadConf; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.Label lblTopCent; - private System.Windows.Forms.Label lblTopDx; - private System.Windows.Forms.Label lblTopSx; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.Button dump; - private System.Windows.Forms.Button stop; - private System.Windows.Forms.Button start; - private System.Windows.Forms.TextBox port; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.GroupBox gbMonitor; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Label lblOutMessage; - private System.Windows.Forms.Label lblOutMessage2; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Label lQueueLen; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.TextBox nLines; - private System.Windows.Forms.Button bIN; - private System.Windows.Forms.Button bOUT; - private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1; - private System.Windows.Forms.ToolStripStatusLabel tslUptime; - private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel2; - private System.Windows.Forms.ToolStripStatusLabel tslDataProc; - private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel3; - private System.Windows.Forms.ToolStripStatusLabel tslRunTime; - private System.Windows.Forms.Timer displTimer; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label lblRawData; - private System.Windows.Forms.Label lblOutMessage3; - private System.Windows.Forms.ToolStripMenuItem mCheckUpdates; - } -} \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/MainForm.cs b/IOB-WIN/IOB-WIN/MainForm.cs deleted file mode 100644 index 5d75128..0000000 --- a/IOB-WIN/IOB-WIN/MainForm.cs +++ /dev/null @@ -1,946 +0,0 @@ -using AutoUpdaterDotNET; -using IOB_UT; -using NLog; -using System; -using System.Collections.Generic; -using System.Configuration; -using System.Diagnostics; -using System.Drawing; -using System.Threading; -using System.Windows.Forms; - -namespace IOB_WIN -{ - public partial class MainForm : Form - { - #region inizializzazione contatori - - /// - /// contatore veloce - /// - protected int fastCount; - /// - /// contatore normale - /// - protected int normCount; - /// - /// contatore lento - /// - protected int slowCount; - /// - /// contatore sync allarmi - /// - protected int verySlowCount; - /// - /// timer base in avvio - /// - protected int startTimerMs = 250; - /// - /// ultimo tentativo riavvio... - /// - protected DateTime lastStartTry; - /// - /// Data-Ora prima apertura FORM... - /// - protected DateTime firstStart; - - #endregion - - #region inizializzazione oggetti base - - /// - /// oggetto logging - /// - public static Logger lg; - - /// - /// Oggetto x gestione dell'adapter GENERICO (x poter usare metodi di ognuno...) - /// - IobGeneric iobObj; - /// - /// configurazione caricata - /// - IobConfiguration IOBConf; - /// - /// tipo di adapter prescelto... - /// - public tipoAdapter tipoScelto = tipoAdapter.DEMO; - /// - /// URLK stringa di UPDATE... - /// - protected string updateUrl - { - get - { - return string.Format("http://seriate.steamware.net:8083/SWS/IOB-WIN/{0}/manifest.xml", utils.CRS("appVers")); - } - } - - #endregion - - #region utils ed helpers - - private class Item - { - public string Name; - public int Value; - public Item(string name, int value) - { - Name = name; Value = value; - } - } - /// - /// mostra un testo sulla status bar + LOG - /// - /// - public void displayTaskAndLog(string txt2show) - { - lblStatus.Text = txt2show; - lblStatus.Invalidate(); - lg.Info(txt2show); - } - /// - /// Mostra update delle statistiche di comunicazione (numero chiamate, tempo medio...) - /// - /// - public void updateComStats(string txt2show) - { - lblComStats.Text = string.Format("{0} | ", txt2show); - } - - #endregion - - #region gestione form e visibilità - - // apro eseguibile dump - private void dump_Click(object sender, EventArgs e) - { - apriDumpAgent(); - } - /// - /// apre agent di dump in CMD - /// - private static void apriDumpAgent() - { - string path = Application.StartupPath; - try - { - Process.Start(string.Format(@"{0}\..\..\dump\dump.exe", path)); - } - catch - { - Process.Start(string.Format(@"{0}\dump\dump.exe", path)); - } - } - - /// - /// Avvio MainForm - /// - public MainForm() - { - // avvio autoupdater... - AutoUpdater.Start(updateUrl); - - // continuo avvio... - InitializeComponent(); - lblStatus.Text = "Loading"; - - // inizializzo orologi - firstStart = DateTime.Now; - lastStartTry = DateTime.Now; - - // fix icon! - notifyIcon1.Text = string.Format("IOB-WIN | {0}", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version); - Icon = Icon.ExtractAssociatedIcon(utils.defIconFilePath); - notifyIcon1.Icon = Icon.ExtractAssociatedIcon(utils.defIconFilePath); - - // fix versione! - lblApp.Text = string.Format("{0}", ConfigurationManager.AppSettings.Get("appName")); - lblVers.Text = string.Format(" v.{0}", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version); - - startTimerMs = utils.CRI("startTimerMs"); - -#if DEBUG - // Setup the logging view for Sentinel - http://sentinel.codeplex.com - var sentinalTarget = new NLogViewerTarget() - { - Name = "sentinal", - Address = "udp://127.0.0.1:9999", - IncludeNLogData = false - }; - var sentinalRule = new LoggingRule("*", LogLevel.Trace, sentinalTarget); - LogManager.Configuration.AddTarget("sentinal", sentinalTarget); - LogManager.Configuration.LoggingRules.Add(sentinalRule); - -#endif - - LogManager.ReconfigExistingLoggers(); - - lg = LogManager.GetCurrentClassLogger(); - displayTaskAndLog("MainForm Starting"); - - // se abilitato autoload conf leggo file corretto... - if (utils.CRB("autoLoadConf")) - { - loadIniFile(utils.defConfFilePath); - lg.Info("INI LOADED"); - loadPersistLayer(utils.defPersLayerFile); - lg.Info("PersLayerFile READ"); - iobObj.loadPersData(); - lg.Info("PersLayerFile LOADED"); - } - else - { - // definisco e avvio tipo adapter generico - tipoScelto = tipoAdapter.ND; - IOBConf = new IobConfiguration(); - loadIobType(); - displayTaskAndLog("Waiting for config file selection"); - } - - // Start timer periodico comunicazione - gather.Interval = utils.CRI("timerIntMs"); - gather.Enabled = true; - displayTaskAndLog(string.Format("Main timer set: {0}ms", gather.Interval)); - // Start timer periodico interfaccia - displTimer.Interval = utils.CRI("timerIntMs"); - displTimer.Enabled = true; - - displayTaskAndLog("Program Running"); - createTrayMenu(); - displayTaskAndLog("Tray Menu OK"); - - // avvio minimizzato se richiesto - if (utils.CRB("startMinimized")) - { - // imposto minimized se necessario! - if (WindowState != FormWindowState.Minimized) - { - WindowState = FormWindowState.Minimized; - } - displayTaskAndLog("Minimized"); - } - - displayTaskAndLog("Main Form OK"); - } - /// - /// Fase chiusura Form - /// - /// - /// - private void MainForm_FormClosing(object sender, FormClosingEventArgs e) - { - closeAdapter(); - } - /// - /// Mostrata form - /// - /// - /// - private void MainForm_Shown(object sender, EventArgs e) - { - // avvio minimizzato se richiesto - if (utils.CRB("startMinimized")) - { - // controllo e mando a tray... - sendToTray(); - } - displayTaskAndLog("Main Form SHOWN"); - } - /// - /// Completato resize form - /// - /// - /// - private void MainForm_Resize(object sender, EventArgs e) - { - checkFormVisibility(); - } - - #endregion - - #region gestione tray - - /// - /// crea menù tray x applicazione - /// - private void createTrayMenu() - { - // Fix testi menù tray... - trayMenu.Items.Clear(); - // SE permessa massimizzazione... - if (utils.CRB("windowCanMax")) - { - trayMenu.Items.Add("Show IOB-WIN"); - } - // se è permesso tray close... - if (utils.CRB("trayClose")) - { - trayMenu.Items.Add("Close IOB-WIN"); - } - } - - /// - /// doppio click su tray icon - /// - /// - /// - private void notifyIcon1_DoubleClick(object sender, EventArgs e) - { - // SOLO SE PERMESSO mostrare full... - if (utils.CRB("windowCanMax")) - { - Show(); - WindowState = FormWindowState.Normal; - } - } - /// - /// Verifica stato windows (minimized/normal) e visibilità con tray... - /// - private void checkFormVisibility() - { - // se non può massimizzare imposto COMUNQUE a minimized... - if (!utils.CRB("windowCanMax")) - { - WindowState = FormWindowState.Minimized; - } - // controllo cosa devo mostrare... - if (WindowState == FormWindowState.Minimized) - { - notifyIcon1.Visible = false; - sendToTray(); - } - else - { - notifyIcon1.Visible = false; - } - - } - /// - /// Gestisce "andata nel tray" della form - /// - private void sendToTray() - { - if (!notifyIcon1.Visible) - { - notifyIcon1.BalloonTipTitle = utils.CRS("appName"); - notifyIcon1.BalloonTipText = string.Format("{0} running on tray", utils.CRS("appName")); - notifyIcon1.Visible = true; - notifyIcon1.ShowBalloonTip(100); - } - Hide(); - } - /// - /// click su menù contestuale in tray - /// - /// - /// - private void trayMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e) - { - if (e.ClickedItem.Text.StartsWith("Close")) - { - // stop adapter... - closeAdapter(); - // chiudo! - Close(); - } - else if (e.ClickedItem.Text.StartsWith("Show")) - { - if (utils.CRB("windowCanMax")) - { - Show(); - WindowState = FormWindowState.Normal; - } - } - } - - #endregion - - #region gestione metodi specifici FORM - - /// - /// Avanza la barra di stato... - /// - public void advProgBar() - { - try - { - MainProgrBar.PerformStep(); - MainProgrBar.Invalidate(); - // aggiorno runtime... - TimeSpan uptime = DateTime.Now.Subtract(iobObj.dtAvvioAdp); - tslRunTime.Text = string.Format("Running: {0}gg {1:00}:{2:00}:{3:00}", uptime.Days, uptime.Hours, uptime.Minutes, uptime.Seconds); - } - catch - { } - } - private void checkSendTask() - { - // avvio fase invio con adapter (code MST) - iobObj.getAndSend(gatherCycle.VHF); - } - private void checkFastTask() - { - // decremento... - fastCount--; - // se il counter è a zero eseguo... - if (fastCount <= 0) - { - fastCount = utils.CRI("fastCount"); - - // avvio fase raccolta dati e invio con adapter - iobObj.getAndSend(gatherCycle.HF); - } - } - private void checkNormTask() - { - // decremento... - normCount--; - // se il counter è a zero eseguo... - if (normCount <= 0) - { - normCount = utils.CRI("normCount"); - - // avvio fase raccolta dati e invio con adapter - iobObj.getAndSend(gatherCycle.MF); - } - } - private void checkSlowTask() - { - slowCount--; - if (slowCount <= 0) - { - slowCount = utils.CRI("slowCount"); - - // avvio fase raccolta dati e invio con adapter - iobObj.getAndSend(gatherCycle.LF); - } - } - - private void checkVerySlowData() - { - verySlowCount--; - if (verySlowCount <= 0) - { - verySlowCount = utils.CRI("verySlowCount"); - // avvio fase raccolta dati e invio con adapter - iobObj.getAndSend(gatherCycle.VLF); - } - } - - private void refreshFormData() - { - // aggiorno visualizzazioni varie in form... - lQueueLen.Text = iobObj.QueueIN.Count.ToString(); - } - private void gather_Tick(object sender, EventArgs e) - { - if (iobObj.verboseLog) lg.Info("START gather_Tick"); - // eseguo cicli attivi SOLO se adapter è in EFFETTIVO running... - if (iobObj.adpRunning) - { - // inizio a riportare che sto eseguendo.. - advProgBar(); - if (iobObj.connectionOk) - { - // check esecuzione FastTask - checkFastTask(); - // check esecuzione NormTask - checkNormTask(); - // check esecuzione SlowTask - checkSlowTask(); - // check esecuzione AlarmSync - checkVerySlowData(); - // check esecuzione SendTask (VHF) - checkSendTask(); - if (utils.CRI("waitEndCycle") > 0) - { - Thread.Sleep(utils.CRI("waitEndCycle")); - } - } - else - { - double currWait = DateTime.Now.Subtract(lastStartTry).TotalMilliseconds; - if (iobObj.adpTryRestart && currWait > utils.CRI("waitRecMSec")) - { - lastStartTry = DateTime.Now; - iobObj.tryConnect(); - iobObj.loadPersData(); - } - } - // se è arrivato a MAX resetto... - if (MainProgrBar.Value >= MainProgrBar.Maximum) - { - MainProgrBar.Value = 0; - } - } - else - { - lg.Info("PLC <--> IOB Not connected"); - // verifico SE debba tentare il riavvio, ovvero NON running ma tryReconn e non ho riprovato x oltre waitRecMSec - double currWait = DateTime.Now.Subtract(lastStartTry).TotalMilliseconds; - if (iobObj.adpTryRestart && currWait > utils.CRI("waitRecMSec")) - { - lastStartTry = DateTime.Now; - avviaAdapter(); - iobObj.loadPersData(); - } - } - if (iobObj.verboseLog) lg.Info("END gather_Tick"); - } - /// - /// Chiusura adapter - /// - private void closeAdapter() - { - fermaTutto(true, false); - } - /// - /// Ferma tutti i componenti adapter + update buttons - /// - /// determina se fermare il timer (gather) principale (solo se non si chiude) - /// determina se tentare di riconnettersi - private void fermaTutto(bool stopTimer, bool tryRestart) - { - iobObj.stopAdapter(tryRestart); - // salvo! - savePersistLayer(utils.defPersLayerFile); - savePersistLayer(utils.histPersLayerFile); - - stop.Enabled = false; - dump.Enabled = false; - start.Enabled = true; - - if (stopTimer) - { - gather.Enabled = false; - iobObj.tryDisconnect(); - } - sIN = Semaforo.SS; - sOUT = Semaforo.SS; - } - - /// - /// Carica file ini della configurazione richiesta - /// - /// - private void loadIniFile(string iniConfFile) - { - displayTaskAndLog(string.Format("Loading iniConfFile: {0}", iniConfFile)); - - IniFile fIni = new IniFile(iniConfFile); - tipoScelto = (tipoAdapter)Enum.Parse(typeof(tipoAdapter), fIni.ReadString("IOB", "CNCTYPE", "DEMO")); - IOBConf = new IobConfiguration - { - tipoIob = tipoScelto, - versIOB = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(), - codIOB = fIni.ReadString("IOB", "IDXMACC", "0"), - cncIpAddr = fIni.ReadString("CNC", "IP", "::1"), - cncPort = fIni.ReadString("CNC", "PORT", "0"), - serverData = new serverMapo(fIni.ReadString("SERVER", "MPIP", "::1"), fIni.ReadString("SERVER", "MPURL", "/"), fIni.ReadString("SERVER", "CMDBASE", "/"), fIni.ReadString("SERVER", "CMDALIVE", "/"), fIni.ReadString("SERVER", "CMDENABLED", "/"), fIni.ReadString("SERVER", "CMDREBO", "/")), - MAX_COUNTER_BLINK = Convert.ToInt32(fIni.ReadString("BLINK", "MAX_COUNTER_BLINK", "1")), - BLINK_FILT = Convert.ToInt32(fIni.ReadString("BLINK", "BLINK_FILT", "0")) - }; - - loadIobType(); - // avvio macchina con adapter specificato... - if (utils.CRB("autoStartOnLoad")) - { - displayTaskAndLog("Auto Starting..."); - // avvio! - avviaAdapter(); - displayTaskAndLog("Auto Started!"); - } - } - - /// - /// Salva su file l'oggetto di persistenza dati - /// - /// - public void savePersistLayer(string filePath) - { - // in primis check semaforo salvataggio... - if (!iobObj.adpSaving) - { - // alzo semaforo salvataggio - iobObj.adpSaving = true; - // se HO dei dati... - if (iobObj.persistenceLayer != null) - { - try - { - utils.WritePlain(iobObj.persistenceLayer, filePath); - } - catch (Exception exc) - { - lg.Error(string.Format("Errore salvataggio file{0}{1}", Environment.NewLine, exc)); - } - } - else - { - lg.Info("persistenceLayer null, non salvato..."); - } - // abbasso semaforo salvataggio - iobObj.adpSaving = false; - } - } - /// - /// Carica da file l'oggetto di persistenza dati - /// - /// - public void loadPersistLayer(string filePath) - { - // inizializzo prima di leggere... - iobObj.persistenceLayer = new Dictionary(); - iobObj.persistenceLayer = utils.ReadPlain(filePath); - - // 2017.03.23 check problema files corrotti... - if (iobObj.persistenceLayer.Count == 0) - { - // se avesse letto un valore NON coerente (senza righe) PROVA a leggere a ritroso vecchi files... da histPersLayerFile e precedenti... - int numDD = 0; - int maxNumDD = utils.CRI("maxNumDD"); - Dictionary lastRead = new Dictionary(); - // continuo fino a che non leggo almeno 1 riga valida e non ho raggiunto maxDD - while (numDD < maxNumDD && lastRead.Count == 0) - { - // leggo il file storico alla data anticipata... (ci provo...) - try - { - lastRead = utils.ReadPlain(utils.prevPersLayerFile(numDD)); - } - catch - { } - numDD++; - } - // se sono uscito PROVO a passare il file storico letto buono (oppure vuoto...) - iobObj.persistenceLayer = lastRead; - } - } - - #endregion - - private void mLoadConf_Click(object sender, EventArgs e) - { - // mostro selettore file x leggere adapter.. - OpenFileDialog openFileDial = new OpenFileDialog(); - - // directory iniziale - openFileDial.InitialDirectory = utils.confDir; // string.Format(@"{0}\{1}", Application.StartupPath, utils.CRS("dataConfPath")); - // Set filter options and filter index. - openFileDial.Filter = "INI Files (.ini)|*.ini|All Files (*.*)|*.*"; - openFileDial.FilterIndex = 1; - // altre opzioni - openFileDial.Multiselect = false; - - // Call the ShowDialog method to show the dialog box. - DialogResult userClickedOK = openFileDial.ShowDialog(); - - // Process input if the user clicked OK. - if (userClickedOK == DialogResult.OK) - { - string iniConfFile = openFileDial.FileName; - loadIniFile(iniConfFile); - lg.Info("INI LOADED"); - loadPersistLayer(utils.defPersLayerFile); - lg.Info("PersLayerFile READ"); - iobObj.loadPersData(); - lg.Info("PersLayerFile LOADED"); - } - } - - /// - /// carica IOB richiesto - /// - private void loadIobType() - { - switch (tipoScelto) - { - case tipoAdapter.DEMO: - iobObj = new IobDemo(this, IOBConf); - start.Enabled = true; - break; - case tipoAdapter.FANUC: - iobObj = new IobFanuc(this, IOBConf); - start.Enabled = true; - break; - case tipoAdapter.SIEMENS: - iobObj = new IobSiemens(this, IOBConf); - start.Enabled = true; - break; - case tipoAdapter.ND: - default: - iobObj = new IobDemo(this, IOBConf); - start.Enabled = false; - break; - } - lblTopSx.Text = string.Format("CNC: {0}{1}IP: {2}:{3}", IOBConf.tipoIob, Environment.NewLine, IOBConf.cncIpAddr, IOBConf.cncPort); - lblTopCent.Text = string.Format("IOB {0}", IOBConf.codIOB); - lblTopDx.Text = string.Format("SRV: {0}{1}URL: {2}{3}", IOBConf.serverData.MPIP, Environment.NewLine, IOBConf.serverData.MPURL, IOBConf.serverData.CMDBASE); - - // carico i default values su interfaccia - setDefaults(); - - displayTaskAndLog(string.Format("Caricata conf per adapter {0}", tipoScelto)); - } - - /// - /// impostazione valori defaults - /// - private void setDefaults() - { - stop.Enabled = false; - dump.Enabled = false; - - lQueueLen.Text = "ND"; - nLine2show = utils.CRI("numRowConsole"); - MainProgrBar.Minimum = 0; - MainProgrBar.Maximum = 1000; - MainProgrBar.Value = 0; - MainProgrBar.Step = 1; - } - public void resetProgBar() - { - MainProgrBar.Value = 0; - } - /// - /// Visualizzazione stato di comunicazione attiva con PLC - /// - public bool commPlcActive - { - set - { - // se true --> comunica/verde, altrimenti grigio - lblApp.ForeColor = value ? Color.SeaGreen : Color.Black; - lblVers.ForeColor = value ? Color.SeaGreen : Color.DarkSlateGray; - statusStrip1.Refresh(); - } - } - - /// - /// Avvio dell'adapter - /// - /// - /// - private void start_Click(object sender, EventArgs e) - { - avviaAdapter(); - iobObj.loadPersData(); - // salvo che ho avviato adapter - lg.Info("Completato LOAD Adapter"); - } - - public void avviaAdapter() - { - displayTaskAndLog("Adapter starting"); - // se NON sta girando... - if (!iobObj.adpRunning) - { - int porta = Convert.ToInt32(port.Text); - iobObj.startAdapter(porta); - displayTaskAndLog("Adapter started!"); - - // fix buttons start/stop/dump - start.Enabled = false; - stop.Enabled = true; - dump.Enabled = true; - if (utils.CRB("openDumpOnStart")) - { - displayTaskAndLog("Dump Window starting"); - apriDumpAgent(); - displayTaskAndLog("Dump Windows OK"); - } - - displayTaskAndLog("Start Timers"); - // inizializzo contatori fast/mid/slow - fastCount = utils.CRI("fastCount"); - normCount = utils.CRI("normCount"); - slowCount = utils.CRI("slowCount"); - verySlowCount = utils.CRI("verySlowCount"); - displayTaskAndLog("Adapter Running..."); - // forzo check allarmi.. - iobObj.forceAlarmCheck(); - } - else - { - displayTaskAndLog("Adapter STILL Running..."); - } - } - - /// - /// fermata dell'adapter - /// - /// - /// - private void stop_Click(object sender, EventArgs e) - { - fermaAdapter(false); - // salvo che ho fermato adapter - lg.Info("UNLOAD Adapter"); - } - /// - /// Ferma l'adapter - /// - /// determina se si debba tentare riavvio automatico (per caduta connessione) - public void fermaAdapter(bool tryRestart) - { - fermaTutto(false, tryRestart); - } - - /// - /// Stringa dati monitoraggio mostrata (1 SX)... - /// - public string dataMonitor_0 - { - get - { - return lblRawData.Text; - } - set - { - lblRawData.Text = value; - } - } - /// - /// Stringa dati monitoraggio mostrata (1 SX)... - /// - public string dataMonitor_1 - { - get - { - return lblOutMessage.Text; - } - set - { - lblOutMessage.Text = value; - } - } - /// - /// Stringa dati monitoraggio mostrata (2 centro)... - /// - public string dataMonitor_2 - { - get - { - return lblOutMessage2.Text; - } - set - { - lblOutMessage2.Text = value; - } - } - /// - /// Stringa dati monitoraggio mostrata (3 dx)... - /// - public string dataMonitor_3 - { - get - { - return lblOutMessage3.Text; - } - set - { - lblOutMessage3.Text = value; - } - } - /// - /// label del numero di record processati (libera) - /// - public string dataProcLabel - { - get - { - return tslDataProc.Text; - } - set - { - tslDataProc.Text = value; - } - } - /// - /// Numero max linee da mostrare (da controllo)... - /// - public int nLine2show - { - get - { - int answ = 5; - try - { - Int32.TryParse(nLines.Text, out answ); - } - catch - { } - return answ; - } - set - { - nLines.Text = value.ToString(); - } - } - /// - /// Imposta COLORE SFONDO x Semaforo IN - /// - public Semaforo sIN - { - set - { - bIN.BackColor = decSemaforo(value); - bIN.Refresh(); - } - } - /// - /// Imposta COLORE SFONDO x Semaforo OUT - /// - public Semaforo sOUT - { - set - { - bOUT.BackColor = decSemaforo(value); - bOUT.Refresh(); - } - } - /// - /// Decodifica colore da valore semaforico - /// - /// - /// - public Color decSemaforo(Semaforo valore) - { - Color colore = Color.LightGray; - switch (valore) - { - case Semaforo.SV: - colore = Color.LightGreen; - break; - case Semaforo.SG: - colore = Color.LightGoldenrodYellow; - break; - case Semaforo.SR: - colore = Color.Red; - break; - case Semaforo.SS: - colore = Color.DarkGray; - break; - default: - colore = Color.LightGray; - break; - } - return colore; - } - - private void displTimer_Tick(object sender, EventArgs e) - { - // aggiorno solo componenti visuali... - - // aggiorno uptime... - TimeSpan uptime = DateTime.Now.Subtract(firstStart); - tslUptime.Text = string.Format("Uptime: {0}gg {1:00}:{2:00}:{3:00}", uptime.Days, uptime.Hours, uptime.Minutes, uptime.Seconds); - } - - private void mCheckUpdates_Click(object sender, EventArgs e) - { - AutoUpdater.Start(updateUrl); - } - } -} diff --git a/IOB-WIN/IOB-WIN/MainForm.resx b/IOB-WIN/IOB-WIN/MainForm.resx deleted file mode 100644 index 1f548d1..0000000 --- a/IOB-WIN/IOB-WIN/MainForm.resx +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 118, 17 - - - 255, 17 - - - 390, 17 - - - 523, 17 - - - 645, 17 - - \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/NLog.config b/IOB-WIN/IOB-WIN/NLog.config deleted file mode 100644 index 43a9f06..0000000 --- a/IOB-WIN/IOB-WIN/NLog.config +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/NLog.xsd b/IOB-WIN/IOB-WIN/NLog.xsd deleted file mode 100644 index 4740d80..0000000 --- a/IOB-WIN/IOB-WIN/NLog.xsd +++ /dev/null @@ -1,3103 +0,0 @@ - - - - - - - - - - - - - - - Watch config file for changes and reload automatically. - - - - - Print internal NLog messages to the console. Default value is: false - - - - - Print internal NLog messages to the console error output. Default value is: false - - - - - Write internal NLog messages to the specified file. - - - - - Log level threshold for internal log messages. Default value is: Info. - - - - - Global log level threshold for application log messages. Messages below this level won't be logged.. - - - - - Throw an exception when there is an internal error. Default value is: false. - - - - - Throw an exception when there is a configuration error. If not set, determined by throwExceptions. - - - - - Gets or sets a value indicating whether Variables should be kept on configuration reload. Default value is: false. - - - - - Write internal NLog messages to the System.Diagnostics.Trace. Default value is: false. - - - - - Write timestamps for internal NLog messages. Default value is: true. - - - - - Use InvariantCulture as default culture instead of CurrentCulture. Default value is: false. - - - - - - - - - - - - - - Make all targets within this section asynchronous (creates additional threads but the calling thread isn't blocked by any target writes). - - - - - - - - - - - - - - - - - Prefix for targets/layout renderers/filters/conditions loaded from this assembly. - - - - - Load NLog extensions from the specified file (*.dll) - - - - - Load NLog extensions from the specified assembly. Assembly name should be fully qualified. - - - - - - - - - - Name of the logger. May include '*' character which acts like a wildcard. Allowed forms are: *, Name, *Name, Name* and *Name* - - - - - Comma separated list of levels that this rule matches. - - - - - Minimum level that this rule matches. - - - - - Maximum level that this rule matches. - - - - - Level that this rule matches. - - - - - Comma separated list of target names. - - - - - Ignore further rules if this one matches. - - - - - Enable or disable logging rule. Disabled rules are ignored. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the file to be included. You could use * wildcard. The name is relative to the name of the current config file. - - - - - Ignore any errors in the include file. - - - - - - - Variable name. - - - - - Variable value. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Number of log events that should be processed in a batch by the lazy writer thread. - - - - - Limit of full s to write before yielding into Performance is better when writing many small batches, than writing a single large batch - - - - - Action to be taken when the lazy writer thread request queue count exceeds the set limit. - - - - - Limit on the number of requests in the lazy writer thread request queue. - - - - - Time in milliseconds to sleep between batches. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Delay the flush until the LogEvent has been confirmed as written - - - - - Condition expression. Log events who meet this condition will cause a flush on the wrapped target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Number of log events to be buffered. - - - - - Timeout (in milliseconds) after which the contents of buffer will be flushed if there's no write in the specified period of time. Use -1 to disable timed flushes. - - - - - Indicates whether to use sliding timeout. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Encoding to be used. - - - - - Instance of that is used to format log messages. - - - - - End of line value if a newline is appended at the end of log message . - - - - - Maximum message size in bytes. - - - - - Indicates whether to append newline at the end of log message. - - - - - Action that should be taken if the will be more connections than . - - - - - Action that should be taken if the message is larger than maxMessageSize. - - - - - Maximum current connections. 0 = no maximum. - - - - - Indicates whether to keep connection open whenever possible. - - - - - Size of the connection cache (number of connections which are kept alive). - - - - - Network address. - - - - - Maximum queue size. - - - - - Indicates whether to include stack contents. - - - - - Indicates whether to include source info (file name and line number) in the information sent over the network. - - - - - Indicates whether to include NLog-specific extensions to log4j schema. - - - - - Indicates whether to include dictionary contents. - - - - - Indicates whether to include call site (class and method name) in the information sent over the network. - - - - - AppInfo field. By default it's the friendly name of the current AppDomain. - - - - - NDC item separator. - - - - - Indicates whether to include dictionary contents. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - Layout that should be use to calcuate the value for the parameter. - - - - - Viewer parameter name. - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Text to be rendered. - - - - - Header. - - - - - Footer. - - - - - Indicates whether to use default row highlighting rules. - - - - - Indicates whether to auto-check if the console is available. - Disables console writing if Environment.UserInteractive = False (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App) - - - - - The encoding for writing messages to the . - - - - - Indicates whether the error stream (stderr) should be used instead of the output stream (stdout). - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Condition that must be met in order to set the specified foreground and background color. - - - - - Background color. - - - - - Foreground color. - - - - - - - - - - - - - - - - Indicates whether to ignore case when comparing texts. - - - - - Regular expression to be matched. You must specify either text or regex. - - - - - Text to be matched. You must specify either text or regex. - - - - - Indicates whether to match whole words only. - - - - - Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. - - - - - Background color. - - - - - Foreground color. - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Text to be rendered. - - - - - Header. - - - - - Footer. - - - - - Indicates whether to send the log messages to the standard error instead of the standard output. - - - - - Indicates whether to auto-check if the console is available - Disables console writing if Environment.UserInteractive = False (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App) - - - - - The encoding for writing messages to the . - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Obsolete - value will be ignored! The logging code always runs outside of transaction. Gets or sets a value indicating whether to use database transactions. Some data providers require this. - - - - - Database user name. If the ConnectionString is not provided this value will be used to construct the "User ID=" part of the connection string. - - - - - Name of the database provider. - - - - - Database password. If the ConnectionString is not provided this value will be used to construct the "Password=" part of the connection string. - - - - - Indicates whether to keep the database connection open between the log events. - - - - - Database name. If the ConnectionString is not provided this value will be used to construct the "Database=" part of the connection string. - - - - - Name of the connection string (as specified in <connectionStrings> configuration section. - - - - - Connection string. When provided, it overrides the values specified in DBHost, DBUserName, DBPassword, DBDatabase. - - - - - Database host name. If the ConnectionString is not provided this value will be used to construct the "Server=" part of the connection string. - - - - - Connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - Text of the SQL command to be run on each log level. - - - - - Type of the SQL command to be run on each log level. - - - - - - - - - - - - - - - - - - - - - - - Type of the command. - - - - - Connection string to run the command against. If not provided, connection string from the target is used. - - - - - Indicates whether to ignore failures. - - - - - Command text. - - - - - - - - - - - - - - Layout that should be use to calcuate the value for the parameter. - - - - - Database parameter name. - - - - - Database parameter precision. - - - - - Database parameter scale. - - - - - Database parameter size. - - - - - - - - - - - - - - - - Name of the target. - - - - - Text to be rendered. - - - - - Header. - - - - - Footer. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Layout that renders event Category. - - - - - Layout that renders event ID. - - - - - Name of the Event Log to write to. This can be System, Application or any user-defined name. - - - - - Name of the machine on which Event Log service is running. - - - - - Value to be used as the event Source. - - - - - Action to take if the message is larger than the option. - - - - - Optional entrytype. When not set, or when not convertable to then determined by - - - - - Maximum Event log size in kilobytes. If null, the value won't be set. Default is 512 Kilobytes as specified by Eventlog API - - - - - Message length limit to write to the Event Log. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Indicates whether to return to the first target after any successful write. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Text to be rendered. - - - - - Header. - - - - - Footer. - - - - - File encoding. - - - - - Line ending mode. - - - - - Way file archives are numbered. - - - - - Name of the file to be used for an archive. - - - - - Indicates whether to automatically archive log files every time the specified time passes. - - - - - Size in bytes above which log files will be automatically archived. Warning: combining this with isn't supported. We cannot create multiple archive files, if they should have the same name. Choose: - - - - - Indicates whether to compress archive files into the zip archive format. - - - - - Maximum number of archive files that should be kept. - - - - - Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. - - - - - Is the an absolute or relative path? - - - - - Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. If set to false, nothing gets written when the filename is wrong. - - - - - Whether or not this target should just discard all data that its asked to write. Mostly used for when testing NLog Stack except final write - - - - - Is the an absolute or relative path? - - - - - Value indicationg whether file creation calls should be synchronized by a system global mutex. - - - - - Maximum number of log filenames that should be stored as existing. - - - - - Indicates whether the footer should be written only when the file is archived. - - - - - Name of the file to write to. - - - - - Value specifying the date format to use when archiving files. - - - - - Indicates whether to archive old log file on startup. - - - - - Indicates whether to create directories if they do not exist. - - - - - File attributes (Windows only). - - - - - Indicates whether to delete old log file on startup. - - - - - Indicates whether to replace file contents on each write instead of appending log message at the end. - - - - - Indicates whether to enable log file(s) to be deleted. - - - - - Number of times the write is appended on the file before NLog discards the log message. - - - - - Indicates whether concurrent writes to the log file by multiple processes on the same host. - - - - - Indicates whether to keep log file open instead of opening and closing it on each logging event. - - - - - Indicates whether concurrent writes to the log file by multiple processes on different network hosts. - - - - - Number of files to be kept open. Setting this to a higher value may improve performance in a situation where a single File target is writing to many files (such as splitting by level or by logger). - - - - - Maximum number of seconds that files are kept open. If this number is negative the files are not automatically closed after a period of inactivity. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - Log file buffer size in bytes. - - - - - Indicates whether to automatically flush the file buffers after each log message. - - - - - Delay in milliseconds to wait before attempting to write to the file again. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Condition expression. Log events who meet this condition will be forwarded to the wrapped target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Windows domain name to change context to. - - - - - Required impersonation level. - - - - - Type of the logon provider. - - - - - Logon Type. - - - - - User account password. - - - - - Indicates whether to revert to the credentials of the process instead of impersonating another user. - - - - - Username to change context to. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Interval in which messages will be written up to the number of messages. - - - - - Maximum allowed number of messages written per . - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Endpoint address. - - - - - Name of the endpoint configuration in WCF configuration file. - - - - - Indicates whether to use a WCF service contract that is one way (fire and forget) or two way (request-reply) - - - - - Client ID. - - - - - Indicates whether to include per-event properties in the payload sent to the server. - - - - - Indicates whether to use binary message encoding. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - Layout that should be use to calculate the value for the parameter. - - - - - Name of the parameter. - - - - - Type of the parameter. - - - - - Type of the parameter. Obsolete alias for - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Text to be rendered. - - - - - Header. - - - - - Footer. - - - - - Indicates whether to send message as HTML instead of plain text. - - - - - Encoding to be used for sending e-mail. - - - - - Indicates whether to add new lines between log entries. - - - - - CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). - - - - - Recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). - - - - - BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). - - - - - Mail message body (repeated for each log message send in one mail). - - - - - Mail subject. - - - - - Sender's email address (e.g. joe@domain.com). - - - - - Indicates the SMTP client timeout. - - - - - Priority used for sending mails. - - - - - Indicates whether NewLine characters in the body should be replaced with tags. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - SMTP Server to be used for sending. - - - - - SMTP Authentication mode. - - - - - Username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). - - - - - Password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). - - - - - Indicates whether SSL (secure sockets layer) should be used when communicating with SMTP server. - - - - - Port number that SMTP Server is listening on. - - - - - Indicates whether the default Settings from System.Net.MailSettings should be used. - - - - - Folder where applications save mail messages to be processed by the local SMTP server. - - - - - Specifies how outgoing email messages will be handled. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Encoding to be used when writing text to the queue. - - - - - Indicates whether to use the XML format when serializing message. This will also disable creating queues. - - - - - Indicates whether to check if a queue exists before writing to it. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - Indicates whether to create the queue if it doesn't exists. - - - - - Label to associate with each message. - - - - - Name of the queue to write to. - - - - - Indicates whether to use recoverable messages (with guaranteed delivery). - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Class name. - - - - - Method name. The method must be public and static. Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx e.g. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Encoding to be used. - - - - - End of line value if a newline is appended at the end of log message . - - - - - Maximum message size in bytes. - - - - - Indicates whether to append newline at the end of log message. - - - - - Action that should be taken if the will be more connections than . - - - - - Action that should be taken if the message is larger than maxMessageSize. - - - - - Network address. - - - - - Size of the connection cache (number of connections which are kept alive). - - - - - Indicates whether to keep connection open whenever possible. - - - - - Maximum current connections. 0 = no maximum. - - - - - Maximum queue size. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Encoding to be used. - - - - - Instance of that is used to format log messages. - - - - - End of line value if a newline is appended at the end of log message . - - - - - Maximum message size in bytes. - - - - - Indicates whether to append newline at the end of log message. - - - - - Action that should be taken if the will be more connections than . - - - - - Action that should be taken if the message is larger than maxMessageSize. - - - - - Maximum current connections. 0 = no maximum. - - - - - Indicates whether to keep connection open whenever possible. - - - - - Size of the connection cache (number of connections which are kept alive). - - - - - Network address. - - - - - Maximum queue size. - - - - - Indicates whether to include stack contents. - - - - - Indicates whether to include source info (file name and line number) in the information sent over the network. - - - - - Indicates whether to include NLog-specific extensions to log4j schema. - - - - - Indicates whether to include dictionary contents. - - - - - Indicates whether to include call site (class and method name) in the information sent over the network. - - - - - AppInfo field. By default it's the friendly name of the current AppDomain. - - - - - NDC item separator. - - - - - Indicates whether to include dictionary contents. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Indicates whether to perform layout calculation. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Indicates whether performance counter should be automatically created. - - - - - Name of the performance counter category. - - - - - Counter help text. - - - - - Name of the performance counter. - - - - - Performance counter type. - - - - - The value by which to increment the counter. - - - - - Performance counter instance name. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Default filter to be applied when no specific rule matches. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - Condition to be tested. - - - - - Resulting filter to be applied when the condition matches. - - - - - - - - - - - - - Name of the target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - Name of the target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - Number of times to repeat each log message. - - - - - - - - - - - - - - - - - Name of the target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - Number of retries that should be attempted on the wrapped target in case of a failure. - - - - - Time to wait between retries in milliseconds. - - - - - - - - - - - - - - - Name of the target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - Name of the target. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - Name of the target. - - - - - Layout used to format log messages. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the target. - - - - - Should we include the BOM (Byte-order-mark) for UTF? Influences the property. This will only work for UTF-8. - - - - - Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit - - - - - Encoding. - - - - - Value whether escaping be done according to the old NLog style (Very non-standard) - - - - - Value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) - - - - - Web service method name. Only used with Soap. - - - - - Web service namespace. Only used with Soap. - - - - - Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) - - - - - Protocol to be used when calling web service. - - - - - Web service URL. - - - - - Name of the root XML element, if POST of XML document chosen. If so, this property must not be null. (see and ). - - - - - (optional) root namespace of the XML document, if POST of XML document chosen. (see and ). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Footer layout. - - - - - Header layout. - - - - - Body layout (can be repeated multiple times). - - - - - Custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). - - - - - Column delimiter. - - - - - Quote Character. - - - - - Quoting mode. - - - - - Indicates whether CVS should include header. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Layout of the column. - - - - - Name of the column. - - - - - - - - - - - - - - - - - - List of property names to exclude when is true - - - - - Option to include all properties from the log events - - - - - Indicates whether to include contents of the dictionary. - - - - - Option to render the empty object value {} - - - - - Option to suppress the extra spaces in the output json - - - - - Indicates whether to include contents of the dictionary. - - - - - - - - - - - - - - - Determines wether or not this attribute will be Json encoded. - - - - - Indicates whether to escape non-ascii characters - - - - - Layout that will be rendered as the attribute's value. - - - - - Name of the attribute. - - - - - - - - - - - - - - Footer layout. - - - - - Header layout. - - - - - Body layout (can be repeated multiple times). - - - - - - - - - - - - - - - - Option to include all properties from the log events - - - - - Indicates whether to include contents of the dictionary. - - - - - Indicates whether to include contents of the dictionary. - - - - - - - - - - - - - - Layout text. - - - - - - - - - - - - - - - Action to be taken when filter matches. - - - - - Condition expression. - - - - - - - - - - - - - - - - - - - - - - - - - - Action to be taken when filter matches. - - - - - Indicates whether to ignore case when comparing strings. - - - - - Layout to be used to filter log messages. - - - - - Substring to be matched. - - - - - - - - - - - - - - - - - Action to be taken when filter matches. - - - - - String to compare the layout to. - - - - - Indicates whether to ignore case when comparing strings. - - - - - Layout to be used to filter log messages. - - - - - - - - - - - - - - - - - Action to be taken when filter matches. - - - - - Indicates whether to ignore case when comparing strings. - - - - - Layout to be used to filter log messages. - - - - - Substring to be matched. - - - - - - - - - - - - - - - - - Action to be taken when filter matches. - - - - - String to compare the layout to. - - - - - Indicates whether to ignore case when comparing strings. - - - - - Layout to be used to filter log messages. - - - - - - - - - - - - - - - - - - - - - - - Action to be taken when filter matches. - - - - - Layout to be used to filter log messages. - - - - - Default number of unique filter values to expect, will automatically increase if needed - - - - - Append FilterCount to the when an event is no longer filtered - - - - - Insert FilterCount value into when an event is no longer filtered - - - - - Max number of unique filter values to expect simultaneously - - - - - Max length of filter values, will truncate if above limit - - - - - Default buffer size for the internal buffers - - - - - Reuse internal buffers, and doesn't have to constantly allocate new buffers - - - - - How long before a filter expires, and logging is accepted again - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/Program.cs b/IOB-WIN/IOB-WIN/Program.cs deleted file mode 100644 index fffacbe..0000000 --- a/IOB-WIN/IOB-WIN/Program.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using System.Windows.Forms; - -namespace IOB_WIN -{ - static class Program - { - [DllImport("kernel32.dll", SetLastError = true)] - static extern bool AllocConsole(); - - [DllImport("kernel32.dll", SetLastError = true)] - static extern bool FreeConsole(); - /// - /// Punto di ingresso principale dell'applicazione. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new MainForm()); - } - } -} diff --git a/IOB-WIN/IOB-WIN/Properties/AssemblyInfo.cs b/IOB-WIN/IOB-WIN/Properties/AssemblyInfo.cs deleted file mode 100644 index 41b87de..0000000 --- a/IOB-WIN/IOB-WIN/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// Le informazioni generali relative a un assembly sono controllate dal seguente -// set di attributi. Modificare i valori di questi attributi per modificare le informazioni -// associate a un assembly. -[assembly: AssemblyTitle("IOB-WIN")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyProduct("IOB-WIN")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili -// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da -// COM, impostare su true l'attributo ComVisible per tale tipo. -[assembly: ComVisible(false)] - -// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi -[assembly: Guid("adcb8028-79c4-4896-a9a7-e3c5140fc00b")] - diff --git a/IOB-WIN/IOB-WIN/Properties/Resources.Designer.cs b/IOB-WIN/IOB-WIN/Properties/Resources.Designer.cs deleted file mode 100644 index 97de66d..0000000 --- a/IOB-WIN/IOB-WIN/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// Codice generato da uno strumento. -// Versione runtime:4.0.30319.42000 -// -// Le modifiche apportate a questo file possono causare un comportamento non corretto e andranno perse se -// il codice viene rigenerato. -// -//------------------------------------------------------------------------------ - -namespace IOB_WIN.Properties -{ - - - /// - /// Classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via. - /// - // Questa classe è stata generata automaticamente dalla classe StronglyTypedResourceBuilder - // tramite uno strumento quale ResGen o Visual Studio. - // Per aggiungere o rimuovere un membro, modificare il file .ResX, quindi eseguire di nuovo ResGen - // con l'opzione /str oppure ricompilare il progetto VS. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Restituisce l'istanza di ResourceManager memorizzata nella cache e usata da questa classe. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IOB_WIN.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte - /// le ricerche di risorse che utilizzano questa classe di risorse fortemente tipizzata. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/IOB-WIN/IOB-WIN/Properties/Resources.resx b/IOB-WIN/IOB-WIN/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/IOB-WIN/IOB-WIN/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/Properties/Settings.Designer.cs b/IOB-WIN/IOB-WIN/Properties/Settings.Designer.cs deleted file mode 100644 index e5eef23..0000000 --- a/IOB-WIN/IOB-WIN/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace IOB_WIN.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/IOB-WIN/IOB-WIN/Properties/Settings.settings b/IOB-WIN/IOB-WIN/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/IOB-WIN/IOB-WIN/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/IOB-WIN/IOB-WIN/Readme/ToDo.txt b/IOB-WIN/IOB-WIN/Readme/ToDo.txt deleted file mode 100644 index efe3d82..0000000 --- a/IOB-WIN/IOB-WIN/Readme/ToDo.txt +++ /dev/null @@ -1,17 +0,0 @@ -------------------------------------- -- 2017.10.19 -------------------------------------- -.. - da testare ora invio URL a MoonPro -OK - ALIVE -OK - ENABLED - - INPUT - - FARE lettura VERA da FANUC almeno della bitmap - - fare gestione configurabile lettura FANUC -.. - fare gestione come rPI-IOB, ovvero -OK - gestione QUEUE eventi -OK - salvataggio su file dello storico eventi rilevati -OK - gestione dei segnali ballerini (BITMASK!) - - fare integrazione ALTRI varori FANUC, tra cui - - allarmi - - load/speed - - nuovo metodo chaimata x MP/IO (che dovrà avere nuovo comando x accettare queste chiamate e salvare su tabella SENZA processing, come eventi o come extra... evento NOTA?) \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/Resources/SteamWare.ico b/IOB-WIN/IOB-WIN/Resources/SteamWare.ico deleted file mode 100644 index 70ccadaff4b65965acc2004f6197e552114aa937..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279582 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 -#ifdef _WIN32 -#include -#else -#include -#include -#include -#include -#include -#include -#include -#include -#endif - -#include -#include - -#define PORT 7878 -#define HOST "localhost" -#define BUFFER_SIZE 1024 - -#ifndef _WIN32 -#define SOCKET int -#define closesocket close -#endif - -void cleanup_and_exit(int ret) -{ -#ifdef _WIN32 - WSACleanup(); -#endif - exit(ret); -} - -void usage() -{ - fprintf(stderr, "Usage: dump [-t timeout] [host] [port] [file]\n host defaults to localhost\n port defaults to 7878\n file defaults to stdout\n"); - exit(0); -} - -int main(int argc, char **argv) -{ - char hostname[100]; - SOCKET sd; - struct sockaddr_in pin; - struct hostent *hp; - char buffer[BUFFER_SIZE]; - int port; - FILE *file; - char dump = 0; - char **argvp = argv; - time_t start = 0; - int remaining = 1, timeout = 0, nfds; - struct fd_set fds; - struct timeval tv, *tvp = 0; - -#ifdef _WIN32 - WSADATA wsaData; - if (WSAStartup(MAKEWORD(2,0), &wsaData) != 0) { - fprintf(stderr, "WSAStartup failed\n"); - cleanup_and_exit(1); - } -#endif - - if (argc > 1) { - if (strcmp(argv[1], "-h") == 0) { - usage(); - } else if (strcmp(argv[1], "-t") == 0) { - if (argc < 3) { - fprintf(stderr, "Missing timeout argument\n"); - usage(); - } - timeout = atoi(argv[2]); - argc -= 2; - argvp += 2; - } - } - - strcpy(hostname,HOST); - if (argc > 1) { - strcpy(hostname,argvp[1]); - } - - port = PORT; - if (argc > 2) { - port = atoi(argvp[2]); - } - - file = stdout; - if (argc > 3) { - file = fopen(argvp[3], "w"); - if (file == NULL) { - perror("fopen"); - fprintf(stderr, "Cannot open file %s\n", argv[3]); - exit(1); - } - dump = 1; - } - - /* go find out about the desired host machine */ - if ((hp = gethostbyname(hostname)) == (void*) 0) { - perror("gethostbyname"); - cleanup_and_exit(1); - } - - /* fill in the socket structure with host information */ - memset(&pin, 0, sizeof(pin)); - pin.sin_family = AF_INET; - memcpy(&pin.sin_addr.s_addr, hp->h_addr, hp->h_length); - pin.sin_port = htons(port); - - /* grab an Internet domain socket */ - if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { - perror("socket"); - cleanup_and_exit(1); - } - - /* connect to PORT on HOST */ - if (connect(sd,(struct sockaddr *) &pin, sizeof(pin)) == -1) { - perror("connect"); - cleanup_and_exit(1); - } - - if (dump) { - printf("Connected to %s port %d\n", hostname, port); - } - - /* wait for a message to come back from the server */ - if (timeout > 0) { - start = time(0); - remaining = timeout; - tv.tv_usec = 0; - tvp = &tv; - } -#ifdef _WIN32 - nfds = 1; -#else - nfds = sd + 1; -#endif - while (remaining > 0) { - int n; - - FD_ZERO(&fds); - FD_SET(sd, &fds); - tv.tv_sec = remaining; - n = select(nfds, &fds, (fd_set*) 0, (fd_set*) 0, tvp); - if (n < 0) { - closesocket(sd); - perror("recv"); - cleanup_and_exit(1); - } else if (n > 0) { - int count = recv(sd, buffer, BUFFER_SIZE, 0); - if (count == -1) { - closesocket(sd); - perror("recv"); - cleanup_and_exit(1); - } - if (count == 0) - break; - fwrite(buffer, 1, count, file); - if (dump) { - fputc('.', stdout); - fflush(stdout); - } - fflush(file); - } - - if (timeout > 0) { - time_t now = time(0); - remaining -= (int) (now - start); - start = now; - } - } - - if (dump) printf("\nFinished\n"); - - fclose(file); - closesocket(sd); -#ifdef _WIN32 - WSACleanup(); -#endif - - return 0; -} diff --git a/IOB-WIN/IOB-WIN/dump/dump.exe b/IOB-WIN/IOB-WIN/dump/dump.exe deleted file mode 100644 index caa249c9295fba1c03afffba58368be9d5c00b5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112128 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 diff --git a/IOB-WIN/IOB-WIN/logs/.placeholder.txt b/IOB-WIN/IOB-WIN/logs/.placeholder.txt deleted file mode 100644 index 5f28270..0000000 --- a/IOB-WIN/IOB-WIN/logs/.placeholder.txt +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/packages.config b/IOB-WIN/IOB-WIN/packages.config deleted file mode 100644 index 9210810..0000000 --- a/IOB-WIN/IOB-WIN/packages.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/postBuildTgt.bat b/IOB-WIN/IOB-WIN/postBuildTgt.bat deleted file mode 100644 index 4db8914..0000000 --- a/IOB-WIN/IOB-WIN/postBuildTgt.bat +++ /dev/null @@ -1,77 +0,0 @@ -@echo off -echo Effettua pulizia post build: configurazione %1. directory %2 - -REM RD /S /Q %2"\lib\da" -REM RD /S /Q %2"\lib\de" -REM RD /S /Q %2"\lib\es" -REM RD /S /Q %2"\lib\fr" -REM RD /S /Q %2"\lib\it" -REM RD /S /Q %2"\lib\ko" -REM RD /S /Q %2"\lib\nl" -REM RD /S /Q %2"\lib\pl" -REM RD /S /Q %2"\lib\pt" -REM RD /S /Q %2"\lib\ru" -REM RD /S /Q %2"\lib\sv" -REM RD /S /Q %2"\lib\tr" -REM RD /S /Q %2"\lib\zh" -REM -REM move /Y %2"da" %2"lib\" -REM move /Y %2"de" %2"lib\" -REM move /Y %2"es" %2"lib\" -REM move /Y %2"fr" %2"lib\" -REM move /Y %2"it" %2"lib\" -REM move /Y %2"ko" %2"lib\" -REM move /Y %2"nl" %2"lib\" -REM move /Y %2"pl" %2"lib\" -REM move /Y %2"pt" %2"lib\" -REM move /Y %2"ru" %2"lib\" -REM move /Y %2"sv" %2"lib\" -REM move /Y %2"tr" %2"lib\" -REM move /Y %2"zh" %2"lib\" - - - - - - - -if %1 == "Release" goto Release -if %1 == "Debug" goto Debug -REM if %1 == "FANUC" goto FANUC -REM if %1 == "SIEMENS" goto SIEMENS - -:Release -REM INIZIO eliminando i files pdb -del /S %2"*.pdb"" -del /S %2"lib/*.pdb"" -echo Release: eliminato pdb!!! -goto END - -:Debug -echo Debug: nulla da eliminare -goto END - -REM :CMS -REM echo CMS: Elimino files IOT di SCM -REM REM INIZIO eliminando i files pdb -REM del /S %2"*.pdb"" -REM del %2"DATA\CONF\IOT_ByteList.map" -REM del %2"DATA\CONF\IOT_WordList.map" -REM del %2"DATA\CONF\IOT_DWordList.map" -REM del %2"DATA\CONF\IOT_StringList.map" -REM del %2"DATA\CONF\EsaKvara.ini" -REM del /S %2"SCMCncLib.dll" -REM del /S %2"SCMCncLib.xml" -REM ora verifico tipo controllo esatto... -REM if %1 == "CMS-FANUC" goto FANUC -REM if %1 == "CMS-SIEMENS" goto SIEMENS -REM if %1 == "CMS-OSAI" goto OSAI -REM -REM :FANUC -REM goto END -REM -REM :SIEMENS -REM goto END - -:END -echo Fatto! \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/setupTgt.bat b/IOB-WIN/IOB-WIN/setupTgt.bat deleted file mode 100644 index 3bf5e83..0000000 --- a/IOB-WIN/IOB-WIN/setupTgt.bat +++ /dev/null @@ -1,84 +0,0 @@ -@echo off -echo Effettua setup dei file specifici per i vari ambienti pre build installer: verifica da nome configurazione %1 - - -REM if %1 == "Release" goto Release -REM if %1 == "Debug" goto Debug -REM if %1 == "FANUC" goto CMS -REM if %1 == "SIEMENS" goto CMS -REM -REM :Release -REM echo Release: nulla da copiare -REM goto END -REM -REM :Debug -REM echo Debug: copia file ini x simulazione ESA -REM del %2"DATA\CONF\EsaKvara.ini" -REM copy %2"Resources\SCM\EsaKvara_SIM.ini" %2"DATA\CONF\EsaKvara.ini" -REM goto END -REM -REM :CMS -REM echo CMS: copio files CMS - Zogno -REM del %2"Resources\MTCA.ico" -REM del %2"DATA\CONF\Adapter_ItemList.xml" -REM del %2"DATA\CONF\AlarmList.map" -REM del %2"DATA\CONF\AlarmListCNC.map" -REM del %2"DATA\CONF\AnalogData.map" -REM del %2"DATA\CONF\CounterList.map" -REM del %2"DATA\CONF\StatusList.map" -REM REM del /F /Q %2"DATA\CONF\*.*" -REM copy %2"Resources\CMS\CMS.ico" %2"Resources\MTCA.ico" -REM copy %2"Resources\CMS\AlarmListEmpty.map" %2"DATA\CONF\AlarmListCNC.map" -REM REM ora verifico tipo controllo esatto... -REM if %1 == "CMS-FANUC" goto FANUC -REM if %1 == "CMS-SIEMENS" goto SIEMENS -REM if %1 == "CMS-OSAI" goto OSAI -REM -REM :SCM -REM echo SCM: copio files SCM - Rimini -REM del %2"Resources\MTCA.ico" -REM del %2"DATA\CONF\Adapter_ItemList.xml" -REM del %2"DATA\CONF\AlarmList.map" -REM REM del %2"DATA\CONF\EsaKvara.ini" -REM del %2"DATA\CONF\IOT_ByteList.map" -REM del %2"DATA\CONF\IOT_WordList.map" -REM del %2"DATA\CONF\IOT_DWordList.map" -REM del %2"DATA\CONF\IOT_StringList.map" -REM REM del /F /Q %2"DATA\CONF\*.*" -REM copy %2"Resources\SCM\SCM.ico" %2"Resources\MTCA.ico" -REM copy %2"Resources\SCM\SCM_ESA.xml" %2"DATA\CONF\Adapter_ItemList.xml" -REM copy %2"Resources\SCM\AlarmListEsaGv.map" %2"DATA\CONF\AlarmList.map" -REM copy %2"Resources\SCM\AlarmListEsaGvCNC.map" %2"DATA\CONF\AlarmListCNC.map" -REM copy %2"Resources\SCM\EsaKvara_PROD.ini" %2"DATA\CONF\EsaKvara.ini" -REM copy %2"Resources\SCM\IOT_ByteList.map" %2"DATA\CONF\IOT_ByteList.map" -REM copy %2"Resources\SCM\IOT_WordList.map" %2"DATA\CONF\IOT_WordList.map" -REM copy %2"Resources\SCM\IOT_DWordList.map" %2"DATA\CONF\IOT_DWordList.map" -REM copy %2"Resources\SCM\IOT_StringList.map" %2"DATA\CONF\IOT_StringList.map" -REM goto END -REM -REM :FANUC -REM copy %2"Resources\CMS\FANUC.xml" %2"DATA\CONF\Adapter_ItemList.xml" -REM copy %2"Resources\CMS\AlarmListFANUC.map" %2"DATA\CONF\AlarmList.map" -REM copy %2"Resources\CMS\AnalogDataFANUC.map" %2"DATA\CONF\AnalogData.map" -REM copy %2"Resources\CMS\CounterListFANUC.map" %2"DATA\CONF\CounterList.map" -REM copy %2"Resources\CMS\StatusListFANUC.map" %2"DATA\CONF\StatusList.map" -REM goto END -REM -REM :SIEMENS -REM copy %2"Resources\CMS\SIEMENS.xml" %2"DATA\CONF\Adapter_ItemList.xml" -REM copy %2"Resources\CMS\AlarmListSIEMENS.map" %2"DATA\CONF\AlarmList.map" -REM copy %2"Resources\CMS\AnalogDataSIEMENS.map" %2"DATA\CONF\AnalogData.map" -REM copy %2"Resources\CMS\CounterListSIEMENS.map" %2"DATA\CONF\CounterList.map" -REM copy %2"Resources\CMS\StatusListSIEMENS.map" %2"DATA\CONF\StatusList.map" -REM goto END -REM -REM :OSAI -REM copy %2"Resources\CMS\OSAI.xml" %2"DATA\CONF\Adapter_ItemList.xml" -REM copy %2"Resources\CMS\AlarmListOSAI.map" %2"DATA\CONF\AlarmList.map" -REM copy %2"Resources\CMS\AnalogDataOSAI.map" %2"DATA\CONF\AnalogData.map" -REM copy %2"Resources\CMS\CounterListOSAI.map" %2"DATA\CONF\CounterList.map" -REM copy %2"Resources\CMS\StatusListOSAI.map" %2"DATA\CONF\StatusList.map" -REM goto END - -:END -echo Fatto! \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/utils.cs b/IOB-WIN/IOB-WIN/utils.cs deleted file mode 100644 index e85eb81..0000000 --- a/IOB-WIN/IOB-WIN/utils.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System; -using System.Windows.Forms; - -namespace IOB_WIN -{ - public class utils : IOB_UT.baseUtils - { - /// - /// folder archiviazione dati configurazione (DATA\CONF) - /// - public static string resxDir - { - get - { - return string.Format(@"{0}\{1}", Application.StartupPath, CRS("resxPath")); - } - } - /// - /// folder archiviazione dati configurazione (DATA\CONF) - /// - public static string confDir - { - get - { - return string.Format(@"{0}\{1}", Application.StartupPath, CRS("dataConfPath")); - } - } - /// - /// folder archiviazione dati storici giornalieri (DATA\DAT) - /// - public static string dataDatDir - { - get - { - return string.Format(@"{0}\{1}", Application.StartupPath, CRS("dataDatPath")); - } - } - /// - /// folder archiviazione dati (DATA) - /// - public static string dataDir - { - get - { - return string.Format(@"{0}\{1}", Application.StartupPath, CRS("dataPath")); - } - } - /// - /// File configurazione default - /// - public static string defConfFilePath - { - get - { - return string.Format(@"{0}\{1}", utils.confDir, utils.CRS("defaultConfFile")); - } - } - /// - /// File SimData x simulazione deterministica - /// - public static string simDataFile - { - get - { - return string.Format(@"{0}\{1}", utils.dataDatDir, utils.CRS("simDataFile")); - } - } - /// - /// File persistenza generale - /// - public static string defPersLayerFile - { - get - { - return string.Format(@"{0}\{1}", utils.dataDatDir, utils.CRS("defaultPersLayerFile")); - } - } - /// - /// file persistenza generale - /// - public static string histPersLayerFile - { - get - { - return string.Format(@"{0}\{1:yyyy}\{1:yyyy-MM-dd}.mtc", utils.dataDatDir, DateTime.Now); - } - } - /// - /// file persistenza generale data attuale ANTICIPATA di xx giorni - /// - /// num DD di anticipo - /// - public static string prevPersLayerFile(int numDD) - { - return string.Format(@"{0}\{1:yyyy}\{1:yyyy-MM-dd}.mtc", utils.dataDatDir, DateTime.Now.AddDays(-numDD)); - } - /// - /// File icona default - /// - public static string defIconFilePath - { - get - { - return string.Format(@"{0}\SteamWare.ico", utils.resxDir); - } - } - } -} diff --git a/IOB-WIN/README.md b/IOB-WIN/README.md deleted file mode 100644 index 1d3a143..0000000 --- a/IOB-WIN/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# MAPO-IOB-WIN - -Qui sono raccolte le informazioni relative al sw **MAPO-IOB-WIN**, progetto per IOB windows based -- funzionamento base come IOB-PI -- autoupdate -- nascosta nel tray - - - -- [MAPO-IOB-WIN](#mapo-iob-win) - - [Standard Tecnici](#standard-tecnici) - - [Setup](#setup) - - [Applicativo](#applicativo) - - - -## Standard Tecnici - -Il progetto impiega i seguenti standard tecnici: - -- asp.net / C# (W-IOB) - -## Setup - -Il computer deve avere - -- un account admin - - username: **steamware** - - pwd: musicale numerica complicata -- un account utente base - - username: **IOB** - - pwd: viadante16 -- interfaccia di rete configurata in base al cliente (rete dedicata? rete aiendale?) -- sul pc vanno installati preventivamente i files di test per il controller (es FANUC) x verificare corretta configurazione rete/porte/firewall del PC e del CN - - -## Applicativo - -L'applicativo si basa in parte sulle esperiente MTC per comunicazione con i controlli NC (Fanuc, ...) ma sopratutto si basa sull'architettura del sw python di IOB-PY per la lettura di informazioni (via rete e non leggendo via parallela degli input elettrici) dai CNC e l'invio dei segnali con il "Protocollo Mapo" al server centrale diff --git a/IOB-WIN/README.pdf b/IOB-WIN/README.pdf deleted file mode 100644 index 2eefc39af661a7f87aca1db3a57c42b62589ba84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17031 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 - - - - - \ No newline at end of file diff --git a/IOB-WIN/VersGen/Properties/AssemblyInfo.cs b/IOB-WIN/VersGen/Properties/AssemblyInfo.cs deleted file mode 100644 index 15292d5..0000000 --- a/IOB-WIN/VersGen/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("VersGen")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyProduct("VersGen")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("58e399f3-9d4e-49d3-ab35-9ed536543d50")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] diff --git a/IOB-WIN/VersGen/VersGen.cs b/IOB-WIN/VersGen/VersGen.cs deleted file mode 100644 index 35dbdd2..0000000 --- a/IOB-WIN/VersGen/VersGen.cs +++ /dev/null @@ -1,11 +0,0 @@ -// -// This code was generated by a tool. Any changes made manually will be lost -// the next time this code is regenerated. -// - -using System.Reflection; - -[assembly: AssemblyVersion("0.9.0.0")] -[assembly: AssemblyFileVersion("0.9.0.0")] -[assembly: AssemblyCopyright("Steamware © 2006-2017")] -[assembly: AssemblyCompany("Steamware")] \ No newline at end of file diff --git a/IOB-WIN/VersGen/VersGen.csproj b/IOB-WIN/VersGen/VersGen.csproj deleted file mode 100644 index 830d81f..0000000 --- a/IOB-WIN/VersGen/VersGen.csproj +++ /dev/null @@ -1,77 +0,0 @@ - - - - - Debug - AnyCPU - {58E399F3-9D4E-49D3-AB35-9ED536543D50} - Library - Properties - VersGen - VersGen - v4.5.2 - 512 - true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - true - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - True - True - VersGen.tt - - - - - - - - - TextTemplatingFileGenerator - VersGen.cs - - - - - - - - \ No newline at end of file diff --git a/IOB-WIN/VersGen/VersGen.tt b/IOB-WIN/VersGen/VersGen.tt deleted file mode 100644 index 7b6b652..0000000 --- a/IOB-WIN/VersGen/VersGen.tt +++ /dev/null @@ -1,12 +0,0 @@ -<#@ template language="C#" #> -// -// This code was generated by a tool. Any changes made manually will be lost -// the next time this code is regenerated. -// - -using System.Reflection; - -[assembly: AssemblyVersion("0.9.0.0")] -[assembly: AssemblyFileVersion("0.9.0.0")] -[assembly: AssemblyCopyright("Steamware © 2006-<#= DateTime.Now.Year #>")] -[assembly: AssemblyCompany("Steamware")] \ No newline at end of file