package org.nl.acs.device_driver.tianneng.site;

import org.nl.acs.device.device_driver.standard_inspect.ItemDto;
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.defination.OpcDeviceDriverDefination;
import org.springframework.stereotype.Service;

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

/**
 * 检测站点驱动定义
 * 说明：该站点为普通带光电检测站点
 */
@Service
public class SiteDefination implements OpcDeviceDriverDefination {
    @Override
    public String getDriverCode() {
        return "tianneng_site";
    }

    @Override
    public String getDriverName() {
        return "天能-检测站点";
    }

    @Override
    public String getDriverDescription() {
        return "天能-检测站点";
    }

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

    }

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

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

    @Override
    public List<ItemDto> getReadableItemDtos() {
        return ItemProtocol.getReadableItemDtos();
    }


    public List<ItemDto> getReadableItemDtos1() {
        return ItemProtocol.getReadableItemDtos1();
    }

    public List<ItemDto> getReadableItemDtos2() {
        return ItemProtocol.getReadableItemDtos2();
    }

    public List<ItemDto> getReadableItemDtos3() {
        return ItemProtocol.getReadableItemDtos3();
    }

    public List<ItemDto> getReadableItemDtos4() {
        return ItemProtocol.getReadableItemDtos4();
    }



    @Override
    public List<ItemDto> getWriteableItemDtos() {
        return ItemProtocol.getWriteableItemDtos();
    }


    public List<ItemDto> getWriteableItemDtos1() {
        return ItemProtocol.getWriteableItemDtos1();
    }


    public List<ItemDto> getWriteableItemDtos2() {
        return ItemProtocol.getWriteableItemDtos2();
    }


    public List<ItemDto> getWriteableItemDtos3() {
        return ItemProtocol.getWriteableItemDtos3();
    }



}
