The Regenerate verb is used for automated harnessing (for example, with a VBScript). It bypasses the Create New Project dialog and harnesses the AUTOSAR project using properties specified in the COM interface.
The following samples generate an AUTOSAR Harness using a VBScript and C#. The samples are available in the AUTOSARCruiseControl sample project.
This script generates an AUTOSAR Harness programmatically. The VBScript is available in the AUTOSARCruiseControl sample project.
'/*********************************(Adding file paths to array)****************************************************/ ' Best method: 'Dim arxmlPaths 'arxmlPaths = Array(“C:\Path\To\FirstFile”, “C:\Path\To\Second\File”, …, “C:\Path\To\Last\File”) 'E.g : 'Dim arxmlPaths 'arxmlPaths = Array("D:\AUTOSAR_Test\Rngbd\Rngbd_autosar_rtw\Rngbd_component.arxml", "D:\AUTOSAR_Test\Rngbd\Rngbd_autosar_rtw\Rngbd_datatype.arxml", "D:\AUTOSAR_Test\Rngbd\Rngbd_autosar_rtw\Rngbd_implementation.arxml", "D:\AUTOSAR_Test\Rngbd\Rngbd_autosar_rtw\Rngbd_interface.arxml")
' Alternatively: 'Dim arxmlPaths(n) 'where n = number of paths to set – 1. E.g. if there is one path, set n to zero 'arxmlPaths(0) = “C:\Path\To\First\File” 'arxmlPaths(1) = “C:\Path\To\Second\File” ' . ' . ' . 'arxmlPaths(n) = “C:\Path\To\N+1th\File” (Note : "n" index but not "n-1") 'E.g : 'Dim arxmlPaths(3) 'arxmlPaths(0) = "D:\AUTOSAR_Test\Rngbd\Rngbd_autosar_rtw\Rngbd_component.arxml" 'arxmlPaths(1) = "D:\AUTOSAR_Test\Rngbd\Rngbd_autosar_rtw\Rngbd_datatype.arxml" 'arxmlPaths(2) = "D:\AUTOSAR_Test\Rngbd\Rngbd_autosar_rtw\Rngbd_implementation.arxml" 'arxmlPaths(3) = "D:\AUTOSAR_Test\Rngbd\Rngbd_autosar_rtw\Rngbd_interface.arxml" '/****************************************************************************************************************/
'---------------------------------------------------------------------------------------------------------------------- ' DATE : 30.January.2015 'NOTE : The SECTION and STEP NUMBERS included in the script based on http://mxhelp.danlawinc.com/autosar_testing.htm '---------------------------------------------------------------------------------------------------------------------- on error resume next stop 'allows debugging
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim CurrentDirectory CurrentDirectory = WshShell.CurrentDirectory
Dim MxVPath MxVPath = CurrentDirectory + "\MxVAutomationSample"
'----------------------------------SECTION 1------------------------------------------------------------------------------------ '/***************************** STEP 1(Opening MxVDev Project) ****************************************************/ ' Please take a reference of MxVDev AUTOMATION SAMPLES to do this.
set mxv = CreateObject("MicroMax.MxVDev.Application") if mxv is nothing then call MsgBox("Failed to create MxVDev automation object!") call WScript.Quit() end if ' Set the current directory to where the script is running. ' create a project, 4 parameters in function CreateProject(arg1, arg2, arg3, arg4) ' arg1: the project name, will be used for the project file name (project_name.mxp). This cannot be empty ' arg2: the project folder, the mxv project folder, this cannot be empty ' arg3: the company name, will be one of the properties in created mxv project. This can be an empty string ' arg4: the description of the project, will be one of the properties in created mxv project. This can be an empty string set project = mxv.CreateProject( "MxV", MxVPath, "Danlaw Inc.", "Using COM to create a project" )
Dim MxVProjectPath MxVProjectPath = MxVPath+ "\MxV.mxp" call mxv.OpenProject(MxVProjectPath)
if project is nothing then call MsgBox("Failed to create MxTest project!" ) call mxv.Quit() call WCsript.Quit() end if
'call mxv.CloseProject() 'call mxv.Quit() set mxv = Nothing ' This sample will create a project MxTest.mxp with a custom harness (an empty harness transform can be found under the transforms folder MxTest.mxform) ' in the folder C:\Documents\MxSuiteSamples\Automation\CreateCOMProject\
'--------------------------------------------------------------------------------------------------------------------
'/***************************** STEP 2(Opening MxTransIt & Adding MxVmcTransform to MxTransIt)***********************/ On error resume next stop 'allows debugging set mxt = CreateObject("MicroMax.MxTransIt")
WScript.Sleep 1000
Dim mxformpath mxformpath = CurrentDirectory + "\MxVAutomationSample\Transforms\MxV.mxform"
mxt.OpenProject(mxformpath) if mxt is nothing then call MsgBox("Failed to create MxTransIt automation object!") call WScript.Quit() end if
WScript.Sleep 1000 Set xform = mxt.Harness.AddTransform( "MicroMax.MxVDev.Transforms.MxVMC.MxVmcTransform") '--------------------------------------------------------------------------------------------------------------------
'/***************************** STEP 3(Click on 'Create VMC Visual Studio Solution' is not required for automation)****/ 'All the GUI fields will be updated as COM interface properties and below steps will explain in detail. '---------------------------------------------------------------------------------------------------------------------
'As we all know AUTOMATION does not prompt the user interaction, hence these GUI fields are updated by below properties.
'/***************************** STEP 4(Select Project folder)*********************************************************/ 'This 'MxVProject Folder Path' exactly resembles the textBox named 'Select the path of the MxSuite Project. (This wizard will put the VMC Solution in a subfolder called SUT)' in GUI.
xform.SetProperty "HarnessProperties.MxVProjectFolderPath", MxVPath ' (OR) 'xform.SetProperty "AUTOSAR Harness Properties.MxVProject Folder Path", MxVPath 'Notes: 'Changed it from "SutFolderPath" to "MxvProjectFolderPath" - 10.22.14 'Changed it from "MxvProjectFolderPath" to "HarnessProperties.MxVProjectFolderPath" - 11.06.15
'--------------------------------------------------------------------------------------------------------------------
'/***************************** STEP 5(Create AUTOSAR project based on ARXML extract)*********************************/ 'This 'Enable AUTOSAR' exactly resembles the check box named 'Configure VMC to automatically harness AUTOSAR Software Components based on ARXML extract files' in GUI.
xform.SetProperty "HarnessProperties.IsAutosarEnable", true ' (OR) 'xform.SetProperty "AUTOSAR Harness Properties.Enable AUTOSAR", true
'Notes: 'Changed it from "IsAutosarEnable" to "HarnessProperties.IsAutosarEnable" - 11.06.15 '--------------------------------------------------------------------------------------------------------------------
'/***************************** STEP 6(Enable/Disable RTE Contract Phase Generator)*********************************/ 'This 'Enable RTE Contract Phase Generator' exactly resembles the combo box named 'RTE Contract Phase Generator' in GUI.
xform.SetProperty "HarnessProperties.IsRteContractPhaseGenEnabled", true ' (OR) 'xform.SetProperty "AUTOSAR Harness Properties.Enable RTE Contract Phase Generator", true
'Notes : 'Changed it from "RTE Contract Phase Generator Enable" to "AUTOSAR Harness Properties.Enable RTE Contract Phase Generator" - 11.06.15 'Changed it from "IsRteContractPhaseGenEnable" to "HarnessProperties.IsRteContractPhaseGenEnabled" - 11.06.15 '--------------------------------------------------------------------------------------------------------------------
'/***************************** STEP 7(Browse ARXML files)***********************************************************/ 'This 'SW-C file(s)' is same as list named 'ECU Extract(.arxml) files' in the GUI. Dim arxmlPaths(5) arxmlPaths(0) = CurrentDirectory + "\..\SourceCodeAndArxmls\ARXML\Composition.arxml" arxmlPaths(1) = CurrentDirectory + "\..\SourceCodeAndArxmls\ARXML\CruiseCntrlAlg.arxml" arxmlPaths(2) = CurrentDirectory + "\..\SourceCodeAndArxmls\ARXML\Datatypes.arxml" arxmlPaths(3) = CurrentDirectory + "\..\SourceCodeAndArxmls\ARXML\DrivingForceCalc.arxml" arxmlPaths(4) = CurrentDirectory + "\..\SourceCodeAndArxmls\ARXML\Interfaces.arxml" arxmlPaths(5) = CurrentDirectory + "\..\SourceCodeAndArxmls\ARXML\Vehicle.arxml"
xform.SetProperty "HarnessProperties.ExtractFilePaths", arxmlPaths ' (OR) 'xform.SetProperty "AUTOSAR Harness Properties.SW-C file(s)", arxmlPaths
'Notes : 'Changed it from "AUTOSAR extract files array" to "AUTOSAR Harness Properties.SW-C file(s)" - 11.06.15
'AUTOSAR version pdation is not required.(Transform updates this internally) '-------------------------------------------------------------------------------------------------------------------- '/***************************** STEP 8(Select software components)***********************************************************/ ' NOTE : 'SW-C Name(s)' is optional property, skip this step if all the software components needs harness
'This 'SW-C Name(s)' is same as software components in the GUI. 'Dim SwComponents(0) 'SwComponents(0)="Composition"
'xform.SetProperty "HarnessProperties.SwNames", SwComponents ' (OR) 'xform.SetProperty "AUTOSAR Harness Properties.SW-C Name(s)", SwComponents
'Notes : 'Changed it from "SwComponentShortNames" to "HarnessProperties.SwNames" - 11.06.15 '--------------------------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------------------------- '/****************************************************************************************/ ' NOTE : 'Export Connected Ports' is optional property and it's default value set to true, skip this step if connected ports to be generated in AppIf.c file
'xform.SetProperty "HarnessProperties.ExportConnectedPorts", false ' (OR) 'xform.SetProperty "AUTOSAR Harness Properties.Export Connected Ports", SwComponents
'Notes : ' Property added on 11.11.15 '--------------------------------------------------------------------------------------------------------------------
'/******************************************************************************************************************/ 'This 'SW-C Source Code Directory' property assigned to AUTOSAR source files (C/C++) root directory (may have child directories) which is used in 'Regenerate' verb action. Dim srccode srccode = CurrentDirectory + "\..\SourceCodeAndArxmls\SourceCode"
xform.SetProperty "HarnessProperties.AutosarSourceCodeDirectory", srccode 'Implemented on 03.12.14 ' (OR) 'xform.SetProperty "AUTOSAR Harness Properties.SW-C Source Code Directory", srccode
'Notes : 'Changed it from "AutosarSourceFileDirectory" to "HarnessProperties.AutosarSourceCodeDirectory" - 11.06.15
'NOTE : This property is optional, if it is set then the source files in this directory will be copied into the solution directory and added into the solution at 'Regenerate' action. '--------------------------------------------------------------------------------------------------------------------
'/***************************** ('Click on Regenerate' verb)**************************************************/ 'This Verb is similar to Create VMC Visual Studio Solution verb, below steps will explain in detail. '---------------------------------------------------------------------------------------------------------------------
'The 'Regenerate' verb does below tasks ' 1. Creating visual studio solution. ' 2. Generating Harness files (AppIF.c, MxVAutosarHarness.c and MxVAutosarHarness.h) ' 3. Adding generated harness files to the solution. ' 4. COPYING AUTOSAR source files into solution directory(from the path specified by "AutosarSourceFileDirectory" property, if property is set) ' 5. Adding AUTOSAR source files to the solution (Add->Existing Item)
xform.DoAction("Regenerate")
WScript.Sleep 2000 'Sleep varies according to the PC speed. '--------------------------------------------------------------------------------------------------------------------
'/*****************************(Be sure the Harness is disconnected)******************************************/ ' Please take a reference of MxVDev AUTOMATION SAMPLES to do this. '--------------------------------------------------------------------------------------------------------------------
'/*****************************SECTION 2***********************************************************************/ '/*****************************(Build)***********************************************************************/ 'The script calls(using DoAction() COM function below) the "Build" verb xform.DoAction("Build")
WScript.Sleep 1000 '--------------------------------------------------------------------------------------------------------------------
'/*****************************SECTION 3************************************************************/ '/*****************************(Connect/Reconnect)************************************************************/ 'The script calls(using DoAction() COM function below) the "Connect/Reconnect" verb xform.DoAction("Connect/Reconnect") '--------------------------------------------------------------------------------------------------------------------
mxt.SaveProject(mxformpath)
'/******************************************************************************************************************/ Set mxt = Nothing WScript.Quit() '--------------------------------------------------------------------------------------------------------------------
|
The following sample generates an AUTOSAR Harness with a C# program. The code is available in the AUTOSARCruiseControl sample project in the file Program.cs. using System; using MicroMax.MxVDev.Automation.MxVGUI;
namespace CSharpSample { class Program { static void Main(string[] args) { MicroMax.MxVDev.Automation.MxVGUI.IApplication mxv = null; MicroMax.MxVDev.Automation.MxTransIt.IApplication mxt = null; try { // TODO: Set directory properly. This assumes the app is running in AUTOSARCruiseControl\Automation string currdir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
string mxvdir = System.IO.Path.GetFullPath(System.IO.Path.Combine(currdir, "..\\MxVAutomationSample")); string mxtdir = System.IO.Path.GetFullPath(System.IO.Path.Combine(currdir, "..\\MxVAutomationSample\\Transforms")); string arxmldir = System.IO.Path.GetFullPath(System.IO.Path.Combine(currdir, "..\\..\\SourceCodeAndArxmls\\ARXML")); string srcdir = System.IO.Path.GetFullPath(System.IO.Path.Combine(currdir, "..\\..\\SourceCodeAndArxmls\\SourceCode"));
if (!System.IO.Directory.Exists(arxmldir)) { Console.WriteLine("\"SourceCodeAndArxmls\\ARXML\" directory does not exists!"); Console.WriteLine("Press any key to return"); Console.ReadKey(); return; } if (!System.IO.Directory.Exists(srcdir)) { Console.WriteLine("\"SourceCodeAndArxmls\\SourceCode\" directory does not exists!"); Console.WriteLine("Press any key to return"); Console.ReadKey(); return; }
if (!System.IO.Directory.Exists(mxvdir)) { System.IO.Directory.CreateDirectory(mxvdir); } System.IO.DirectoryInfo filesInfo = new System.IO.DirectoryInfo(mxvdir); foreach (System.IO.FileInfo file in filesInfo.GetFiles()) { file.Delete(); }
#region MxVDev Console.WriteLine("Loading..."); mxv = MicroMax.MxVDev.Automation.Activator.ActivateMxVGUI(); if (mxv == null) { throw new NullReferenceException("Could not create MxVDev automation object"); } else { Console.WriteLine("MxVDev automation object created"); }
Version version = mxv.Version(); if (version == null) { throw new NullReferenceException("Failed to get version"); } else { Console.WriteLine("MxVDev version : " + version.ToString()); }
mxv.CurrentDirectory = mxvdir;
IProject createProject = mxv.CreateProject("MxV", mxvdir, "Danlaw Inc.", "Using COM to create a project"); if (createProject == null) { throw new NullReferenceException("Failed to create MxVDev Project" + System.Environment.NewLine + mxv.GetLastErrorString()); } else { Console.WriteLine("MxVDev Project created.."); }
IProject openProject = mxv.OpenProject(mxvdir + "\\MxV.mxp"); if (openProject == null) { throw new NullReferenceException("Failed to open MxVDev project" + System.Environment.NewLine + mxv.GetLastErrorString()); } else { Console.WriteLine("MxVDev project opened.."); } #endregion
System.Threading.Thread.Sleep(1000);
#region MxTransIt mxt = MicroMax.MxVDev.Automation.Activator.ActivateMxTransIt(); if (mxt == null) { throw new NullReferenceException("Failed to activate MxTransIt" + System.Environment.NewLine + mxv.GetLastErrorString()); } else { Console.WriteLine("MxTransIt instanciated.."); }
System.Threading.Thread.Sleep(3000);
bool isOpened = mxt.OpenProject(mxtdir + "\\MxV.mxform"); if (isOpened) { Console.WriteLine("MxTransIt opened.."); } else { Console.WriteLine("MxTransIt not opened.."); } #endregion
System.Threading.Thread.Sleep(1000);
#region MxVmcTransform MicroMax.MxVDev.Automation.MxTransIt.ITransform xform = mxt.Harness.AddTransform("MicroMax.MxVDev.Transforms.MxVMC.MxVmcTransform"); if (xform == null) { throw new NullReferenceException("Failed to Add Transform" + System.Environment.NewLine + mxv.GetLastErrorString()); } else { Console.WriteLine("MxVmcTransform added to the MxTransIt"); }
/*============================================================================*/ /* This 'MxVProject Folder Path' exactly resembles the textBox named 'Select the path of the MxSuite Project. (This wizard will put the VMC Solution in a subfolder called SUT)' in GUI. * xform.SetProperty "HarnessProperties.MxVProjectFolderPath", mxvdir * (OR) * xform.SetProperty "AUTOSAR Harness Properties.MxVProject Folder Path", mxvdir * Notes: * 'Changed it from "SutFolderPath" to "MxvProjectFolderPath" - 10.22.14 * 'Changed it from "MxvProjectFolderPath" to "HarnessProperties.MxVProjectFolderPath" - 11.06.15 */ xform.SetProperty("HarnessProperties.MxVProjectFolderPath", mxvdir); /*============================================================================*/
/*============================================================================*/ /*'This 'Enable AUTOSAR' exactly resembles the check box named 'Configure VMC to automatically harness AUTOSAR Software Components based on ARXML extract files' in GUI. * 'xform.SetProperty "HarnessProperties.IsAutosarEnable", true * ' (OR) * xform.SetProperty "AUTOSAR Harness Properties.Enable AUTOSAR", true * 'Notes: * 'Changed it from "IsAutosarEnable" to "HarnessProperties.IsAutosarEnable" - 11.06.15 */ xform.SetProperty("HarnessProperties.IsAutosarEnable", true); /*============================================================================*/
/*============================================================================*/ /* 'This 'Enable RTE Contract Phase Generator' exactly resembles the combo box named 'RTE Contract Phase Generator' in GUI. * xform.SetProperty "HarnessProperties.IsRteContractPhaseGenEnabled", true * ' (OR) * 'xform.SetProperty "AUTOSAR Harness Properties.Enable RTE Contract Phase Generator", true * 'Notes : * 'Changed it from "RTE Contract Phase Generator Enable" to "AUTOSAR Harness Properties.Enable RTE Contract Phase Generator" - 11.06.15 * 'Changed it from "IsRteContractPhaseGenEnable" to "HarnessProperties.IsRteContractPhaseGenEnabled" - 11.06.15 */ xform.SetProperty("HarnessProperties.IsRteContractPhaseGenEnabled", true); /*============================================================================*/
/*============================================================================*/ /*'This 'SW-C file(s)' is same as list named 'ECU Extract(.arxml) files' in the GUI. * xform.SetProperty "HarnessProperties.ExtractFilePaths", arxmlPaths * ' (OR) * 'xform.SetProperty "AUTOSAR Harness Properties.SW-C file(s)", arxmlPaths * 'Notes : * 'Changed it from "AUTOSAR extract files array" to "AUTOSAR Harness Properties.SW-C file(s)" - 11.06.15 * 'AUTOSAR version pdation is not required.(Transform updates this internally) */ string[] arxmlPaths = { System.IO.Path.Combine(arxmldir, "Composition.arxml"), System.IO.Path.Combine(arxmldir, "CruiseCntrlAlg.arxml"), System.IO.Path.Combine(arxmldir, "Datatypes.arxml"), System.IO.Path.Combine(arxmldir, "DrivingForceCalc.arxml"), System.IO.Path.Combine(arxmldir, "Interfaces.arxml"), System.IO.Path.Combine(arxmldir, "Vehicle.arxml") }; xform.SetProperty("HarnessProperties.ExtractFilePaths", arxmlPaths); /*============================================================================*/
/*====================================== Optional property =======================================================*/ /*' NOTE : 'SW-C Name(s)' is optional property, skip this step if all the software components needs harness * 'This 'SW-C Name(s)' is same as software components in the GUI. * * 'xform.SetProperty "HarnessProperties.SwComponentShortNames", SwComponents * ' (OR) * 'xform.SetProperty "AUTOSAR Harness Properties.SW-C Name(s)", SwComponents * 'Notes : * 'Changed it from "SwComponentShortNames" to "HarnessProperties.SwNames" - 11.06.15 */ string[] swComponets = { "Composition", /* mention only composition name, when harness needed for composition. */ /* "CruiseCntrlAlg", "DrvForceCalc", "VehComponent"*/ }; xform.SetProperty("HarnessProperties.SwComponentShortNames", swComponets); /*================================================================================================================*/
/*============================================================================*/ /*'This 'SW-C Source Code Directory' property assigned to AUTOSAR source files (C/C++) root directory (may have child directories) which is used in 'Regenerate' verb action. * * xform.SetProperty "HarnessProperties.AutosarSourceCodeDirectory", srccode 'Implemented on 03.12.14 * ' (OR) * 'xform.SetProperty "AUTOSAR Harness Properties.SW-C Source Code Directory", srccode * 'Notes : * 'Changed it from "AutosarSourceFileDirectory" to "HarnessProperties.AutosarSourceCodeDirectory" - 11.06.15 * * 'NOTE : This property is optional, if it is set then the source files in this directory will be copied into the solution directory and added into the solution at 'Regenerate' action. */ xform.SetProperty("HarnessProperties.AutosarSourceCodeDirectory", srcdir); /*============================================================================*/
/****************************************************************************************/ /*' NOTE : 'Export Connected Ports' is optional property and it's default value set to true, skip this step if connected ports to be generated in AppIf.c file * * 'xform.SetProperty "HarnessProperties.ExportConnectedPorts", false * ' (OR) * 'xform.SetProperty "AUTOSAR Harness Properties.Export Connected Ports", SwComponents * * 'Notes : * 'Property added on 11.11.15 /****************************************************************************************/
xform.DoAction("Regenerate");
System.Threading.Thread.Sleep(1000);
xform.DoAction("Build");
System.Threading.Thread.Sleep(1000);
xform.DoAction("Connect/Reconnect"); #endregion
mxt.SaveProject(mxtdir + "\\MxV.mxform"); #region Reserved //IScenario scenario = project.OpenScenario("TestScenario.mxs"); //if (scenario == null) // throw new NullReferenceException("Failed to open TestScenario scenario" + System.Environment.NewLine + mxv.GetLastErrorString()); //if (project.Execute(true)) // Console.Out.WriteLine("Scenario Passed"); //else // Console.Out.WriteLine("Scenario Failed"); //scenario.Close(); //IScenarioProperties props = project.GetScenarioProperties("ScenariosAndTestcases\\TestScenario.mxs"); //if (props == null) // throw new NullReferenceException(mxv.GetLastErrorString()); //foreach (IJobProperty jobProperty in props.JobProperties.Jobs) //{ // Console.Out.WriteLine("Job:"); // Console.Out.WriteLine("\tId = {0}", jobProperty.JobID); // Console.Out.WriteLine("\tName = {0}", jobProperty.InternalName); // Console.Out.WriteLine("\tPath = {0}", jobProperty.FilePath); // Console.Out.WriteLine("\tRevision = {0}", jobProperty.Revision); // Console.Out.WriteLine("\tModified = {0}", jobProperty.LastModified); // Console.Out.WriteLine("\tImageCount = {0}", jobProperty.JobImageCount); // byte[] imageBytes; // for (int i = 0; i < jobProperty.JobImageCount; ++i) // { // imageBytes = jobProperty.GetJobImage(i); // if (imageBytes != null) // { // string s = Convert.ToBase64String(imageBytes, Base64FormattingOptions.InsertLineBreaks); // Console.WriteLine("\tImage Bytes: \n{0}", s); // } // } //} #endregion
//mxv.CloseProject(); //mxv.Quit(); } catch (Exception ex) { Console.Error.WriteLine(ex.ToString()); Console.WriteLine("Press any key to return"); Console.ReadKey(); if (mxv != null) mxv.Quit(); if (mxt != null) mxt.Quit(); } } } }
|
When using C# for your automation, you can use the generated metadata files to inspect the properties and methods available to each class. (In Visual Studio, right-click on a class name and choose "Go to definition".) This resource is not available when writing a VB Script. Use the fully qualified path name of the property. For example, to change the Signal Naming Conventions property on the Virtual Microcontroller (VMC) Transform (as shown above), use this code: xform.SetProperty(HarnessProperties.SignalProperties.SignalNameSource, MicroMax.MxVDev.Transforms.MxVMC.Autosar.Enums.PortGenerationCategory.PortNameWithDataElement); This code has the same effect: xform.SetProperty(HarnessProperties.SignalProperties.SignalNameSource, 1); |
Harnessing an AUTOSAR Software Component