本文整理汇总了C#中MgaProject.EnableAutoAddOns方法的典型用法代码示例。如果您正苦于以下问题:C# MgaProject.EnableAutoAddOns方法的具体用法?C# MgaProject.EnableAutoAddOns怎么用?C# MgaProject.EnableAutoAddOns使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MgaProject
的用法示例。
在下文中一共展示了MgaProject.EnableAutoAddOns方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ImportXME
public static void ImportXME(string xmePath, string mgaPath, bool enableAutoAddons=false)
{
MgaParser parser = new MgaParser();
string paradigm;
string paradigmVersion;
object paradigmGuid;
string basename;
string version;
parser.GetXMLInfo(xmePath, out paradigm, out paradigmVersion, out paradigmGuid, out basename, out version);
parser = new MgaParser();
MgaProject project = new MgaProject();
MgaResolver resolver = new MgaResolver();
resolver.IsInteractive = false;
dynamic dynParser = parser;
dynParser.Resolver = resolver;
project.Create("MGA=" + Path.GetFullPath(mgaPath), paradigm);
if (enableAutoAddons)
{
project.EnableAutoAddOns(true);
}
try
{
parser.ParseProject(project, xmePath);
project.Save();
}
finally
{
project.Close();
}
}
示例2: ExporterFixture
public ExporterFixture()
{
String mgaConnectionString;
GME.MGA.MgaUtils.ImportXMEForTest(pathXME, out mgaConnectionString);
proj = new MgaProject();
bool ro_mode;
proj.Open(mgaConnectionString, out ro_mode);
proj.EnableAutoAddOns(true);
}
示例3: GMEProjectFixtureBase
public GMEProjectFixtureBase()
{
String mgaConnectionString;
GME.MGA.MgaUtils.ImportXMEForTest(xmePath, out mgaConnectionString);
var mgaPath = mgaConnectionString.Substring("MGA=".Length);
Assert.True(File.Exists(Path.GetFullPath(mgaPath)),
String.Format("{0} not found. Model import may have failed.", mgaPath));
proj = new MgaProject();
bool ro_mode;
proj.Open("MGA=" + Path.GetFullPath(mgaPath), out ro_mode);
proj.EnableAutoAddOns(true);
}
示例4: RunCyPhyMLSync
protected void RunCyPhyMLSync(System.Action<MgaProject, CyPhyMetaLink.CyPhyMetaLinkAddon, CyPhyMetaLink.CyPhyMetalinkInterpreter> testAction)
{
try
{
if (debugMetalinkStartup)
{
metalink.WaitForExit();
string stderr = metalink.StandardError.ReadToEnd();
string stdout = metalink.StandardOutput.ReadToEnd();
}
Exception exception = null;
AutoResetEvent workEvent = new AutoResetEvent(false);
Thread work = new Thread(new ThreadStart(delegate
{
try
{
// Import XME file to create an MGA
String xmeFullPath = Path.Combine(TestModelDir, testXMEFilename);
String mgaFullPath = TestModelDir + testInputFilename;
MgaUtils.ImportXME(xmeFullPath, mgaFullPath);
Assert.True(File.Exists(mgaFullPath), "MGA file not found. XME import may have failed.");
MgaProject project = new MgaProject();
project.EnableAutoAddOns(true);
project.OpenEx("MGA=" + mgaFullPath, "", true);
try
{
Assert.Contains("MGA.Addon.CyPhyMLPropagate", project.AddOnComponents.Cast<IMgaComponentEx>().Select(x => x.ComponentProgID));
CyPhyMetaLink.CyPhyMetaLinkAddon propagate = (CyPhyMetaLink.CyPhyMetaLinkAddon)project.AddOnComponents.Cast<IMgaComponent>().Where(comp => comp is CyPhyMetaLink.CyPhyMetaLinkAddon).FirstOrDefault();
CyPhyMetaLink.CyPhyMetalinkInterpreter interpreter = new CyPhyMetaLink.CyPhyMetalinkInterpreter();
propagate.TestMode = true;
interpreter.GMEConsole = GME.CSharp.GMEConsole.CreateFromProject(project);
interpreter.MgaGateway = new MgaGateway(project);
interpreter.ConnectToMetaLinkBridge(project, 128);
propagate.bridgeClient.SocketQueue.EditMessageReceived += msg => addonMessagesQueue.Add(msg);
testAction(project, propagate, interpreter);
}
finally
{
project.Save(project.ProjectConnStr + "_posttest.mga", true);
project.Close(true);
}
}
catch (Exception e)
{
exception = e;
KillMetaLink();
}
finally
{
workEvent.Set();
}
}));
work.SetApartmentState(ApartmentState.STA);
work.Start();
ManualResetEvent metalinkEvent = new ManualResetEvent(true);
metalinkEvent.SafeWaitHandle = new SafeWaitHandle(metalink.Handle, false);
int handle = WaitHandle.WaitAny(new WaitHandle[] { metalinkEvent, workEvent });
if (exception != null)
{
throw new Exception("Test failed", exception);
}
if (handle == 0)
{
work.Abort();
throw new Exception("metalink exited");
}
}
finally
{
KillMetaLink();
lock (metalinkLogStream)
metalinkLogStream.Dispose();
}
}
示例5: DesignSpaceWithRefs
//[Fact]
public void DesignSpaceWithRefs()
{
var fullTestPath = Path.Combine(_exportModelDirectory, "DesignSpaceWithRefs");
var xmeFilePath = Path.Combine(fullTestPath, "DesignSpaceWithRefs.xme");
var pathExportedDesign = Path.Combine(fullTestPath, "DesignSpace.adm");
// delete design file if it already exists
if (File.Exists(pathExportedDesign))
{
File.Delete(pathExportedDesign);
}
String connectionString;
GME.MGA.MgaUtils.ImportXMEForTest(xmeFilePath, out connectionString);
var proj = new MgaProject();
bool ro_mode;
proj.Open(connectionString, out ro_mode);
proj.EnableAutoAddOns(true);
try
{
var designExporter = new CyPhyDesignExporter.CyPhyDesignExporterInterpreter();
designExporter.Initialize(proj);
var mgaGateway = new MgaGateway(proj);
MgaFCO currentFCO = null;
mgaGateway.PerformInTransaction(delegate
{
currentFCO = proj.get_ObjectByPath("/@DesignSpaces|kind=DesignSpace|relpos=0/@DesignSpace|kind=DesignContainer|relpos=0") as MgaFCO;
Assert.NotNull(currentFCO);
});
var parameters = new CyPhyGUIs.InterpreterMainParameters()
{
CurrentFCO = currentFCO,
Project = proj,
OutputDirectory = fullTestPath
};
var result = designExporter.Main(parameters);
var design = avm.Design.LoadFromFile(pathExportedDesign);
/// Add assert statements to check structure
var root = design.RootContainer;
Assert.NotNull(root);
Assert.Equal(1, root.Container1.Count(c => c.Name == "AltContainer"));
var AltContainer = root.Container1.First(c => c.Name == "AltContainer");
Assert.Equal(1, AltContainer.ComponentInstance.Count(ci => ci.Name == "CompA_5"));
Assert.Equal(1, AltContainer.ComponentInstance.Count(ci => ci.Name == "CompA_6"));
Assert.Equal(1, AltContainer.ComponentInstance.Count(ci => ci.Name == "CompA_7"));
Assert.Equal(1, root.Container1.Count(c => c.Name == "DesignContainer"));
var DesignContainer = root.Container1.First(c => c.Name == "DesignContainer");
Assert.Equal(1, DesignContainer.ComponentInstance.Count(ci => ci.Name == "CompA3"));
Assert.Equal(1, DesignContainer.Container1.Count(c => c.Name == "Assembly1"));
var Assembly1 = DesignContainer.Container1.First(c => c.Name == "Assembly1");
Assert.Equal(1, Assembly1.ComponentInstance.Count(ci => ci.Name == "CompA1"));
Assert.Equal(1, Assembly1.ComponentInstance.Count(ci => ci.Name == "CompA2"));
Assert.Equal(1, root.Container1.Count(c => c.Name == "ReusableContainer"));
var ReusableContainer = root.Container1.First(c => c.Name == "ReusableContainer");
Assert.Equal(1, ReusableContainer.Container1.Count(c => c.Name == "Assembly4"));
var Assembly4 = ReusableContainer.Container1.First(c => c.Name == "Assembly4");
Assert.Equal(1, Assembly4.ComponentInstance.Count(ci => ci.Name == "CompA1"));
Assert.Equal(1, Assembly4.ComponentInstance.Count(ci => ci.Name == "CompA2"));
Assert.Equal(1, ReusableContainer.ComponentInstance.Count(ci => ci.Name == "CompA4"));
Assert.Equal(1, root.ComponentInstance.Count(ci => ci.Name == "CompA"));
Assert.Equal(1, root.ComponentInstance.Count(ci => ci.Name == "CompA"));
}
finally
{
proj.Close();
}
}
示例6: ConvertAllSchematicsToCyPhy
private static void ConvertAllSchematicsToCyPhy(string path)
{
var schematics = ConvertAllDevices(path);
// Create MGA project on the spot.
var proj = new MgaProject();
String connectionString = String.Format("MGA={0}", Path.GetTempFileName());
proj.Create(connectionString, "CyPhyML");
proj.EnableAutoAddOns(true);
var mgaGateway = new MgaGateway(proj);
proj.CreateTerritoryWithoutSink(out mgaGateway.territory);
var module = new CyPhyComponentAuthoring.Modules
.EDAModelImport()
{
CurrentProj = proj
};
Dictionary<String, String> d_failures = new Dictionary<string, string>();
mgaGateway.PerformInTransaction(delegate
{
var rf = CyPhyClasses.RootFolder.GetRootFolder(proj);
var cf = CyPhyClasses.Components.Create(rf);
foreach (var t in schematics)
{
var identifier = t.Item1;
var schematic = t.Item2;
CyPhy.Component component = CyPhyClasses.Component.Create(cf);
component.Name = identifier;
module.SetCurrentComp(component);
try
{
var cyphySchematicModel = module.BuildCyPhyEDAModel(schematic, component);
Assert.Equal(component.Children.SchematicModelCollection.Count(), 1);
}
catch (Exception e)
{
d_failures[identifier] = e.ToString();
}
}
},
transactiontype_enum.TRANSACTION_NON_NESTED,
abort: true);
proj.Save();
proj.Close();
if (d_failures.Any())
{
String msg = String.Format("Failures in converting {0} component(s):" + Environment.NewLine,
d_failures.Count);
foreach (var kvp in d_failures)
{
msg += String.Format("{0}: {1}" + Environment.NewLine + Environment.NewLine,
kvp.Key,
kvp.Value);
}
Assert.True(false, msg);
}
}