using MECF.Framework.Common.CommonData.PowerSupplier;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.Common.Device.PowerSupplier
{
    public interface IPowerSupplierDevice
    {
        /// 
        /// 连接状态
        /// 
        bool Connected { get; }
        /// 
        /// 启动
        /// 
        void Start();
        /// 
        /// 停止
        /// 
        void Stop();
        /// 
        /// 设置控制模式
        /// 
        /// 
        /// 
        /// 
        /// 
        bool SetChannelPowerControl(byte channel, byte remoteControl);
        /// 
        /// 获取当前电压电流
        /// 
        /// 
        /// 
        /// 
        void GetChannelVoltageAndCurrent(byte channel);
        /// 
        /// 获取通道输出开关控制
        /// 
        /// 
        /// 
        /// 
        void GetChannelOutput(byte channel);
        /// 
        /// 获取通道电流设置数值
        /// 
        /// 
        /// 
        /// 
        void GetChannelCurrentSetting(byte channel);
        /// 
        /// 设置通道输出开关控制
        /// 
        /// 
        /// 
        /// 
        bool SetChannelOutputSwitchControl(byte channel, bool enabled);
        /// 
        /// 设置通道输出开关控制
        /// 
        /// 
        /// 
        void GetChannelPowerControl(byte channel);
        /// 
        /// 设置通道输出开关控制
        /// 
        /// 
        /// 
        /// 
        bool SetCurrentValue( byte channel, int current);
        /// 
        /// 启动步阶
        /// 
        /// 
        /// 
        /// 
        bool SetStepPeriod(byte channel, List stepPeriodDatas, int scale,int voltageUnitSetScale);
        /// 
        /// 启动步阶
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        bool StartStepPeriod(byte channel, ushort startStep, ushort endStep, ushort cycle);
        /// 
        /// 设置电源运行模式
        /// 
        /// 
        /// 
        /// 
        bool SetChannelPowerRunmodelControl(byte channel, byte model);
        /// 
        /// 设置电源运行模式
        /// 
        /// 
        /// 
        /// 
        void GetChannelPowerRunModel(byte channel);
        /// 
        /// 获取通道电源状态
        /// 
        /// 
        /// 
        /// 
        bool SetChannelPowerStatus(byte channel, byte powerstatus);
        /// 
        /// 获取通道电源状态
        /// 
        /// 
        /// 
        /// 
        void GetChannelPowerStatus(byte channel);
    }
}