public override bool StartProcess() { try { string Executable = Path.Combine(DeploymentPath, ProjectConfig.Name, "binaries", "ps4", string.Format("{0}.self", ProjectConfig.Name)).ToLower(); if (!File.Exists(Executable)) { Logger.Error(string.Format("Failed to launch application on PS4 device '{0}'. No executable found.", Address)); return(false); } Array Targets = TargetManager.GetTargetsByHost(Address) as Array; if (Targets == null || Targets.Length == 0) { Logger.Error(string.Format("Failed to launch application on PS4 device '{0}'. Get targets by host failed", Address)); return(false); } ITarget TargetDevice = Targets.GetValue(0) as ITarget; if (TargetDevice == null) { Logger.Error(string.Format("Failed to launch application on PS4 device '{0}'. Get target device failed", Address)); return(false); } if (TargetDevice.PowerStatus != ePowerStatus.POWER_STATUS_ON) { TargetDevice.PowerOn(); } TargetDevice.Connect(); Array Processes = (Array)TargetDevice.ProcessInfoSnapshot; IProcess Process = TargetDevice.LoadProcess(eDevice.DEVICE_RAW, string.Empty, (uint)eLoadOptions.LOAD_OPTIONS_DEFAULT, 0, CmdLineArguments, @"O:\192.168.1.181\NPXX53530"); // DeploymentPath); ProcessID = Process.Id; if (ProcessID == 0) { Logger.Error(string.Format("Failed to launch application on PS4 device '{0}'. Process id is 0", Address)); return(false); } new Task(() => AsyncMonitorProcess(TargetDevice, Process)).Start(); return(true); } catch (Exception e) { Logger.Error(string.Format("Failed to launch application on PS4 device '{0}'. Ex: {1}", Address, e.Message)); } return(false); }
private ITarget GetTarget(ORTMAPI TM, string TargetString) { ITarget Target = null; if (String.IsNullOrEmpty(TargetString) || TargetString.Equals("default", StringComparison.OrdinalIgnoreCase)) { // Use default Target = TM.DefaultTarget; } else { // Find target Array Targets = (Array)TM.GetTargetsByName(TargetString); if (Targets.Length == 0) { Targets = (Array)TM.GetTargetsByHost(TargetString); } if (Targets.Length != 0) { Target = (ITarget)Targets.GetValue(0); } if (Target == null) { Console.WriteLine("No target " + TargetString); } } return(Target); }