123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- using StageController.M3H;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- #if true
- namespace StageController
- {
- /// <summary>
- /// 4.1 电脑控制电机按步运行指令
- /// </summary>
- public class CommandMoveByStep : CommandBase
- {
- private M3HAxisType m_axis;
- private int m_steps;
- private string m_speed;
- public CommandMoveByStep(M3HAxisType axis, int steps, int speed)
- {
- m_axis = axis;
- m_steps = steps;
- Speed = speed;
- }
- public int Speed
- {
- set
- {
- if (value.ToString().Length > 3)
- {
- m_speed = "999";
- return;
- }
- m_speed = "000".Substring(0, 3 - value.ToString().Length) + value;
- }
- }
- public override string Make()
- {
- return buildCmd() + "!";
- }
- public override bool Parse(string response)
- {
- string tmpRes = "@" + Enum.GetName(typeof(M3HAxisType), m_axis) + m_speed;
- if (response.Length == 15 && response.StartsWith(tmpRes))
- {
- return true;
- }
- return false;
- }
- private string buildCmd()
- {
- string mark = "+";
- int tmpStep = m_steps;
- if (m_steps < 0)
- {
- mark = "-";
- tmpStep = -m_steps;
- }
- string stepStr = tmpStep.ToString("D8");
- return "@" + Enum.GetName(typeof(M3HAxisType), m_axis) + m_speed + mark + stepStr;
- }
- }
- }
- #else
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace StageController
- {
- /// <summary>
- /// 4.1 电脑控制电机按步运行指令
- /// </summary>
- public class CommandMoveByStep : CommandBase
- {
- private Axis m_axis;
- private int m_steps;
- private string m_speed;
- public CommandMoveByStep(Axis axis, int steps)
- {
- m_axis = axis;
- m_steps = steps;
- m_speed = "000";
- }
- public CommandMoveByStep(Axis axis, double steppingAccuracyMicron, double distanceMicron)
- {
- m_axis = axis;
- m_steps = (int)(distanceMicron / steppingAccuracyMicron);
- m_speed = "000";
- }
- public int Steps
- {
- get
- {
- return m_steps;
- }
- }
- public Axis Axis
- {
- get
- {
- return m_axis;
- }
- }
- public int Speed
- {
- set
- {
- if(value.ToString().Length > 3)
- {
- m_speed = "999";
- return;
- }
- m_speed = "000".Substring(0, 3 - value.ToString().Length) + value;
- }
- }
- public override string Make()
- {
- return buildCmd() +"WW!";
- }
- public override bool Parse(string response)
- {
- string tmpRes = "@" + Enum.GetName(typeof(Axis), m_axis) + m_speed ;
- if (response.Length==15 && response.StartsWith(tmpRes))
- {
- return true;
- }
- return false;
- }
- private string buildCmd()
- {
- string mark = "+";
- int tmpStep = m_steps;
- if (m_steps < 0)
- {
- mark = "-";
- tmpStep = -m_steps;
- }
- string stepStr = tmpStep.ToString();
- return "@" + Enum.GetName(typeof(Axis), m_axis) + m_speed + mark + "00000000".Substring(0, 8 - stepStr.Length) + stepStr;
- }
- }
- }
- #endif
|