예제 #1
0
        public void UpdatePointValue(string pointName, params double[] valueList)
        {
            PointStorage point = GetPoint(pointName);

            if (point != null)
            {
                point.AddRobotPoint(valueList);
            }
        }
예제 #2
0
        public PointStorage GetPoint(string pointName, string[] dimensionNames, double[] defaultValues)
        {
            if (!points.Contains(pointName))
            {
                CreatePoint(pointName, 10, dimensionNames);
                GetPoint(pointName).AddRobotPoint(defaultValues);
                Save();
            }
            else
            {
                if (((PointStorage)points[pointName]).Dimension != dimensionNames.Length)
                {
                    PointStorage oldPoint = (PointStorage)points[pointName];

                    // remove old point from list
                    points.Remove(pointName);

                    // create new point
                    CreatePoint(pointName, 10, dimensionNames);
                    PointStorage newPoint = GetPoint(pointName);

                    // copy old values to new point
                    for (int j = oldPoint.History.Count - 1; j >= 0; j--)
                    {
                        RobotPoint p = (RobotPoint)oldPoint.History[j];

                        double[] val = new double[newPoint.Dimension];
                        for (int i = 0; i < val.Length; i++)
                        {
                            if (i < p.Coordinate.Length)
                            {
                                val[i] = p.Coordinate[i];
                            }
                            else
                            {
                                val[i] = defaultValues[i];
                            }
                        }
                        newPoint.AddRobotPoint(val);
                    }
                    Save();
                }
            }
            return((PointStorage)points[pointName]);
        }