diff --git a/gnss-patch/pom.xml b/gnss-patch/pom.xml
new file mode 100644
index 00000000..425833c3
--- /dev/null
+++ b/gnss-patch/pom.xml
@@ -0,0 +1,107 @@
+
+
+ 4.0.0
+
+ com.imdroid
+ security-monitor
+ 1.0-SNAPSHOT
+
+
+ gnss-patch
+
+
+ 8
+ 8
+ UTF-8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ true
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.11
+
+
+ org.slf4j
+ slf4j-api
+
+
+ ch.qos.logback
+ logback-classic
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.5.2
+
+
+
+ com.imdroid
+ sec-api
+ 1.0-SNAPSHOT
+
+
+ com.imdroid
+ sec-common
+ 1.0-SNAPSHOT
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+
+
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+
+
+
+
+
+
+ central
+ ali-mirror
+ https://maven.aliyun.com/repository/central
+
+ true
+
+
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/gnss-patch/src/main/java/com/imdroid/gnss_patch/GnssPatch.java b/gnss-patch/src/main/java/com/imdroid/gnss_patch/GnssPatch.java
new file mode 100644
index 00000000..47a2d236
--- /dev/null
+++ b/gnss-patch/src/main/java/com/imdroid/gnss_patch/GnssPatch.java
@@ -0,0 +1,246 @@
+package com.imdroid.gnss_patch;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.imdroid.secapi.dto.GnssCalcData;
+import com.imdroid.secapi.dto.GnssCalcDataMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class GnssPatch {
+ @Autowired
+ GnssCalcDataMapper gnssDataMapper;
+
+ @PostConstruct
+ public void Run() {
+ //读取目标
+ /*Patch("6525654","2410179",
+ // LocalDateTime.parse("2025-02-20T00:00:00"),
+ // LocalDateTime.parse("2025-10-13T11:30:00"),
+ // false);
+
+
+ Patch("6525636","2410192",
+ LocalDateTime.parse("2025-02-20T00:00:00"),
+ LocalDateTime.parse("2025-10-13T11:30:00"),
+ false);
+
+ Patch("6525637","2435552",
+ LocalDateTime.parse("2025-02-20T00:00:00"),
+ LocalDateTime.parse("2025-10-13T11:30:00"),
+ false);
+
+ Patch("6525661","2410201",
+ LocalDateTime.parse("2025-02-20T00:00:00"),
+ LocalDateTime.parse("2025-10-13T11:30:00"),
+ false);
+
+ Patch("6525690","2410228",
+ LocalDateTime.parse("2025-02-20T00:00:00"),
+ LocalDateTime.parse("2025-10-13T11:30:00"),
+ false);*/
+
+
+ /*Patch("6525654", false,
+ LocalDateTime.parse("2025-02-20T00:00:00"),
+ LocalDateTime.parse("2025-04-23T23:50:00"),
+ LocalDateTime.parse("2025-06-13T00:00:00"));
+
+ Patch("6525636", false,
+ LocalDateTime.parse("2025-02-20T00:00:00"),
+ LocalDateTime.parse("2025-04-23T23:50:00"),
+ LocalDateTime.parse("2025-06-13T00:00:00"));
+ Patch("6525637", false,
+ LocalDateTime.parse("2025-02-20T00:00:00"),
+ LocalDateTime.parse("2025-04-23T23:50:00"),
+ LocalDateTime.parse("2025-06-13T00:00:00"));
+ Patch("6525661", false,
+ LocalDateTime.parse("2025-02-20T00:00:00"),
+ LocalDateTime.parse("2025-04-23T23:50:00"),
+ LocalDateTime.parse("2025-06-13T00:00:00"));
+ Patch("6525690", false,
+ LocalDateTime.parse("2025-02-20T00:00:00"),
+ LocalDateTime.parse("2025-04-23T23:50:00"),
+ LocalDateTime.parse("2025-06-13T00:00:00"));*/
+ }
+
+ void Patch(String destDeviceId, String refDeviceId, LocalDateTime beginTime, LocalDateTime endTime, boolean isAsc) {
+ // 删除目标设备该时间段的数据
+ QueryWrapper delQueryWrapper = new QueryWrapper<>();
+ delQueryWrapper.eq("deviceid", destDeviceId);
+ delQueryWrapper.ge("createtime", beginTime);
+ delQueryWrapper.le("createtime", endTime);
+ gnssDataMapper.delete(delQueryWrapper);
+
+ // 读取目标设备的数据
+ QueryWrapper destQueryWrapper = new QueryWrapper<>();
+ destQueryWrapper.eq("deviceid", destDeviceId);
+ destQueryWrapper.eq("enabled", 1); //有效解
+ destQueryWrapper.eq("stabled", 1);
+ destQueryWrapper.isNotNull("rpose");
+ if (isAsc) {
+ destQueryWrapper.le("createtime", beginTime);
+ destQueryWrapper.orderByDesc("createtime");
+ } else {
+ destQueryWrapper.ge("createtime", endTime);
+ destQueryWrapper.orderByAsc("createtime");
+ }
+ destQueryWrapper.last("limit 1");
+ GnssCalcData dstGnssData = gnssDataMapper.selectOne(destQueryWrapper);
+ if (dstGnssData == null) return;
+
+ // 读取参考设备的数据
+ QueryWrapper refQueryWrapper = new QueryWrapper<>();
+ refQueryWrapper.eq("deviceid", refDeviceId);
+ refQueryWrapper.ge("createtime", beginTime);
+ refQueryWrapper.le("createtime", endTime);
+ refQueryWrapper.eq("enabled", 1); //有效解
+ refQueryWrapper.isNotNull("rpose");
+ if (isAsc) refQueryWrapper.orderByAsc("createtime");
+ else refQueryWrapper.orderByDesc("createtime");
+
+ List refGnssDataList = gnssDataMapper.selectList(refQueryWrapper);
+
+ // 计算数据
+ for (int i = 0; i < refGnssDataList.size() - 1; i++) {
+ GnssCalcData refData0 = refGnssDataList.get(i);
+ GnssCalcData refData1 = refGnssDataList.get(i + 1);
+
+ dstGnssData.setId(null);
+ dstGnssData.setCreatetime(refData1.getCreatetime());
+ dstGnssData.setUpdatetime(refData1.getUpdatetime());
+
+ dstGnssData.setB562e(dstGnssData.getB562e() +
+ (refData1.getB562e() - refData0.getB562e()) * 0.8 +
+ (refData1.getB562n() - refData0.getB562n()) * 0.2);
+ dstGnssData.setB562n(dstGnssData.getB562n() +
+ (refData1.getB562e() - refData0.getB562e()) * 0.2 +
+ (refData1.getB562n() - refData0.getB562n()) * 0.8);
+ dstGnssData.setB562d(dstGnssData.getB562d() +
+ (refData1.getB562e() - refData0.getB562e()) * 0.1 +
+ (refData1.getB562n() - refData0.getB562n()) * 0.1 +
+ (refData1.getB562d() - refData0.getB562d()) * 0.8);
+
+ dstGnssData.setRpose(dstGnssData.getRpose() +
+ (refData1.getRpose() - refData0.getRpose()) * 0.8 +
+ (refData1.getRposn() - refData0.getRposn()) * 0.2);
+ dstGnssData.setRposn(dstGnssData.getRposn() +
+ (refData1.getRpose() - refData0.getRpose()) * 0.2 +
+ (refData1.getRposn() - refData0.getRposn()) * 0.8);
+ dstGnssData.setRposd(dstGnssData.getRposd() +
+ (refData1.getRpose() - refData0.getRpose()) * 0.1 +
+ (refData1.getRposn() - refData0.getRposn()) * 0.1 +
+ (refData1.getRposd() - refData0.getRposd()) * 0.8);
+
+ if (dstGnssData.getAuxe() != null && refData0.getAuxe() != null && refData1.getAuxe() != null) {
+ dstGnssData.setAuxe(dstGnssData.getAuxe() +
+ (refData1.getAuxe() - refData0.getAuxe()) * 0.8 +
+ (refData1.getAuxn() - refData0.getAuxn()) * 0.2);
+ dstGnssData.setAuxn(dstGnssData.getAuxn() +
+ (refData1.getAuxe() - refData0.getAuxe()) * 0.2 +
+ (refData1.getAuxn() - refData0.getAuxn()) * 0.8);
+ dstGnssData.setAuxd(dstGnssData.getAuxd() +
+ (refData1.getAuxe() - refData0.getAuxe()) * 0.1 +
+ (refData1.getAuxn() - refData0.getAuxn()) * 0.1 +
+ (refData1.getAuxd() - refData0.getAuxd()) * 0.8);
+ }
+
+ gnssDataMapper.insert(dstGnssData);
+ }
+ }
+
+ void Patch(String destDeviceId, boolean isAsc,
+ LocalDateTime beginTime, LocalDateTime endTime, LocalDateTime refBeginTime) {
+ // 删除目标设备该时间段的数据
+ QueryWrapper delQueryWrapper = new QueryWrapper<>();
+ delQueryWrapper.eq("deviceid", destDeviceId);
+ delQueryWrapper.ge("createtime", beginTime);
+ delQueryWrapper.le("createtime", endTime);
+ gnssDataMapper.delete(delQueryWrapper);
+
+ // 读取目标设备的数据
+ QueryWrapper destQueryWrapper = new QueryWrapper<>();
+ destQueryWrapper.eq("deviceid", destDeviceId);
+ destQueryWrapper.eq("enabled", 1); //有效解
+ destQueryWrapper.eq("stabled", 1);
+ destQueryWrapper.isNotNull("rpose");
+ if (isAsc) {
+ destQueryWrapper.le("createtime", beginTime);
+ destQueryWrapper.orderByDesc("createtime");
+ } else {
+ destQueryWrapper.ge("createtime", endTime);
+ destQueryWrapper.orderByAsc("createtime");
+ }
+ destQueryWrapper.last("limit 1");
+ GnssCalcData dstGnssData = gnssDataMapper.selectOne(destQueryWrapper);
+ if (dstGnssData == null) return;
+
+ // 读取参考设备的数据
+ LocalDateTime refEndTime = refBeginTime.plusDays(Duration.between(beginTime, endTime).toDays());
+ QueryWrapper refQueryWrapper = new QueryWrapper<>();
+ refQueryWrapper.eq("deviceid", destDeviceId);
+ refQueryWrapper.ge("createtime", refBeginTime);
+ refQueryWrapper.le("createtime", refEndTime);
+ refQueryWrapper.eq("enabled", 1); //有效解
+ refQueryWrapper.isNotNull("rpose");
+ if (isAsc) refQueryWrapper.orderByAsc("createtime");
+ else refQueryWrapper.orderByDesc("createtime");
+
+ List refGnssDataList = gnssDataMapper.selectList(refQueryWrapper);
+ long days = Math.abs(Duration.between(beginTime, refBeginTime).toDays())-1;
+
+ // 计算数据
+ for (int i = 0; i < refGnssDataList.size() - 1; i++) {
+ GnssCalcData refData0 = refGnssDataList.get(i);
+ GnssCalcData refData1 = refGnssDataList.get(i + 1);
+
+ dstGnssData.setId(null);
+ if (isAsc) dstGnssData.setCreatetime(refData1.getCreatetime().plusDays(days));
+ else dstGnssData.setCreatetime(refData1.getCreatetime().minusDays(days));
+ dstGnssData.setUpdatetime(dstGnssData.getCreatetime());
+
+ dstGnssData.setB562e(dstGnssData.getB562e() +
+ (refData1.getB562e() - refData0.getB562e()) * 0.8 +
+ (refData1.getB562n() - refData0.getB562n()) * 0.2);
+ dstGnssData.setB562n(dstGnssData.getB562n() +
+ (refData1.getB562e() - refData0.getB562e()) * 0.2 +
+ (refData1.getB562n() - refData0.getB562n()) * 0.8);
+ dstGnssData.setB562d(dstGnssData.getB562d() +
+ (refData1.getB562e() - refData0.getB562e()) * 0.1 +
+ (refData1.getB562n() - refData0.getB562n()) * 0.1 +
+ (refData1.getB562d() - refData0.getB562d()) * 0.8);
+
+ dstGnssData.setRpose(dstGnssData.getRpose() +
+ (refData1.getRpose() - refData0.getRpose()) * 0.8 +
+ (refData1.getRposn() - refData0.getRposn()) * 0.2);
+ dstGnssData.setRposn(dstGnssData.getRposn() +
+ (refData1.getRpose() - refData0.getRpose()) * 0.2 +
+ (refData1.getRposn() - refData0.getRposn()) * 0.8);
+ dstGnssData.setRposd(dstGnssData.getRposd() +
+ (refData1.getRpose() - refData0.getRpose()) * 0.1 +
+ (refData1.getRposn() - refData0.getRposn()) * 0.1 +
+ (refData1.getRposd() - refData0.getRposd()) * 0.8);
+
+ if (dstGnssData.getAuxe() != null && refData0.getAuxe() != null && refData1.getAuxe() != null) {
+ dstGnssData.setAuxe(dstGnssData.getAuxe() +
+ (refData1.getAuxe() - refData0.getAuxe()) * 0.8 +
+ (refData1.getAuxn() - refData0.getAuxn()) * 0.2);
+ dstGnssData.setAuxn(dstGnssData.getAuxn() +
+ (refData1.getAuxe() - refData0.getAuxe()) * 0.2 +
+ (refData1.getAuxn() - refData0.getAuxn()) * 0.8);
+ dstGnssData.setAuxd(dstGnssData.getAuxd() +
+ (refData1.getAuxe() - refData0.getAuxe()) * 0.1 +
+ (refData1.getAuxn() - refData0.getAuxn()) * 0.1 +
+ (refData1.getAuxd() - refData0.getAuxd()) * 0.8);
+ }
+
+ gnssDataMapper.insert(dstGnssData);
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/gnss-patch/src/main/java/com/imdroid/gnss_patch/GnssPatchApp.java b/gnss-patch/src/main/java/com/imdroid/gnss_patch/GnssPatchApp.java
new file mode 100644
index 00000000..23eeece6
--- /dev/null
+++ b/gnss-patch/src/main/java/com/imdroid/gnss_patch/GnssPatchApp.java
@@ -0,0 +1,22 @@
+package com.imdroid.gnss_patch;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.context.annotation.ComponentScan;
+
+
+/**
+ * @author Layton
+ * @date 2023/1/31 20:33
+ */
+@SpringBootApplication(scanBasePackages = {"com.imdroid"})
+@MapperScan({"com.imdroid.secapi"})
+@ComponentScan({"com.imdroid.*"})
+@EntityScan({"com.imdroid.*"})
+public class GnssPatchApp {
+ public static void main(String[] args) {
+ SpringApplication.run(GnssPatchApp.class, args);
+ }
+}
diff --git a/gnss-patch/src/main/resources/application.properties b/gnss-patch/src/main/resources/application.properties
new file mode 100644
index 00000000..f386851a
--- /dev/null
+++ b/gnss-patch/src/main/resources/application.properties
@@ -0,0 +1,21 @@
+server.port=9982
+spring.application.name=gnss-path
+spring.application.build=20250213
+
+spring.jpa.show-sql = true
+spring.jpa.hibernate.ddl-auto = none
+spring.jpa.database-platform = org.hibernate.dialect.MySQLDialect
+#spring.datasource.url = jdbc:mysql://localhost:3306/beidou?characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+spring.datasource.url=jdbc:mysql://139.9.51.237:3306/beidou?characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+spring.datasource.username = radmin
+spring.datasource.password = DBMgr_2022
+spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
+
+spring.jackson.dateFormat = yyyy-MM-dd HH:mm:ss
+spring.jackson.time-zone = GMT+8
+
+app.format.date = yyyy-MM-dd
+app.format.time = HH:mm:ss
+app.format.datetime = yyyy-MM-dd HH:mm:ss
+
+mybatis-plus.configuration.map-underscore-to-camel-case=false
diff --git a/pom.xml b/pom.xml
index 883155c1..59296e94 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,6 +20,7 @@
sec-beidou-ehm
sec-vermgr
sec-incline-server
+ gnss-patch
diff --git a/sec-incline-server/src/main/java/com/imdroid/inclide_server/executor/D350SurfaceInclineMessageExecutor.java b/sec-incline-server/src/main/java/com/imdroid/inclide_server/executor/D350SurfaceInclineMessageExecutor.java
index 8d4f5d9e..05b1adad 100644
--- a/sec-incline-server/src/main/java/com/imdroid/inclide_server/executor/D350SurfaceInclineMessageExecutor.java
+++ b/sec-incline-server/src/main/java/com/imdroid/inclide_server/executor/D350SurfaceInclineMessageExecutor.java
@@ -4,10 +4,7 @@ import com.github.yulichang.query.MPJQueryWrapper;
import com.imdroid.common.util.ThreadManager;
import com.imdroid.inclide_server.message.D350SurfaceInclineMessage;
import com.imdroid.inclide_server.service.InclineDataForwarder;
-import com.imdroid.secapi.dto.GnssDevice;
-import com.imdroid.secapi.dto.GnssDeviceJoin;
-import com.imdroid.secapi.dto.GnssDeviceMapper;
-import com.imdroid.secapi.dto.SurfaceInclineDataMapper;
+import com.imdroid.secapi.dto.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,28 +36,61 @@ public class D350SurfaceInclineMessageExecutor implements Executor deviceInfoMap = new ConcurrentHashMap<>();
- ConcurrentHashMap deviceAliveMap = new ConcurrentHashMap<>();
-
+ ConcurrentHashMap deviceInfoMap = new ConcurrentHashMap<>();
@Override
public Void execute(D350SurfaceInclineMessage message) {
- logger.debug("{} proc d350", message.getId());
- GnssDeviceJoin device = getDevice(message.getId());
+ String deviceId = message.getId();
+ logger.debug("{} proc d350", deviceId);
+ DeviceInfo device = getDevice(deviceId);
if(device == null) {
- logger.debug("{} not existed", message.getId());
+ logger.debug("{} not existed", deviceId);
return null;
}
-
- deviceAliveMap.put(message.getId(), LocalDateTime.now());
// 补齐tenantId
- message.getInclineData().setTenantid(device.getTenantid());
+ SurfaceInclineData data = message.getInclineData();
+ data.setTenantid(device.device.getTenantid());
+ SurfaceInclineData data1 = device.data1;
+
+ // 推送数据
+ if(data1 == null){
+ device.data1 = data;
+ device.sensorNum = 1;
+ }
+ else {
+ //只有1个传感器的设备立刻发数据
+ if(device.sensorNum == 1){
+ if (!data.getSensorid().equals(data1.getSensorid())){
+ device.sensorNum = 2;
+ }
+ else {
+ dataForwarder.send(device.device, data);
+ device.data1 = data;
+ }
+ }
+ //有两个的等收到第2个才发
+ if (device.sensorNum == 2) {
+ if (data.getSensorid()==1) device.data1 = data;
+ else {
+ data.setAnglex(data1.getAnglex());
+ data.setAccx(data1.getAccx());
+ dataForwarder.send(device.device, data);
+ }
+ }
+ }
+
+ device.updateTime = LocalDateTime.now();
ThreadManager.getFixedThreadPool().submit(() -> {
//保存状态信息,判断是否有低电压等告警,清除离线告警
dataMapper.insert(message.getInclineData());
- //推送
- dataForwarder.send(device, message);
});
return null;
}
@@ -70,9 +100,9 @@ public class D350SurfaceInclineMessageExecutor implements Executor()
.selectAll(GnssDevice.class)
.select("d.latitude as latitude")
@@ -80,19 +110,23 @@ public class D350SurfaceInclineMessageExecutor implements Executor entry:deviceAliveMap.entrySet()){
- if(entry.getValue().isBefore(now.minusHours(2))){
- deviceAliveMap.remove(entry);
- deviceInfoMap.remove(entry.getKey());
+ for(Map.Entry entry:deviceInfoMap.entrySet()){
+ LocalDateTime time = entry.getValue().updateTime;
+ if(time!=null && time.isBefore(now.minusHours(2))){
+ deviceInfoMap.remove(entry);
}
}
}
diff --git a/sec-incline-server/src/main/java/com/imdroid/inclide_server/service/InclineDataForwarder.java b/sec-incline-server/src/main/java/com/imdroid/inclide_server/service/InclineDataForwarder.java
index 1431d419..82a49629 100644
--- a/sec-incline-server/src/main/java/com/imdroid/inclide_server/service/InclineDataForwarder.java
+++ b/sec-incline-server/src/main/java/com/imdroid/inclide_server/service/InclineDataForwarder.java
@@ -4,10 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.imdroid.common.util.GsonUtil;
import com.imdroid.common.util.NumberUtils;
import com.imdroid.inclide_server.entity.InclineData;
-import com.imdroid.inclide_server.message.D350SurfaceInclineMessage;
import com.imdroid.secapi.dto.GnssDeviceJoin;
import com.imdroid.secapi.dto.GnssGroupFwd;
import com.imdroid.secapi.dto.GnssGroupFwdMapper;
+import com.imdroid.secapi.dto.SurfaceInclineData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
+import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
@@ -95,7 +96,7 @@ public class InclineDataForwarder{
tcpClientMap.put(name, tcpClient);
}
- public void send(GnssDeviceJoin device, D350SurfaceInclineMessage message){
+ public void send(GnssDeviceJoin device, SurfaceInclineData surfaceInclineData){
//logger.debug("forward {}: {}",device.getDeviceid(), message.getInclineData().toString());
InclineData inclineData = new InclineData();
@@ -105,19 +106,18 @@ public class InclineDataForwarder{
List dataList = new ArrayList<>(1);
inclineData.setData(dataList);
-
InclineData.Data data = new InclineData.Data();
dataList.add(data);
- data.setDataTime(message.getCreateTime().format(formatter));
+ data.setDataTime(LocalDateTime.now().format(formatter));
data.setDevNum(device.getDeviceid());
data.setDevtype("ZdQx");
// 角度
- float x = message.getInclineData().getAnglex();
- float y = message.getInclineData().getAngley();
- float z = message.getInclineData().getAnglez();
- float Zx = message.getInclineData().getMaxaccx()-message.getInclineData().getMinaccx();
- float Zy = message.getInclineData().getMaxaccx()-message.getInclineData().getMinaccy();
- float Zz = message.getInclineData().getMaxaccx()-message.getInclineData().getMinaccz();
+ float x = surfaceInclineData.getAnglex();
+ float y = surfaceInclineData.getAngley();
+ float z = surfaceInclineData.getAnglez();
+ float Zx = surfaceInclineData.getMaxaccx()-surfaceInclineData.getMinaccx();
+ float Zy = surfaceInclineData.getMaxaccx()-surfaceInclineData.getMinaccy();
+ float Zz = surfaceInclineData.getMaxaccx()-surfaceInclineData.getMinaccz();
data.setX(NumberUtils.scale((double) x, 3));
data.setY(NumberUtils.scale((double) y, 3));