diff --git a/web/src/main/java/com/zhehekeji/web/controller/TestController.java b/web/src/main/java/com/zhehekeji/web/controller/TestController.java index 458960d..ba46e1e 100644 --- a/web/src/main/java/com/zhehekeji/web/controller/TestController.java +++ b/web/src/main/java/com/zhehekeji/web/controller/TestController.java @@ -1,17 +1,26 @@ package com.zhehekeji.web.controller; import com.zhehekeji.core.pojo.Result; +import com.zhehekeji.web.entity.RFID; +import com.zhehekeji.web.entity.Street; +import com.zhehekeji.web.service.RFID.RFIDMap; import com.zhehekeji.web.service.RFID.RFIDSocket; +import com.zhehekeji.web.service.RFIDService; +import com.zhehekeji.web.service.StreetService; import com.zhehekeji.web.service.TestService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.HashSet; +import java.util.Set; @Api(value = "TestController",tags = "扫码测试") @RequestMapping("/test") @RestController +@Slf4j public class TestController { @Resource @@ -47,4 +56,67 @@ public class TestController { return Result.success(); } + @Resource + StreetService streetService; + @Resource + RFIDService rfidService; + @ApiOperation("rfid") + @GetMapping("/rfid") + public Result> rfid(@PathVariable String streetId){ + Street street = streetService.getStreetByPlcId(streetId); + + RFIDSocket rfidSocket = new RFIDSocket(street.getPlcIp(), 4001); + rfidSocket.startCheck(1,true); + try { + Thread.sleep(1000*15); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + rfidSocket.stopCheck(); + System.out.println(rfidSocket.getTags()); + return Result.success(rfidSocket.getTags()); + } + + @ApiOperation("rfidNew") + @GetMapping("/rfidNew") + public Result> rfidNew(@PathVariable String streetId) { + Street street = streetService.getStreetByPlcId(streetId); + if (street != null) { + //rfid不分左右,rfid使用同一ip和端口,依靠传递字符调整方向 + RFID rfid = rfidService.getRFIDByPlc(street.getId(), null); + if (rfid != null) { + + RFIDStart(rfid.getIp(), rfid.getPort(), street.getId(), 1); + try { + Thread.sleep(1000*15); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + Set tags = RFIDStop(street); + return Result.success(tags); + } + } + + return Result.success(new HashSet<>()); + } + + public void RFIDStart(String ip, Integer port, Integer streetId, Integer direction) { + RFIDSocket rfidSocket = new RFIDSocket(ip, port); + log.info("rfid调用,ip:" + ip + ";port:" + port); + rfidSocket.startCheck(direction,false); + RFIDMap.put(streetId, rfidSocket); + } + + public Set RFIDStop(Street street) { + RFIDSocket rfidSocket = RFIDMap.get(street.getId()); + Set tags = null; + if (rfidSocket != null) { + tags = rfidSocket.getTags(); + log.info("tags:{}", tags); + rfidSocket.stopCheck(); + RFIDMap.remove(street.getId()); + } + return tags; + } + }