From c783a1c60468522961e89a1e189a477f6c18c176 Mon Sep 17 00:00:00 2001 From: Kalutka Zhenya Date: Wed, 23 Sep 2020 18:01:54 +0300 Subject: [PATCH 1/4] Fix knob control on 2.5.5 --- ui/src/app/widget/lib/rpc/knob.directive.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/ui/src/app/widget/lib/rpc/knob.directive.js b/ui/src/app/widget/lib/rpc/knob.directive.js index d89c13de5d..493da04a1b 100644 --- a/ui/src/app/widget/lib/rpc/knob.directive.js +++ b/ui/src/app/widget/lib/rpc/knob.directive.js @@ -50,6 +50,7 @@ function KnobController($element, $scope, $document) { vm.value = 0; vm.error = ''; + vm.newValue = 0; var knob = angular.element('.knob', $element), knobContainer = angular.element('#knob-container', $element), @@ -145,9 +146,11 @@ function KnobController($element, $scope, $document) { turn(degreeToRatio(currentDeg)); rotation = currentDeg; startDeg = -1; + rpcUpdateValue(vm.newValue); }); knob.on('mousedown touchstart', (e) => { + moving = false; e.preventDefault(); var offset = knob.offset(); var center = { @@ -158,7 +161,7 @@ function KnobController($element, $scope, $document) { var a, b, deg, tmp, rad2deg = 180/Math.PI; - knob.on('mousemove.rem touchmove.rem', (e) => { + $document.on('mousemove.rem touchmove.rem', (e) => { moving = true; e = (e.originalEvent.touches) ? e.originalEvent.touches[0] : e; @@ -209,6 +212,9 @@ function KnobController($element, $scope, $document) { }); $document.on('mouseup.rem touchend.rem',() => { + if(moving) { + rpcUpdateValue(vm.newValue); + } knob.off('.rem'); $document.off('.rem'); rotation = currentDeg; @@ -269,12 +275,12 @@ function KnobController($element, $scope, $document) { } function turn(ratio) { - var value = (vm.minValue + (vm.maxValue - vm.minValue)*ratio).toFixed(vm.ctx.decimals); - if (canvasBar.value != value) { - canvasBar.value = value; + vm.newValue = (vm.minValue + (vm.maxValue - vm.minValue)*ratio).toFixed(vm.ctx.decimals); + if (canvasBar.value != vm.newValue) { + canvasBar.value = vm.newValue; } updateColor(canvasBar.getValueColor()); - onValue(value); + onValue(vm.newValue); } function setValue(value) { @@ -303,7 +309,7 @@ function KnobController($element, $scope, $document) { $scope.$applyAsync(() => { vm.value = formatValue(value); checkValueSize(); - rpcUpdateValue(value); + // rpcUpdateValue(vm.newValue); }); } From a50368a1aea1e1bff450ff932a745ec30c65d752 Mon Sep 17 00:00:00 2001 From: Kalutka Zhenya Date: Wed, 23 Sep 2020 18:07:40 +0300 Subject: [PATCH 2/4] Refactoring --- ui/src/app/widget/lib/rpc/knob.directive.js | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/src/app/widget/lib/rpc/knob.directive.js b/ui/src/app/widget/lib/rpc/knob.directive.js index 493da04a1b..e56eb89438 100644 --- a/ui/src/app/widget/lib/rpc/knob.directive.js +++ b/ui/src/app/widget/lib/rpc/knob.directive.js @@ -309,7 +309,6 @@ function KnobController($element, $scope, $document) { $scope.$applyAsync(() => { vm.value = formatValue(value); checkValueSize(); - // rpcUpdateValue(vm.newValue); }); } From 872a6fb45dff91a2b6c24977b83edf11a035e907 Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Thu, 1 Oct 2020 17:43:48 +0300 Subject: [PATCH 3/4] added checkAndTruncateDebugEvent --- .../server/dao/event/BaseEventService.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java b/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java index 88e701d3bd..b12135b301 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.dao.event; +import com.fasterxml.jackson.databind.node.ObjectNode; import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -28,6 +29,7 @@ import org.thingsboard.server.common.data.page.TimePageLink; import org.thingsboard.server.dao.exception.DataValidationException; import org.thingsboard.server.dao.service.DataValidator; +import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Optional; @@ -35,6 +37,8 @@ import java.util.Optional; @Slf4j public class BaseEventService implements EventService { + private static final int MAX_DEBUG_EVENT_IN_BYTES = 10 * 1024; + @Autowired public EventDao eventDao; @@ -47,6 +51,7 @@ public class BaseEventService implements EventService { @Override public ListenableFuture saveAsync(Event event) { eventValidator.validate(event, Event::getTenantId); + checkAndTruncateDebugEvent(event); return eventDao.saveAsync(event); } @@ -56,9 +61,21 @@ public class BaseEventService implements EventService { if (StringUtils.isEmpty(event.getUid())) { throw new DataValidationException("Event uid should be specified!."); } + checkAndTruncateDebugEvent(event); return eventDao.saveIfNotExists(event); } + private void checkAndTruncateDebugEvent(Event event) { + if (event.getType().startsWith("DEBUG")) { + String dataStr = event.getBody().get("data").asText(); + int dataSize = dataStr.getBytes(StandardCharsets.UTF_8).length; + if (dataSize > MAX_DEBUG_EVENT_IN_BYTES) { + ((ObjectNode) event.getBody()).put("data", dataStr.substring(0, 1024)); + log.trace("[{}] Event was truncated.", event.getId()); + } + } + } + @Override public Optional findEvent(TenantId tenantId, EntityId entityId, String eventType, String eventUid) { if (tenantId == null) { From 67f8327cdec720ec242f201e9f946bba4cad84d5 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Tue, 6 Oct 2020 18:41:48 +0300 Subject: [PATCH 4/4] Minor improvements for event truncation --- .../server/dao/event/BaseEventService.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java b/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java index b12135b301..da1c9a0817 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java @@ -37,7 +37,7 @@ import java.util.Optional; @Slf4j public class BaseEventService implements EventService { - private static final int MAX_DEBUG_EVENT_IN_BYTES = 10 * 1024; + private static final int MAX_DEBUG_EVENT_SYMBOLS = 4 * 1024; @Autowired public EventDao eventDao; @@ -66,12 +66,12 @@ public class BaseEventService implements EventService { } private void checkAndTruncateDebugEvent(Event event) { - if (event.getType().startsWith("DEBUG")) { + if (event.getType().startsWith("DEBUG") && event.getBody() != null && event.getBody().has("data")) { String dataStr = event.getBody().get("data").asText(); - int dataSize = dataStr.getBytes(StandardCharsets.UTF_8).length; - if (dataSize > MAX_DEBUG_EVENT_IN_BYTES) { - ((ObjectNode) event.getBody()).put("data", dataStr.substring(0, 1024)); - log.trace("[{}] Event was truncated.", event.getId()); + int length = dataStr.length(); + if (length > MAX_DEBUG_EVENT_SYMBOLS) { + ((ObjectNode) event.getBody()).put("data", dataStr.substring(0, MAX_DEBUG_EVENT_SYMBOLS) + "...[truncated " + (length - MAX_DEBUG_EVENT_SYMBOLS) + " symbols]"); + log.trace("[{}] Event was truncated: {}", event.getId(), dataStr); } } }