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

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

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