├── TestRemoteControl ├── ClassDiagram1.cd ├── ABB.Robotics.Controllers.PC.dll ├── RobotStudio.Services.RobApi.dll ├── Icons8-Ios7-Logos-Register-Editor.ico ├── RobotStudio.Services.RobApi.Desktop.dll ├── App.config ├── Properties │ ├── Settings.settings │ ├── AssemblyInfo.cs │ ├── Settings.Designer.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── UserControl1.cs ├── Program.cs ├── UserControl1.Designer.cs ├── TestRemoteControl.csproj ├── ABBController.cs ├── Form1.cs └── Form1.Designer.cs ├── README.md ├── TestRemoteControl.sln ├── .gitattributes └── .gitignore /TestRemoteControl/ClassDiagram1.cd: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /TestRemoteControl/ABB.Robotics.Controllers.PC.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoeFirmament/ABB_PC_SDK_controller/HEAD/TestRemoteControl/ABB.Robotics.Controllers.PC.dll -------------------------------------------------------------------------------- /TestRemoteControl/RobotStudio.Services.RobApi.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoeFirmament/ABB_PC_SDK_controller/HEAD/TestRemoteControl/RobotStudio.Services.RobApi.dll -------------------------------------------------------------------------------- /TestRemoteControl/Icons8-Ios7-Logos-Register-Editor.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoeFirmament/ABB_PC_SDK_controller/HEAD/TestRemoteControl/Icons8-Ios7-Logos-Register-Editor.ico -------------------------------------------------------------------------------- /TestRemoteControl/RobotStudio.Services.RobApi.Desktop.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JoeFirmament/ABB_PC_SDK_controller/HEAD/TestRemoteControl/RobotStudio.Services.RobApi.Desktop.dll -------------------------------------------------------------------------------- /TestRemoteControl/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /TestRemoteControl/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TestRemoteControl/UserControl1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Drawing; 5 | using System.Data; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace TestRemoteControl 12 | { 13 | public partial class UserControl1 : UserControl 14 | { 15 | public UserControl1() 16 | { 17 | InitializeComponent(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /TestRemoteControl/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace TestRemoteControl 8 | { 9 | static class Program 10 | { 11 | /// 12 | /// 应用程序的主入口点。 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new RobotArmController()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ABB_PC_SDK_controller 2 | ABB robotarm controller(simple demo) with C# pcsdk6.0 3 | #### work with VS2015 4 | 支持多台联机,log管理。 5 | 6 | --- 7 | 8 | [![](https://bb-embed.herokuapp.com/embed?v=BV1jK411D7r8)](https://www.bilibili.com/video/BV1jK411D7r8?share_source=copy_web&vd_source=dd62c2ec31e1627fa285052bae810556) 9 | 10 | --- 11 | [![](https://bb-embed.herokuapp.com/embed?v=BV1MW4y1E7Ma)](https://www.bilibili.com/video/BV1MW4y1E7Ma?share_source=copy_web&vd_source=dd62c2ec31e1627fa285052bae810556) 12 | 13 | --- 14 | 15 | [![](https://bb-embed.herokuapp.com/embed?v=BV1Kt4y1u7fz)](https://www.bilibili.com/video/BV1Kt4y1u7fz?share_source=copy_web&vd_source=dd62c2ec31e1627fa285052bae810556) 16 | 17 | -------------------------------------------------------------------------------- /TestRemoteControl.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Express 2013 for Windows Desktop 4 | VisualStudioVersion = 12.0.21005.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestRemoteControl", "TestRemoteControl\TestRemoteControl.csproj", "{57B4988B-AF45-44F9-AAFD-9A8A237B962A}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {57B4988B-AF45-44F9-AAFD-9A8A237B962A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {57B4988B-AF45-44F9-AAFD-9A8A237B962A}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {57B4988B-AF45-44F9-AAFD-9A8A237B962A}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {57B4988B-AF45-44F9-AAFD-9A8A237B962A}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /TestRemoteControl/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // 有关程序集的常规信息通过以下 6 | // 特性集控制。更改这些特性值可修改 7 | // 与程序集关联的信息。 8 | [assembly: AssemblyTitle("TestRemoteControl")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("TestRemoteControl")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // 将 ComVisible 设置为 false 使此程序集中的类型 18 | // 对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型, 19 | // 则将该类型上的 ComVisible 特性设置为 true。 20 | [assembly: ComVisible(false)] 21 | 22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 23 | [assembly: Guid("df22c91d-1c22-46c8-aa48-5b974c3c2b13")] 24 | 25 | // 程序集的版本信息由下面四个值组成: 26 | // 27 | // 主版本 28 | // 次版本 29 | // 生成号 30 | // 修订号 31 | // 32 | // 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, 33 | // 方法是按如下所示使用“*”: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /TestRemoteControl/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace TestRemoteControl.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /TestRemoteControl/UserControl1.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TestRemoteControl 2 | { 3 | partial class UserControl1 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Component Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | components = new System.ComponentModel.Container(); 32 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 33 | } 34 | 35 | #endregion 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /TestRemoteControl/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace TestRemoteControl.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestRemoteControl.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | build/ 21 | bld/ 22 | [Bb]in/ 23 | [Oo]bj/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | 28 | # MSTest test Results 29 | [Tt]est[Rr]esult*/ 30 | [Bb]uild[Ll]og.* 31 | 32 | # NUNIT 33 | *.VisualState.xml 34 | TestResult.xml 35 | 36 | # Build Results of an ATL Project 37 | [Dd]ebugPS/ 38 | [Rr]eleasePS/ 39 | dlldata.c 40 | 41 | # DNX 42 | project.lock.json 43 | artifacts/ 44 | 45 | *_i.c 46 | *_p.c 47 | *_i.h 48 | *.ilk 49 | *.meta 50 | *.obj 51 | *.pch 52 | *.pdb 53 | *.pgc 54 | *.pgd 55 | *.rsp 56 | *.sbr 57 | *.tlb 58 | *.tli 59 | *.tlh 60 | *.tmp 61 | *.tmp_proj 62 | *.log 63 | *.vspscc 64 | *.vssscc 65 | .builds 66 | *.pidb 67 | *.svclog 68 | *.scc 69 | 70 | # Chutzpah Test files 71 | _Chutzpah* 72 | 73 | # Visual C++ cache files 74 | ipch/ 75 | *.aps 76 | *.ncb 77 | *.opensdf 78 | *.sdf 79 | *.cachefile 80 | 81 | # Visual Studio profiler 82 | *.psess 83 | *.vsp 84 | *.vspx 85 | 86 | # TFS 2012 Local Workspace 87 | $tf/ 88 | 89 | # Guidance Automation Toolkit 90 | *.gpState 91 | 92 | # ReSharper is a .NET coding add-in 93 | _ReSharper*/ 94 | *.[Rr]e[Ss]harper 95 | *.DotSettings.user 96 | 97 | # JustCode is a .NET coding add-in 98 | .JustCode 99 | 100 | # TeamCity is a build add-in 101 | _TeamCity* 102 | 103 | # DotCover is a Code Coverage Tool 104 | *.dotCover 105 | 106 | # NCrunch 107 | _NCrunch_* 108 | .*crunch*.local.xml 109 | 110 | # MightyMoose 111 | *.mm.* 112 | AutoTest.Net/ 113 | 114 | # Web workbench (sass) 115 | .sass-cache/ 116 | 117 | # Installshield output folder 118 | [Ee]xpress/ 119 | 120 | # DocProject is a documentation generator add-in 121 | DocProject/buildhelp/ 122 | DocProject/Help/*.HxT 123 | DocProject/Help/*.HxC 124 | DocProject/Help/*.hhc 125 | DocProject/Help/*.hhk 126 | DocProject/Help/*.hhp 127 | DocProject/Help/Html2 128 | DocProject/Help/html 129 | 130 | # Click-Once directory 131 | publish/ 132 | 133 | # Publish Web Output 134 | *.[Pp]ublish.xml 135 | *.azurePubxml 136 | ## TODO: Comment the next line if you want to checkin your 137 | ## web deploy settings but do note that will include unencrypted 138 | ## passwords 139 | #*.pubxml 140 | 141 | *.publishproj 142 | 143 | # NuGet Packages 144 | *.nupkg 145 | # The packages folder can be ignored because of Package Restore 146 | **/packages/* 147 | # except build/, which is used as an MSBuild target. 148 | !**/packages/build/ 149 | # Uncomment if necessary however generally it will be regenerated when needed 150 | #!**/packages/repositories.config 151 | 152 | # Windows Azure Build Output 153 | csx/ 154 | *.build.csdef 155 | 156 | # Windows Store app package directory 157 | AppPackages/ 158 | 159 | # Visual Studio cache files 160 | # files ending in .cache can be ignored 161 | *.[Cc]ache 162 | # but keep track of directories ending in .cache 163 | !*.[Cc]ache/ 164 | 165 | # Others 166 | ClientBin/ 167 | [Ss]tyle[Cc]op.* 168 | ~$* 169 | *~ 170 | *.dbmdl 171 | *.dbproj.schemaview 172 | *.pfx 173 | *.publishsettings 174 | node_modules/ 175 | orleans.codegen.cs 176 | 177 | # RIA/Silverlight projects 178 | Generated_Code/ 179 | 180 | # Backup & report files from converting an old project file 181 | # to a newer Visual Studio version. Backup files are not needed, 182 | # because we have git ;-) 183 | _UpgradeReport_Files/ 184 | Backup*/ 185 | UpgradeLog*.XML 186 | UpgradeLog*.htm 187 | 188 | # SQL Server files 189 | *.mdf 190 | *.ldf 191 | 192 | # Business Intelligence projects 193 | *.rdl.data 194 | *.bim.layout 195 | *.bim_*.settings 196 | 197 | # Microsoft Fakes 198 | FakesAssemblies/ 199 | 200 | # Node.js Tools for Visual Studio 201 | .ntvs_analysis.dat 202 | 203 | # Visual Studio 6 build log 204 | *.plg 205 | 206 | # Visual Studio 6 workspace options file 207 | *.opt 208 | 209 | # LightSwitch generated files 210 | GeneratedArtifacts/ 211 | _Pvt_Extensions/ 212 | ModelManifest.xml 213 | -------------------------------------------------------------------------------- /TestRemoteControl/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /TestRemoteControl/TestRemoteControl.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {57B4988B-AF45-44F9-AAFD-9A8A237B962A} 8 | WinExe 9 | Properties 10 | TestRemoteControl 11 | TestRemoteControl 12 | v4.6.1 13 | 512 14 | publish\ 15 | true 16 | Disk 17 | false 18 | Foreground 19 | 7 20 | Days 21 | false 22 | false 23 | true 24 | 0 25 | 1.0.0.%2a 26 | false 27 | false 28 | true 29 | 30 | 31 | 32 | x86 33 | true 34 | full 35 | false 36 | bin\Debug\ 37 | DEBUG;TRACE 38 | prompt 39 | 4 40 | 41 | 42 | AnyCPU 43 | pdbonly 44 | true 45 | bin\Release\ 46 | TRACE 47 | prompt 48 | 4 49 | 50 | 51 | Icons8-Ios7-Logos-Register-Editor.ico 52 | 53 | 54 | 55 | .\ABB.Robotics.Controllers.PC.dll 56 | 57 | 58 | .\RobotStudio.Services.RobApi.dll 59 | 60 | 61 | .\RobotStudio.Services.RobApi.Desktop.dll 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | Form 78 | 79 | 80 | Form1.cs 81 | 82 | 83 | 84 | 85 | UserControl 86 | 87 | 88 | UserControl1.cs 89 | 90 | 91 | Form1.cs 92 | 93 | 94 | ResXFileCodeGenerator 95 | Resources.Designer.cs 96 | Designer 97 | 98 | 99 | True 100 | Resources.resx 101 | True 102 | 103 | 104 | 105 | SettingsSingleFileGenerator 106 | Settings.Designer.cs 107 | 108 | 109 | True 110 | Settings.settings 111 | True 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | False 123 | Microsoft .NET Framework 4.5 %28x86 and x64%29 124 | true 125 | 126 | 127 | False 128 | .NET Framework 3.5 SP1 129 | false 130 | 131 | 132 | 133 | 140 | -------------------------------------------------------------------------------- /TestRemoteControl/ABBController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using ABB.Robotics.Controllers; 7 | using ABB.Robotics.Controllers.Discovery; 8 | using ABB.Robotics.Controllers.RapidDomain; 9 | using RobotStudio.Services.RobApi; 10 | using RobotStudio.Services.RobApi.Desktop; 11 | using System.Collections; 12 | 13 | namespace TestRemoteControl 14 | { 15 | class ABBController 16 | { 17 | public ControllerInfoCollection controllers = null; 18 | 19 | public List errLogger(List err,string str) 20 | { 21 | err.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + str); 22 | Console.Write(err.ToArray()); 23 | return err; 24 | } 25 | 26 | public void Scan() 27 | { 28 | NetworkScanner netscan = new NetworkScanner(); 29 | netscan.Scan(); 30 | controllers = netscan.Controllers; 31 | } 32 | 33 | public Controller GetController(int Select) 34 | { 35 | return new Controller(controllers[Select]); 36 | } 37 | 38 | 39 | public int PPtoMain(Controller c, out List result) 40 | { 41 | result = new List(); 42 | //Controller c = Connect(); 43 | c.Logon(ABB.Robotics.Controllers.UserInfo.DefaultUser); 44 | if (c == null) 45 | { 46 | result.Add("[error] No controller connect"); 47 | return -1; 48 | } 49 | else 50 | { 51 | foreach (ABB.Robotics.Controllers.RapidDomain.Task t in c.Rapid.GetTasks()) 52 | { 53 | int re = RAPID_ProgramReset(c, out result, t.Name); 54 | //int re = 0; 55 | Console.WriteLine(t.Name); 56 | 57 | //int re = RAPID_ProgramReset(c, out result, "T_ROB1"); 58 | //re = RAPID_ProgramReset(c, out result, "T_ROB2"); 59 | //re = RAPID_ProgramReset(c, out result, "T_ROB3"); 60 | //re = RAPID_ProgramReset(c, out result, "T_ROB4"); 61 | 62 | if (re == -1) 63 | { 64 | return -1; 65 | } 66 | } 67 | return 0; 68 | } 69 | } 70 | 71 | public int Start(Controller c, out List result) 72 | { 73 | result = new List(); 74 | c.Logon(ABB.Robotics.Controllers.UserInfo.DefaultUser); 75 | //Controller c = Connect(); 76 | if (c == null) 77 | { 78 | result.Add("[error] No controller connect"); 79 | return -1; 80 | } 81 | else 82 | { 83 | return RAPID_ProgramStart(c, out result); 84 | 85 | } 86 | } 87 | 88 | public int Stop(Controller c, out List result) 89 | { 90 | result = new List(); 91 | c.Logon(ABB.Robotics.Controllers.UserInfo.DefaultUser); 92 | //Controller c = Connect(); 93 | if (c == null) 94 | { 95 | result.Add("[error] No controller connect"); 96 | return -1; 97 | } 98 | else 99 | { 100 | return RAPID_ProgramStop(c, out result); 101 | 102 | } 103 | } 104 | 105 | 106 | private int RAPID_ProgramReset(Controller c, out List result, string taskname) 107 | //private int RAPID_ProgramReset(Controller c, out List result, string taskname = "T_ROB1") 108 | { 109 | result = new List(); 110 | c.Logon(ABB.Robotics.Controllers.UserInfo.DefaultUser); 111 | try 112 | { 113 | if (c.OperatingMode != ControllerOperatingMode.Auto) 114 | { 115 | result.Add("[error] Need Auto Mode"); 116 | return -1; 117 | } 118 | 119 | if (!c.AuthenticationSystem.CheckDemandGrant(Grant.ExecuteRapid)) 120 | c.AuthenticationSystem.DemandGrant(Grant.ExecuteRapid); 121 | using (Mastership m = Mastership.Request(c.Rapid)) 122 | { 123 | try 124 | { 125 | 126 | c.Rapid.GetTask(taskname).ResetProgramPointer(); 127 | result.Add("[msg] Program Reset"); 128 | 129 | m.Release(); 130 | } 131 | catch (Exception ex) 132 | { 133 | result.Add("[error]"+ex.ToString()); 134 | m.Release(); 135 | return -1; 136 | } 137 | } 138 | return 0; 139 | } 140 | catch (Exception ex) 141 | { 142 | result.Add("[error]"+ex.ToString()); 143 | return -1; 144 | } 145 | } 146 | 147 | private int RAPID_ProgramStart(Controller c, out List result) 148 | { 149 | result = new List(); 150 | c.Logon(ABB.Robotics.Controllers.UserInfo.DefaultUser); 151 | try 152 | { 153 | if (c.OperatingMode != ControllerOperatingMode.Auto) 154 | { 155 | result.Add("[error] Need Auto Mode"); 156 | return -1; 157 | } 158 | if (c.State != ControllerState.MotorsOn) 159 | { 160 | result.Add("[error] Motor need ON"); 161 | return -1; 162 | } 163 | if (!c.AuthenticationSystem.CheckDemandGrant(Grant.ExecuteRapid)) 164 | c.AuthenticationSystem.DemandGrant(Grant.ExecuteRapid); 165 | using (Mastership m = Mastership.Request(c.Rapid)) 166 | { 167 | try 168 | { 169 | c.Rapid.Start(); 170 | m.Release(); 171 | result.Add("[msg] Program Start"); 172 | 173 | } 174 | catch (Exception ex) 175 | { 176 | result.Add("[error]" + ex.ToString()); 177 | m.Release(); 178 | return -1; 179 | } 180 | } 181 | return 0; 182 | } 183 | catch (Exception ex) 184 | { 185 | result.Add("[error]" + ex.ToString()); 186 | return -1; 187 | } 188 | } 189 | 190 | private int RAPID_ProgramStop(Controller c, out List result) 191 | { 192 | result = new List(); 193 | c.Logon(ABB.Robotics.Controllers.UserInfo.DefaultUser); 194 | try 195 | { 196 | if (c.OperatingMode != ControllerOperatingMode.Auto) 197 | { 198 | result.Add("[error] Need Auto Mode"); 199 | return -1; 200 | } 201 | if (!c.AuthenticationSystem.CheckDemandGrant(Grant.ExecuteRapid)) 202 | c.AuthenticationSystem.DemandGrant(Grant.ExecuteRapid); 203 | using (Mastership m = Mastership.Request(c.Rapid)) 204 | { 205 | try 206 | { 207 | c.Rapid.Stop(StopMode.Immediate); 208 | m.Release(); 209 | result.Add("[msg] Program Stop"); 210 | } 211 | catch (Exception ex) 212 | { 213 | result.Add("[error]" + ex.ToString()); 214 | m.Release(); 215 | return -1; 216 | } 217 | } 218 | return 0; 219 | } 220 | catch (Exception ex) 221 | { 222 | result.Add("[error]" + ex.ToString()); 223 | return -1; 224 | } 225 | } 226 | public int SetMotorsOn(Controller c, out List result) 227 | { 228 | result = new List(); 229 | c.Logon(ABB.Robotics.Controllers.UserInfo.DefaultUser); 230 | if (c.State != ControllerState.MotorsOff) 231 | { 232 | result.Add("[warning] Current state is not MotorsOff.Now is " + c.State.ToString()); 233 | return -1; 234 | } 235 | else 236 | { 237 | try 238 | { 239 | c.State = ControllerState.MotorsOn; 240 | result.Add("[msg] SetMotorsON"); 241 | return 0; 242 | } 243 | catch (Exception ex) 244 | { 245 | result.Add("[error]" + ex.ToString()); 246 | return -1; 247 | } 248 | } 249 | } 250 | 251 | public int SetMotorsOff(Controller c, out List result) 252 | { 253 | result = new List(); 254 | c.Logon(ABB.Robotics.Controllers.UserInfo.DefaultUser); 255 | if (c.State != ControllerState.MotorsOn) 256 | { 257 | result.Add("[warning] Current controller state is not MotorsOn.Now is " + c.State.ToString()); 258 | return -1; 259 | } 260 | else 261 | { 262 | if (c.Rapid.ExecutionStatus != ExecutionStatus.Stopped) 263 | { 264 | result.Add("[error] Rapid is executing or is in unknow state"); 265 | return -1; 266 | } 267 | try 268 | { 269 | c.State = ControllerState.MotorsOff; 270 | result.Add("[msg] SetMotorsOFF"); 271 | return 0; 272 | } 273 | catch (Exception ex) 274 | { 275 | result.Add("[error]" + ex.ToString()); 276 | return -1; 277 | } 278 | } 279 | } 280 | } 281 | } 282 | -------------------------------------------------------------------------------- /TestRemoteControl/Form1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.IO; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | using System.Windows.Forms; 11 | using System.Windows; 12 | using System.Collections; 13 | using ABB.Robotics.Controllers; 14 | using ABB.Robotics.Controllers.Discovery; 15 | using ABB.Robotics.Controllers.RapidDomain; 16 | 17 | namespace TestRemoteControl 18 | { 19 | public partial class RobotArmController : Form 20 | { 21 | ABBController robot; 22 | List errLog = new List(); 23 | 24 | public RobotArmController() 25 | { 26 | InitializeComponent();//InitUserFace 27 | robot = new ABBController(); 28 | //robot.Scan(); 29 | this.listView1.Items.Clear(); 30 | robot.Scan(); 31 | ListViewItem item = null; 32 | if (robot.controllers == null) return; 33 | for (int i = 0; i < robot.controllers.Count(); i++) 34 | 35 | { 36 | item = new ListViewItem(robot.controllers[i].IPAddress.ToString()); 37 | item.SubItems.Add(robot.controllers[i].Id); 38 | item.SubItems.Add(robot.controllers[i].Availability.ToString()); 39 | item.SubItems.Add(robot.controllers[i].IsVirtual.ToString()); 40 | item.SubItems.Add(robot.controllers[i].SystemName); 41 | item.SubItems.Add(robot.controllers[i].Version.ToString()); 42 | item.SubItems.Add(robot.controllers[i].ControllerName); 43 | item.SubItems.Add(robot.GetController(i).OperatingMode.ToString()); 44 | item.SubItems.Add(robot.controllers[i].SystemId.ToString()); 45 | this.listView1.Items.Add(item); 46 | item.Tag = robot.controllers[i]; 47 | } 48 | errLog = robot.errLogger(errLog, "[Scan] " + robot.controllers.Count().ToString() + " controllers"); 49 | richTextBox1.Lines=errLog.ToArray(); 50 | 51 | 52 | 53 | } 54 | 55 | protected override void OnShown(EventArgs e) 56 | { 57 | base.OnShown(e); 58 | for (int i = 0; i < 10; i++) 59 | { 60 | if (robot.controllers.Count() == 4) 61 | { 62 | 63 | button7_Click_1(null, null); 64 | button4_Click(null, null); 65 | button7_Click_1(null, null); 66 | button6_Click(null, null); 67 | button7_Click_1(null, null); 68 | button5_Click(null, null); 69 | button7_Click_1(null, null); 70 | button2_Click(null, null); 71 | button7_Click_1(null, null); 72 | button3_Click(null, null); 73 | errLog = robot.errLogger(errLog, "[Start] " + robot.controllers.Count().ToString() + " controllers"); 74 | richTextBox1.Lines = errLog.ToArray(); 75 | return; 76 | } 77 | } 78 | errLog = robot.errLogger(errLog, "[start][error] can't find 4 controllers"); 79 | richTextBox1.Lines = errLog.ToArray(); 80 | 81 | } 82 | private void button1_Click(object sender, EventArgs e) 83 | //scan button 84 | { 85 | //NetworkScanner netscan = new NetworkScanner(); 86 | //netscan.Scan(); 87 | //controllers = netscan.Controllers; 88 | this.listView1.Items.Clear(); 89 | robot.Scan(); 90 | ListViewItem item = null; 91 | if (robot.controllers == null) return; 92 | for (int i = 0; i < robot.controllers.Count(); i++) 93 | { 94 | item = new ListViewItem(robot.controllers[i].IPAddress.ToString()); 95 | 96 | item.SubItems.Add(robot.controllers[i].Id); 97 | item.SubItems.Add(robot.controllers[i].Availability.ToString()); 98 | item.SubItems.Add(robot.controllers[i].IsVirtual.ToString()); 99 | item.SubItems.Add(robot.controllers[i].SystemName); 100 | item.SubItems.Add(robot.controllers[i].Version.ToString()); 101 | item.SubItems.Add(robot.controllers[i].ControllerName); 102 | //item = new ListViewItem(robot.controllers[i].SystemId.ToString());//Guid SystemId 103 | item.SubItems.Add(robot.GetController(i).OperatingMode.ToString()); 104 | item.SubItems.Add(robot.controllers[i].SystemId.ToString()); 105 | //item.SubItems.Add(robot.controllers[i].ControllerName);//PP to Main 106 | this.listView1.Items.Add(item); 107 | item.Tag = robot.controllers[i]; 108 | } 109 | errLog = robot.errLogger(errLog, "[Scan] " + robot.controllers.Count().ToString() + " controllers"); 110 | richTextBox1.Lines = errLog.ToArray(); 111 | } 112 | 113 | private void button2_Click(object sender, EventArgs e) //motorON 114 | { 115 | try 116 | { 117 | List result = new List(); 118 | if (this.listView1.SelectedIndices.Count < 1) 119 | { 120 | MessageBox.Show("Please select at least 1 controller to send command."); 121 | return; 122 | } 123 | for (int i = 0; i < this.listView1.SelectedIndices.Count; i++) 124 | { 125 | robot.PPtoMain(robot.GetController(i), out result); 126 | errLog = robot.errLogger(errLog, "[PP_To_Main]" + result[0]); 127 | errLog = robot.errLogger(errLog, "[PP_To_Main]: "+robot.controllers[i].ControllerName+" Done."); 128 | richTextBox1.Lines = errLog.ToArray(); 129 | 130 | } 131 | } 132 | catch (Exception err) 133 | { 134 | MessageBox.Show(err.ToString()); 135 | } 136 | 137 | errLog = robot.errLogger(errLog, "[PP_To_Main] all set done."); 138 | richTextBox1.Lines = errLog.ToArray(); 139 | } 140 | 141 | private void button5_Click(object sender, EventArgs e) 142 | //motors on 143 | { 144 | try 145 | { 146 | List result = new List(); 147 | if (this.listView1.SelectedIndices.Count < 1) 148 | { 149 | MessageBox.Show("Please select at least 1 controller to send command."); 150 | return; 151 | } 152 | for (int i = 0; i < this.listView1.SelectedIndices.Count; i++) 153 | { 154 | robot.SetMotorsOn(robot.GetController(i), out result); 155 | errLog = robot.errLogger(errLog, "[Motors_ON]" + result[0]); 156 | 157 | errLog = robot.errLogger(errLog, "[Motors_ON] : " + robot.controllers[i].ControllerName+ " Done."); 158 | richTextBox1.Lines = errLog.ToArray(); 159 | } 160 | } 161 | catch (Exception err) 162 | { 163 | MessageBox.Show(err.ToString()); 164 | } 165 | errLog = robot.errLogger(errLog, "[Motors_ON] all set done."); 166 | richTextBox1.Lines = errLog.ToArray(); 167 | } 168 | 169 | private void button6_Click(object sender, EventArgs e) 170 | { 171 | 172 | try 173 | { 174 | List result = new List(); 175 | if (this.listView1.SelectedIndices.Count < 1) 176 | { 177 | MessageBox.Show("Please select at least 1 controller to send command."); 178 | return; 179 | } 180 | for (int i = 0; i < this.listView1.SelectedIndices.Count; i++) 181 | { 182 | robot.SetMotorsOff(robot.GetController(i), out result); 183 | errLog = robot.errLogger(errLog, "[Motors_OFF]" + result[0]); 184 | 185 | errLog = robot.errLogger(errLog, "[Motors_OFF]: " + robot.controllers[i].ControllerName+ " Done."); 186 | richTextBox1.Lines = errLog.ToArray(); 187 | } 188 | } 189 | catch (Exception err) 190 | { 191 | MessageBox.Show(err.ToString()); 192 | } 193 | errLog = robot.errLogger(errLog, "[Motors_OFF] all set done."); 194 | richTextBox1.Lines = errLog.ToArray(); 195 | } 196 | 197 | private void button3_Click(object sender, EventArgs e) 198 | { 199 | try 200 | { 201 | List result = new List(); 202 | if (this.listView1.SelectedIndices.Count < 1) 203 | { 204 | MessageBox.Show("Please select at least 1 controller to send command."); 205 | return; 206 | } 207 | for (int i = 0; i < this.listView1.SelectedIndices.Count; i++) 208 | { 209 | robot.Start(robot.GetController(i), out result); 210 | errLog = robot.errLogger(errLog, "[Program_Start]" + result[0]); 211 | 212 | errLog = robot.errLogger(errLog, "[Program_Start]: " + robot.controllers[i].ControllerName+ " Done."); 213 | richTextBox1.Lines = errLog.ToArray(); 214 | } 215 | } 216 | catch (Exception err) 217 | { 218 | MessageBox.Show(err.ToString()); 219 | } 220 | errLog = robot.errLogger(errLog, "[Program_Start] all set done."); 221 | richTextBox1.Lines = errLog.ToArray(); 222 | } 223 | 224 | private void button4_Click(object sender, EventArgs e) 225 | { 226 | try 227 | { 228 | List result = new List(); 229 | if (this.listView1.SelectedIndices.Count < 1) 230 | { 231 | MessageBox.Show("Please select at least 1 controller to send command."); 232 | return; 233 | } 234 | for (int i = 0; i < this.listView1.SelectedIndices.Count; i++) 235 | { 236 | robot.Stop(robot.GetController(i), out result); 237 | errLog = robot.errLogger(errLog, "[Program_Stop]" + result[0]); 238 | 239 | errLog = robot.errLogger(errLog, "[Program_Stop]: " + robot.controllers[i].ControllerName+ " Done."); 240 | richTextBox1.Lines = errLog.ToArray(); 241 | } 242 | } 243 | catch (Exception err) 244 | { 245 | MessageBox.Show(err.ToString()); 246 | } 247 | errLog = robot.errLogger(errLog, "[Program_Stop] all set done."); 248 | richTextBox1.Lines = errLog.ToArray(); 249 | } 250 | 251 | 252 | 253 | private void button7_Click_1(object sender, EventArgs e) 254 | // Select all items 255 | { 256 | 257 | listView1.MultiSelect = true; 258 | foreach (ListViewItem item in listView1.Items) 259 | { 260 | item.Selected = true; 261 | item.BackColor = SystemColors.Highlight; 262 | } 263 | } 264 | 265 | private void button7_Click_2(object sender, EventArgs e) 266 | { 267 | 268 | } 269 | 270 | private void richTextBox1_TextChanged(object sender, EventArgs e) 271 | { 272 | richTextBox1.SelectionStart = richTextBox1.Text.Length; 273 | //move to cursor position 274 | richTextBox1.ScrollToCaret(); 275 | 276 | this.CheckKeyword("[Scan]", Color.Purple, 0); 277 | this.CheckKeyword("[Motors_ON]", Color.Green, 0); 278 | this.CheckKeyword("Motors_OFF", Color.Green, 0); 279 | this.CheckKeyword("[PP_To_Main]", Color.Green, 0); 280 | this.CheckKeyword("[Program_Start]", Color.Green, 0); 281 | this.CheckKeyword("[Program_Stop]", Color.Green, 0); 282 | this.CheckKeyword("[error", Color.DarkRed, 0); 283 | this.CheckKeyword("[msg]", Color.Green, 0); 284 | this.CheckKeyword("[warning]", Color.Tomato, 0); 285 | 286 | 287 | 288 | 289 | } 290 | 291 | private void button8_Click(object sender, EventArgs e) 292 | { 293 | System.String logPath = "./"+ DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss").ToString()+"_log.txt"; 294 | //System.String logPath = "./log.txt"; 295 | File.WriteAllLines(logPath, this.errLog); 296 | errLog = robot.errLogger(errLog, "Log Save done."); 297 | richTextBox1.Lines = errLog.ToArray(); 298 | 299 | } 300 | 301 | private void CheckKeyword(string word, Color color, int startIndex) 302 | { 303 | if (this.richTextBox1.Text.Contains(word)) 304 | { 305 | int index = -1; 306 | int selectStart = this.richTextBox1.SelectionStart; 307 | 308 | while ((index = this.richTextBox1.Text.IndexOf(word, (index + 1))) != -1) 309 | { 310 | this.richTextBox1.Select((index + startIndex), word.Length); 311 | this.richTextBox1.SelectionColor = color; 312 | this.richTextBox1.Select(selectStart, 0); 313 | this.richTextBox1.SelectionColor = Color.Black; 314 | } 315 | } 316 | } 317 | 318 | private void button9_Click(object sender, EventArgs e) 319 | { 320 | errLog = robot.errLogger(errLog, "[e-mail] send 2018_xx_xx_xx_log.txt to bquill.com."); 321 | richTextBox1.Lines = errLog.ToArray(); 322 | } 323 | 324 | private void label1_Click(object sender, EventArgs e) 325 | { 326 | 327 | } 328 | } 329 | } 330 | -------------------------------------------------------------------------------- /TestRemoteControl/Form1.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TestRemoteControl 2 | { 3 | partial class RobotArmController 4 | { 5 | /// 6 | /// 必需的设计器变量。 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// 清理所有正在使用的资源。 12 | /// 13 | /// 如果应释放托管资源,为 true;否则为 false。 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows 窗体设计器生成的代码 24 | 25 | /// 26 | /// 设计器支持所需的方法 - 不要 27 | /// 使用代码编辑器修改此方法的内容。 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem(""); 32 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RobotArmController)); 33 | this.listView1 = new System.Windows.Forms.ListView(); 34 | this.columnHeader25 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 35 | this.columnHeader26 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 36 | this.columnHeader27 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 37 | this.columnHeader28 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 38 | this.columnHeader29 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 39 | this.columnHeader30 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 40 | this.columnHeader31 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 41 | this.columnHeader32 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 42 | this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 43 | this.button1 = new System.Windows.Forms.Button(); 44 | this.button2 = new System.Windows.Forms.Button(); 45 | this.button3 = new System.Windows.Forms.Button(); 46 | this.button4 = new System.Windows.Forms.Button(); 47 | this.button5 = new System.Windows.Forms.Button(); 48 | this.button6 = new System.Windows.Forms.Button(); 49 | this.button7 = new System.Windows.Forms.Button(); 50 | this.richTextBox1 = new System.Windows.Forms.RichTextBox(); 51 | this.button8 = new System.Windows.Forms.Button(); 52 | this.button9 = new System.Windows.Forms.Button(); 53 | this.SuspendLayout(); 54 | // 55 | // listView1 56 | // 57 | this.listView1.AutoArrange = false; 58 | this.listView1.BackColor = System.Drawing.SystemColors.Window; 59 | this.listView1.CheckBoxes = true; 60 | this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 61 | this.columnHeader25, 62 | this.columnHeader26, 63 | this.columnHeader27, 64 | this.columnHeader28, 65 | this.columnHeader29, 66 | this.columnHeader30, 67 | this.columnHeader31, 68 | this.columnHeader32, 69 | this.columnHeader1}); 70 | this.listView1.ForeColor = System.Drawing.SystemColors.InfoText; 71 | this.listView1.FullRowSelect = true; 72 | this.listView1.GridLines = true; 73 | listViewItem1.StateImageIndex = 0; 74 | this.listView1.Items.AddRange(new System.Windows.Forms.ListViewItem[] { 75 | listViewItem1}); 76 | this.listView1.Location = new System.Drawing.Point(16, 23); 77 | this.listView1.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); 78 | this.listView1.Name = "listView1"; 79 | this.listView1.Size = new System.Drawing.Size(1563, 645); 80 | this.listView1.TabIndex = 0; 81 | this.listView1.UseCompatibleStateImageBehavior = false; 82 | this.listView1.View = System.Windows.Forms.View.Details; 83 | // 84 | // columnHeader25 85 | // 86 | this.columnHeader25.Text = "IP Address"; 87 | this.columnHeader25.Width = 150; 88 | // 89 | // columnHeader26 90 | // 91 | this.columnHeader26.Text = "ID"; 92 | this.columnHeader26.Width = 80; 93 | // 94 | // columnHeader27 95 | // 96 | this.columnHeader27.Text = "Availability"; 97 | this.columnHeader27.Width = 100; 98 | // 99 | // columnHeader28 100 | // 101 | this.columnHeader28.Text = "Virtual"; 102 | this.columnHeader28.Width = 70; 103 | // 104 | // columnHeader29 105 | // 106 | this.columnHeader29.Text = "System name"; 107 | this.columnHeader29.Width = 120; 108 | // 109 | // columnHeader30 110 | // 111 | this.columnHeader30.Text = "Version"; 112 | this.columnHeader30.Width = 80; 113 | // 114 | // columnHeader31 115 | // 116 | this.columnHeader31.Text = "Name"; 117 | this.columnHeader31.Width = 110; 118 | // 119 | // columnHeader32 120 | // 121 | this.columnHeader32.Text = "Mode"; 122 | this.columnHeader32.Width = 80; 123 | // 124 | // columnHeader1 125 | // 126 | this.columnHeader1.Text = "Guid SystemId"; 127 | this.columnHeader1.Width = 150; 128 | // 129 | // button1 130 | // 131 | this.button1.BackColor = System.Drawing.SystemColors.ActiveCaption; 132 | this.button1.Font = new System.Drawing.Font("Microsoft YaHei UI", 16.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 133 | this.button1.Location = new System.Drawing.Point(1601, 23); 134 | this.button1.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); 135 | this.button1.Name = "button1"; 136 | this.button1.Size = new System.Drawing.Size(250, 60); 137 | this.button1.TabIndex = 1; 138 | this.button1.Text = "Scan"; 139 | this.button1.UseVisualStyleBackColor = false; 140 | this.button1.Click += new System.EventHandler(this.button1_Click); 141 | // 142 | // button2 143 | // 144 | this.button2.BackColor = System.Drawing.SystemColors.Highlight; 145 | this.button2.Font = new System.Drawing.Font("Microsoft YaHei UI", 16.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 146 | this.button2.Location = new System.Drawing.Point(1601, 199); 147 | this.button2.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); 148 | this.button2.Name = "button2"; 149 | this.button2.Size = new System.Drawing.Size(250, 60); 150 | this.button2.TabIndex = 2; 151 | this.button2.Text = "PP to Main"; 152 | this.button2.UseVisualStyleBackColor = false; 153 | this.button2.Click += new System.EventHandler(this.button2_Click); 154 | // 155 | // button3 156 | // 157 | this.button3.BackColor = System.Drawing.SystemColors.Highlight; 158 | this.button3.Font = new System.Drawing.Font("Microsoft YaHei UI", 16.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 159 | this.button3.Location = new System.Drawing.Point(1601, 280); 160 | this.button3.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); 161 | this.button3.Name = "button3"; 162 | this.button3.Size = new System.Drawing.Size(250, 60); 163 | this.button3.TabIndex = 3; 164 | this.button3.Text = "Start"; 165 | this.button3.UseVisualStyleBackColor = false; 166 | this.button3.Click += new System.EventHandler(this.button3_Click); 167 | // 168 | // button4 169 | // 170 | this.button4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); 171 | this.button4.Font = new System.Drawing.Font("Microsoft YaHei UI", 16.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 172 | this.button4.Location = new System.Drawing.Point(1601, 406); 173 | this.button4.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); 174 | this.button4.Name = "button4"; 175 | this.button4.Size = new System.Drawing.Size(250, 200); 176 | this.button4.TabIndex = 4; 177 | this.button4.Text = "Stop"; 178 | this.button4.UseVisualStyleBackColor = false; 179 | this.button4.Click += new System.EventHandler(this.button4_Click); 180 | // 181 | // button5 182 | // 183 | this.button5.BackColor = System.Drawing.SystemColors.Highlight; 184 | this.button5.Font = new System.Drawing.Font("Microsoft YaHei UI", 16.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); 185 | this.button5.Location = new System.Drawing.Point(1601, 113); 186 | this.button5.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); 187 | this.button5.Name = "button5"; 188 | this.button5.Size = new System.Drawing.Size(250, 60); 189 | this.button5.TabIndex = 5; 190 | this.button5.Text = "MotorsON"; 191 | this.button5.UseVisualStyleBackColor = false; 192 | this.button5.Click += new System.EventHandler(this.button5_Click); 193 | // 194 | // button6 195 | // 196 | this.button6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); 197 | this.button6.Font = new System.Drawing.Font("Microsoft YaHei UI", 16.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 198 | this.button6.Location = new System.Drawing.Point(1601, 618); 199 | this.button6.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); 200 | this.button6.Name = "button6"; 201 | this.button6.Size = new System.Drawing.Size(250, 93); 202 | this.button6.TabIndex = 6; 203 | this.button6.Text = "MotorsOFF"; 204 | this.button6.UseVisualStyleBackColor = false; 205 | this.button6.Click += new System.EventHandler(this.button6_Click); 206 | // 207 | // button7 208 | // 209 | this.button7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255))))); 210 | this.button7.Font = new System.Drawing.Font("Microsoft YaHei UI", 16.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 211 | this.button7.Location = new System.Drawing.Point(1601, 757); 212 | this.button7.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); 213 | this.button7.Name = "button7"; 214 | this.button7.Size = new System.Drawing.Size(250, 137); 215 | this.button7.TabIndex = 15; 216 | this.button7.Text = "All Select"; 217 | this.button7.UseVisualStyleBackColor = false; 218 | this.button7.Click += new System.EventHandler(this.button7_Click_1); 219 | // 220 | // richTextBox1 221 | // 222 | this.richTextBox1.EnableAutoDragDrop = true; 223 | this.richTextBox1.Font = new System.Drawing.Font("Courier New", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 224 | this.richTextBox1.Location = new System.Drawing.Point(16, 680); 225 | this.richTextBox1.Name = "richTextBox1"; 226 | this.richTextBox1.ReadOnly = true; 227 | this.richTextBox1.Size = new System.Drawing.Size(1563, 373); 228 | this.richTextBox1.TabIndex = 16; 229 | this.richTextBox1.Text = ""; 230 | this.richTextBox1.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged); 231 | // 232 | // button8 233 | // 234 | this.button8.Font = new System.Drawing.Font("Microsoft YaHei UI", 16.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 235 | this.button8.Location = new System.Drawing.Point(1601, 993); 236 | this.button8.Name = "button8"; 237 | this.button8.Size = new System.Drawing.Size(250, 60); 238 | this.button8.TabIndex = 17; 239 | this.button8.Text = "Save Log"; 240 | this.button8.UseVisualStyleBackColor = true; 241 | this.button8.Click += new System.EventHandler(this.button8_Click); 242 | // 243 | // button9 244 | // 245 | this.button9.Font = new System.Drawing.Font("Microsoft YaHei UI", 16.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 246 | this.button9.Location = new System.Drawing.Point(1601, 918); 247 | this.button9.Name = "button9"; 248 | this.button9.Size = new System.Drawing.Size(250, 60); 249 | this.button9.TabIndex = 18; 250 | this.button9.Text = "Service"; 251 | this.button9.UseVisualStyleBackColor = true; 252 | this.button9.Click += new System.EventHandler(this.button9_Click); 253 | // 254 | // RobotArmController 255 | // 256 | this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 23F); 257 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 258 | this.BackColor = System.Drawing.SystemColors.Control; 259 | this.ClientSize = new System.Drawing.Size(1865, 1065); 260 | this.Controls.Add(this.button9); 261 | this.Controls.Add(this.button8); 262 | this.Controls.Add(this.richTextBox1); 263 | this.Controls.Add(this.button7); 264 | this.Controls.Add(this.button6); 265 | this.Controls.Add(this.button5); 266 | this.Controls.Add(this.button4); 267 | this.Controls.Add(this.button3); 268 | this.Controls.Add(this.button2); 269 | this.Controls.Add(this.button1); 270 | this.Controls.Add(this.listView1); 271 | this.Font = new System.Drawing.Font("Microsoft YaHei UI Light", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 272 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 273 | this.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6); 274 | this.Name = "RobotArmController"; 275 | this.Text = "RobotArmController"; 276 | this.ResumeLayout(false); 277 | 278 | } 279 | 280 | #endregion 281 | 282 | private System.Windows.Forms.ListView listView1; 283 | private System.Windows.Forms.ColumnHeader columnHeader25; 284 | private System.Windows.Forms.ColumnHeader columnHeader26; 285 | private System.Windows.Forms.ColumnHeader columnHeader27; 286 | private System.Windows.Forms.ColumnHeader columnHeader28; 287 | private System.Windows.Forms.ColumnHeader columnHeader29; 288 | private System.Windows.Forms.ColumnHeader columnHeader30; 289 | private System.Windows.Forms.ColumnHeader columnHeader31; 290 | private System.Windows.Forms.ColumnHeader columnHeader32; 291 | private System.Windows.Forms.Button button1; 292 | private System.Windows.Forms.Button button2; 293 | private System.Windows.Forms.Button button3; 294 | private System.Windows.Forms.Button button4; 295 | private System.Windows.Forms.Button button5; 296 | private System.Windows.Forms.Button button6; 297 | private System.Windows.Forms.ColumnHeader columnHeader1; 298 | private System.Windows.Forms.Button button7; 299 | private System.Windows.Forms.RichTextBox richTextBox1; 300 | private System.Windows.Forms.Button button8; 301 | private System.Windows.Forms.Button button9; 302 | } 303 | } 304 | 305 | --------------------------------------------------------------------------------