package com.ld.igds.protocol.hk;
|
|
import com.ld.igds.inout.ApiInoutService;
|
import com.ld.igds.inout.dto.ApiInoutData;
|
import com.ld.igds.inout.dto.InoutData;
|
import com.ld.igds.protocol.hk.lpr.AlarmLpr;
|
import com.ld.igds.constant.Constant;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.stereotype.Component;
|
|
/**
|
* 海康警告类型车牌识别JDK调用
|
*/
|
@Slf4j
|
@Component
|
public class HkApiInoutService implements ApiInoutService {
|
|
private AlarmLpr alarmLpr = new AlarmLpr();
|
|
@Override
|
public String getProtocol() {
|
return "HIK_SDK";
|
}
|
|
@Override
|
public ApiInoutData getIcCardNum(ApiInoutData param) {
|
return null;
|
}
|
|
@Override
|
public ApiInoutData getPlateNum(ApiInoutData param) {
|
|
// 获取缓存数据
|
ApiInoutData lPrData = HKConstant.getDataBySn(param.getSn());
|
|
if (null == lPrData) {
|
param.setErrorMsg("ERROR:系统未获取到当前设备信息");
|
return param;
|
}
|
|
if (Constant.YN_N.equals(lPrData.getStatus())) {
|
param.setErrorMsg("ERROR:当前车牌识别认证登陆失败,请重置车牌识别");
|
return param;
|
}
|
|
log.info("-------------请求参数----------------------{}", param.getSn());
|
if (HKConstant.RESULT_SUCCESS.equals(lPrData.getErrorMsg())) {
|
// 验证时间
|
if (System.currentTimeMillis() - lPrData.getTime().getTime() < HKConstant.CHECK_TIME) {
|
param.setPlateNum(lPrData.getPlateNum());
|
} else {
|
param.setErrorMsg("未识别到车牌,请重新尝试");
|
}
|
param.setPlateNum(lPrData.getPlateNum());
|
} else {
|
param.setErrorMsg(lPrData.getErrorMsg());
|
}
|
return param;
|
}
|
|
@Override
|
public String initLpr(ApiInoutData param) {
|
|
try {
|
String msg = alarmLpr.initSdk();
|
|
log.info("--------初始化HK-SDK-------{}", msg);
|
|
Thread.sleep(500);
|
|
ApiInoutData cacheData = HKConstant.getDataBySn(param.getSn());
|
|
if (null != cacheData && Constant.YN_Y.equals(cacheData.getStatus())) {
|
return null;
|
}
|
|
// 登陆
|
msg = alarmLpr.login(param.getChanNum(), param.getIp(), param.getPort(), param.getLoginId(), param.getPwd());
|
|
if (HKConstant.RESULT_SUCCESS.equals(msg)) {
|
param.setStatus(Constant.YN_Y);
|
} else {
|
param.setStatus(Constant.YN_N);
|
}
|
param.setErrorMsg(msg);
|
HKConstant.updateLprMap(param.getSn(), param);
|
|
return msg;
|
|
} catch (Exception e) {
|
log.error("----------------初始化车牌识别执行识别失败----------------------");
|
log.error(e.getMessage(),e);
|
}
|
|
return null;
|
}
|
|
@Override
|
public String gateControl(ApiInoutData param) {
|
return null;
|
}
|
|
@Override
|
public String lightControl(ApiInoutData param) {
|
return null;
|
}
|
|
@Override
|
public String noticeRadio(ApiInoutData param, InoutData data) {
|
return null;
|
}
|
|
@Override
|
public String noticeLed(ApiInoutData param, InoutData data) {
|
return null;
|
}
|
}
|