最近在写工业机械臂控制的代码,需要实现如下的一个功能:
将机械臂需要执行的函数与输入参数按照顺序保存成文件,加载文件后能够直接命令机械手进行动作。
界面使用winform进行开发。函数名与参数的保存、加载的部分,考虑到日后函数的增删,使用了函数反射+XML序列化/反序列一个方案。
这部分用Console模拟一下。
先编写一个类 Coordinate 来表示坐标,类中有三个属性X,Y,Z分别代表X,Y,Z坐标值。
public class Coordinate
{
/// <summary>
/// X坐标值
/// </summary>
public double X { get; set; }
/// <summary>
/// Y坐标值
/// </summary>
public double Y { get; set; }
/// <summary>
/// Z坐标值
/// </summary>
public double Z { get; set; }
public override string ToString()
{
return "X:" + X + "|Y:" + Y + "|Z:" + Z;
}
public void SetCoordinate(double x , double y, double z)
{
X = x;
Y = y;
Z = z;
}
public static Coordinate operator +(Coordinate coor1 , Coordinate coor2)
{
return new Coordinate() { X = coor1.X + coor2.X, Y = coor1.Y + coor2.Y, Z = coor1.Z + coor2.Z };
}
public static Coordinate operator -(Coordinate coor1, Coordinate coor2)
{
return new Coordinate() { X = coor1.X - coor2.X, Y = coor1.Y - coor2.Y, Z = coor1.Z - coor2.Z };
}
private static readonly Coordinate _originalCoordinate = new Coordinate { X = 0, Y = 0, Z = 0 };