Exemplo n.º 1
0
        public void UpdateView(double timestart, double timeend)
        {
            StreamReader fin = new StreamReader("simulog.log");

            while (!fin.EndOfStream)
            {
                string            text = fin.ReadLine();
                string[]          args = text.Split(' ');
                string            name = args[0];
                int               time = int.Parse(args[1]);
                ValueSegment      vs = null, vsp = null;
                SimulateDataModel sdmodel = vddict[name];
                switch (sdmodel.Type)
                {
                case "BIT":
                    vs       = new BitSegment();
                    vs.Value = Int32.Parse(args[2]);
                    break;

                case "WORD":
                    vs       = new WordSegment();
                    vs.Value = Int32.Parse(args[2]);
                    break;

                case "DWORD":
                    vs       = new DWordSegment();
                    vs.Value = Int64.Parse(args[2]);
                    break;

                case "FLOAT":
                    vs       = new FloatSegment();
                    vs.Value = float.Parse(args[2]);
                    break;
                }
                if (sdmodel.Values.Count() == 0)
                {
                    vsp           = vs.Clone();
                    vsp.Value     = 0;
                    vsp.TimeStart = (int)(timestart);
                    vs.TimeStart  = vsp.TimeEnd = time;
                    sdmodel.Add(vsp);
                    sdmodel.Add(vs);
                }
                else
                {
                    vsp          = sdmodel.Values.Last();
                    vs.TimeStart = vsp.TimeEnd = time;
                    sdmodel.Add(vs);
                }
            }
            foreach (SimulateDataModel sdmodel in vddict.Values)
            {
                if (sdmodel.Values.Count() > 0)
                {
                    sdmodel.Values.Last().TimeEnd = (int)(timeend);
                }
            }
        }
Exemplo n.º 2
0
        public void SetValue(SimulateDataModel sdmodel, object value, int timestart, int timeend)
        {
            RemoveValue(sdmodel, timestart, timeend);

            ValueSegment vseg;

            switch (sdmodel.Type)
            {
            case "BIT":
                BitSegment bseg = new BitSegment();
                bseg.Value = value;
                vseg       = bseg;
                break;

            case "WORD":
                WordSegment wseg = new WordSegment();
                wseg.Value = value;
                vseg       = wseg;
                break;

            case "DWORD":
                DWordSegment dseg = new DWordSegment();
                dseg.Value = value;
                vseg       = dseg;
                break;

            case "FLOAT":
                FloatSegment fseg = new FloatSegment();
                fseg.Value = value;
                vseg       = fseg;
                break;

            default:
                throw new ArgumentException();
            }
            vseg.TimeStart = timestart;
            vseg.TimeEnd   = timeend;
            sdmodel.Add(vseg);
        }