RfidHardWareApiDecisior.java 1.15 KB
package cn.csbr.app.hardware;

import cn.csbr.app.hardware.HFbwcabinet.HFHardWaredll;
import cn.csbr.app.hardware.HFbwcabinet.HFbwcabinetApi;
import cn.csbr.app.hardware.simulator.RfidHardWareApiSimulator;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * rfid硬件接口访问工厂类.
 *
 * @author fenglinz
 * @since 2018-10-23
 */
@Component
public class RfidHardWareApiDecisior {

    /** rfid运行模式(test:测试模式) */
    @Value("${rfid.mode}")
    private String rfidMode = "test";

    /** rfid硬件接口模拟器 */
    @Autowired
    private RfidHardWareApiSimulator simulator;

    @Autowired
    private HFHardWaredll hfHardWaredll;
    /**
     * 获取硬件接口交互处理对象
     * @return 硬件接口交互处理对象
     */
    public RfidHardWareApi instance() {
        if ("test".equalsIgnoreCase(this.rfidMode)) {
            return this.simulator;
        } else if("HFtest".equalsIgnoreCase(this.rfidMode)) {
            return this.hfHardWaredll;
        }

        return HardWareDll.instance;
    }
}