11-11-2024 05:55 PM - edited 11-11-2024 06:49 PM
I deployed Engine Demo to `localhost`.
I wrote my code:
using NationalInstruments.VeriStand.ClientAPI;
class Program
{
static void Main(string[] args)
{
// The path to the system definition file and the IP address of the target
string systemDefinitionPath = @"C:\Users\Public\Documents\National Instruments\NI VeriStand 2024\Examples\Stimulus Profile\Engine Demo\Engine Demo.nivssdf";
string gatewayIP = "localhost";
// Initialize Factory class instance to access NI VeriStand system
try
{
Factory facRef = new Factory();
Console.WriteLine("Factory created successfully");
IWorkspace2 workspace = facRef.GetIWorkspace2(gatewayIP);
Console.WriteLine("Workspace obtained successfully");
// Connect to the system and deploy the system definition file
workspace.ConnectToSystem(systemDefinitionPath, true, 60000); // ms
Console.WriteLine("Deployed system.");
}
catch (Exception ex)
{
Console.WriteLine($"Error type: {ex.GetType()}");
Console.WriteLine($"Error message: {ex.Message}");
Console.WriteLine($"Error stack trace: {ex.StackTrace}");
}
}
}
Based on the log, you can see Factory created successfully, but then failed with error:
Factory created successfully
Error type: System.Reflection.TargetInvocationException
Error message: Exception has been thrown by the target of an invocation.
Error stack trace: at System.RuntimeType.CreateInstanceOfT()
at System.Activator.CreateInstance[T]()
at NationalInstruments.VeriStand.ClientAPI.ClientServerManager`1.GetClientServer(String address)
at NationalInstruments.VeriStand.ClientAPI.ClientServerManagerInstances.GetDataServices(String address)
at NationalInstruments.VeriStand.ClientAPI.WorkspaceImpl..ctor(String address)
at NationalInstruments.VeriStand.ClientAPI.WorkspaceAggregator.Create(String address)
at NationalInstruments.VeriStand.ClientAPI.Factory.GetIWorkspace2(String gateway_ip_address)
at Program.Main(String[] args) in C:\Users\Hongb\Documents\Git\ConsoleApp1\ConsoleApp1\Program.cs:line 18
Any guide would be appreciate, thanks! ☺️
Solved! Go to Solution.
11-11-2024 10:30 PM
I got some guide at Stack Overflow and posted my answer at https://stackoverflow.com/a/79179785/2000548
Here is a copy:
---
Based on the error missing `System.ServiceModel.NetNamedPipeBinding`, I realized this has to be a .NET Framework 4 app instead of .NET Core 8 app, here is full working code that deploys "Engine Demo" to the gateway at localhost
using NationalInstruments.VeriStand.ClientAPI;
namespace VeriStandController
{
internal class Program
{
public static void Main(string[] args)
{
string gatewayIp = "localhost";
string systemDefinitionPath = @"C:\Users\Public\Documents\National Instruments\NI VeriStand 2024\Examples\Stimulus Profile\Engine Demo\Engine Demo.nivssdf";
Factory factory = new Factory();
IWorkspace2 workspace = factory.GetIWorkspace2(gatewayIp);
// Connect to the system and deploy the system definition file
workspace.ConnectToSystem(systemDefinitionPath, true, 60000); // ms
}
}
}
This code now can succeed deploying the "Engine Demo" in the VeriStand.