IOBase.cs 1.8 KB
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSA_V.Common;

namespace TSA_V.DeviceLibrary
{
    public abstract class IOBase
    {
        public   ushort DIStartAddress = 200;
        public   ushort DoStartAddress = 100;
        public static ushort DefaultDILength = 16;
        public static ushort DefaultDOLength = 16;

        public static IOBase instance = null;
        public static byte DefualtSlaveID = 0x00;
        public abstract void ConnectionKND(List<string> dIODeviceNameList);


        public static void Init()
        {
            int isAIOBox = ConfigAppSettings.GetIntValue(Setting_Init.UseAIOBOX);
            if (isAIOBox==1)
            {
                instance = new AIOBOXManager();
            }
            else if (isAIOBox == 2)
            {
                instance = new NanjingSDotIO();
            }
            else
            {
                instance = new KNDManager();
            }
        }
        public abstract void ReadAllDI(string deviceName, byte slaveId); 

        public abstract void ReadAllDO(string deviceName, byte slaveId);
        public abstract void ConnectionIP(string kNDIP, ushort kNDPort);
        public abstract void WriteSingleDO(string deviceName, byte slaveId, ushort index, IO_VALUE value, int time);
        public abstract bool IsConnection(string kNDIP);
        public abstract void WriteSingleDO(string deviceName, byte slaveId, ushort index, IO_VALUE value);


        public abstract IO_VALUE GetDIValue(string deviceName, byte slaveID, ushort v);


        public abstract IO_VALUE GetDOValue(string deviceName, byte slaveID, ushort v);
         

        public abstract IO_VALUE GetIOValue(ConfigIO configIO);

        public abstract void CloseAllDO();


        public abstract void CloseAllConnection();

    }
}