230 likes | 409 Views
UEISIM Desktop. Overview. The UEISIM is a Linux based system that runs S imulink models. UEISIM Desktop allows remote monitoring and parameter tuning while a model is running . R emote monitoring/Parameter tuning. External mode :
E N D
Overview • The UEISIM is a Linux based system that runs Simulink models. • UEISIM Desktop allows remote monitoring and parameter tuning while a model is running.
Remote monitoring/Parameter tuning • External mode: • Use Simulink itself as client to connect to the UEISIM target. • UEISIM Desktop: • A client written in C#, C/C++ or LabVIEW can display the model’s signals and parameters without Simulink being installed. • Signals and parameters are also accessible via a web page.
Extra features (UEISIM desktop only) • Remotely start/stop simulation • Host PC client can start or stop simulations remotely • Timing statistics: • Average simulation step execution time • Minimum step execution time • Maximum step execution time • Model execution time
Shared Data protocol UEISIM Simulation executable Client application LibSharedData LibSharedData PC #1 PC #2 Web browser UeiSimTarget.dll Client Application
Shared data protocol • Implements a simple message based protocol (set/get variable) using JSON or binary data representation • Local processes communicate over UNIX sockets • Remote processes communicate over TCP/IP sockets • Web browser communicate over Web Sockets
Signal Monitoring • A model automatically publishes all “exported” signals under the name: • /model_name/block_name/signal_name • To export a signal, right-click and set “Storage Class” to “Exported Global”
Parameter tuning • A model also publishes all tunable parameters under the name: • /model_name/block_name/param_name • For example the constant block “value” parameter is tunable:
Data hierarchy • This naming convention allows a hierarchical view of the model signals and parameters
Shared Data Client • Shared Data client is an application that provides a quick and easy way to monitor a model.
Client API • UEISIM Desktop API supports C/C++, .NET (C#, VB), LabVIEW and Javascript • The API provides the following services: • Start/Stop Simulation • Enumerate and read signals • Enumerate, read and write parameters • Reboot or shutdown UEISIM • Read timing statistics and CPU load
C# client API 1/4 • Create a client object • UeiSimTargetClientclient= new UeiSimTargetClient(); • Open communication with UEISIM • client.Open("192.168.100.2"); • Load and Start Model • client.LoadApp("/tmp/test_ai_rt2“, 2345); • if(client.IsAppRunning()) • { • client.StopApp(); // Stop model if already running • } • client.StartApp();
C# client API 2/4 • Enumerate signals • for(intsigIdx=0; sigIdx< client.GetNumSignals(); sigIdx++) • { • stringsigName = client.GetSignalName(sigIdx); • double[] sigVals = client.GetSignalValue(sigIdx,client.GetSignalWidth(sigIdx)); • Console.Write("{0} = {1}", sigName, sigVals); • }
C# client API 3/4 • Enumerate and tune parameters • for(intprmIdx=0; prmIdx=0<client.GetNumParams(); prmIdx=0 ++) • { • stringprmName= client.GetParamName(prmIdx); • double[] prmVals= client.GetParamValue(prmIdx,client.GetParamWidth(prmIdx)); • Console.Write("{0} = {1}", prmName, prmVals); • // Tune parameter • prmVals[0] = 102.90; • client.SetParamValue(prmIdx, prmVals); • }
C# client API 4/4 • Display timing stats • Console.WriteLine("Model ran for {0} secs", client.GetExecTime()); • Console.WriteLine("Min TET = {0}", client.GetMinTET()); • Console.WriteLine("Max TET = {0}", client.GetMaxTET()); • Console.WriteLine("Avg TET = {0}", client.GetAvgTET()); • Close communication channel • client.Close();
LabVIEW API 1/4 • Open communication and start application
LabVIEW API 2/4 • Enumerate and monitor signals values
LabVIEW API 3/4 • Enumerate and tune parameters
LabVIEW API 4/4 • Display timing stats
HTML5 client • UEISIM Desktop web interface is built on top of web sockets • Web sockets are part of HTML5. Supported in the following browsers: • Google Chrome • Firefox • Safari for MacOS and iOS • Android web browser • Internet Explorer 10