You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by tm...@apache.org on 2019/05/06 19:37:03 UTC

[plc4x] 01/02: minor improvements

This is an automated email from the ASF dual-hosted git repository.

tmitsch pushed a commit to branch scraper_refactoring_and_improvement
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit 25f2fd551f4d970ace2f538997589a72f6aa7cde
Author: Tim Mitsch <t....@pragmaticindustries.de>
AuthorDate: Mon May 6 14:52:39 2019 +0200

    minor improvements
---
 .../triggerhandler/collector/TriggerCollectorImpl.java    | 15 ++++++++++++---
 .../src/test/resources/example_triggered_scraper.yml      |  6 +++---
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/collector/TriggerCollectorImpl.java b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/collector/TriggerCollectorImpl.java
index 77b95d8..113eca7 100644
--- a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/collector/TriggerCollectorImpl.java
+++ b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/collector/TriggerCollectorImpl.java
@@ -43,7 +43,7 @@ public class TriggerCollectorImpl implements TriggerCollector {
     private static final Logger logger = LoggerFactory.getLogger( TriggerCollectorImpl.class );
 
     private static final int DEFAULT_SCHEDULED_TRIGGER_INTERVAL = 1000;
-    private static final int FUTURE_TIMEOUT = 1000;
+    private static final int FUTURE_TIMEOUT = 2000;
     private static final int READ_REQUEST_TIMEOUT = 2000;
     private final PlcDriverManager plcDriverManager;
     private final Map<String,RequestElement> currentRequestElements;
@@ -127,6 +127,7 @@ public class TriggerCollectorImpl implements TriggerCollector {
         Map<String, PlcReadRequest.Builder> plcReadRequestBuilderMap = new HashMap<>();
         Map<String, PlcReadResponse> plcReadResponseMap = new HashMap<>();
         List<RequestElement> activeRequestElements = new ArrayList<>();
+        PlcConnection plcConnection=null;
         for(Map.Entry<String,RequestElement> entry:currentRequestElements.entrySet()){
             if(entry.getValue().getLastAcquirement().isBefore(
                 currentTimestamp
@@ -135,7 +136,7 @@ public class TriggerCollectorImpl implements TriggerCollector {
                 String plcConnectionString = entry.getValue().plcConnectionString;
                 if(!plcReadRequestBuilderMap.containsKey(plcConnectionString)){
                     try {
-                        PlcConnection plcConnection = TriggeredScraperImpl.getPlcConnection(plcDriverManager,plcConnectionString,executorService,futureTimeout);
+                        plcConnection = TriggeredScraperImpl.getPlcConnection(plcDriverManager,plcConnectionString,executorService,futureTimeout);
                         plcReadRequestBuilderMap.put(plcConnectionString,plcConnection.readRequestBuilder());
                         plcReadRequestBuilderMap.get(plcConnectionString).addItem(entry.getKey(),entry.getValue().getPlcField());
                         activeRequestElements.add(entry.getValue());
@@ -157,7 +158,8 @@ public class TriggerCollectorImpl implements TriggerCollector {
 
         for(Map.Entry<String,PlcReadRequest.Builder> entry: plcReadRequestBuilderMap.entrySet()){
             try {
-                plcReadResponseMap.put(entry.getKey(),entry.getValue().build().execute().get(futureTimeout,TimeUnit.MILLISECONDS));
+                PlcReadResponse plcReadResponse = entry.getValue().build().execute().get(futureTimeout, TimeUnit.MILLISECONDS);
+                plcReadResponseMap.put(entry.getKey(), plcReadResponse);
             } catch (InterruptedException e) {
                 logger.warn("Extraction of PlcResponse was interrupted",e);
                 Thread.currentThread().interrupt();
@@ -173,6 +175,13 @@ public class TriggerCollectorImpl implements TriggerCollector {
             requestElement.setResult(plcReadResponseMap.get(requestElement.getPlcConnectionString()).getObject(requestElement.getUuid()));
             requestElement.setLastAcquirement(currentTime);
         }
+        if(plcConnection!=null){
+            try {
+                plcConnection.close();
+            } catch (Exception e) {
+                logger.warn("Could not close connectiom ...");
+            }
+        }
     }
 
     /**
diff --git a/plc4j/utils/scraper/src/test/resources/example_triggered_scraper.yml b/plc4j/utils/scraper/src/test/resources/example_triggered_scraper.yml
index e701e12..99ad571 100644
--- a/plc4j/utils/scraper/src/test/resources/example_triggered_scraper.yml
+++ b/plc4j/utils/scraper/src/test/resources/example_triggered_scraper.yml
@@ -29,7 +29,7 @@ jobs:
       test1: '%DB810:DBB0:USINT'
 
   - name: triggered-demo-job1
-    triggerConfig: (S7_TRIGGER_VAR,100,(%M0.3:BOOL)==(true))
+    triggerConfig: (S7_TRIGGER_VAR,10,(%M0.3:BOOL)==(true))
     sources:
       - S7_PI
     fields:
@@ -60,8 +60,8 @@ jobs:
     fields:
       test1: '%DB810:DBW0:INT'
 
-  - name: triggered-demo-job3-combinded-condition
-    triggerConfig: (S7_TRIGGER_VAR,400,(%M0.6:BOOL)==(true)OR(%M0.7:BOOL)==(true))
+  - name: triggered-demo-job4-combinded-condition
+    triggerConfig: (S7_TRIGGER_VAR,5,(%M0.1:BOOL)==(true)OR(%M0.2:BOOL)==(true))
     sources:
       - S7_PI
     fields: