public void Init() { if (IsInitialized) { return; } Kill(); // Create CaoEngine object caoEngine = new CaoEngine(); caoWorkspace = caoEngine.Workspaces.Item(0); //caoController = caoWorkspace.AddController("RC7", "CaoProv.DENSO.NetwoRC", "", "conn=eth:192.168.0.1"); caoController = caoWorkspace.AddController("RC8", "CaoProv.DENSO.RC8", null, "Server=192.168.0.1,@IfNotMember=True"); caoRobot = caoController.AddRobot("Arm", ""); Robot = new DensoRobot(caoRobot); Robot.LogEvent += OnLogEvent; Controller = new DensoController(caoController); Controller.LogEvent += OnLogEvent; Controller.ClearError(); if ((int)Controller.ControllerCaoVars["@MODE"].Value <= 2) { MessageBox.Show("Controller not in Auto Mode! Retry!"); Close(); Kill(); IsInitialized = false; return; } //Controller.PutAutoMode(); Controller.Initialize(); //RobslaveTask = new DensoTask(caoController.AddTask("robslave", null)); //RobslaveTask.LogEvent += OnLogEvent; //RobslaveTask.Stop(); //RobslaveTask.Start(); IsInitialized = true; }
public void Close() { // Release caoRobot object if (caoRobot != null) { caoRobot.Variables.Clear(); Marshal.ReleaseComObject(caoRobot); caoRobot = null; } // Release controller object if (caoController != null) { caoController.Variables.Clear(); caoController.Robots.Clear(); Marshal.ReleaseComObject(caoController); caoController = null; } if (caoWorkspace != null) { caoWorkspace.Controllers.Clear(); Marshal.ReleaseComObject(caoWorkspace); caoWorkspace = null; } if (caoEngine != null) { caoEngine.Workspaces.Clear(); Marshal.ReleaseComObject(caoEngine); caoEngine = null; } IsInitialized = false; }