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 SimulateWordModel Create(IEnumerable <SimulateVariableUnit> svunits) { SimulateWordUnit swunit = (SimulateWordUnit)(svunits.First()); SimulateWordModel swmodel = new SimulateWordModel(); string _name = swunit.Name; int i = 0; while (char.IsLetter(_name[i])) { i++; } swmodel.Base = _name.Substring(0, i); swmodel.Offset = int.Parse(_name.Substring(i)); swmodel.size = svunits.Count(); swmodel.values = new SimulateWordUnit[swmodel.size]; i = 0; foreach (SimulateVariableUnit svunit in svunits) { swmodel.values[i++] = (SimulateWordUnit)(svunit); } return(swmodel); }
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); }