public static SimulateVariableModel Create(IEnumerable <SimulateVariableUnit> svunits) { SimulateVariableUnit svunitf = svunits.First(); if (svunitf is SimulateBitUnit) { return(SimulateBitModel.Create(svunits)); } if (svunitf is SimulateWordUnit) { return(SimulateWordModel.Create(svunits)); } if (svunitf is SimulateDWordUnit) { return(SimulateDWordModel.Create(svunits)); } if (svunitf is SimulateFloatUnit) { return(SimulateFloatModel.Create(svunits)); } return(null); }
static public new SimulateBitModel Create(IEnumerable <SimulateVariableUnit> svunits) { SimulateBitUnit sbunit = (SimulateBitUnit)(svunits.First()); SimulateBitModel sbmodel = new SimulateBitModel(); string _name = sbunit.Name; int i = 0; while (char.IsLetter(_name[i])) { i++; } sbmodel.Base = _name.Substring(0, i); sbmodel.Offset = int.Parse(_name.Substring(i)); sbmodel.size = svunits.Count(); sbmodel.values = new SimulateBitUnit[sbmodel.size]; i = 0; foreach (SimulateVariableUnit svunit in svunits) { sbmodel.values[i++] = (SimulateBitUnit)(svunit); } return(sbmodel); }
public static SimulateVariableModel Create(string name, int size, string type) { int i = 0; while (char.IsLetter(name[i])) { i++; } string bname = name.Substring(0, i); int offset = int.Parse(name.Substring(i)); SimulateVariableModel svmodel = null; switch (type) { case "BIT": svmodel = new SimulateBitModel(); break; case "WORD": svmodel = new SimulateWordModel(); break; case "DWORD": svmodel = new SimulateDWordModel(); break; case "FLOAT": svmodel = new SimulateFloatModel(); break; default: return(svmodel); } svmodel.Base = bname; svmodel.Offset = offset; svmodel.Size = size; return(svmodel); }