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);
        }
Example #2
0
        static public new SimulateFloatModel Create(IEnumerable <SimulateVariableUnit> svunits)
        {
            SimulateFloatUnit  sfunit  = (SimulateFloatUnit)(svunits.First());
            SimulateFloatModel sfmodel = new SimulateFloatModel();
            string             _name   = sfunit.Name;
            int i = 0;

            while (char.IsLetter(_name[i]))
            {
                i++;
            }
            sfmodel.Base   = _name.Substring(0, i);
            sfmodel.Offset = int.Parse(_name.Substring(i));
            sfmodel.size   = svunits.Count();
            sfmodel.values = new SimulateFloatUnit[sfmodel.size];
            i = 0;
            foreach (SimulateVariableUnit svunit in svunits)
            {
                sfmodel.values[i++] = (SimulateFloatUnit)(svunit);
            }
            return(sfmodel);
        }
        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);
        }