static void Main(string[] args) { var client = new OcularPlaneClient("localhost", 9999); client.Ping(); Console.WriteLine("Connected!"); Console.WriteLine(); Console.WriteLine("Containers:"); foreach (var containerName in client.GetContainerNames()) { Console.WriteLine($"--> {containerName}"); } Console.WriteLine(); Console.WriteLine("Instances in container 1:"); var instances = client.GetInstancesInContainer("container1"); foreach (var instance in instances) { Console.WriteLine($"--> {instance.Name} ({instance.TypeName}) with id {instance.InstanceId}"); } Console.WriteLine(); Console.WriteLine($"Properties of {instances[0].Name}:"); var details = client.GetInstanceDetails(instances[0].InstanceId); foreach (var property in details.Properties) { Console.WriteLine($"--> {property.Name} ({property.TypeName}): {property.ValueAsString}"); } Console.WriteLine(); Console.WriteLine("Changing property values"); client.SetPropertyValue(details.InstanceId, details.Properties[0].Name, "122"); client.SetPropertyValue(details.InstanceId, details.Properties[1].Name, "STRING"); client.SetPropertyValue(details.InstanceId, details.Properties[2].Name, "Value2"); Console.WriteLine("Done!"); Console.WriteLine(); Console.WriteLine($"Properties of {instances[0].Name}:"); details = client.GetInstanceDetails(instances[0].InstanceId); foreach (var property in details.Properties) { Console.WriteLine($"--> {property.Name} ({property.TypeName}): {property.ValueAsString}"); } Console.WriteLine(); Console.WriteLine($"Methods in container:"); var methods = client.GetMethodsInContainer("container1"); foreach (var methodReference in methods) { Console.Write($"--> {methodReference.Name} ({methodReference.MethodId}) with parameters:"); foreach (var parameterReference in methodReference.Parameters) { Console.WriteLine($"----> {parameterReference.ParameterName} of type {parameterReference.TypeName}"); } } Console.WriteLine(); Console.WriteLine("Setting values:"); var parameters = new Dictionary <string, string> { { "intVal", "100" }, { "stringVal", "weeeeee" }, { "enumVal", "Value2" } }; client.ExecuteMethod(methods[0].MethodId, parameters); Console.WriteLine($"Properties of {instances[0].Name}:"); details = client.GetInstanceDetails(instances[0].InstanceId); foreach (var property in details.Properties) { Console.WriteLine($"--> {property.Name} ({property.TypeName}): {property.ValueAsString}"); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Finished!"); Console.ReadLine(); }
private void UpdateGridCategories() { MainGlueWindow.Self.Invoke(() => { var selectedInstance = objectListViewModel?.SelectedItem?.Tag; if (selectedInstance != null) { bool shouldReconstructGrid = lastInstanceGuid != selectedInstance.InstanceId; if (shouldReconstructGrid) { grid.Categories.Clear(); var mainCategory = new MemberCategory("Main Variables"); var debuggingCategory = new MemberCategory("Debugging Variables"); var details = client.GetInstanceDetails(selectedInstance.InstanceId); foreach (var property in details.Properties) { var member = new ConnectedInstanceMember(); member.Client = client; member.InstanceReference = selectedInstance; member.PropertyReference = property; member.Type = TypeManager.GetTypeFromString(property.TypeName); member.Name = property.Name; member.DisplayName = FlatRedBall.Utilities.StringFunctions.InsertSpacesInCamelCaseString(member.Name); // eventually find the matching NOS and update it. bool shouldAppearInMainList = false;// glueNamedObject.HasCustomVariable(member.Name); if (shouldAppearInMainList) { mainCategory.Members.Add(member); } else { debuggingCategory.Members.Add(member); } } if (mainCategory.Members.Count != 0) { grid.Categories.Add(mainCategory); } if (debuggingCategory.Members.Count != 0) { grid.Categories.Add(debuggingCategory); } lastInstanceGuid = selectedInstance.InstanceId; } else { var details = client.GetInstanceDetails(selectedInstance.InstanceId); foreach (var category in grid.Categories) { foreach (var uncastedMember in category.Members) { var member = uncastedMember as ConnectedInstanceMember; member.PropertyReference = details.Properties.FirstOrDefault(item => item.Name == member.Name); } } grid.Refresh(); } } else { lastInstanceGuid = Guid.Empty; grid.Categories.Clear(); } }); //var instanceMember = new InstanceMember("Some value", this); //instanceMember.CustomSetEvent += (owner, value) => //{ // System.Console.WriteLine($"Setting the value of {owner} to {value}"); //}; //instanceMember.CustomGetEvent += (owner) => //{ // System.Console.WriteLine($"Returning the value for {owner}"); // return 10; //}; //instanceMember.CustomGetTypeEvent += (owner) => //{ // System.Console.WriteLine($"Returning the type for {owner}"); // return typeof(int); //}; //category.Members.Add(instanceMember); //Grid.Categories.Add(category); }