package com.fzzy.protocol.sdkhk;
|
|
import com.fzzy.api.data.GatewayDeviceProtocol;
|
import com.fzzy.gateway.api.GatewaySyncLprService;
|
import com.fzzy.gateway.data.BaseReqData;
|
import com.fzzy.gateway.data.BaseResp;
|
import com.fzzy.gateway.entity.GatewayDevice;
|
import com.fzzy.protocol.sdkhk.lpr.AlarmLpr;
|
import lombok.Data;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Component;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* 网关与设备之间的通讯-海康SDK
|
*/
|
@Slf4j
|
@Component
|
public class HkGatewaySyncLprImpl implements GatewaySyncLprService {
|
|
|
private AlarmLpr alarmLpr = new AlarmLpr();
|
|
@Override
|
public String getLprProtocol() {
|
return GatewayDeviceProtocol.DEVICE_LPR_SDK_HK.getCode();
|
}
|
|
@Override
|
public BaseResp syncLpr(BaseReqData reqData) {
|
return new BaseResp(500, "系统不支持手动触发获取");
|
}
|
|
@Override
|
public BaseResp initLpr(BaseReqData reqData) {
|
try {
|
String msg = alarmLpr.initSdk();
|
|
log.info("--------初始化HK-SDK-------{}", msg);
|
|
Thread.sleep(500);
|
|
GatewayDevice device = reqData.getDevice();
|
//如果已经上线先离线
|
String status = HKUtils.getStatus(reqData.getDeviceId());
|
if ("Y".equals(status)) {
|
alarmLpr.logout(reqData.getIndex(), device.getIp(), device.getPort());
|
Thread.sleep(500);
|
}
|
|
//重新登陆
|
msg = alarmLpr.login(reqData.getIndex(), device.getIp(), device.getPort(), device.getUserName(), device.getPassword());
|
|
if (HKUtils.RESULT_SUCCESS.equals(msg)) {
|
HKUtils.updateStatus(device.getDeviceId(), "Y");
|
}
|
|
} catch (Exception e) {
|
log.error("----------------初始化车牌识别执行识别失败----------------------{}", e);
|
}
|
|
return new BaseResp();
|
}
|
}
|