feat: 增加海康长连接采集温度并保存入库功能
parent
1429d53c02
commit
8d64ad8e57
@ -0,0 +1,61 @@
|
|||||||
|
package com.xydl.cac.thermal;
|
||||||
|
|
||||||
|
import com.hcsdk.HCNetSDK;
|
||||||
|
import com.sun.jna.Pointer;
|
||||||
|
import com.xydl.cac.entity.NSensor;
|
||||||
|
import com.xydl.cac.entity.ThermalConfig;
|
||||||
|
import com.xydl.cac.model.StaticVariable;
|
||||||
|
import com.xydl.cac.service.DataService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class HCRemoteConfigCallBack implements HCNetSDK.FRemoteConfigCallBack {
|
||||||
|
|
||||||
|
public boolean done;
|
||||||
|
public NSensor item;
|
||||||
|
public String time;
|
||||||
|
public ThermalConfig config;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
DataService dataService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void invoke(int dwType, Pointer lpBuffer, int dwBufLen, Pointer pUserData) {
|
||||||
|
if (done) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
HCNetSDK.NET_DVR_THERMOMETRY_UPLOAD data = new HCNetSDK.NET_DVR_THERMOMETRY_UPLOAD();
|
||||||
|
Pointer pointer = data.getPointer();
|
||||||
|
pointer.write(0, lpBuffer.getByteArray(0, data.size()), 0, data.size());
|
||||||
|
data.read();
|
||||||
|
float fAverageTemperature = data.struLinePolygonThermCfg.fAverageTemperature;
|
||||||
|
float fMinTemperature = data.struLinePolygonThermCfg.fMinTemperature;
|
||||||
|
float fMaxTemperature = data.struLinePolygonThermCfg.fMaxTemperature;
|
||||||
|
log.info("海康热成像采集到max=" + fMaxTemperature + ", min=" + fMinTemperature + ", aver=" + fAverageTemperature);
|
||||||
|
done = true;
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(config.getMaxtemp())) {
|
||||||
|
String value = String.valueOf(fMaxTemperature);
|
||||||
|
dataService.insertData(item.getTableName(), item.getDevId(), time, config.getMaxtemp(), value);
|
||||||
|
// 更新最新数据缓存
|
||||||
|
StaticVariable.updateLastData(item.getDevId(), config.getMaxtemp(), value, time);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(config.getMintemp())) {
|
||||||
|
String value = String.valueOf(fMinTemperature);
|
||||||
|
dataService.insertData(item.getTableName(), item.getDevId(), time, config.getMintemp(), value);
|
||||||
|
// 更新最新数据缓存
|
||||||
|
StaticVariable.updateLastData(item.getDevId(), config.getMintemp(), value, time);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(config.getAvertemp())) {
|
||||||
|
String value = String.valueOf(fAverageTemperature);
|
||||||
|
dataService.insertData(item.getTableName(), item.getDevId(), time, config.getAvertemp(), value);
|
||||||
|
// 更新最新数据缓存
|
||||||
|
StaticVariable.updateLastData(item.getDevId(), config.getAvertemp(), value, time);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue