提交 7475f0ff authored 作者: zhoushaopan's avatar zhoushaopan

feat(增加修改ip接口): 增加修改ip接口

释放读写机资源
上级 0fc9fda3
......@@ -42,12 +42,20 @@
<artifactId>socket</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.zebra</groupId>-->
<!-- <artifactId>sdk1</artifactId>-->
<!-- <version>1.0.0</version>-->
<!-- <scope>system</scope>-->
<!-- <systemPath>${project.basedir}/src/main/resources/lib/ModuleAPI_Java_2.2.0.0.jar</systemPath>-->
<!-- </dependency>-->
<dependency>
<groupId>com.zebra</groupId>
<artifactId>sdk1</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/ModuleAPI_Java_2.2.0.0.jar</systemPath>
<systemPath>${project.basedir}/src/main/resources/lib/ModuleAPI_J.jar</systemPath>
</dependency>
</dependencies>
......
package com.tykj.dev.readmachine.devreadmachine.Entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.util.Date;
/**
* @author zsp
* @create 2021/12/3 10:24
*/
@Data
@Entity
@EntityListeners(AuditingEntityListener.class)
@SQLDelete(sql = "update read_machine_ip set delete_tag = 1 where id = ?")
@Where(clause = "delete_tag = 0")
@ApiModel("读写机ip表")
public class ReadMachineIp {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@ApiModelProperty(value = "ip")
private String ip;
@ApiModelProperty(value = "子网掩码")
private String mask;
@ApiModelProperty(value = "网关")
private String gateway;
@ApiModelProperty(value = "读写机名称")
private String readMachineName;
@ApiModelProperty(value = "删除标志位")
private Integer deleteTag = 0;
}
......@@ -12,10 +12,11 @@ import com.tykj.dev.readmachine.devreadmachine.Entity.ReadMachineBill;
import com.tykj.dev.readmachine.devreadmachine.Entity.ReadMachineLibrary;
import com.tykj.dev.readmachine.devreadmachine.Vo.*;
import com.tykj.dev.readmachine.devreadmachine.service.ReadMachineBillService;
import com.tykj.dev.readmachine.devreadmachine.service.ReadMachineIpService;
import com.tykj.dev.readmachine.devreadmachine.service.ReadMachineLibraryService;
import com.tykj.dev.readmachine.devreadmachine.socket.ReadWebSocket;
import com.tykj.dev.readmachine.devreadmachine.toBack.BackReadDetailVo;
import com.tykj.dev.rfid.timeTask.ReadUtils;
import com.tykj.dev.readmachine.devreadmachine.util.ReadUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
......@@ -54,6 +55,9 @@ public class ReadMachineBillController {
@Resource
private UserCache userCache;
@Autowired
private ReadMachineIpService readMachineIpService;
@Autowired
private ReadMachineLibraryService readMachineLibraryService;
......@@ -73,15 +77,15 @@ public class ReadMachineBillController {
// @Autowired
// private ReadUtils readUtils;
static{
//增加一个全局变量,只要加载过这个so就不再执行,除非进程重启才会清掉该变量。
if(System.getProperty("myapplibrary")==null){
log.info("myapplibrary:{}",System.getProperty("myapplibrary"));
System.setProperty("myapplibrary", "libModuleAPIJni.so");
// System.loadLibrary("libModuleAPIJni");
System.load("/usr/lib/libModuleAPIJni.so");
}
}
// static{
// //增加一个全局变量,只要加载过这个so就不再执行,除非进程重启才会清掉该变量。
// if(System.getProperty("myapplibrary")==null){
// log.info("myapplibrary:{}",System.getProperty("myapplibrary"));
// System.setProperty("myapplibrary", "libModuleAPIJni.so");
//// System.loadLibrary("libModuleAPIJni");
// System.load("/usr/lib/libModuleAPIJni.so");
// }
// }
@ApiOperation(value = "保存盘存接口", notes = "保存盘存接口")
@PostMapping(value = "/addReadMachineBill")
......@@ -161,8 +165,11 @@ public class ReadMachineBillController {
*/
public List<DeviceLibrary> startDeviceDetail(){
ReadUtils readUtils = new ReadUtils();
//先获取ip1
//TODO 后续考虑做成ip的选择,目前先写死
String ip = readMachineIpService.findById(1).getIp();
//先开启
readUtils.testinitreader();
readUtils.testinitreader(ip);
while (localFlag){
//开始盘存
List<String> rfids = readUtils.testinventory1();
......
package com.tykj.dev.readmachine.devreadmachine.controller;
import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.readmachine.devreadmachine.Entity.ReadMachineIp;
import com.tykj.dev.readmachine.devreadmachine.service.ReadMachineIpService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author zsp
* @create 2021/12/3 10:59
*/
@RestController
@RequestMapping(value = "/readIp")
@AutoDocument
@Api(tags = "修改ip", description = "修改ip")
@Slf4j
public class ReadMachineIpController {
@Autowired
private ReadMachineIpService readMachineIpService;
@ApiOperation(value = "修改ip的接口", notes = "修改ip的接口")
@PostMapping(value = "/updateIp")
@Transactional(rollbackFor = Exception.class)
public ResponseEntity<ReadMachineIp> updateIp(@RequestBody ReadMachineIp readMachineIp) {
ReadMachineIp readMachineIp1 = readMachineIpService.updateIp(readMachineIp);
return ResponseEntity.ok(readMachineIp1);
}
@ApiOperation(value = "新增ip接口", notes = "新增ip接口")
@PostMapping(value = "/addIp")
@Transactional(rollbackFor = Exception.class)
public ResponseEntity<String> addIp(@RequestBody ReadMachineIp readMachineIp) {
//先判断名称是否存在
List<String> names =
readMachineIpService.findAll().stream().map(ReadMachineIp::getReadMachineName).collect(Collectors.toList());
if (!names.isEmpty()){
if (names.contains(readMachineIp.getReadMachineName())){
throw new ApiException("该名称已经存在,请更换名称");
}
}
readMachineIpService.addIp(readMachineIp);
return ResponseEntity.ok("新增ip成功");
}
@ApiOperation(value = "查询ip列表", notes = "查询ip列表")
@PostMapping(value = "/findAllIp")
@Transactional(rollbackFor = Exception.class)
public ResponseEntity<List<ReadMachineIp>> findAllIp() {
List<ReadMachineIp> readMachineIpList = readMachineIpService.findAll();
return ResponseEntity.ok(readMachineIpList);
}
@ApiOperation(value = "选中要使用的读写机", notes = "选中要使用的读写机")
@GetMapping(value = "/selectIp")
@Transactional(rollbackFor = Exception.class)
public ResponseEntity<ReadMachineIp> selectIp(Integer id) {
ReadMachineIp readMachineIp = readMachineIpService.findById(id);
return ResponseEntity.ok(readMachineIp);
}
}
package com.tykj.dev.readmachine.devreadmachine.repository;
import com.tykj.dev.readmachine.devreadmachine.Entity.ReadMachineIp;
import com.tykj.dev.readmachine.devreadmachine.Entity.ReadMachineLibrary;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
/**
* @author zsp
* @create 2021/12/3 10:52
*/
public interface ReadMachineIpDao extends JpaRepository<ReadMachineIp,Integer>, JpaSpecificationExecutor<ReadMachineIp> {
}
package com.tykj.dev.readmachine.devreadmachine.service;
import com.tykj.dev.readmachine.devreadmachine.Entity.ReadMachineIp;
import java.util.List;
/**
* @author zsp
* @create 2021/12/3 10:59
*/
public interface ReadMachineIpService {
/**
* add
* @param machineIp addIp
*/
void addIp(ReadMachineIp machineIp);
/**
* update
* @param machineIp updateIp
*/
ReadMachineIp updateIp(ReadMachineIp machineIp);
/**
* 根据id查询
*/
ReadMachineIp findById(Integer id);
/**
* 查询全部
*/
List<ReadMachineIp> findAll();
void deleteById(Integer id);
ReadMachineIp findByName(String name);
}
package com.tykj.dev.readmachine.devreadmachine.service.impl;
import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications;
import com.tykj.dev.device.library.repository.DeviceLibraryPositionDao;
import com.tykj.dev.device.library.service.DeviceLibraryPositionService;
import com.tykj.dev.device.library.subject.domin.DeviceLibraryPosition;
import com.tykj.dev.device.user.util.UserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author zsp
* @create 2021/12/13 16:23
*/
@Service
public class DeviceLibraryPositionServiceImpl implements DeviceLibraryPositionService {
@Autowired
private UserUtils userUtils;
@Autowired
private DeviceLibraryPositionDao deviceLibraryPositionDao;
@Override
public void addDeviceLibraryPosition(DeviceLibraryPosition deviceLibraryPosition) {
deviceLibraryPositionDao.save(deviceLibraryPosition);
}
@Override
public void updateDeviceLibraryPosition(DeviceLibraryPosition deviceLibraryPosition) {
deviceLibraryPositionDao.save(deviceLibraryPosition);
}
@Override
public void batchDeviceLibraryPositions(List<DeviceLibraryPosition> deviceLibraryPositions) {
deviceLibraryPositionDao.saveAll(deviceLibraryPositions);
}
@Override
public List<DeviceLibraryPosition> findByStorageLocationId(Integer StorageLocationId) {
return deviceLibraryPositionDao.findAllByStorageLocationId(StorageLocationId);
}
}
package com.tykj.dev.readmachine.devreadmachine.service.impl;
import com.tykj.dev.readmachine.devreadmachine.Entity.ReadMachineIp;
import com.tykj.dev.readmachine.devreadmachine.repository.ReadMachineIpDao;
import com.tykj.dev.readmachine.devreadmachine.service.ReadMachineIpService;
import com.tykj.dev.readmachine.devreadmachine.util.ReadUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
/**
* @author zsp
* @create 2021/12/14 13:18
*/
@Service
@Slf4j
public class ReadMachineIpServiceImpl implements ReadMachineIpService {
@Autowired
private ReadMachineIpDao readMachineIpDao;
@Override
public void addIp(ReadMachineIp machineIp) {
readMachineIpDao.save(machineIp);
}
@Override
public ReadMachineIp updateIp(ReadMachineIp machineIp) {
ReadUtils readUtils = new ReadUtils();
readUtils.testsetip(machineIp.getIp(),machineIp.getMask(), machineIp.getGateway());
log.info("读写机ip修改成功");
return readMachineIpDao.save(machineIp);
}
@Override
public ReadMachineIp findById(Integer id) {
Optional<ReadMachineIp> re = readMachineIpDao.findById(id);
ReadMachineIp readMachineIp = new ReadMachineIp();
if (re.isPresent()){
readMachineIp = re.get();
}
return readMachineIp;
}
@Override
public List<ReadMachineIp> findAll() {
return readMachineIpDao.findAll();
}
@Override
public void deleteById(Integer id) {
readMachineIpDao.deleteById(id);
}
@Override
public ReadMachineIp findByName(String name) {
return null;
}
}
......@@ -3,8 +3,12 @@ package com.tykj.dev.readmachine.devreadmachine.util;
import com.uhf.api.cls.Reader;
import com.uhf.api.cls.Reader.*;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
@Data
@Slf4j
public class ReadUtils {
/**
......@@ -12,27 +16,29 @@ public class ReadUtils {
*/
int AntCount=1;
String ReaderAddr="192.168.101.201";
//读写机ip
//公司测试网段ip
// String ReaderAddr="192.168.101.201";
//公司测试读写机实验室ip
// String ReaderAddr="192.168.0.201";
//公司正式读写机实验室ip
String ReaderAddr;
Reader Jreader;
public ReadUtils()
{
public ReadUtils(){
Jreader=new Reader();
}
public void testtran(){
byte[] hex=new byte[]{(byte) 0xA2,(byte) 0xC8,(byte) 0xD4,(byte) 0xE5};
int len=4;
char[] str=new char[4*2];
Jreader.Hex2Str(hex, len, str);
Jreader.Hex2Str(hex, len, str);
String hstr = "";
for(int i=0;i<8;i++)
hstr+=(char)str[i];
hstr+=(char)str[i];
System.out.println("test tohexstr:"+hstr);
String buf="0011110000001111";
byte[] binarybuf=new byte[2];
String buf2="abcdef08";
byte[] hexbuf=new byte[4];
......@@ -40,13 +46,13 @@ public class ReadUtils {
System.out.println("test binary:");
for(int i=0;i<binarybuf.length;i++)
System.out.println(binarybuf[i]);
Jreader.Str2Hex(buf2, 8, hexbuf);
System.out.println("test hex:");
for(int i=0;i<hexbuf.length;i++)
System.out.println(hexbuf[i]);
}
public void testpsam(){
int soltid=1;
int coslen=2;
......@@ -54,11 +60,11 @@ public class ReadUtils {
int[] cosresplen=new int[1];
byte[] cosresp=new byte[cos.length+13];
byte[] errcode=new byte[4];
READER_ERR er=Jreader.PsamTransceiver(soltid, coslen, cos, cosresplen, cosresp,
errcode, (short)1000);
}
public void testcustomcmd() {
//m4 qt
IMPINJM4QtPara CustomPara=Jreader.new IMPINJM4QtPara();
......@@ -68,17 +74,17 @@ public class ReadUtils {
CustomPara.PersistType=3;
CustomPara.RangeType=4;
CustomPara.AccessPwd=new byte[]{0x11,0x22,0x33,0x44};
IMPINJM4QtResult CustomRet=Jreader.new IMPINJM4QtResult();
Jreader.CustomCmd(1, CustomCmdType.IMPINJ_M4_Qt, CustomPara, CustomRet);
//allen h3
ALIENHiggs3BlockReadLockPara CustomPara2=Jreader.new ALIENHiggs3BlockReadLockPara();
CustomPara2.AccessPwd=new byte[]{0x55,0x66,0x77,(byte) 0x88};
CustomPara2.BlkBits=6;
CustomPara2.TimeOut=890;
Jreader.CustomCmd(1, CustomCmdType.ALIEN_Higgs3_BlockReadLock, CustomPara2, null);
//nexp eas
NXPChangeEASPara CustomPara3=Jreader.new NXPChangeEASPara();
CustomPara3.AccessPwd=new byte[]{(byte) 0x99,(byte) 0xaa,(byte) 0xbb,(byte) 0xcc};
......@@ -92,7 +98,7 @@ public class ReadUtils {
CustomPara4.MC=11;
CustomPara4.TimeOut=950;
CustomPara4.TrExt=17;
NXPEASAlarmResult CustomRet2=Jreader.new NXPEASAlarmResult();
Jreader.CustomCmd(1, CustomCmdType.NXP_EASAlarm, CustomPara4, CustomRet2);
......@@ -100,55 +106,55 @@ public class ReadUtils {
Jreader.CustomCmd_BaseType(1, 1, new byte[]{0x11,(byte) 0x99,(byte) 0xbb}, new byte[]{});
}
public void testreadandwrite(){
/*
* READER_ERR WriteTagData(int ant,char bank,int address, byte[] data, int datalen, byte[] accesspasswd,short timeout);
* ant ???????????
* bank ??????? 0????????? 1???epc?? 2???tid?? 3???user??
* address ???????? ???epc?????????
* data ???????
* datalen ?????????????
* accesspwd ??????????"00000000" 8????????????
* timeout ??????????
* ant 操作的单天线
* bank 表示区域 0表示保留区 1表示epc区 2表示tid区 3表示user区
* address 表示地址块, 注意epc区从第二块开始
* data 写的数据
* datalen 表示写的数据长度
* accesspwd 表示密码,默认"00000000" 8个十六进制字符
* timeout 操作超时时间
*/
String pwd="00000000";
byte[] data=new byte[]{0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,(byte) 0x88,(byte) 0x99,(byte) 0xaa,(byte) 0xbb};
byte[] pwdb=new byte[4];
Jreader.Str2Hex(pwd, pwd.length(), pwdb);
byte[] pwdb=new byte[4];
Jreader.Str2Hex(pwd, pwd.length(), pwdb);
//?????
READER_ERR er=Jreader.WriteTagData(1, (char)1, 2, data, 6, pwdb, (short)1000);
byte[] datar=new byte[12];
//??????
/*
* READER_ERR GetTagData(int ant,char bank, int address, int blkcnt,byte[] data, byte[] accesspasswd, short timeout);
* ant ???????????
* bank ??????? 0????????? 1???epc?? 2???tid?? 3???user??
* address ???????? ???epc?????????
* blkcnt ?????????
* data ??????????????ò????blkcnt*2
* accesspwd ??????????"00000000" 8????????????
* timeout ??????????
* ant 操作的单天线
* bank 表示区域 0表示保留区 1表示epc区 2表示tid区 3表示user区
* address 表示地址块, 注意epc区从第二块开始
* blkcnt 表示读块数
* data 存放数据的字节,应该不小于blkcnt*2
* accesspwd 表示密码,默认"00000000" 8个十六进制字符
* timeout 操作超时时间
*/
er=Jreader.GetTagData(1, (char)1, 2, 6, datar, null, (short)1000);
String str1="";
for(int i=0;i<12;i++)
{
str1+=Integer.toHexString(datar[i]&0xff);
}
System.out.println(er.toString()+" "+str1.toUpperCase());
byte[] data2=new byte[]{(byte) 0xFF,0x01,0x22,0x03,0x44,0x05,0x66,0x07,(byte) 0x88,(byte) 0x09,(byte) 0xaa,(byte) 0x0b};
er=Jreader.WriteTagEpcEx(1, data2, 12, null, (short)1000);
er=Jreader.GetTagData(1, (char)1, 2, 6, datar, null, (short)1000);
str1="";
for(int i=0;i<12;i++)
{
str1+=Integer.toHexString(datar[i]&0xff);
......@@ -156,89 +162,91 @@ public class ReadUtils {
System.out.println(er.toString()+" "+str1.toUpperCase());
}
public void testblockop() {
String pwd="11000000";
byte[] data=new byte[4];
Jreader.Str2Hex(pwd, pwd.length(), data);
//??????
String pwd="11000000";
byte[] data=new byte[4];
Jreader.Str2Hex(pwd, pwd.length(), data);
//擦除块
READER_ERR er=Jreader.BlockErase(1, (char)1, 2, 12, data, (short)1000);
//????????
Jreader.BlockPermaLock(1, 1, 2, 6, new byte[]{(byte) 0xff,(byte) 0xff}, data, (short)1000);
//永久锁块
Jreader.BlockPermaLock(1, 1, 2, 6, new byte[]{(byte) 0xff,(byte) 0xff}, data, (short)1000);
}
public void testinitreader() {
//?????????
/* ?????????????????
* src ???? ip???????????
* rtype ???????????4?????????4
* ?????????READER_ERR ,MT_OK_ERR????????????????????
public void testinitreader(String ip) {
//创建读写器
/* 根据天线口连接读写器
* src 是地址 ip地址或者串口号
* rtype 是天线口数,4口天线传入4
* 返回类型:READER_ERR ,MT_OK_ERR表示正常,其他表示错误
*/
READER_ERR er=Jreader.InitReader(ReaderAddr,Reader_Type.MODULE_ONE_ANT);
// READER_ERR er=Jreader.InitReader(ReaderAddr,Reader_Type.MODULE_ONE_ANT);
log.info("ReaderAddr:{}",ReaderAddr);
// READER_ERR er=Jreader.InitReader_Notype(ReaderAddr,AntCount);
READER_ERR er=Jreader.InitReader_Notype(ip,AntCount);
System.out.println(er.toString());
/*
* ?????????????AntPowerConf
* ?????
* AntPower????
* antcnt??????????
* AntPower????
* antid ?????
* readPower ??????
* writePower ?????
* 构建天线组功率:AntPowerConf
* 成员:
* AntPower数组
* antcnt表示天线个数
* AntPower类型
* antid 天线号
* readPower 读功率
* writePower 写功率
*/
AntPowerConf apcf=Jreader.new AntPowerConf();
apcf.antcnt=AntCount;
for(int i=0;i<apcf.antcnt;i++)
{
AntPower jaap=Jreader.new AntPower();
jaap.antid=i+1;
jaap.readPower=2800;
jaap.writePower=2750;
apcf.Powers[i]=jaap;
// jaap.readPower=2800;
jaap.readPower=1000;
jaap.writePower=1000;
// jaap.writePower=2750;
apcf.Powers[i]=jaap;
}
AntPowerConf apcf2=Jreader.new AntPowerConf();
er=Jreader.ParamSet( Mtr_Param.MTR_PARAM_RF_ANTPOWER, apcf);
er=Jreader.ParamGet( Mtr_Param.MTR_PARAM_RF_ANTPOWER, apcf2);
for(int i=0;i<apcf2.antcnt;i++)
{
for(int i=0;i<apcf2.antcnt;i++){
System.out.print("antid:"+apcf2.Powers[i].antid);
System.out.print(" rp:"+apcf2.Powers[i].readPower);
System.out.print(" wp:"+apcf2.Powers[i].writePower);
System.out.println();
}
Inv_Potls_ST ipst=Jreader.new Inv_Potls_ST();
ipst.potlcnt=1;
ipst.potls=new Inv_Potl[1];
for(int i=0;i<ipst.potlcnt;i++)
{
for(int i=0;i<ipst.potlcnt;i++){
Inv_Potl ipl=Jreader.new Inv_Potl();
ipl.weight=30;
ipl.potl=SL_TagProtocol.SL_TAG_PROTOCOL_GEN2;
ipst.potls[0]=ipl;
}
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_INVPOTL, ipst);
/*
* ?????????????
* ???????????1???????????0????????
* 设置是否检查天线
* 当参数值传入1的时候表示要检查,0表示不检查
*/
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_IS_CHK_ANT, 0);
}
public void testinventory1() {
public List<String> testinventory1() {
/*
*
* ???????????????????????????????????
* HoptableData_ST ??????????
* lenhtb ?????????
* htb ????int???????????????
*
* 设置频率,对于某天线设置频率表可以提搞读效果
* HoptableData_ST 天线频率表类
* lenhtb 表示频率表长度
* htb 数组int类型,表示具体频点
HoptableData_ST hdst=Jreader.new HoptableData_ST();
hdst.lenhtb=2;
hdst.htb[0]=915250;
......@@ -246,92 +254,98 @@ public class ReadUtils {
READER_ERR er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_FREQUENCY_HOPTABLE,hdst);
*/
/* ants ????????????????????????????
* antcnt ???????????
* timeout ??????????
* pTInfo ??????????????
* tagcnt ????????????????????????????
/* ants 轮询使用的天线,即连接天线口的天线
* antcnt 使用的天线个数
* timeout 读标签的时间
* pTInfo 存放标签数据的数组
* tagcnt 存放标签的个数,只需传入一个元素的数组
*/
int[] tagcnt=new int[1];
TAGINFO[] taginfo=new TAGINFO[200];
READER_ERR er=Jreader.TagInventory(new int[]{1}, 1, (short)1000, taginfo, tagcnt);
if(er==READER_ERR.MT_OK_ERR) {
for(int i=0;i<tagcnt[0];i++) {
System.out.println("inv1_epc:"+Reader.bytes_Hexstr(taginfo[i].EpcId));
}
}
int[] tagcnt=new int[1];
TAGINFO[] taginfo=new TAGINFO[200];
READER_ERR er=Jreader.TagInventory(new int[]{1}, 1, (short)1000, taginfo, tagcnt);
List<String> result = new ArrayList<>();
if(er==READER_ERR.MT_OK_ERR) {
for(int i=0;i<tagcnt[0];i++) {
result.add(Reader.bytes_Hexstr(taginfo[i].EpcId));
// System.out.println("inv1_epc:"+Reader.bytes_Hexstr(taginfo[i].EpcId));
}
}
return result;
}
public void testinventory2() {
int[] tagcnt=new int[1];
TAGINFO taginfo = Jreader.new TAGINFO();
READER_ERR er=Jreader.TagInventory_Raw(new int[]{1}, 1, (short)1000, tagcnt);
for(int i=0;i<tagcnt[0];i++)
{
{
er=Jreader.GetNextTag(taginfo);
if(taginfo!=null)
System.out.println("inv2_epc:"+Reader.bytes_Hexstr(taginfo.EpcId));
}
if(taginfo!=null)
System.out.println("inv2_epc:"+Reader.bytes_Hexstr(taginfo.EpcId));
}
byte[] outbuf=new byte[800];
er=Jreader.TagInventory_Raw(new int[]{1}, 1, (short)1000, tagcnt);
er=Jreader.GetNextTag_BaseType(outbuf);
}
public void testdataonreader() {
byte[] data3=new byte[100];
READER_ERR er=Jreader.ReadDataOnReader(0, data3, 100);
er=Jreader.SaveDataOnReader(0, data3, 100);
//???????????????
er=Jreader.EraseDataOnReader();
er=Jreader.SaveDataOnReader(0, data3, 100);
//擦除读写器上数据
er=Jreader.EraseDataOnReader();
}
public void testkilltag() {
String pwd="11000000";
byte[] data=new byte[4];
Jreader.Str2Hex(pwd, pwd.length(), data);
READER_ERR er=Jreader.KillTag(1, data, (short) 1000);
String pwd="11000000";
byte[] data=new byte[4];
Jreader.Str2Hex(pwd, pwd.length(), data);
READER_ERR er=Jreader.KillTag(1, data, (short) 1000);
}
public void testlocktag() {
String pwd="12340000";
// READER_ERR er=Jreader.Lock180006BTag(1, 2, 6, (short) 1000);
byte[] data=new byte[4];
Jreader.Str2Hex(pwd, pwd.length(), data);
//?????
READER_ERR er=Jreader.WriteTagData(1, (char)0, 2, data, 2, null, (short)1000);
er=Jreader.LockTag(1, (byte)Lock_Obj.LOCK_OBJECT_BANK1.value(), (short)Lock_Type.BANK1_LOCK.value(), data, (short)1000);
//?????
er=Jreader.WriteTagData(1, (char)1, 2, new byte[]{0x11,0x22}, 2, null, (short)1000);
System.out.println("no pwd write"+er.toString());
//?????
er=Jreader.WriteTagData(1, (char)1, 2, new byte[]{0x11,0x22}, 2, data, (short)1000);
System.out.println("pwd write"+er.toString());
er=Jreader.LockTag(1, (byte)Lock_Obj.LOCK_OBJECT_BANK1.value(), (short)Lock_Type.BANK1_UNLOCK.value(), data, (short)1000);
String pwd="12340000";
// READER_ERR er=Jreader.Lock180006BTag(1, 2, 6, (short) 1000);
byte[] data=new byte[4];
Jreader.Str2Hex(pwd, pwd.length(), data);
//写数据
READER_ERR er=Jreader.WriteTagData(1, (char)0, 2, data, 2, null, (short)1000);
er=Jreader.LockTag(1, (byte)Lock_Obj.LOCK_OBJECT_BANK1.value(), (short)Lock_Type.BANK1_LOCK.value(), data, (short)1000);
//写数据
er=Jreader.WriteTagData(1, (char)1, 2, new byte[]{0x11,0x22}, 2, null, (short)1000);
System.out.println("no pwd write"+er.toString());
//写数据
er=Jreader.WriteTagData(1, (char)1, 2, new byte[]{0x11,0x22}, 2, data, (short)1000);
System.out.println("pwd write"+er.toString());
er=Jreader.LockTag(1, (byte)Lock_Obj.LOCK_OBJECT_BANK1.value(), (short)Lock_Type.BANK1_UNLOCK.value(), data, (short)1000);
}
public void testsetip() {
public void testsetip(String ip ,String mask,String gateway) {
Reader_Ip rip=Jreader.new Reader_Ip();
/*
rip.ip=new byte[]{'1','9','2','.','1','6','8','.','1','.','1','0','1'};
rip.mask=new byte[]{'2','5','5','.','2','5','5','.','2','5','5','.','0'};
rip.gateway=new byte[]{'1','9','2','.','1','6','8','.','1','.','2','5','4'};
//*/
rip.ip="192.168.1.100".getBytes();
rip.mask="255.255.255.0".getBytes();
rip.gateway="192.168.1.1".getBytes();
// rip.ip="192.168.1.100".getBytes();
// rip.mask="255.255.255.0".getBytes();
// rip.gateway="192.168.1.1".getBytes();
rip.ip=ip.getBytes();
rip.mask=mask.getBytes();
rip.gateway=gateway.getBytes();
//*/
READER_ERR er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_IP, rip);
}
public void testrparams() {
HoptableData_ST hdst=Jreader.new HoptableData_ST();
......@@ -342,7 +356,7 @@ public class ReadUtils {
hdst.htb[3]=925750;
hdst.htb[4]=926750;
READER_ERR er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_FREQUENCY_HOPTABLE,hdst);
HoptableData_ST hdst2=Jreader.new HoptableData_ST();
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_FREQUENCY_HOPTABLE, hdst2);
for(int i=0;i<hdst2.lenhtb;i++)
......@@ -350,14 +364,14 @@ public class ReadUtils {
System.out.print("htb:"+i);
System.out.println(" "+(hdst2.htb[i]));
}
//
Region_Conf rcf1=Region_Conf.RG_NA;
Region_Conf[] rcf2=new Region_Conf[1];
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_FREQUENCY_REGION,rcf1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_FREQUENCY_REGION,rcf2);
int[] val1=new int[]{250};
int[] val2=new int[]{-1};
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_BLF, val1);
......@@ -366,46 +380,46 @@ public class ReadUtils {
val1[0]=496;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_MAXEPCLEN, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_MAXEPCLEN, val2);
val1[0]=10;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_Q, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_Q, val2);
val1[0]=2;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_SESSION, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_SESSION, val2);
val1[0]=2;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_TAGENCODING, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_TAGENCODING, val2);
val1[0]=1;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_TARGET, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_TARGET, val2);
val1[0]=3;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_TARI, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_TARI, val2);
val1[0]=1;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_WRITEMODE, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_WRITEMODE, val2);
val1[0]=2;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_BLF, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_BLF, val2);
val1[0]=1;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_DELIMITER, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_DELIMITER, val2);
val1[0]=2;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_MODULATION_DEPTH, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_MODULATION_DEPTH, val2);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_SUPPORTEDPROTOCOLS, val1);
//er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_SUPPORTEDPROTOCOLS, val2);
val1[0]=1;
val2[0]=-1;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POWERSAVE_MODE, val1);
......@@ -413,27 +427,27 @@ public class ReadUtils {
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_AVAILABLE_ANTPORTS, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_AVAILABLE_ANTPORTS, val2);
ConnAnts_ST cast=Jreader.new ConnAnts_ST();
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_CONN_ANTS, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_CONN_ANTS, cast);
Reader_Ip rip2=Jreader.new Reader_Ip();
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_IP, rip2);
System.out.print("ip:"+rip2.ip.length+" ");
System.out.println(new String(rip2.ip));
System.out.println(new String(rip2.mask));
System.out.println(new String(rip2.gateway));
val1[0]=1;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_IS_CHK_ANT, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_IS_CHK_ANT, val2);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_VERSION, val1);
//er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_VERSION, val2);
AntPowerConf apcf=Jreader.new AntPowerConf();
apcf.antcnt=1;
for(int i=0;i<apcf.antcnt;i++)
......@@ -442,7 +456,7 @@ public class ReadUtils {
jaap.antid=i+1;
jaap.readPower=2800;
jaap.writePower=2750;
apcf.Powers[i]=jaap;
apcf.Powers[i]=jaap;
}
AntPowerConf apcf2=Jreader.new AntPowerConf();
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_ANTPOWER, apcf);
......@@ -454,50 +468,50 @@ public class ReadUtils {
System.out.print(" wp:"+apcf2.Powers[i].writePower);
System.out.println();
}
val1[0]=100;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_HOPTIME, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_HOPTIME, val2);
val1[0]=1;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_LBT_ENABLE, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_LBT_ENABLE, val2);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_MAXPOWER, val1);
short[] valso=new short[1];
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_MAXPOWER, valso);
System.out.println("max:"+valso[0]);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_MINPOWER, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_MINPOWER, valso);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_SUPPORTEDREGIONS, val1);
//er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_SUPPORTEDREGIONS, val2);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_TEMPERATURE, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_TEMPERATURE, val2);
EmbededData_ST edst = Jreader.new EmbededData_ST();
edst.startaddr=0;
edst.bank=2;
//bytecnt=0 ??????????
//bytecnt=0 取消嵌入数据
edst.bytecnt=2;
edst.accesspwd=null;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_EMBEDEDDATA, edst);
EmbededData_ST edst2 = Jreader.new EmbededData_ST();
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_EMBEDEDDATA, edst2);
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_EMBEDEDDATA, null);
EmbededSecureRead_ST esrst=Jreader.new EmbededSecureRead_ST();
esrst.accesspwd=1280;
esrst.address=2;
esrst.ApIndexBitsNumInEpc=1;
esrst.ApIndexStartBitsInEpc=3;
esrst.bank=1;
//blkcnt =0 ?????
//blkcnt =0 取消。
esrst.blkcnt=2;
esrst.pwdtype=1;
esrst.tagtype=2;
......@@ -505,20 +519,20 @@ public class ReadUtils {
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_EMDSECUREREAD, esrst);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_EMDSECUREREAD, esrst2);
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_EMDSECUREREAD, null);
TagFilter_ST tfst=Jreader.new TagFilter_ST();
tfst.bank=1;
tfst.fdata=new byte[]{(byte) 0xE2,(byte) 0x00};
//flen 0 ????????
//flen 0 为取消过滤
tfst.flen=2;
tfst.isInvert=0;
tfst.startaddr=2;
TagFilter_ST tfst2=Jreader.new TagFilter_ST();
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_FILTER, tfst);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_FILTER, tfst2);
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_FILTER, null);
Inv_Potls_ST ipst=Jreader.new Inv_Potls_ST();
ipst.potlcnt=1;
ipst.potls=new Inv_Potl[1];
......@@ -529,18 +543,18 @@ public class ReadUtils {
ipl.potl=SL_TagProtocol.SL_TAG_PROTOCOL_GEN2;
ipst.potls[0]=ipl;
}
Inv_Potls_ST ipst2=Jreader.new Inv_Potls_ST();
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_INVPOTL, ipst);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_INVPOTL, ipst2);
for(int i=0;i<ipst2.potlcnt;i++)
System.out.println(ipst2.potls[i].potl);
System.out.println(ipst2.potls[i].potl);
val1[0]=1;
val2[0]=0;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_SEARCH_MODE, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_SEARCH_MODE, val2);
val1[0]=1;
val2[0]=0;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAGDATA_RECORDHIGHESTRSSI, val1);
......@@ -555,73 +569,73 @@ public class ReadUtils {
val2[0]=0;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAGDATA_UNIQUEBYEMDDATA, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAGDATA_UNIQUEBYEMDDATA, val2);
val1[0]=300;
val2[0]=0;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TRANS_TIMEOUT, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TRANS_TIMEOUT, val2);
val1[0]=1;
val2[0]=0;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TRANSMIT_MODE, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TRANSMIT_MODE, val2);
}
public void testgpio() {
READER_ERR er=Jreader.SetGPO(1, 1);
er=Jreader.SetGPO(2, 0);
er=Jreader.SetGPO(3, 0);
er=Jreader.SetGPO(4, 1);
int[] val=new int[1];
er=Jreader.GetGPI(1, val);
er=Jreader.GetGPI(2, val);
er=Jreader.GetGPI(3, val);
er=Jreader.GetGPI(4, val);
READER_ERR er=Jreader.SetGPO(1, 1);
er=Jreader.SetGPO(2, 0);
er=Jreader.SetGPO(3, 0);
er=Jreader.SetGPO(4, 1);
int[] val=new int[1];
er=Jreader.GetGPI(1, val);
er=Jreader.GetGPI(2, val);
er=Jreader.GetGPI(3, val);
er=Jreader.GetGPI(4, val);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
// maintest mt=new maintest();
// //????????
// //启动
// mt.testinitreader();
//???????
//mt.testtran();
//????gpio
//mt.testgpio();
//???????
//mt.testrparams();
//????????
//mt.testblockop();
//???????????
//mt.testcustomcmd();
//???????????????
//mt.testdataonreader();
//????????1
ReadUtils mt=new ReadUtils();
//测试初始化
//启动
// mt.testinitreader();
//测试转换
//mt.testtran();
//测试gpio
//mt.testgpio();
//测试参数
//mt.testrparams();
//测试块操作
//mt.testblockop();
//测试特殊指令
//mt.testcustomcmd();
//测试读写器内部数据
//mt.testdataonreader();
//测试盘点方式1
//盘存
// mt.testinventory1();
//????????2
mt.testinventory1();
//测试盘点方式2
// mt.testinventory2();
//????????????
//mt.testkilltag();
//?????????
//mt.testlocktag();
//?????????
//测试销毁密码
//mt.testkilltag();
//测试锁标签
//mt.testlocktag();
//测试读写标签
// mt.testreadandwrite();
//?????ip???
//测试改ip地址
//可以修改ip
// mt.testsetip();
//????psam
//mt.testpsam();
//???????
// mt.testsetip();
//测试psam
//mt.testpsam();
//关闭读写器
//关闭
// mt.Jreader.CloseReader();
// System.out.println("test over");
mt.Jreader.CloseReader();
System.out.println("test over");
}
}
package com.tykj.dev.rfid.timeTask;
import com.uhf.api.cls.Reader;
import com.uhf.api.cls.Reader.*;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Data
@Slf4j
@Component
public class ReadUtils {
/**
* @param args
*/
int AntCount=1;
//公司测试网段ip
// String ReaderAddr="192.168.101.201";
//公司测试读写机实验室ip
// String ReaderAddr="192.168.0.201";
//公司正式读写机实验室ip
String ReaderAddr="192.168.0.100";
// @Value("${readMachine.ip}")
// public String ReaderAddr;
Reader Jreader;
public ReadUtils()
{
Jreader=new Reader();
}
public void testtran(){
byte[] hex=new byte[]{(byte) 0xA2,(byte) 0xC8,(byte) 0xD4,(byte) 0xE5};
int len=4;
char[] str=new char[4*2];
Jreader.Hex2Str(hex, len, str);
String hstr = "";
for(int i=0;i<8;i++)
hstr+=(char)str[i];
System.out.println("test tohexstr:"+hstr);
String buf="0011110000001111";
byte[] binarybuf=new byte[2];
String buf2="abcdef08";
byte[] hexbuf=new byte[4];
Jreader.Str2Binary(buf, buf.length(), binarybuf);
System.out.println("test binary:");
for(int i=0;i<binarybuf.length;i++)
System.out.println(binarybuf[i]);
Jreader.Str2Hex(buf2, 8, hexbuf);
System.out.println("test hex:");
for(int i=0;i<hexbuf.length;i++)
System.out.println(hexbuf[i]);
}
public void testpsam(){
int soltid=1;
int coslen=2;
byte[] cos=new byte[]{0x11,0x22,0x33,0x44,0x55,0x66,0x77,(byte) 0x88,(byte) 0x99,0x12,0x34};
int[] cosresplen=new int[1];
byte[] cosresp=new byte[cos.length+13];
byte[] errcode=new byte[4];
READER_ERR er=Jreader.PsamTransceiver(soltid, coslen, cos, cosresplen, cosresp,
errcode, (short)1000);
}
public void testcustomcmd() {
//m4 qt
IMPINJM4QtPara CustomPara=Jreader.new IMPINJM4QtPara();
CustomPara.TimeOut=800;
CustomPara.CmdType=1;
CustomPara.MemType=2;
CustomPara.PersistType=3;
CustomPara.RangeType=4;
CustomPara.AccessPwd=new byte[]{0x11,0x22,0x33,0x44};
IMPINJM4QtResult CustomRet=Jreader.new IMPINJM4QtResult();
Jreader.CustomCmd(1, CustomCmdType.IMPINJ_M4_Qt, CustomPara, CustomRet);
//allen h3
ALIENHiggs3BlockReadLockPara CustomPara2=Jreader.new ALIENHiggs3BlockReadLockPara();
CustomPara2.AccessPwd=new byte[]{0x55,0x66,0x77,(byte) 0x88};
CustomPara2.BlkBits=6;
CustomPara2.TimeOut=890;
Jreader.CustomCmd(1, CustomCmdType.ALIEN_Higgs3_BlockReadLock, CustomPara2, null);
//nexp eas
NXPChangeEASPara CustomPara3=Jreader.new NXPChangeEASPara();
CustomPara3.AccessPwd=new byte[]{(byte) 0x99,(byte) 0xaa,(byte) 0xbb,(byte) 0xcc};
CustomPara3.isSet=1;
CustomPara3.TimeOut=900;
Jreader.CustomCmd(1, CustomCmdType.NXP_ChangeEAS, CustomPara3, null);
//nxp easl
NXPEASAlarmPara CustomPara4=Jreader.new NXPEASAlarmPara();
CustomPara4.DR=7;
CustomPara4.MC=11;
CustomPara4.TimeOut=950;
CustomPara4.TrExt=17;
NXPEASAlarmResult CustomRet2=Jreader.new NXPEASAlarmResult();
Jreader.CustomCmd(1, CustomCmdType.NXP_EASAlarm, CustomPara4, CustomRet2);
//basetype
Jreader.CustomCmd_BaseType(1, 1, new byte[]{0x11,(byte) 0x99,(byte) 0xbb}, new byte[]{});
}
public void testreadandwrite(){
/*
* READER_ERR WriteTagData(int ant,char bank,int address, byte[] data, int datalen, byte[] accesspasswd,short timeout);
* ant 操作的单天线
* bank 表示区域 0表示保留区 1表示epc区 2表示tid区 3表示user区
* address 表示地址块, 注意epc区从第二块开始
* data 写的数据
* datalen 表示写的数据长度
* accesspwd 表示密码,默认"00000000" 8个十六进制字符
* timeout 操作超时时间
*/
String pwd="00000000";
byte[] data=new byte[]{0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,(byte) 0x88,(byte) 0x99,(byte) 0xaa,(byte) 0xbb};
byte[] pwdb=new byte[4];
Jreader.Str2Hex(pwd, pwd.length(), pwdb);
//?????
READER_ERR er=Jreader.WriteTagData(1, (char)1, 2, data, 6, pwdb, (short)1000);
byte[] datar=new byte[12];
//??????
/*
* READER_ERR GetTagData(int ant,char bank, int address, int blkcnt,byte[] data, byte[] accesspasswd, short timeout);
* ant 操作的单天线
* bank 表示区域 0表示保留区 1表示epc区 2表示tid区 3表示user区
* address 表示地址块, 注意epc区从第二块开始
* blkcnt 表示读块数
* data 存放数据的字节,应该不小于blkcnt*2
* accesspwd 表示密码,默认"00000000" 8个十六进制字符
* timeout 操作超时时间
*/
er=Jreader.GetTagData(1, (char)1, 2, 6, datar, null, (short)1000);
String str1="";
for(int i=0;i<12;i++)
{
str1+=Integer.toHexString(datar[i]&0xff);
}
System.out.println(er.toString()+" "+str1.toUpperCase());
byte[] data2=new byte[]{(byte) 0xFF,0x01,0x22,0x03,0x44,0x05,0x66,0x07,(byte) 0x88,(byte) 0x09,(byte) 0xaa,(byte) 0x0b};
er=Jreader.WriteTagEpcEx(1, data2, 12, null, (short)1000);
er=Jreader.GetTagData(1, (char)1, 2, 6, datar, null, (short)1000);
str1="";
for(int i=0;i<12;i++)
{
str1+=Integer.toHexString(datar[i]&0xff);
}
System.out.println(er.toString()+" "+str1.toUpperCase());
}
public void testblockop() {
String pwd="11000000";
byte[] data=new byte[4];
Jreader.Str2Hex(pwd, pwd.length(), data);
//擦除块
READER_ERR er=Jreader.BlockErase(1, (char)1, 2, 12, data, (short)1000);
//永久锁块
Jreader.BlockPermaLock(1, 1, 2, 6, new byte[]{(byte) 0xff,(byte) 0xff}, data, (short)1000);
}
public void testinitreader() {
//创建读写器
/* 根据天线口连接读写器
* src 是地址 ip地址或者串口号
* rtype 是天线口数,4口天线传入4
* 返回类型:READER_ERR ,MT_OK_ERR表示正常,其他表示错误
*/
// READER_ERR er=Jreader.InitReader(ReaderAddr,Reader_Type.MODULE_ONE_ANT);
log.info("ReaderAddr:{}",ReaderAddr);
READER_ERR er=Jreader.InitReader_Notype(ReaderAddr,AntCount);
System.out.println(er.toString());
/*
* 构建天线组功率:AntPowerConf
* 成员:
* AntPower数组
* antcnt表示天线个数
* AntPower类型
* antid 天线号
* readPower 读功率
* writePower 写功率
*/
AntPowerConf apcf=Jreader.new AntPowerConf();
apcf.antcnt=AntCount;
for(int i=0;i<apcf.antcnt;i++)
{
AntPower jaap=Jreader.new AntPower();
jaap.antid=i+1;
//package com.tykj.dev.rfid.timeTask;
//
//import com.uhf.api.cls.Reader;
//import com.uhf.api.cls.Reader.*;
//import lombok.Data;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Component;
//
//import java.util.ArrayList;
//import java.util.List;
//
//@Data
//@Slf4j
//public class ReadUtils {
//
//
// /**
// * @param args
// */
//
// int AntCount=1;
// //公司测试网段ip
//// String ReaderAddr="192.168.101.201";
// //公司测试读写机实验室ip
//// String ReaderAddr="192.168.0.201";
// //公司正式读写机实验室ip
// String ReaderAddr="192.168.0.100";
//// @Value("${readMachine.ip}")
//// public String ReaderAddr;
//
// Reader Jreader;
// public ReadUtils()
// {
// Jreader=new Reader();
// }
//
// public void testtran(){
// byte[] hex=new byte[]{(byte) 0xA2,(byte) 0xC8,(byte) 0xD4,(byte) 0xE5};
// int len=4;
// char[] str=new char[4*2];
// Jreader.Hex2Str(hex, len, str);
// String hstr = "";
// for(int i=0;i<8;i++)
// hstr+=(char)str[i];
// System.out.println("test tohexstr:"+hstr);
//
// String buf="0011110000001111";
//
// byte[] binarybuf=new byte[2];
// String buf2="abcdef08";
// byte[] hexbuf=new byte[4];
// Jreader.Str2Binary(buf, buf.length(), binarybuf);
// System.out.println("test binary:");
// for(int i=0;i<binarybuf.length;i++)
// System.out.println(binarybuf[i]);
//
// Jreader.Str2Hex(buf2, 8, hexbuf);
// System.out.println("test hex:");
// for(int i=0;i<hexbuf.length;i++)
// System.out.println(hexbuf[i]);
// }
//
// public void testpsam(){
// int soltid=1;
// int coslen=2;
// byte[] cos=new byte[]{0x11,0x22,0x33,0x44,0x55,0x66,0x77,(byte) 0x88,(byte) 0x99,0x12,0x34};
// int[] cosresplen=new int[1];
// byte[] cosresp=new byte[cos.length+13];
// byte[] errcode=new byte[4];
//
// READER_ERR er=Jreader.PsamTransceiver(soltid, coslen, cos, cosresplen, cosresp,
// errcode, (short)1000);
// }
//
// public void testcustomcmd() {
// //m4 qt
// IMPINJM4QtPara CustomPara=Jreader.new IMPINJM4QtPara();
// CustomPara.TimeOut=800;
// CustomPara.CmdType=1;
// CustomPara.MemType=2;
// CustomPara.PersistType=3;
// CustomPara.RangeType=4;
// CustomPara.AccessPwd=new byte[]{0x11,0x22,0x33,0x44};
//
// IMPINJM4QtResult CustomRet=Jreader.new IMPINJM4QtResult();
// Jreader.CustomCmd(1, CustomCmdType.IMPINJ_M4_Qt, CustomPara, CustomRet);
//
// //allen h3
// ALIENHiggs3BlockReadLockPara CustomPara2=Jreader.new ALIENHiggs3BlockReadLockPara();
// CustomPara2.AccessPwd=new byte[]{0x55,0x66,0x77,(byte) 0x88};
// CustomPara2.BlkBits=6;
// CustomPara2.TimeOut=890;
// Jreader.CustomCmd(1, CustomCmdType.ALIEN_Higgs3_BlockReadLock, CustomPara2, null);
//
// //nexp eas
// NXPChangeEASPara CustomPara3=Jreader.new NXPChangeEASPara();
// CustomPara3.AccessPwd=new byte[]{(byte) 0x99,(byte) 0xaa,(byte) 0xbb,(byte) 0xcc};
// CustomPara3.isSet=1;
// CustomPara3.TimeOut=900;
// Jreader.CustomCmd(1, CustomCmdType.NXP_ChangeEAS, CustomPara3, null);
//
// //nxp easl
// NXPEASAlarmPara CustomPara4=Jreader.new NXPEASAlarmPara();
// CustomPara4.DR=7;
// CustomPara4.MC=11;
// CustomPara4.TimeOut=950;
// CustomPara4.TrExt=17;
//
// NXPEASAlarmResult CustomRet2=Jreader.new NXPEASAlarmResult();
// Jreader.CustomCmd(1, CustomCmdType.NXP_EASAlarm, CustomPara4, CustomRet2);
//
// //basetype
// Jreader.CustomCmd_BaseType(1, 1, new byte[]{0x11,(byte) 0x99,(byte) 0xbb}, new byte[]{});
//
// }
//
// public void testreadandwrite(){
// /*
// * READER_ERR WriteTagData(int ant,char bank,int address, byte[] data, int datalen, byte[] accesspasswd,short timeout);
// * ant 操作的单天线
// * bank 表示区域 0表示保留区 1表示epc区 2表示tid区 3表示user区
// * address 表示地址块, 注意epc区从第二块开始
// * data 写的数据
// * datalen 表示写的数据长度
// * accesspwd 表示密码,默认"00000000" 8个十六进制字符
// * timeout 操作超时时间
// */
//
// String pwd="00000000";
// byte[] data=new byte[]{0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,(byte) 0x88,(byte) 0x99,(byte) 0xaa,(byte) 0xbb};
// byte[] pwdb=new byte[4];
// Jreader.Str2Hex(pwd, pwd.length(), pwdb);
// //?????
// READER_ERR er=Jreader.WriteTagData(1, (char)1, 2, data, 6, pwdb, (short)1000);
//
// byte[] datar=new byte[12];
// //??????
// /*
// * READER_ERR GetTagData(int ant,char bank, int address, int blkcnt,byte[] data, byte[] accesspasswd, short timeout);
// * ant 操作的单天线
// * bank 表示区域 0表示保留区 1表示epc区 2表示tid区 3表示user区
// * address 表示地址块, 注意epc区从第二块开始
// * blkcnt 表示读块数
// * data 存放数据的字节,应该不小于blkcnt*2
// * accesspwd 表示密码,默认"00000000" 8个十六进制字符
// * timeout 操作超时时间
// */
// er=Jreader.GetTagData(1, (char)1, 2, 6, datar, null, (short)1000);
// String str1="";
//
// for(int i=0;i<12;i++)
// {
// str1+=Integer.toHexString(datar[i]&0xff);
// }
// System.out.println(er.toString()+" "+str1.toUpperCase());
//
// byte[] data2=new byte[]{(byte) 0xFF,0x01,0x22,0x03,0x44,0x05,0x66,0x07,(byte) 0x88,(byte) 0x09,(byte) 0xaa,(byte) 0x0b};
//
// er=Jreader.WriteTagEpcEx(1, data2, 12, null, (short)1000);
//
// er=Jreader.GetTagData(1, (char)1, 2, 6, datar, null, (short)1000);
//
// str1="";
//
// for(int i=0;i<12;i++)
// {
// str1+=Integer.toHexString(datar[i]&0xff);
// }
// System.out.println(er.toString()+" "+str1.toUpperCase());
//
// }
//
// public void testblockop() {
// String pwd="11000000";
// byte[] data=new byte[4];
// Jreader.Str2Hex(pwd, pwd.length(), data);
// //擦除块
// READER_ERR er=Jreader.BlockErase(1, (char)1, 2, 12, data, (short)1000);
//
// //永久锁块
// Jreader.BlockPermaLock(1, 1, 2, 6, new byte[]{(byte) 0xff,(byte) 0xff}, data, (short)1000);
//
// }
//
// public void testinitreader() {
// //创建读写器
// /* 根据天线口连接读写器
// * src 是地址 ip地址或者串口号
// * rtype 是天线口数,4口天线传入4
// * 返回类型:READER_ERR ,MT_OK_ERR表示正常,其他表示错误
// */
//// READER_ERR er=Jreader.InitReader(ReaderAddr,Reader_Type.MODULE_ONE_ANT);
// log.info("ReaderAddr:{}",ReaderAddr);
// READER_ERR er=Jreader.InitReader_Notype(ReaderAddr,AntCount);
// System.out.println(er.toString());
// /*
// * 构建天线组功率:AntPowerConf
// * 成员:
// * AntPower数组
// * antcnt表示天线个数
// * AntPower类型
// * antid 天线号
// * readPower 读功率
// * writePower 写功率
// */
//
// AntPowerConf apcf=Jreader.new AntPowerConf();
// apcf.antcnt=AntCount;
// for(int i=0;i<apcf.antcnt;i++)
// {
// AntPower jaap=Jreader.new AntPower();
// jaap.antid=i+1;
//// jaap.readPower=2800;
// jaap.readPower=1000;
// jaap.writePower=1000;
//// jaap.writePower=2750;
// apcf.Powers[i]=jaap;
// }
// AntPowerConf apcf2=Jreader.new AntPowerConf();
// er=Jreader.ParamSet( Mtr_Param.MTR_PARAM_RF_ANTPOWER, apcf);
// er=Jreader.ParamGet( Mtr_Param.MTR_PARAM_RF_ANTPOWER, apcf2);
// for(int i=0;i<apcf2.antcnt;i++){
// System.out.print("antid:"+apcf2.Powers[i].antid);
// System.out.print(" rp:"+apcf2.Powers[i].readPower);
// System.out.print(" wp:"+apcf2.Powers[i].writePower);
// System.out.println();
// }
//
// Inv_Potls_ST ipst=Jreader.new Inv_Potls_ST();
// ipst.potlcnt=1;
// ipst.potls=new Inv_Potl[1];
// for(int i=0;i<ipst.potlcnt;i++){
// Inv_Potl ipl=Jreader.new Inv_Potl();
// ipl.weight=30;
// ipl.potl=SL_TagProtocol.SL_TAG_PROTOCOL_GEN2;
// ipst.potls[0]=ipl;
// }
//
//
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_INVPOTL, ipst);
//
// /*
// * 设置是否检查天线
// * 当参数值传入1的时候表示要检查,0表示不检查
// */
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_IS_CHK_ANT, 0);
// }
//
// public List<String> testinventory1() {
// /*
// *
// * 设置频率,对于某天线设置频率表可以提搞读效果
// * HoptableData_ST 天线频率表类
// * lenhtb 表示频率表长度
// * htb 数组int类型,表示具体频点
// HoptableData_ST hdst=Jreader.new HoptableData_ST();
// hdst.lenhtb=2;
// hdst.htb[0]=915250;
// hdst.htb[1]=915750;
//
// READER_ERR er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_FREQUENCY_HOPTABLE,hdst);
// */
//
// /* ants 轮询使用的天线,即连接天线口的天线
// * antcnt 使用的天线个数
// * timeout 读标签的时间
// * pTInfo 存放标签数据的数组
// * tagcnt 存放标签的个数,只需传入一个元素的数组
// */
// int[] tagcnt=new int[1];
// TAGINFO[] taginfo=new TAGINFO[200];
// READER_ERR er=Jreader.TagInventory(new int[]{1}, 1, (short)1000, taginfo, tagcnt);
// List<String> result = new ArrayList<>();
// if(er==READER_ERR.MT_OK_ERR) {
// for(int i=0;i<tagcnt[0];i++) {
// result.add(Reader.bytes_Hexstr(taginfo[i].EpcId));
//// System.out.println("inv1_epc:"+Reader.bytes_Hexstr(taginfo[i].EpcId));
// }
// }
// return result;
// }
//
// public void testinventory2() {
// int[] tagcnt=new int[1];
// TAGINFO taginfo = Jreader.new TAGINFO();
// READER_ERR er=Jreader.TagInventory_Raw(new int[]{1}, 1, (short)1000, tagcnt);
// for(int i=0;i<tagcnt[0];i++)
// {
// er=Jreader.GetNextTag(taginfo);
// if(taginfo!=null)
// System.out.println("inv2_epc:"+Reader.bytes_Hexstr(taginfo.EpcId));
// }
//
// byte[] outbuf=new byte[800];
//
// er=Jreader.TagInventory_Raw(new int[]{1}, 1, (short)1000, tagcnt);
// er=Jreader.GetNextTag_BaseType(outbuf);
//
// }
//
// public void testdataonreader() {
// byte[] data3=new byte[100];
// READER_ERR er=Jreader.ReadDataOnReader(0, data3, 100);
// er=Jreader.SaveDataOnReader(0, data3, 100);
//
// //擦除读写器上数据
// er=Jreader.EraseDataOnReader();
// }
//
// public void testkilltag() {
// String pwd="11000000";
// byte[] data=new byte[4];
// Jreader.Str2Hex(pwd, pwd.length(), data);
// READER_ERR er=Jreader.KillTag(1, data, (short) 1000);
// }
//
// public void testlocktag() {
// String pwd="12340000";
// // READER_ERR er=Jreader.Lock180006BTag(1, 2, 6, (short) 1000);
// byte[] data=new byte[4];
// Jreader.Str2Hex(pwd, pwd.length(), data);
//
// //写数据
// READER_ERR er=Jreader.WriteTagData(1, (char)0, 2, data, 2, null, (short)1000);
// er=Jreader.LockTag(1, (byte)Lock_Obj.LOCK_OBJECT_BANK1.value(), (short)Lock_Type.BANK1_LOCK.value(), data, (short)1000);
//
// //写数据
// er=Jreader.WriteTagData(1, (char)1, 2, new byte[]{0x11,0x22}, 2, null, (short)1000);
// System.out.println("no pwd write"+er.toString());
//
// //写数据
// er=Jreader.WriteTagData(1, (char)1, 2, new byte[]{0x11,0x22}, 2, data, (short)1000);
// System.out.println("pwd write"+er.toString());
//
// er=Jreader.LockTag(1, (byte)Lock_Obj.LOCK_OBJECT_BANK1.value(), (short)Lock_Type.BANK1_UNLOCK.value(), data, (short)1000);
// }
//
// public void testsetip(String ip ,String mask,String gateway) {
// Reader_Ip rip=Jreader.new Reader_Ip();
// /*
// rip.ip=new byte[]{'1','9','2','.','1','6','8','.','1','.','1','0','1'};
// rip.mask=new byte[]{'2','5','5','.','2','5','5','.','2','5','5','.','0'};
// rip.gateway=new byte[]{'1','9','2','.','1','6','8','.','1','.','2','5','4'};
// //*/
//
//// rip.ip="192.168.1.100".getBytes();
//// rip.mask="255.255.255.0".getBytes();
//// rip.gateway="192.168.1.1".getBytes();
// rip.ip=ip.getBytes();
// rip.mask=mask.getBytes();
// rip.gateway=gateway.getBytes();
// //*/
// READER_ERR er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_IP, rip);
//
// }
// public void testrparams() {
// HoptableData_ST hdst=Jreader.new HoptableData_ST();
// hdst.lenhtb=5;
// hdst.htb[0]=915250;
// hdst.htb[1]=916750;
// hdst.htb[2]=917250;
// hdst.htb[3]=925750;
// hdst.htb[4]=926750;
// READER_ERR er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_FREQUENCY_HOPTABLE,hdst);
//
// HoptableData_ST hdst2=Jreader.new HoptableData_ST();
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_FREQUENCY_HOPTABLE, hdst2);
// for(int i=0;i<hdst2.lenhtb;i++)
// {
// System.out.print("htb:"+i);
// System.out.println(" "+(hdst2.htb[i]));
// }
//
// //
// Region_Conf rcf1=Region_Conf.RG_NA;
// Region_Conf[] rcf2=new Region_Conf[1];
//
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_FREQUENCY_REGION,rcf1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_FREQUENCY_REGION,rcf2);
//
// int[] val1=new int[]{250};
// int[] val2=new int[]{-1};
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_BLF, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_BLF, val2);
//
// val1[0]=496;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_MAXEPCLEN, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_MAXEPCLEN, val2);
//
// val1[0]=10;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_Q, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_Q, val2);
//
// val1[0]=2;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_SESSION, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_SESSION, val2);
//
// val1[0]=2;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_TAGENCODING, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_TAGENCODING, val2);
//
// val1[0]=1;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_TARGET, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_TARGET, val2);
//
// val1[0]=3;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_TARI, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_TARI, val2);
//
// val1[0]=1;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_WRITEMODE, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_WRITEMODE, val2);
//
// val1[0]=2;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_BLF, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_BLF, val2);
//
// val1[0]=1;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_DELIMITER, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_DELIMITER, val2);
//
// val1[0]=2;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_MODULATION_DEPTH, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_MODULATION_DEPTH, val2);
//
// //er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_SUPPORTEDPROTOCOLS, val1);
// //er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_SUPPORTEDPROTOCOLS, val2);
//
// val1[0]=1;
// val2[0]=-1;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POWERSAVE_MODE, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POWERSAVE_MODE, val2);
//
// //er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_AVAILABLE_ANTPORTS, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_AVAILABLE_ANTPORTS, val2);
//
// ConnAnts_ST cast=Jreader.new ConnAnts_ST();
// //er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_CONN_ANTS, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_CONN_ANTS, cast);
//
//
// Reader_Ip rip2=Jreader.new Reader_Ip();
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_IP, rip2);
// System.out.print("ip:"+rip2.ip.length+" ");
// System.out.println(new String(rip2.ip));
// System.out.println(new String(rip2.mask));
// System.out.println(new String(rip2.gateway));
//
// val1[0]=1;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_IS_CHK_ANT, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_IS_CHK_ANT, val2);
//
//
// //er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_VERSION, val1);
// //er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_VERSION, val2);
//
// AntPowerConf apcf=Jreader.new AntPowerConf();
// apcf.antcnt=1;
// for(int i=0;i<apcf.antcnt;i++)
// {
// AntPower jaap=Jreader.new AntPower();
// jaap.antid=i+1;
// jaap.readPower=2800;
jaap.readPower=1000;
jaap.writePower=1000;
// jaap.writePower=2750;
apcf.Powers[i]=jaap;
}
AntPowerConf apcf2=Jreader.new AntPowerConf();
er=Jreader.ParamSet( Mtr_Param.MTR_PARAM_RF_ANTPOWER, apcf);
er=Jreader.ParamGet( Mtr_Param.MTR_PARAM_RF_ANTPOWER, apcf2);
for(int i=0;i<apcf2.antcnt;i++){
System.out.print("antid:"+apcf2.Powers[i].antid);
System.out.print(" rp:"+apcf2.Powers[i].readPower);
System.out.print(" wp:"+apcf2.Powers[i].writePower);
System.out.println();
}
Inv_Potls_ST ipst=Jreader.new Inv_Potls_ST();
ipst.potlcnt=1;
ipst.potls=new Inv_Potl[1];
for(int i=0;i<ipst.potlcnt;i++){
Inv_Potl ipl=Jreader.new Inv_Potl();
ipl.weight=30;
ipl.potl=SL_TagProtocol.SL_TAG_PROTOCOL_GEN2;
ipst.potls[0]=ipl;
}
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_INVPOTL, ipst);
/*
* 设置是否检查天线
* 当参数值传入1的时候表示要检查,0表示不检查
*/
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_IS_CHK_ANT, 0);
}
public List<String> testinventory1() {
/*
*
* 设置频率,对于某天线设置频率表可以提搞读效果
* HoptableData_ST 天线频率表类
* lenhtb 表示频率表长度
* htb 数组int类型,表示具体频点
HoptableData_ST hdst=Jreader.new HoptableData_ST();
hdst.lenhtb=2;
hdst.htb[0]=915250;
hdst.htb[1]=915750;
READER_ERR er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_FREQUENCY_HOPTABLE,hdst);
*/
/* ants 轮询使用的天线,即连接天线口的天线
* antcnt 使用的天线个数
* timeout 读标签的时间
* pTInfo 存放标签数据的数组
* tagcnt 存放标签的个数,只需传入一个元素的数组
*/
int[] tagcnt=new int[1];
TAGINFO[] taginfo=new TAGINFO[200];
READER_ERR er=Jreader.TagInventory(new int[]{1}, 1, (short)1000, taginfo, tagcnt);
List<String> result = new ArrayList<>();
if(er==READER_ERR.MT_OK_ERR) {
for(int i=0;i<tagcnt[0];i++) {
result.add(Reader.bytes_Hexstr(taginfo[i].EpcId));
// System.out.println("inv1_epc:"+Reader.bytes_Hexstr(taginfo[i].EpcId));
}
}
return result;
}
public void testinventory2() {
int[] tagcnt=new int[1];
TAGINFO taginfo = Jreader.new TAGINFO();
READER_ERR er=Jreader.TagInventory_Raw(new int[]{1}, 1, (short)1000, tagcnt);
for(int i=0;i<tagcnt[0];i++)
{
er=Jreader.GetNextTag(taginfo);
if(taginfo!=null)
System.out.println("inv2_epc:"+Reader.bytes_Hexstr(taginfo.EpcId));
}
byte[] outbuf=new byte[800];
er=Jreader.TagInventory_Raw(new int[]{1}, 1, (short)1000, tagcnt);
er=Jreader.GetNextTag_BaseType(outbuf);
}
public void testdataonreader() {
byte[] data3=new byte[100];
READER_ERR er=Jreader.ReadDataOnReader(0, data3, 100);
er=Jreader.SaveDataOnReader(0, data3, 100);
//擦除读写器上数据
er=Jreader.EraseDataOnReader();
}
public void testkilltag() {
String pwd="11000000";
byte[] data=new byte[4];
Jreader.Str2Hex(pwd, pwd.length(), data);
READER_ERR er=Jreader.KillTag(1, data, (short) 1000);
}
public void testlocktag() {
String pwd="12340000";
// READER_ERR er=Jreader.Lock180006BTag(1, 2, 6, (short) 1000);
byte[] data=new byte[4];
Jreader.Str2Hex(pwd, pwd.length(), data);
//写数据
READER_ERR er=Jreader.WriteTagData(1, (char)0, 2, data, 2, null, (short)1000);
er=Jreader.LockTag(1, (byte)Lock_Obj.LOCK_OBJECT_BANK1.value(), (short)Lock_Type.BANK1_LOCK.value(), data, (short)1000);
//写数据
er=Jreader.WriteTagData(1, (char)1, 2, new byte[]{0x11,0x22}, 2, null, (short)1000);
System.out.println("no pwd write"+er.toString());
//写数据
er=Jreader.WriteTagData(1, (char)1, 2, new byte[]{0x11,0x22}, 2, data, (short)1000);
System.out.println("pwd write"+er.toString());
er=Jreader.LockTag(1, (byte)Lock_Obj.LOCK_OBJECT_BANK1.value(), (short)Lock_Type.BANK1_UNLOCK.value(), data, (short)1000);
}
public void testsetip() {
Reader_Ip rip=Jreader.new Reader_Ip();
/*
rip.ip=new byte[]{'1','9','2','.','1','6','8','.','1','.','1','0','1'};
rip.mask=new byte[]{'2','5','5','.','2','5','5','.','2','5','5','.','0'};
rip.gateway=new byte[]{'1','9','2','.','1','6','8','.','1','.','2','5','4'};
//*/
rip.ip="192.168.1.100".getBytes();
rip.mask="255.255.255.0".getBytes();
rip.gateway="192.168.1.1".getBytes();
//*/
READER_ERR er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_IP, rip);
}
public void testrparams() {
HoptableData_ST hdst=Jreader.new HoptableData_ST();
hdst.lenhtb=5;
hdst.htb[0]=915250;
hdst.htb[1]=916750;
hdst.htb[2]=917250;
hdst.htb[3]=925750;
hdst.htb[4]=926750;
READER_ERR er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_FREQUENCY_HOPTABLE,hdst);
HoptableData_ST hdst2=Jreader.new HoptableData_ST();
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_FREQUENCY_HOPTABLE, hdst2);
for(int i=0;i<hdst2.lenhtb;i++)
{
System.out.print("htb:"+i);
System.out.println(" "+(hdst2.htb[i]));
}
//
Region_Conf rcf1=Region_Conf.RG_NA;
Region_Conf[] rcf2=new Region_Conf[1];
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_FREQUENCY_REGION,rcf1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_FREQUENCY_REGION,rcf2);
int[] val1=new int[]{250};
int[] val2=new int[]{-1};
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_BLF, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_BLF, val2);
val1[0]=496;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_MAXEPCLEN, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_MAXEPCLEN, val2);
val1[0]=10;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_Q, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_Q, val2);
val1[0]=2;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_SESSION, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_SESSION, val2);
val1[0]=2;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_TAGENCODING, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_TAGENCODING, val2);
val1[0]=1;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_TARGET, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_TARGET, val2);
val1[0]=3;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_TARI, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_TARI, val2);
val1[0]=1;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_GEN2_WRITEMODE, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_GEN2_WRITEMODE, val2);
val1[0]=2;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_BLF, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_BLF, val2);
val1[0]=1;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_DELIMITER, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_DELIMITER, val2);
val1[0]=2;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_MODULATION_DEPTH, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_ISO180006B_MODULATION_DEPTH, val2);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POTL_SUPPORTEDPROTOCOLS, val1);
//er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POTL_SUPPORTEDPROTOCOLS, val2);
val1[0]=1;
val2[0]=-1;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_POWERSAVE_MODE, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_POWERSAVE_MODE, val2);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_AVAILABLE_ANTPORTS, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_AVAILABLE_ANTPORTS, val2);
ConnAnts_ST cast=Jreader.new ConnAnts_ST();
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_CONN_ANTS, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_CONN_ANTS, cast);
Reader_Ip rip2=Jreader.new Reader_Ip();
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_IP, rip2);
System.out.print("ip:"+rip2.ip.length+" ");
System.out.println(new String(rip2.ip));
System.out.println(new String(rip2.mask));
System.out.println(new String(rip2.gateway));
val1[0]=1;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_IS_CHK_ANT, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_IS_CHK_ANT, val2);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_READER_VERSION, val1);
//er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_READER_VERSION, val2);
AntPowerConf apcf=Jreader.new AntPowerConf();
apcf.antcnt=1;
for(int i=0;i<apcf.antcnt;i++)
{
AntPower jaap=Jreader.new AntPower();
jaap.antid=i+1;
jaap.readPower=2800;
jaap.writePower=2750;
apcf.Powers[i]=jaap;
}
AntPowerConf apcf2=Jreader.new AntPowerConf();
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_ANTPOWER, apcf);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_ANTPOWER, apcf2);
for(int i=0;i<apcf2.antcnt;i++)
{
System.out.print("antid:"+apcf2.Powers[i].antid);
System.out.print(" rp:"+apcf2.Powers[i].readPower);
System.out.print(" wp:"+apcf2.Powers[i].writePower);
System.out.println();
}
val1[0]=100;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_HOPTIME, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_HOPTIME, val2);
val1[0]=1;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_LBT_ENABLE, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_LBT_ENABLE, val2);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_MAXPOWER, val1);
short[] valso=new short[1];
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_MAXPOWER, valso);
System.out.println("max:"+valso[0]);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_MINPOWER, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_MINPOWER, valso);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_SUPPORTEDREGIONS, val1);
//er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_SUPPORTEDREGIONS, val2);
//er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_TEMPERATURE, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_TEMPERATURE, val2);
EmbededData_ST edst = Jreader.new EmbededData_ST();
edst.startaddr=0;
edst.bank=2;
//bytecnt=0 取消嵌入数据
edst.bytecnt=2;
edst.accesspwd=null;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_EMBEDEDDATA, edst);
EmbededData_ST edst2 = Jreader.new EmbededData_ST();
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_EMBEDEDDATA, edst2);
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_EMBEDEDDATA, null);
EmbededSecureRead_ST esrst=Jreader.new EmbededSecureRead_ST();
esrst.accesspwd=1280;
esrst.address=2;
esrst.ApIndexBitsNumInEpc=1;
esrst.ApIndexStartBitsInEpc=3;
esrst.bank=1;
//blkcnt =0 取消。
esrst.blkcnt=2;
esrst.pwdtype=1;
esrst.tagtype=2;
EmbededSecureRead_ST esrst2=Jreader.new EmbededSecureRead_ST();
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_EMDSECUREREAD, esrst);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_EMDSECUREREAD, esrst2);
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_EMDSECUREREAD, null);
TagFilter_ST tfst=Jreader.new TagFilter_ST();
tfst.bank=1;
tfst.fdata=new byte[]{(byte) 0xE2,(byte) 0x00};
//flen 0 为取消过滤
tfst.flen=2;
tfst.isInvert=0;
tfst.startaddr=2;
TagFilter_ST tfst2=Jreader.new TagFilter_ST();
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_FILTER, tfst);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_FILTER, tfst2);
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_FILTER, null);
Inv_Potls_ST ipst=Jreader.new Inv_Potls_ST();
ipst.potlcnt=1;
ipst.potls=new Inv_Potl[1];
for(int i=0;i<ipst.potlcnt;i++)
{
Inv_Potl ipl=Jreader.new Inv_Potl();
ipl.weight=30;
ipl.potl=SL_TagProtocol.SL_TAG_PROTOCOL_GEN2;
ipst.potls[0]=ipl;
}
Inv_Potls_ST ipst2=Jreader.new Inv_Potls_ST();
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_INVPOTL, ipst);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_INVPOTL, ipst2);
for(int i=0;i<ipst2.potlcnt;i++)
System.out.println(ipst2.potls[i].potl);
val1[0]=1;
val2[0]=0;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_SEARCH_MODE, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_SEARCH_MODE, val2);
val1[0]=1;
val2[0]=0;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAGDATA_RECORDHIGHESTRSSI, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAGDATA_RECORDHIGHESTRSSI, val2);
val1[0]=1;
val2[0]=0;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAGDATA_UNIQUEBYANT, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAGDATA_UNIQUEBYANT, val2);
val1[0]=1;
val2[0]=0;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAGDATA_UNIQUEBYEMDDATA, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAGDATA_UNIQUEBYEMDDATA, val2);
val1[0]=300;
val2[0]=0;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TRANS_TIMEOUT, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TRANS_TIMEOUT, val2);
val1[0]=1;
val2[0]=0;
er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TRANSMIT_MODE, val1);
er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TRANSMIT_MODE, val2);
}
public void testgpio() {
READER_ERR er=Jreader.SetGPO(1, 1);
er=Jreader.SetGPO(2, 0);
er=Jreader.SetGPO(3, 0);
er=Jreader.SetGPO(4, 1);
int[] val=new int[1];
er=Jreader.GetGPI(1, val);
er=Jreader.GetGPI(2, val);
er=Jreader.GetGPI(3, val);
er=Jreader.GetGPI(4, val);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ReadUtils mt=new ReadUtils();
//测试初始化
//启动
mt.testinitreader();
//测试转换
//mt.testtran();
//测试gpio
//mt.testgpio();
//测试参数
//mt.testrparams();
//测试块操作
//mt.testblockop();
//测试特殊指令
//mt.testcustomcmd();
//测试读写器内部数据
//mt.testdataonreader();
//测试盘点方式1
//盘存
mt.testinventory1();
//测试盘点方式2
// mt.testinventory2();
//测试销毁密码
//mt.testkilltag();
//测试锁标签
//mt.testlocktag();
//测试读写标签
// mt.testreadandwrite();
//测试改ip地址
//可以修改ip
// apcf.Powers[i]=jaap;
// }
// AntPowerConf apcf2=Jreader.new AntPowerConf();
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_ANTPOWER, apcf);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_ANTPOWER, apcf2);
// for(int i=0;i<apcf2.antcnt;i++)
// {
// System.out.print("antid:"+apcf2.Powers[i].antid);
// System.out.print(" rp:"+apcf2.Powers[i].readPower);
// System.out.print(" wp:"+apcf2.Powers[i].writePower);
// System.out.println();
// }
//
// val1[0]=100;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_HOPTIME, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_HOPTIME, val2);
//
// val1[0]=1;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_LBT_ENABLE, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_LBT_ENABLE, val2);
//
//
// //er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_MAXPOWER, val1);
// short[] valso=new short[1];
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_MAXPOWER, valso);
// System.out.println("max:"+valso[0]);
//
// //er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_MINPOWER, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_MINPOWER, valso);
//
// //er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_SUPPORTEDREGIONS, val1);
// //er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_SUPPORTEDREGIONS, val2);
//
// //er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_RF_TEMPERATURE, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_RF_TEMPERATURE, val2);
//
// EmbededData_ST edst = Jreader.new EmbededData_ST();
// edst.startaddr=0;
// edst.bank=2;
// //bytecnt=0 取消嵌入数据
// edst.bytecnt=2;
// edst.accesspwd=null;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_EMBEDEDDATA, edst);
//
// EmbededData_ST edst2 = Jreader.new EmbededData_ST();
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_EMBEDEDDATA, edst2);
//
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_EMBEDEDDATA, null);
//
// EmbededSecureRead_ST esrst=Jreader.new EmbededSecureRead_ST();
// esrst.accesspwd=1280;
// esrst.address=2;
// esrst.ApIndexBitsNumInEpc=1;
// esrst.ApIndexStartBitsInEpc=3;
// esrst.bank=1;
// //blkcnt =0 取消。
// esrst.blkcnt=2;
// esrst.pwdtype=1;
// esrst.tagtype=2;
// EmbededSecureRead_ST esrst2=Jreader.new EmbededSecureRead_ST();
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_EMDSECUREREAD, esrst);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_EMDSECUREREAD, esrst2);
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_EMDSECUREREAD, null);
//
// TagFilter_ST tfst=Jreader.new TagFilter_ST();
// tfst.bank=1;
// tfst.fdata=new byte[]{(byte) 0xE2,(byte) 0x00};
// //flen 0 为取消过滤
// tfst.flen=2;
// tfst.isInvert=0;
// tfst.startaddr=2;
// TagFilter_ST tfst2=Jreader.new TagFilter_ST();
//
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_FILTER, tfst);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_FILTER, tfst2);
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_FILTER, null);
//
// Inv_Potls_ST ipst=Jreader.new Inv_Potls_ST();
// ipst.potlcnt=1;
// ipst.potls=new Inv_Potl[1];
// for(int i=0;i<ipst.potlcnt;i++)
// {
// Inv_Potl ipl=Jreader.new Inv_Potl();
// ipl.weight=30;
// ipl.potl=SL_TagProtocol.SL_TAG_PROTOCOL_GEN2;
// ipst.potls[0]=ipl;
// }
//
// Inv_Potls_ST ipst2=Jreader.new Inv_Potls_ST();
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_INVPOTL, ipst);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_INVPOTL, ipst2);
// for(int i=0;i<ipst2.potlcnt;i++)
// System.out.println(ipst2.potls[i].potl);
//
// val1[0]=1;
// val2[0]=0;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAG_SEARCH_MODE, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAG_SEARCH_MODE, val2);
//
// val1[0]=1;
// val2[0]=0;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAGDATA_RECORDHIGHESTRSSI, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAGDATA_RECORDHIGHESTRSSI, val2);
//
// val1[0]=1;
// val2[0]=0;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAGDATA_UNIQUEBYANT, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAGDATA_UNIQUEBYANT, val2);
//
// val1[0]=1;
// val2[0]=0;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TAGDATA_UNIQUEBYEMDDATA, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TAGDATA_UNIQUEBYEMDDATA, val2);
//
// val1[0]=300;
// val2[0]=0;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TRANS_TIMEOUT, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TRANS_TIMEOUT, val2);
//
// val1[0]=1;
// val2[0]=0;
// er=Jreader.ParamSet(Mtr_Param.MTR_PARAM_TRANSMIT_MODE, val1);
// er=Jreader.ParamGet(Mtr_Param.MTR_PARAM_TRANSMIT_MODE, val2);
// }
//
// public void testgpio() {
// READER_ERR er=Jreader.SetGPO(1, 1);
// er=Jreader.SetGPO(2, 0);
// er=Jreader.SetGPO(3, 0);
// er=Jreader.SetGPO(4, 1);
//
// int[] val=new int[1];
// er=Jreader.GetGPI(1, val);
// er=Jreader.GetGPI(2, val);
// er=Jreader.GetGPI(3, val);
// er=Jreader.GetGPI(4, val);
// }
//
//
// public static void main(String[] args) {
// // TODO Auto-generated method stub
//
// ReadUtils mt=new ReadUtils();
// //测试初始化
// //启动
// mt.testinitreader();
// //测试转换
// //mt.testtran();
// //测试gpio
// //mt.testgpio();
// //测试参数
// //mt.testrparams();
// //测试块操作
// //mt.testblockop();
// //测试特殊指令
// //mt.testcustomcmd();
// //测试读写器内部数据
// //mt.testdataonreader();
// //测试盘点方式1
// //盘存
// mt.testinventory1();
// //测试盘点方式2
//// mt.testinventory2();
// //测试销毁密码
// //mt.testkilltag();
// //测试锁标签
// //mt.testlocktag();
// //测试读写标签
//// mt.testreadandwrite();
// //测试改ip地址
// //可以修改ip
// mt.testsetip();
//测试psam
//mt.testpsam();
//关闭读写器
//关闭
mt.Jreader.CloseReader();
System.out.println("test over");
}
}
//
// //测试psam
// //mt.testpsam();
//
// //关闭读写器
// //关闭
// mt.Jreader.CloseReader();
// System.out.println("test over");
// }
//
//}
package com.tykj.dev.union;
import com.tykj.dev.device.allot.repository.AllotBackBillDao;
import com.tykj.dev.device.allot.repository.AllotBillDao;
import com.tykj.dev.device.allot.subject.domin.AllotBackBill;
import com.tykj.dev.device.allot.subject.domin.AllotBill;
import com.tykj.dev.device.confirmcheck.entity.domain.DeviceCheckDetail;
import com.tykj.dev.device.confirmcheck.repository.DeviceCheckDetailDao;
import com.tykj.dev.device.matching.repository.MatchingDeviceLibraryDao;
import com.tykj.dev.device.matching.subject.domin.MatchingDeviceLibrary;
import com.tykj.dev.device.repair.repository.RepairBackBillDao;
import com.tykj.dev.device.repair.repository.RepairBillDao;
import com.tykj.dev.device.repair.repository.RepairDetailDao;
import com.tykj.dev.device.repair.repository.RepairSendBillDao;
import com.tykj.dev.device.repair.subject.domin.RepairBackBill;
import com.tykj.dev.device.repair.subject.domin.RepairBill;
import com.tykj.dev.device.repair.subject.domin.RepairDetail;
import com.tykj.dev.device.repair.subject.domin.RepairSendBill;
import com.tykj.dev.device.selfcheck.repository.SelfCheckBillDao;
import com.tykj.dev.device.selfcheck.subject.domin.SelfCheckBill;
import com.tykj.dev.device.user.subject.dao.UnitsDao;
import com.tykj.dev.device.user.subject.entity.Units;
import com.tykj.dev.device.user.util.AuthenticationUtils;
import com.tykj.dev.device.user.util.UserUtils;
import com.tykj.dev.device.usereport.repository.DeviceUseReportDao;
import com.tykj.dev.device.usereport.subject.domin.DeviceUseReport;
import com.tykj.dev.misc.utils.SpringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.DependsOn;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
@Slf4j
@Component
public class DataInit {
@Resource
private UnitsDao unitsDao;
@Autowired
private AllotBillDao allotBillDao;
@Autowired
private AllotBackBillDao allotBackBillDao;
@Autowired
private RepairBackBillDao repairBackBillDao;
@Autowired
private RepairDetailDao repairDetailDao;
@Autowired
private RepairSendBillDao repairSendBillDao;
@Autowired
private RepairBillDao repairBillDao;
@Autowired
private SelfCheckBillDao selfCheckBillDao;
@Autowired
private DeviceUseReportDao deviceUseReportDao;
@Autowired
private MatchingDeviceLibraryDao matchingDeviceLibraryDao;
@Autowired
private UserUtils userUtils;
@Autowired
private SpringUtils springUtils;
@Autowired
private com.tykj.dev.device.user.util.AuthenticationUtils AuthenticationUtils;
private void initCheckDetailUnitName() {
// 对现有的数据补充unitId信息
allotBillDao.findAll().forEach(this::saveModifyDetail1);
allotBackBillDao.findAll().forEach(this::saveModifyDetail2);
selfCheckBillDao.findAll().forEach(this::saveModifyDetail3);
repairBillDao.findAll().forEach(this::saveModifyDetail4);
repairSendBillDao.findAll().forEach(this::saveModifyDetail5);
repairDetailDao.findAll().forEach(this::saveModifyDetail6);
repairBackBillDao.findAll().forEach(this::saveModifyDetail7);
deviceUseReportDao.findAll().forEach(this::saveModifyDetail8);
matchingDeviceLibraryDao.findAll().forEach(this::saveModifyDetail9);
}
private void saveModifyDetail1(AllotBill allotBill) {
String receiveUnit = allotBill.getReceiveUnit();
String sendUnit = allotBill.getSendUnit();
Integer receiveUnitId = getUnitId(receiveUnit);
Integer sendUnitId = getUnitId(sendUnit);
if (receiveUnitId != -1 && sendUnitId != -1) {
allotBill.setReceiveUnitId(receiveUnitId);
allotBill.setSendUnitId(sendUnitId);
log.info("[配发] 修正allotBill历史数据,修正的发件单位:{},修正的接收单位:{},发送单位id:{},接收单位id:{}",
sendUnit, receiveUnit,sendUnitId,receiveUnitId);
allotBillDao.save(allotBill);
}
}
private void saveModifyDetail2(AllotBackBill allotBackBill) {
String receiveUnit = allotBackBill.getReceiveUnit();
String sendUnit = allotBackBill.getSendUnit();
Integer receiveUnitId = getUnitId(receiveUnit);
Integer sendUnitId = getUnitId(sendUnit);
if (receiveUnitId != -1 && sendUnitId != -1) {
allotBackBill.setReceiveUnitId(receiveUnitId);
allotBackBill.setSendUnitId(sendUnitId);
log.info("[退回] 修正allotBill历史数据,修正的发件单位:{},修正的接收单位:{},发送单位id:{},接收单位id:{}",
sendUnit, receiveUnit,sendUnitId,receiveUnitId);
allotBackBillDao.save(allotBackBill);
}
}
private void saveModifyDetail3(SelfCheckBill selfCheckBill) {
String receiveUnit = selfCheckBill.getCheckUnit();
Integer receiveUnitId = getUnitId(receiveUnit);
if (receiveUnitId != -1) {
selfCheckBill.setCheckUnitId(receiveUnitId);
log.info("[自查] 修正selfCheckBill历史数据,修正的单位:{},接收单位id:{}",
receiveUnit,receiveUnitId);
selfCheckBillDao.save(selfCheckBill);
}
}
private void saveModifyDetail4(RepairBill allotBill) {
String receiveUnit = allotBill.getReceiveUnit();
String sendUnit = allotBill.getSendUnit();
Integer receiveUnitId = getUnitId(receiveUnit);
Integer sendUnitId = getUnitId(sendUnit);
if (receiveUnitId != -1 && sendUnitId != -1) {
allotBill.setReceiveUnitId(receiveUnitId);
allotBill.setSendUnitId(sendUnitId);
log.info("[维修] 修正RepairBill历史数据,修正的发件单位:{},修正的接收单位:{},发送单位id:{},接收单位id:{}",
sendUnit, receiveUnit,sendUnitId,receiveUnitId);
repairBillDao.save(allotBill);
}
}
private void saveModifyDetail5(RepairSendBill allotBill) {
String receiveUnit = allotBill.getReceiveUnit();
String sendUnit = allotBill.getSendUnit();
Integer receiveUnitId = getUnitId(receiveUnit);
Integer sendUnitId = getUnitId(sendUnit);
if (receiveUnitId != -1 && sendUnitId != -1) {
allotBill.setReceiveUnitId(receiveUnitId);
allotBill.setSendUnitId(sendUnitId);
log.info("[送修] 修正RepairSendBill历史数据,修正的发件单位:{},修正的接收单位:{},发送单位id:{},接收单位id:{}",
sendUnit, receiveUnit,sendUnitId,receiveUnitId);
repairSendBillDao.save(allotBill);
}
}
private void saveModifyDetail6(RepairDetail allotBill) {
String receiveUnit = allotBill.getLocationUnit();
String sendUnit = allotBill.getOwnUnit();
Integer receiveUnitId = getUnitId(receiveUnit);
Integer sendUnitId = getUnitId(sendUnit);
if (receiveUnitId != -1 && sendUnitId != -1) {
allotBill.setLocationUnitId(receiveUnitId);
allotBill.setOwnUnitId(sendUnitId);
log.info("[维修详情] 修正RepairDetail历史数据,修正的发件单位:{},修正的接收单位:{},发送单位id:{},接收单位id:{}",
sendUnit, receiveUnit,sendUnitId,receiveUnitId);
repairDetailDao.save(allotBill);
}
}
private void saveModifyDetail7(RepairBackBill allotBill) {
String receiveUnit = allotBill.getReceiveUnit();
String sendUnit = allotBill.getSendUnit();
Integer receiveUnitId = getUnitId(receiveUnit);
Integer sendUnitId = getUnitId(sendUnit);
if (receiveUnitId != -1 && sendUnitId != -1) {
allotBill.setReceiveUnitId(receiveUnitId);
allotBill.setSendUnitId(sendUnitId);
log.info("[维修退回] 修正RepairBackBill历史数据,修正的发件单位:{},修正的接收单位:{},发送单位id:{},接收单位id:{}",
sendUnit, receiveUnit,sendUnitId,receiveUnitId);
repairBackBillDao.save(allotBill);
}
}
private void saveModifyDetail8(DeviceUseReport allotBill) {
String receiveUnit = allotBill.getUnit();
Integer receiveUnitId = getUnitId(receiveUnit);
if (receiveUnitId != -1 ) {
allotBill.setUnitId(receiveUnitId);
log.info("[用户使用报告] 修正DeviceUseReport历史数据,修正的单位:{},接收单位id:{}",
receiveUnit,receiveUnitId);
deviceUseReportDao.save(allotBill);
}
}
private void saveModifyDetail9(MatchingDeviceLibrary matchingDeviceLibrary) {
String createUnit = matchingDeviceLibrary.getCreateUnit();
Integer createUnitId = getUnitId(createUnit);
if (createUnitId != -1 ) {
matchingDeviceLibrary.setCreateUnitId(createUnitId);
log.info("[配套设备库] 修正MatchingDeviceLibrary历史数据,修正的单位:{},接收单位id:{}",
createUnit,createUnitId);
matchingDeviceLibraryDao.save(matchingDeviceLibrary);
}
}
private Integer getUnitId(String unitName) {
List<Units> units = unitsDao.findAllByName(unitName).orElse(Collections.emptyList());
return units.size() == 1 ? units.get(0).getUnitId() : -1;
}
// @Bean
// @DependsOn("userUtils")
@PostConstruct
public void init2(){
log.info("单位名称初始化-----");
initCheckDetailUnitName();
initCheckDetailUnitName2();
}
@Autowired
private DeviceCheckDetailDao
deviceCheckDetailDao;
private void initCheckDetailUnitName2() {
// 对现有的数据补充unitId信息
deviceCheckDetailDao.findAll().forEach(this::saveModifyDetail);
}
private void saveModifyDetail(DeviceCheckDetail deviceCheckDetail) {
String checkUnit = deviceCheckDetail.getCheckUnit();
Integer unitId = getUnitId(checkUnit);
if (unitId != -1) {
deviceCheckDetail.setCheckUnitId(unitId);
log.info("[核查] 修正detail历史数据,修正的单位:{},单位id:{}", checkUnit, unitId);
deviceCheckDetailDao.save(deviceCheckDetail);
}
}
// @Override
// @Order(value = 1)
// public void run(String... args) throws Exception {
//package com.tykj.dev.union;
//
//import com.tykj.dev.device.allot.repository.AllotBackBillDao;
//import com.tykj.dev.device.allot.repository.AllotBillDao;
//import com.tykj.dev.device.allot.subject.domin.AllotBackBill;
//import com.tykj.dev.device.allot.subject.domin.AllotBill;
//import com.tykj.dev.device.confirmcheck.entity.domain.DeviceCheckDetail;
//import com.tykj.dev.device.confirmcheck.repository.DeviceCheckDetailDao;
//import com.tykj.dev.device.matching.repository.MatchingDeviceLibraryDao;
//import com.tykj.dev.device.matching.subject.domin.MatchingDeviceLibrary;
//import com.tykj.dev.device.repair.repository.RepairBackBillDao;
//import com.tykj.dev.device.repair.repository.RepairBillDao;
//import com.tykj.dev.device.repair.repository.RepairDetailDao;
//import com.tykj.dev.device.repair.repository.RepairSendBillDao;
//import com.tykj.dev.device.repair.subject.domin.RepairBackBill;
//import com.tykj.dev.device.repair.subject.domin.RepairBill;
//import com.tykj.dev.device.repair.subject.domin.RepairDetail;
//import com.tykj.dev.device.repair.subject.domin.RepairSendBill;
//import com.tykj.dev.device.selfcheck.repository.SelfCheckBillDao;
//import com.tykj.dev.device.selfcheck.subject.domin.SelfCheckBill;
//import com.tykj.dev.device.user.subject.dao.UnitsDao;
//import com.tykj.dev.device.user.subject.entity.Units;
//import com.tykj.dev.device.user.util.AuthenticationUtils;
//import com.tykj.dev.device.user.util.UserUtils;
//import com.tykj.dev.device.usereport.repository.DeviceUseReportDao;
//import com.tykj.dev.device.usereport.subject.domin.DeviceUseReport;
//import com.tykj.dev.misc.utils.SpringUtils;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.CommandLineRunner;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.DependsOn;
//import org.springframework.core.annotation.Order;
//import org.springframework.stereotype.Component;
//import org.springframework.transaction.annotation.Transactional;
//
//import javax.annotation.PostConstruct;
//import javax.annotation.Resource;
//import java.util.Collections;
//import java.util.List;
//
//@Slf4j
//@Component
//public class DataInit {
//
// @Resource
// private UnitsDao unitsDao;
//
// @Autowired
// private AllotBillDao allotBillDao;
// @Autowired
// private AllotBackBillDao allotBackBillDao;
// @Autowired
// private RepairBackBillDao repairBackBillDao;
// @Autowired
// private RepairDetailDao repairDetailDao;
// @Autowired
// private RepairSendBillDao repairSendBillDao;
// @Autowired
// private RepairBillDao repairBillDao;
// @Autowired
// private SelfCheckBillDao selfCheckBillDao;
// @Autowired
// private DeviceUseReportDao deviceUseReportDao;
//
// @Autowired
// private MatchingDeviceLibraryDao matchingDeviceLibraryDao;
//
// @Autowired
// private UserUtils userUtils;
//
// @Autowired
// private SpringUtils springUtils;
//
// @Autowired
// private com.tykj.dev.device.user.util.AuthenticationUtils AuthenticationUtils;
//
// private void initCheckDetailUnitName() {
// // 对现有的数据补充unitId信息
// allotBillDao.findAll().forEach(this::saveModifyDetail1);
// allotBackBillDao.findAll().forEach(this::saveModifyDetail2);
// selfCheckBillDao.findAll().forEach(this::saveModifyDetail3);
// repairBillDao.findAll().forEach(this::saveModifyDetail4);
// repairSendBillDao.findAll().forEach(this::saveModifyDetail5);
// repairDetailDao.findAll().forEach(this::saveModifyDetail6);
// repairBackBillDao.findAll().forEach(this::saveModifyDetail7);
// deviceUseReportDao.findAll().forEach(this::saveModifyDetail8);
// matchingDeviceLibraryDao.findAll().forEach(this::saveModifyDetail9);
// }
//
//
// private void saveModifyDetail1(AllotBill allotBill) {
// String receiveUnit = allotBill.getReceiveUnit();
// String sendUnit = allotBill.getSendUnit();
//
// Integer receiveUnitId = getUnitId(receiveUnit);
// Integer sendUnitId = getUnitId(sendUnit);
//
// if (receiveUnitId != -1 && sendUnitId != -1) {
// allotBill.setReceiveUnitId(receiveUnitId);
// allotBill.setSendUnitId(sendUnitId);
// log.info("[配发] 修正allotBill历史数据,修正的发件单位:{},修正的接收单位:{},发送单位id:{},接收单位id:{}",
// sendUnit, receiveUnit,sendUnitId,receiveUnitId);
// allotBillDao.save(allotBill);
// }
//
// }
//
// private void saveModifyDetail2(AllotBackBill allotBackBill) {
// String receiveUnit = allotBackBill.getReceiveUnit();
// String sendUnit = allotBackBill.getSendUnit();
//
// Integer receiveUnitId = getUnitId(receiveUnit);
// Integer sendUnitId = getUnitId(sendUnit);
//
// if (receiveUnitId != -1 && sendUnitId != -1) {
// allotBackBill.setReceiveUnitId(receiveUnitId);
// allotBackBill.setSendUnitId(sendUnitId);
// log.info("[退回] 修正allotBill历史数据,修正的发件单位:{},修正的接收单位:{},发送单位id:{},接收单位id:{}",
// sendUnit, receiveUnit,sendUnitId,receiveUnitId);
// allotBackBillDao.save(allotBackBill);
// }
//
// }
//
// private void saveModifyDetail3(SelfCheckBill selfCheckBill) {
// String receiveUnit = selfCheckBill.getCheckUnit();
// Integer receiveUnitId = getUnitId(receiveUnit);
// if (receiveUnitId != -1) {
// selfCheckBill.setCheckUnitId(receiveUnitId);
// log.info("[自查] 修正selfCheckBill历史数据,修正的单位:{},接收单位id:{}",
// receiveUnit,receiveUnitId);
// selfCheckBillDao.save(selfCheckBill);
// }
//
// }
//
// private void saveModifyDetail4(RepairBill allotBill) {
// String receiveUnit = allotBill.getReceiveUnit();
// String sendUnit = allotBill.getSendUnit();
//
// Integer receiveUnitId = getUnitId(receiveUnit);
// Integer sendUnitId = getUnitId(sendUnit);
//
// if (receiveUnitId != -1 && sendUnitId != -1) {
// allotBill.setReceiveUnitId(receiveUnitId);
// allotBill.setSendUnitId(sendUnitId);
// log.info("[维修] 修正RepairBill历史数据,修正的发件单位:{},修正的接收单位:{},发送单位id:{},接收单位id:{}",
// sendUnit, receiveUnit,sendUnitId,receiveUnitId);
// repairBillDao.save(allotBill);
// }
//
// }
//
// private void saveModifyDetail5(RepairSendBill allotBill) {
// String receiveUnit = allotBill.getReceiveUnit();
// String sendUnit = allotBill.getSendUnit();
//
// Integer receiveUnitId = getUnitId(receiveUnit);
// Integer sendUnitId = getUnitId(sendUnit);
//
// if (receiveUnitId != -1 && sendUnitId != -1) {
// allotBill.setReceiveUnitId(receiveUnitId);
// allotBill.setSendUnitId(sendUnitId);
// log.info("[送修] 修正RepairSendBill历史数据,修正的发件单位:{},修正的接收单位:{},发送单位id:{},接收单位id:{}",
// sendUnit, receiveUnit,sendUnitId,receiveUnitId);
// repairSendBillDao.save(allotBill);
// }
//
// }
//
// private void saveModifyDetail6(RepairDetail allotBill) {
// String receiveUnit = allotBill.getLocationUnit();
// String sendUnit = allotBill.getOwnUnit();
//
// Integer receiveUnitId = getUnitId(receiveUnit);
// Integer sendUnitId = getUnitId(sendUnit);
//
// if (receiveUnitId != -1 && sendUnitId != -1) {
// allotBill.setLocationUnitId(receiveUnitId);
// allotBill.setOwnUnitId(sendUnitId);
// log.info("[维修详情] 修正RepairDetail历史数据,修正的发件单位:{},修正的接收单位:{},发送单位id:{},接收单位id:{}",
// sendUnit, receiveUnit,sendUnitId,receiveUnitId);
// repairDetailDao.save(allotBill);
// }
//
// }
// private void saveModifyDetail7(RepairBackBill allotBill) {
// String receiveUnit = allotBill.getReceiveUnit();
// String sendUnit = allotBill.getSendUnit();
//
// Integer receiveUnitId = getUnitId(receiveUnit);
// Integer sendUnitId = getUnitId(sendUnit);
//
// if (receiveUnitId != -1 && sendUnitId != -1) {
// allotBill.setReceiveUnitId(receiveUnitId);
// allotBill.setSendUnitId(sendUnitId);
// log.info("[维修退回] 修正RepairBackBill历史数据,修正的发件单位:{},修正的接收单位:{},发送单位id:{},接收单位id:{}",
// sendUnit, receiveUnit,sendUnitId,receiveUnitId);
// repairBackBillDao.save(allotBill);
// }
//
// }
//
// private void saveModifyDetail8(DeviceUseReport allotBill) {
// String receiveUnit = allotBill.getUnit();
// Integer receiveUnitId = getUnitId(receiveUnit);
// if (receiveUnitId != -1 ) {
// allotBill.setUnitId(receiveUnitId);
// log.info("[用户使用报告] 修正DeviceUseReport历史数据,修正的单位:{},接收单位id:{}",
// receiveUnit,receiveUnitId);
// deviceUseReportDao.save(allotBill);
// }
//
// }
//
// private void saveModifyDetail9(MatchingDeviceLibrary matchingDeviceLibrary) {
// String createUnit = matchingDeviceLibrary.getCreateUnit();
// Integer createUnitId = getUnitId(createUnit);
// if (createUnitId != -1 ) {
// matchingDeviceLibrary.setCreateUnitId(createUnitId);
// log.info("[配套设备库] 修正MatchingDeviceLibrary历史数据,修正的单位:{},接收单位id:{}",
// createUnit,createUnitId);
// matchingDeviceLibraryDao.save(matchingDeviceLibrary);
// }
//
// }
//
// private Integer getUnitId(String unitName) {
// List<Units> units = unitsDao.findAllByName(unitName).orElse(Collections.emptyList());
// return units.size() == 1 ? units.get(0).getUnitId() : -1;
// }
//
//// @Bean
//// @DependsOn("userUtils")
// @PostConstruct
// public void init2(){
// log.info("单位名称初始化-----");
// initCheckDetailUnitName();
// initCheckDetailUnitName2();
// }
//
// @Autowired
// private DeviceCheckDetailDao
// deviceCheckDetailDao;
//
// private void initCheckDetailUnitName2() {
// // 对现有的数据补充unitId信息
// deviceCheckDetailDao.findAll().forEach(this::saveModifyDetail);
// }
//
// private void saveModifyDetail(DeviceCheckDetail deviceCheckDetail) {
// String checkUnit = deviceCheckDetail.getCheckUnit();
// Integer unitId = getUnitId(checkUnit);
// if (unitId != -1) {
// deviceCheckDetail.setCheckUnitId(unitId);
// log.info("[核查] 修正detail历史数据,修正的单位:{},单位id:{}", checkUnit, unitId);
// deviceCheckDetailDao.save(deviceCheckDetail);
// }
// }
}
//// @Override
//// @Order(value = 1)
//// public void run(String... args) throws Exception {
//// log.info("单位名称初始化-----");
//// initCheckDetailUnitName();
//// }
//}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论