IOManager.cs 3.8 KB
using DeviceLibrary;
using OnlineStore.Common;
using OnlineStore.DeviceLibrary.IO;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace DeviceLibrary
{
    using StoreManager = RobotManage;
    public class IOManager
    {
        static I_IOManager instance = null;

        static IOManager()
        {
            instance = new HCIOManager();
        }

        public static void IOMove(string ioType, IO_VALUE ioValue)
        {
            if (StoreManager.Config.DOList.ContainsKey(ioType))
            {
                ConfigIO configIo = StoreManager.Config.DOList[ioType];
                instance.WriteSingleDO(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr(), ioValue);
                //Thread.Sleep(60);
            }
            else
            {
                LogUtil.error("没有DO=" + ioType);
            }
        }

        public static IO_VALUE IOValue(string ioType, object o = null)
        {
            IO_VALUE ioValue = IO_VALUE.LOW;
            if (StoreManager.Config.DIList.ContainsKey(ioType))
            {
                ConfigIO configIo = StoreManager.Config.DIList[ioType];
                ioValue = instance.GetDIValue(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr());
                //UpdateDoValue(ioType, ioValue);
            }
            else if (StoreManager.Config.DOList.ContainsKey(ioType))
            {
                ConfigIO configIo = StoreManager.Config.DOList[ioType];
                ioValue = instance.GetDOValue(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr());
            }
            else
            {
                LogUtil.error("没有DO=" + ioType);
            }
            return ioValue;
        }
        public static IO_VALUE DOValue(string ioType)
        {
            IO_VALUE ioValue = IO_VALUE.LOW;
            if (StoreManager.Config.DOList.ContainsKey(ioType))
            {
                ConfigIO configIo = StoreManager.Config.DOList[ioType];
                ioValue = instance.GetDOValue(configIo.DeviceName, configIo.SlaveID, configIo.GetIOAddr());
            }
            else
            {
                LogUtil.error("没有DO=" + ioType);
            }
            return ioValue;
        }

        public static bool ConnectionIOList(List<string> dIODeviceNameList)
        {
            return instance.ConnectionIOList(dIODeviceNameList);
        }

        static void ReadAllDI(string deviceName, byte slaveId)
        {
            instance.ReadAllDI(deviceName, slaveId);
        }

        static void ReadAllDO(string deviceName, byte slaveId)
        {
            instance.ReadAllDO(deviceName, slaveId);
        }

        public static void WriteSingleDO(string deviceName, byte slaveId, ushort index, IO_VALUE value, int time)
        {
            instance.WriteSingleDO(deviceName, slaveId, index, value, time);
        }

        public static void WriteSingleDO(string deviceName, byte slaveId, ushort index, IO_VALUE value)
        {
            instance.WriteSingleDO(deviceName, slaveId, index, value);
        }
        public static IO_VALUE GetDIValue(string deviceName, byte slaveID, ushort v)
        {
            return instance.GetDIValue(deviceName, slaveID, v);
        }
        public static IO_VALUE GetDOValue(string deviceName, byte slaveID, ushort v)
        {
            return instance.GetDOValue(deviceName, slaveID, v);
        }
        public static IO_VALUE GetIOValue(ConfigIO configIO)
        {
            return instance.GetIOValue(configIO);
        }

        public static void CloseAllDO()
        {
            instance.CloseAllDO();
        }


        public static void CloseAllConnection()
        {
            instance.CloseAllConnection();
        }

    }
}