AxisManager.cs 2.8 KB
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OnlineStore.DeviceLibrary
{
    public abstract class AxisManager
    {

        public bool IsShowMsg = false;
        public static AxisManager instance;
        public void Init()
        {
            bool UseHCBoard = ConfigAppSettings.GetIntValue(Setting_Init.UseHCBoard).Equals(1);

            if (UseHCBoard)
            {
                //instance = new HCAxisManager();
            }
            else
            {
                instance = new ACServerManager();
            }
        }

        public abstract bool OpenPort(string portName);
        public abstract void ColsePort(string portName);

        public abstract void CloseAllPort();

        public abstract bool ServerOnStatus(string portName, short slvAddr);
        public abstract void ClearSpeed();

        public abstract bool IsHomeMoveEnd(string portName, short slvAddr);
        public abstract void ServoOn(string portName, short slvAddr);
        public abstract void ServoOff(string portName, short slvAddr);
        public abstract void InitSlvAddr(string portName, short slvAddr);

        public abstract void InitSlvAddr(string portName, short slvAddr, int targetSpeed, int addSpeed, int delSpeed);


        public abstract void RelMove(string portName, short slvAddr, int position, int targetSpeed = 0, int ptpAcc = 0, int ptpDec = 0);


        public abstract void HomeMove(string portName, short slvAddr, int  highVel, int lowVel, int acc);
      
        public abstract void SpeedMove(string portName, short slvAddr, int speed); 
        public abstract void SuddenStop(string portName, short slvAddr);
        public abstract bool isInPosition(ConfigMoveAxis Axis, int PPosition, bool isLog = false);

        public abstract void AbsMove(string portName, short slvAddr, int targetPosition, int targetSpeed=0 , int ptpAcc=0, int ptpDec=0);
 
        public abstract void AlarmClear(string portName, short slvAddr);
        public abstract int GetTargetPosition(string portName, short slvAddr);
 
        public abstract int GetActualtPosition(string portName, short slvAddr);


        public abstract int GetAlarmStatus(string portName, short slvAddr);
        public abstract int GetBusyStatus(string portName, short slvAddr);

        public abstract int GetHomeEndStatus(string portName, short slvAddr);

        public abstract int GetHomeSingle(string portName, short slvAddr);
        /// <summary>
        /// 负极限
        /// </summary> 
        public abstract int GetLimitNegativeSingle(string portName, short slvAddr);
 
        /// <summary>
        /// 正极限
        /// </summary> 
        public abstract int GetLimitPositiveSingle(string portName, short slvAddr);
         
    }
}