Skip to content

Commit d1745d7

Browse files
Add AddGenericLevel
1 parent d508a48 commit d1745d7

2 files changed

Lines changed: 22 additions & 4 deletions

File tree

src/SpiceSharpParser/ModelReaders/Netlist/Spice/Readers/EntityGenerators/Models/MosfetModelGenerator.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using SpiceSharp;
1+
using SpiceSharp;
42
using SpiceSharp.Components;
53
using SpiceSharp.Components.Mosfets;
64
using SpiceSharp.Entities;
5+
using SpiceSharp.ParameterSets;
76
using SpiceSharpParser.Common.Validation;
87
using SpiceSharpParser.ModelReaders.Netlist.Spice.Context;
98
using SpiceSharpParser.Models.Netlist.Spice.Objects;
109
using SpiceSharpParser.Models.Netlist.Spice.Objects.Parameters;
10+
using System;
11+
using System.Collections.Generic;
1112

1213
namespace SpiceSharpParser.ModelReaders.Netlist.Spice.Readers.EntityGenerators.Models
1314
{
@@ -76,6 +77,23 @@ public void AddLevel<TModel, TParameters>(int level)
7677
};
7778
}
7879

80+
public void AddGenericLevel<TModel, TParameters>(int level)
81+
where TModel : Entity<TParameters>
82+
where TParameters : ParameterSet<TParameters>, new()
83+
{
84+
Levels[level] = (name, type, _) =>
85+
{
86+
var mosfet = (TModel)Activator.CreateInstance(typeof(TModel), name);
87+
switch (type.ToLower())
88+
{
89+
case "nmos": mosfet.SetParameter("nmos", true); break;
90+
case "pmos": mosfet.SetParameter("pmos", true); break;
91+
}
92+
93+
return new Context.Models.Model(name, mosfet, mosfet.Parameters);
94+
};
95+
}
96+
7997
public override Context.Models.Model Generate(string id, string type, ParameterCollection parameters, IReadingContext context)
8098
{
8199
var clonedParameters = (ParameterCollection)parameters.Clone();

src/SpiceSharpParser/SpiceSharpParser.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<StartupObject />
2323
<PackageLicenseExpression>MIT</PackageLicenseExpression>
2424
<LangVersion>latest</LangVersion>
25-
<Version>3.2.7</Version>
25+
<Version>3.2.8</Version>
2626
</PropertyGroup>
2727

2828
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|netstandard1.5|AnyCPU'">

0 commit comments

Comments
 (0)