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