From c729ff269921e7820a9a5b15ec91a783a58f69ba Mon Sep 17 00:00:00 2001
From: Eilert Tunheim <emtunhei@stud.ntnu.no>
Date: Fri, 25 Mar 2022 13:50:28 +0100
Subject: [PATCH] Updated the constants class with input parameters from the
 user

---
 .../java/com/application/DB/Constants.java    |  26 +++++++++-------
 src/main/java/com/application/DB/DB.java      |  28 +++++-------------
 .../com/application/DB/Constants.class        | Bin 1340 -> 1430 bytes
 target/classes/com/application/DB/DB.class    | Bin 10444 -> 10234 bytes
 4 files changed, 23 insertions(+), 31 deletions(-)

diff --git a/src/main/java/com/application/DB/Constants.java b/src/main/java/com/application/DB/Constants.java
index 9326672..4ac1ab3 100644
--- a/src/main/java/com/application/DB/Constants.java
+++ b/src/main/java/com/application/DB/Constants.java
@@ -2,8 +2,6 @@ package com.application.DB;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.Calendar;
-import java.util.Date;
 
 /**
  * This class contains constants to be used related to database activities
@@ -20,10 +18,17 @@ public final class Constants {
     // Today's date
     public static final String TODAYS_DATE = format.format(LocalDateTime.now());
 
+    // User inputs
+    public static final String TREE_SPECIES = "";
+    public static final String WIDTH_DIMENTION = "";
+    public static final String HEIGHT_DIMENTION = "";
+    public static final String SAWSET = "";
+    public static final int MOISTURE_GOAL = 0;
+
     // Database ID/name
     public static final String PROJECT_ID = "sf-drying-optimization";
 
-
+    /*
     // Location Valasen(124)
     // Project settings
     public static final int LOCATION_ID = 124;
@@ -40,15 +45,12 @@ public final class Constants {
 
     // Winccsensordata
     public static final String KWH_NAME = "VariantValue";
+    public static final String TIMESTAMP_NAME = "Timestamp";
+    public static final String VALUE_ID_NAME = "ValueID";
     public static final int VALUE_ID = 51;
+*/
 
 
-
-
-
-
-
-/*
     // Location Arjang(174)
     // Project settings
     public static final int LOCATION_ID = 174;
@@ -63,11 +65,13 @@ public final class Constants {
     public static final String KILIN_NAME = "KilinId";
     public static final int KILIN_ID = 16;
 
-    // Winccsensordata
+    // Swappconsensordata
     public static final String KWH_NAME = "RealValue";
+    public static final String TIMESTAMP_NAME = "Timestamp";
+    public static final String VALUE_ID_NAME = "ValueID";
     public static final int VALUE_ID = 19;
 
- */
+
 
 
 }
diff --git a/src/main/java/com/application/DB/DB.java b/src/main/java/com/application/DB/DB.java
index a533625..44df77c 100644
--- a/src/main/java/com/application/DB/DB.java
+++ b/src/main/java/com/application/DB/DB.java
@@ -168,12 +168,12 @@ public class DB {
 
             // Preparing a query statement
             // Query statement 124 ValÄsen
-            final String sqlStatement = "SELECT `TimeStamp`, `"+KWH_NAME+"` " +
+            final String sqlStatement = "SELECT `" + TIMESTAMP_NAME + "`, `"+KWH_NAME+"` " +
                     "FROM `" + PROJECT_ID + "." + LOCATION_ID + "." + TABLE_NAME_KWH + "` " +
-                    "WHERE TimeStamp BETWEEN " + '"'+ entry.getKey() + '"' +
+                    "WHERE " + TIMESTAMP_NAME + " BETWEEN " + '"'+ entry.getKey() + '"' +
                     " AND " + '"' + entry.getValue() + '"' +
-                    " AND ValueID = " + VALUE_ID + " " +
-                    " ORDER BY TimeStamp ASC";
+                    " AND " + VALUE_ID_NAME + " = " + VALUE_ID + " " +
+                    " ORDER BY " + TIMESTAMP_NAME + " ASC";
 
 
 
@@ -209,7 +209,7 @@ public class DB {
                 int variantValue = row.get(""+KWH_NAME+"").getNumericValue().intValue()-baseline; //-baseline
 
                 // Retrieving the wanted data
-                long timeStamp = row.get("TimeStamp").getTimestampValue() / 1000;
+                long timeStamp = row.get(""+TIMESTAMP_NAME+"").getTimestampValue() / 1000;
                 // Riktig format, men i string
                 String formatedTimeStamp = getDateFormat().format(timeStamp);
 
@@ -369,20 +369,8 @@ public class DB {
                 formatedUtTidTork = splitValue[0] + " " + splitValue[1];
             }
 
-            System.out.println("Inn formated: "+formatedInTidTork);
-            System.out.println("Ut formated: "+formatedUtTidTork+"\n");
-
-            /*
-            // CalculatedStop:
-            // DryingCompleted:
-            if(!row.get("CalculatedStop").isNull()){
-                long utTidTorkLong = row.get("CalculatedStop").getTimestampValue()/1000;
-                // Formating the data from long to a string in the correct date format
-                formatedUtTidTork = getDateFormat().format(utTidTorkLong);
-            } else {
-                formatedUtTidTork = "";
-            }
-             */
+            //System.out.println("Inn formated: "+formatedInTidTork);
+            //System.out.println("Ut formated: "+formatedUtTidTork+"\n");
 
             // Checks if intidtork or outtidtork is empty, if so they are ignored and not added to the list
             if (!formatedInTidTork.isEmpty() && !formatedUtTidTork.isEmpty()){
@@ -391,7 +379,7 @@ public class DB {
             }
             //System.out.printf("%s\t\t\t%s\n",formatedInTidTork,formatedUtTidTork);
         }
-        System.out.printf("Size of dates: %s\n", dates.size());
+        System.out.printf("Size of dates: %s\n\n", dates.size());
 
         // Returns a treemap that sorts the dates incrementally
         return new TreeMap<>(dates);
diff --git a/target/classes/com/application/DB/Constants.class b/target/classes/com/application/DB/Constants.class
index c682eb0f42ee8e24b82c8dc46fc7e8e06d2425f1..14407c07cc72e24209bd8991a9fb98f2be5d84fb 100644
GIT binary patch
delta 622
zcmdnPHI3Ww)W2Q(7#J8#7y`H$I2lYh7)-es%oxl$88{d$xEL%MtUz3A5Z8vC!IquD
zZlYn4ggqkzw~xQGV~D4}U%aOaBLkx+GXn#|x{13b>m3*w_(B|=d|c!G9DQBmy~8~?
z7#tZHMEyfNT!Z2R9D^KvT|-=hg2B=p3{H#;g25q<K_T%jL6M$*?oeT8Mh1c45dQ#F
zQ5QxAE^kjCPd}(CS4IX72;b8M<NyIi24@cMa1W@o8zTcpn4?dqYdl0+800ihU)SIe
zN8bRb8h1tpUYHuFkjLbF#tFt+4BCtg!j+YkmAbyZx+y6N9v)V?xmLx+><pef3|<W0
zJPce6-0TcKJPf`JejtwjWFw{^1KG^HlK7PD__D;D+{BX1<l>Z~%FMj<q{NcsjMQRA
z21$^7aY}q~d1669a(>?AElkQb{4QWc&iT0oIjJS7DU1y4-kCX>d7deZ44gr!i8*13
zIi;zL44fgExv9k^iMa)g4D4VrPnSu|?-}_ge_%dXFUg?Bz{|kMz|X+Iz{H@=AjzPC
z#MfkCVqjv>V$fz_WYA$?U@&H2WME`qU|`kS&cL`4tVNfBfq{#GiGhKEkAa0jfI*Le
zfq@62h(VvhfPsO5gTWAPfFW2V1B0j#(+&pa%?y(TScN4KM({9jFbFd+G8lo4HU<D1
C0D7tb

delta 496
zcmbQny@$*2)W2Q(7#J8#7`(U`I2jB$7!0`>j2MhL88{eBxEM?s%s^ao5Z8j8!IGW9
zYNBD0gf$}rw~xQGV~D4}U%aOaBLkx+GXn!d&BWc3^)`$Qd?AibKCbb8j=rw(-r*h`
z47Q96qW&Qsu0inujzNyTt|6{L!C+|)20KOu!Qc?bppbZ%ph!<Ycc`#EBZEM2h<^a8
zr~@Mdm$#>nryo?6BO?O`gzxDBasVqMgA9jvxCd0)iIIUL%+V**H69{uJb4=91Y<P@
zbw&o^%F4=0U0+|_loSOI53Af<tKwpI24@}y7Y0`z1}+9}b_O>d26qMz5XW<JBvTNh
z!sInfvO@7?MvM$%nRzAg#VPUSnR&^{lW#LA>+m@z<|LQqB$lM61efF&fZUatljoP1
zo65+*6P8$%nV44+mY7qT%E+KJ(N1Y{Jo70=-pN`l2Yr|rm>AR;)EO8VG#D5dj2Rdi
z7#SECShcn@Fm7aEU|?d<WME+6VqjumU=UznVGv@_Vqjq4fhc0oX3$|^VBlcTg%~h7
WoK;N{p`MR{gF%#mkwFh^jy?dqGG71y

diff --git a/target/classes/com/application/DB/DB.class b/target/classes/com/application/DB/DB.class
index d01f067c3c3db55edf5e5ab9b325a53bacff7aaa..930d3bfeb7876cbc25bd0d07360ce2a8b11756f1 100644
GIT binary patch
delta 3677
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

delta 3950
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

-- 
GitLab