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

namespace DeviceLibrary
{
    public class AxisManager
    {

        public bool IsShowMsg = false;
        static IAxisManager instance;
        public static bool UseHCBoard = true;
        static AxisManager() {
            instance = new HCAxisManager();
        }

        public static bool IsServeoOn(string portName, short slvAddr) {
            return instance.IsServeoOn(portName, slvAddr);
        }

        public static bool OpenCard() {
            return instance.OpenCard();
        }
        public bool CloseCard() {
            return instance.CloseCard();
        }

        public static bool IsHomeMoveEnd(string portName, short slvAddr) {
            return instance.IsHomeMoveEnd(portName, slvAddr);
        }

        public static bool AbsMoveIsEnd(string portName, short axisNo, int targetPosition, int canErrorCount, out bool countError)
        {
            return instance.AbsMoveIsEnd(portName, axisNo, targetPosition, canErrorCount, out countError);
        }
        public static void ServoOn(string portName, short slvAddr)
        {
             instance.ServoOn(portName, slvAddr);
        }
        public static void ServoOff(string portName, short slvAddr)
        {
            instance.ServoOff(portName, slvAddr);
        }
        public static void RelMove(string portName, short slvAddr, int position, int targetSpeed  , int ptpAcc , int ptpDec  )
        {
            instance.RelMove(portName, slvAddr, position, targetSpeed, ptpAcc, ptpDec);
        }
        public static void HomeMove(string portName, short slvAddr, int highVel, int lowVel, int acc)
        {
            instance.HomeMove(portName, slvAddr, highVel, lowVel, acc);
        }

        public static void SpeedMove(string portName, short slvAddr, int speed,int acc,int dec)
        {
            instance.SpeedMove(portName, slvAddr, speed,acc,dec);
        }
        public static void SuddenStop(string portName, short slvAddr)
        {
            instance.SuddenStop(portName, slvAddr);
        }
        public static bool isInPosition(string portName, short slvAddr, int PPosition, int canErrorCount, bool isLog = false)
        {
            return instance.isInPosition(portName, slvAddr, PPosition, canErrorCount, isLog);
        }

        public static void AbsMove(string portName, short slvAddr, int targetPosition, int targetSpeed  , int ptpAcc , int ptpDec )
        {
            instance.AbsMove(portName, slvAddr, targetPosition, targetSpeed, ptpAcc, ptpDec);
        }

        public static void AlarmClear(string portName, short slvAddr)
        {
            instance.AlarmClear(portName, slvAddr);
        }
        public static int GetTargetPosition(string portName, short slvAddr)
        {
            return instance.GetTargetPosition(portName, slvAddr);
        }

        public static int GetActualtPosition(string portName, short slvAddr)
        {
            return instance.GetActualtPosition(portName, slvAddr);
        }
        public static int AxisStsINP(string portName, short slvAddr)
        {
            return instance.AxisStsINP(portName, slvAddr);
        }
        public static int GetAlarmStatus(string portName, short slvAddr)
        {
            return instance.GetAlarmStatus(portName, slvAddr);
        }
        public static int GetBusyStatus(string portName, short slvAddr)
        {
            return instance.GetBusyStatus(portName, slvAddr);
        }

        public static int GetHomeEndStatus(string portName, short slvAddr)
        {
            return instance.GetHomeEndStatus(portName, slvAddr);
        }

        public static int GetHomeSingle(string portName, short slvAddr)
        {
            return instance.GetHomeSingle(portName, slvAddr);
        }
        /// <summary>
        /// 负极限
        /// </summary> 
        public static int GetLimitNegativeSingle(string portName, short slvAddr)
        {
            return instance.GetLimitNegativeSingle(portName, slvAddr);
        }

        /// <summary>
        /// 正极限
        /// </summary> 
        public static int GetLimitPositiveSingle(string portName, short slvAddr)
        {
            return instance.GetLimitPositiveSingle(portName, slvAddr);
        }

        public static short GetErrorCode(string portName, short slvAddr)
        {
            return instance.GetErrorCode(portName, slvAddr);
        }

        public static void SuddenStop(ConfigMoveAxis configMoveAxis)
        {
            SuddenStop(configMoveAxis.DeviceName, configMoveAxis.GetAxisValue());
        }
        public static int GetActualtPosition(ConfigMoveAxis configMoveAxis) {
            return GetActualtPosition(configMoveAxis.DeviceName, configMoveAxis.GetAxisValue());
        }

        public static bool ServerOnStatus(string portName, short slvAddr) {
            return IsServeoOn(portName, slvAddr);
        }
        public static bool isInPosition(ConfigMoveAxis configMoveAxis, int PPosition, bool isLog = false) {
            return isInPosition(configMoveAxis.DeviceName, configMoveAxis.GetAxisValue(), PPosition, configMoveAxis.CanErrorCountMax, isLog);
        }
    }
}