package org.nl.acs.device_driver.basedriver.agv.ndctwo;

import org.nl.acs.device.domain.Device;
import org.nl.acs.device.enums.DeviceType;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.DeviceDriverDefination;
import org.springframework.stereotype.Service;

import java.util.LinkedList;
import java.util.List;

/**
 * NDC双工位AGV
 */
@Service
public class AgvNdcTwoDefination implements DeviceDriverDefination {
    @Override
    public String getDriverCode() {
        return "agv_ndc_two";
    }

    @Override
    public String getDriverName() {
        return "NDC双工位AGV";
    }

    @Override
    public String getDriverDescription() {
        return "NDC双工位AGV";
    }

    @Override
    public DeviceDriver getDriverInstance(Device device) {
        return (new AgvNdcTwoDeviceDriver()).setDevice(device).setDriverDefination(this);

    }

    @Override
    public Class<? extends DeviceDriver> getDeviceDriverType() {
        return AgvNdcTwoDeviceDriver.class;
    }

    @Override
    public List<DeviceType> getFitDeviceTypes() {
        List<DeviceType> types = new LinkedList();
        types.add(DeviceType.agv);
        return types;
    }
}
