| | |
| | | jar.enabled = true |
| | | |
| | | group = 'com.eternal' |
| | | version = '1.0.0' |
| | | version = '3.0.0' |
| | | |
| | | java { |
| | | sourceCompatibility = '1.8' |
| | |
| | | dependencies { |
| | | implementation fileTree(dir: '/lib', include: ['*.jar']) |
| | | |
| | | implementation 'com.eternal:com.eternal.rfid.Common:2.1.20' |
| | | implementation 'com.eternal:app-params-config:1.1.16' |
| | | implementation 'com.eternal:com.eternal.rfid.Common:3.0.1' |
| | | implementation 'com.eternal:ops-console:2.0.0' |
| | | |
| | | implementation 'org.springframework.boot:spring-boot-starter-web' |
| | | implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' |
| | |
| | | |
| | | UF3RFIDReader uf3RFIDReader = readers.get(currentRunIndex.get()); |
| | | if (uf3RFIDReader.isOnline()) { |
| | | log.debug("ZebraReader<ip:{}> is online", uf3RFIDReader.getIp()); |
| | | log.debug("UF3Reader<ip:{}> is online", uf3RFIDReader.getIp()); |
| | | return; |
| | | } |
| | | |
| | |
| | | |
| | | // 超过最大尝试次数,切换下一个读写器 |
| | | if (tryTime.incrementAndGet() > maxTryTime) { |
| | | log.warn("The ZebraReader<{}> exceeds the maximum attempts number<{}>, switch to the next reader", uf3RFIDReader.getIp(), maxTryTime); |
| | | log.warn("The UF3Reader<{}> exceeds the maximum attempts number<{}>, switch to the next reader", uf3RFIDReader.getIp(), maxTryTime); |
| | | |
| | | // 重置尝试次数 |
| | | tryTime.set(0); |
| | |
| | | package com.eternal.rfid.params; |
| | | |
| | | import com.eternal.config.param.annotation.Module; |
| | | import com.eternal.config.param.annotation.Param; |
| | | import com.eternal.config.dynamic.annotation.Module; |
| | | import com.eternal.config.dynamic.annotation.Param; |
| | | import com.eternal.config.dynamic.annotation.RequireRole; |
| | | import lombok.Data; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | @Component |
| | | @Data |
| | | @Module(type = "东集读写器",name = "东集写器配置参数") |
| | | @Module(groups = "东集读写器",name = "东集写器配置参数") |
| | | public class UF3ReaderConfig { |
| | | @Param(key = "component.reader.ip", defaultValue = "192.168.0.250", name = "读写器IP", fixed = true, description = "读写器IP") |
| | | @Param(key = "component.reader.ip", defaultValue = "192.168.0.250", name = "读写器IP", requiresRestart = true, description = "读写器IP") |
| | | private String ip; |
| | | |
| | | @Param(key = "component.reader.readerKey", defaultValue = "uf3-reader", name = "读写器KEY", fixed = true, description = "读写器KEY") |
| | | @Param(key = "component.reader.readerKey", defaultValue = "uf3-reader", name = "读写器KEY", requiresRestart = true, description = "读写器KEY") |
| | | private String readerKey; |
| | | |
| | | @Param(key = "component.reader.readerName", defaultValue = "东集读写器", name = "读写器名称", fixed = true, description = "读写器名称") |
| | | @Param(key = "component.reader.readerName", defaultValue = "东集读写器", name = "读写器名称", requiresRestart = true, description = "读写器名称") |
| | | private String readerName; |
| | | |
| | | @Param(key = "component.reader.port", defaultValue = "27011", name = "端口", fixed = true, description = "读写器端口") |
| | | @Param(key = "component.reader.port", defaultValue = "27011", name = "端口", requiresRestart = true, description = "读写器端口") |
| | | private int port; |
| | | |
| | | @Param(key = "component.reader.readType", defaultValue = "4", name = "读写器类型", fixed = true, description = "读写器类型,当前连接的是几口设备,例如4,连的是4天线口设备;16表示连接的16天线口设备") |
| | | @Param(key = "component.reader.readType", defaultValue = "4", name = "读写器类型", requiresRestart = true, description = "读写器类型,当前连接的是几口设备,例如4,连的是4天线口设备;16表示连接的16天线口设备") |
| | | private int readType; |
| | | |
| | | @Param(key = "component.reader.readLogOn_Off", defaultValue = "0", name = "日志开关", fixed = true, description = "日志开关。0-关;1-开") |
| | | @RequireRole({"maintain"}) |
| | | @Param(key = "component.reader.readLogOn_Off", defaultValue = "0", name = "日志开关", requiresRestart = true, description = "日志开关。0-关;1-开") |
| | | private int readLogOn_Off; |
| | | |
| | | @Param(key = "component.reader.antennaPower", defaultValue = "22,22,22,26", name = "读写器功率", fixed = true, description = "读写器功率") |
| | | @RequireRole({"maintain"}) |
| | | @Param(key = "component.reader.antennaPower", defaultValue = "22,22,22,26", name = "读写器功率", requiresRestart = true, description = "读写器功率") |
| | | private String antennasPower; |
| | | |
| | | @Param(key = "component.rfid.reader.mode", defaultValue = "epc", name = "读模式", description = "epc,user,tid") |
| | |
| | | private int readerType; |
| | | private int readerLogOn_Off; |
| | | private String mode; |
| | | private boolean isConnect = false; |
| | | |
| | | @Setter |
| | | private Consumer<ApplicationEvent> eventConsumer; |
| | |
| | | |
| | | |
| | | public void start() { |
| | | log.info("ip:{},port:{},readerType:{},log:{}", ip, port, readerType, readerLogOn_Off); |
| | | log.info("ip:{},port:{},readerType:{},log:{}", this.ip, this.port, this.readerType, this.readerLogOn_Off); |
| | | reader = new CReader(ip, port, readerType, readerLogOn_Off); |
| | | |
| | | int conn = reader.Connect(); |
| | | if (conn != 0) { |
| | | log.error("连接UF3设备失败,返回码={}", conn); |
| | | this.isConnect = false; |
| | | return; |
| | | } |
| | | log.info("UF3 Reader设备连接成功:{}:{}", ip, props.getPort()); |
| | | |
| | | this.isConnect = true; |
| | | //0x00关闭蜂鸣器,0x01打开蜂鸣器 |
| | | reader.SetBeepNotification(0x00); |
| | | |
| | | ReaderParameter param = new ReaderParameter(); |
| | | try { |
| | | param.SetAntenna(0x09); |
| | | param.SetSession(0); |
| | | param.SetReadType(0); |
| | | reader.SetInventoryParameter(param); |
| | | } catch (Exception e) { |
| | |
| | | } catch (Exception e) { |
| | | log.warn("断开连接异常:{}", e.getMessage()); |
| | | } |
| | | this.isConnect = false; |
| | | log.info("已停止并断开UF3设备连接"); |
| | | } |
| | | } |
| | | |
| | | public boolean isOnline() { |
| | | return reader != null; |
| | | return reader != null && isConnect; |
| | | } |
| | | |
| | | @Override |