diff --git a/Ccs/actions/action1.py b/Ccs/actions/action1.py
index 3c18a4437d0fcca050c06b7bfd245f44d426ef34..f278101f41033e92a8c6f39efb247c33d8f35dd9 100644
--- a/Ccs/actions/action1.py
+++ b/Ccs/actions/action1.py
@@ -1,66 +1,4 @@
-# Prologue
-#if (('initialization' not in dir()) or (initialization != "DB")) :
-#    exec(open('../acceptance_tests/v0.5/TestSetup_DB_05.py').read())
-
-import time
-
-
-#ccs.CnCsend('TC_CSR_OTA_S_HTR_N_ILIM 0.3')
-#ccs.CnCsend('TC_OTA_S_HTR_N_SET_MODE 0')
-
-##############################
-# allow several heater lines #
-##############################
-
-#ccs.CnCsend('TC_CSR_OTA_S_HTR_N_ON')
-ccs.CnCsend('TC_CSR_FEE_S_HTR_N_ON')
-#ccs.CnCsend('TC_CSR_FPA_S_HTR_N_ON')
-#ccs.CnCsend('TC_CSR_FPA_ANN_HTR_N_ON')
-
-####################
-# POWER ON THE BEE #
-####################
-
-# LCL/ARM the BEE power supply
-ccs.CnCsend('TC_CSR_PS_ARM')
-time.sleep(1)
-
-# set BEE PSN OVP and Voltage
-ccs.CnCsend('TC_CSR_PSN_OVP 32.0')
-ccs.CnCsend('TC_CSR_PSN_VSET 31.0')
-
-# switch ON the BEE power supply [NOMINAL]
-ccs.CnCsend('TC_CSR_PSN_ON')
-time.sleep(0.5)
-
-# set heater PS OCP limit
-ccs.CnCsend('TC_CSR_PSH_OVP 32.0')
-ccs.CnCsend('TC_CSR_PSH_ILIM 2.0')
-ccs.CnCsend('TC_CSR_PSH_VSET 31.0')
-
-# switch ON the BEE Heater Output power supply [NOMINAL]
-ccs.CnCsend('TC_CSR_PSH_ON')
-time.sleep(0.5)
-
-# set ILIM of OTA Output to 0.5 (default is 0.2)
-ccs.CnCsend('TC_CSR_P28V_OTA_N_ILIM 2.0')
-time.sleep(0.25)
-
-# switch ON the OTA Output (also necessary for heaters)
-ccs.CnCsend('TC_CSR_P28V_OTA_N_ON')
-time.sleep(1)
-
-
-#########################
-# SEND THE BEE ON PULSE #
-#########################
-
-# ARM the SHP pulse
-ccs.CnCsend('TC_CSR_SHP_ARM 1')
-time.sleep(0.5)
-
-# activate BEE [NOMINAL] via SHP output
-ccs.CnCsend('TC_CSR_BEE_ON_N')
-
-# DISARM the SHP pulse
-# ccs.CnCsend('TC_CSR_SHP_ARM 0',socket_name='TC')
+# TC(3,5): SASW EnbHkCmd [KSC50057]
+# Enable Periodic Generation of a Housekeeping Parameter Report St
+SidNoCal = None  # KSP50181
+cfl.Tcsend_DB('SASW EnbHkCmd', SidNoCal, pool_name='LIVE')
\ No newline at end of file
diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py
index f9a4a1ba81abf2578ebc9479a2e1b8c1846ca18c..c6387528e046ef6a93e13516c07b44348303c9bf 100644
--- a/Ccs/ccs_function_lib.py
+++ b/Ccs/ccs_function_lib.py
@@ -2384,6 +2384,7 @@ def get_last_pckt_time(pool_name='LIVE', string=True, dbcon=None):
         DbTelemetry.idx.desc()
     ).first()
     dbcon.close()
+
     if row is not None:
         packet = row.raw
     else:
diff --git a/Ccs/verification.py b/Ccs/verification.py
deleted file mode 100644
index dcb1e7d68330d87c26027ecb9ea50c2390b64900..0000000000000000000000000000000000000000
--- a/Ccs/verification.py
+++ /dev/null
@@ -1,131 +0,0 @@
-import os
-import json
-import struct
-import threading
-import subprocess
-import time
-import sys
-import dbus
-import dbus.service
-from dbus.mainloop.glib import DBusGMainLoop
-import DBus_Basic
-
-import ccs_function_lib as cfl
-
-from typing import NamedTuple
-import confignator
-import gi
-
-import matplotlib
-matplotlib.use('Gtk3Cairo')
-
-
-# from sqlalchemy.sql.expression import func, distinct
-from sqlalchemy.orm import load_only
-from database.tm_db import DbTelemetryPool, DbTelemetry, RMapTelemetry, FEEDataTelemetry, scoped_session_maker
-
-import importlib
-from confignator import config
-check_cfg = config.get_config(file_path=confignator.get_option('config-files', 'ccs'))
-
-
-def type_comparison(comparison_data):
-    pool_rows = cfl.get_pool_rows("PLM")
-
-    st_list = []
-    sst_list = []
-    x = 0
-    header_counter = 0
-    while header_counter < 2:
-        x += 1
-        entry = pool_rows.all()[-x]
-
-        if entry.data.hex() == comparison_data:
-
-            st_list.append(entry.stc)
-            sst_list.append(entry.sst)
-
-            # print("ST Entry_" + str(x) + ": ", entry.stc)
-            # print("SST Entry_" + str(x) + ": ", entry.sst)
-            # print("Timestamp entry_" + str(x) + ": ", entry.timestamp)
-            header_counter += 1
-
-
-    st_list_reverse = [st_list[1], st_list[0]]
-    sst_list_reverse = [sst_list[1], sst_list[0]]
-
-
-    if sst_list_reverse == [1, 7]:
-        print("Verification successful")
-    else:
-        print("Verification unsuccessful")
-
-    return False
-
-
-
-verification_running = True
-
-print("RUNNING!!")
-
-
-while verification_running == True:
-
-    # while running the script checks the last three entries of the database and keeps them up to date
-    # to recognize a tc it checks the time
-
-    pool_rows = cfl.get_pool_rows("PLM")
-
-    system_time = time.clock_gettime(0)
-
-    entry_1_data = pool_rows.all()[-1]
-    # entry_2_data = pool_rows.all()[-2]
-    # entry_3_data = pool_rows.all()[-3]
-
-    time_1 = entry_1_data.timestamp
-    # time_2 = entry_2_data.timestamp
-    # time_3 = entry_3_data.timestamp
-
-    # in this script the number 1 after a variable name always refers to data from the last entry
-    # number 2 refers to second last entry, number 3 to third last entry and so on
-    # this part triggers as soon as a tc has arrived in the database
-
-    if time_1 == "":
-
-        first_raw_digits = ""           # this string will contain the first bytes of raw data
-
-        telecommand = entry_1_data
-        telecommand_time = telecommand.timestamp
-        telecommand_raw = telecommand.raw.hex()
-        # telecommand_data = telecommand.data.hex()
-        # Variable to generate new telecommand timestamp, other than telecommand_time
-        telecommand_verification_timestamp = time.clock_gettime(0)
-        verification_time = telecommand_verification_timestamp + 2
-
-        for i in telecommand_raw:
-            first_raw_digits += str(i)
-            if len(first_raw_digits) > 7:
-                break
-
-        # print("After Loop telecommand_first_digits: ", first_raw_digits)
-
-
-        while system_time < verification_time and system_time != verification_time:
-            system_time = time.clock_gettime(0)
-
-            if system_time >= verification_time:
-
-                verification_running = type_comparison(first_raw_digits)
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Tst/__init__.py b/Tst/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/Tst/testing_library/testlib/tm.py b/Tst/testing_library/testlib/tm.py
index 767c5e8ee54fd5d4209dfaec9ffe720f70402cd0..04d882914f7bbdf6ab48561a41ac3290f2a1a49d 100644
--- a/Tst/testing_library/testlib/tm.py
+++ b/Tst/testing_library/testlib/tm.py
@@ -61,8 +61,10 @@ import ccs_function_lib as cfl
 
 from database import tm_db
 
-from . import idb
-from . import tools
+# from . import idb
+# from . import tools
+import tools
+import idb
 
 # create a logger
 logger = logging.getLogger(__name__)
@@ -112,13 +114,14 @@ def filter_chain(query, pool_name, is_tm=True, st=None, sst=None, apid=None, seq
         # ToDo database has the CUC timestamp as string. Here the timestamps are floats.
         # Does this comparison operations work?
         t_from_string = str(t_from) + 'U'  # the timestamps in the database are saved as string
-        query = query.filter(tm_db.DbTelemetry.timestamp >= t_from_string)  # ToDo check if the change from > to >= breaks something!
+        query = query.filter(tm_db.DbTelemetry.timestamp >= t_from)  # ToDo check if the change from > to >= breaks something!
+        # ToDo: Funktion Cast verwenden um String auf Double zu casten
         # query = query.filter(tm_db.DbTelemetry.timestamp > t_from)  # <- comparison with float
     if t_to is not None:
         # ToDo database has the CUC timestamp as string. Here the timestamps are floats.
         # Does this comparison operations work?
         t_to_string = str(t_to) + 'U'  # the timestamps in the database are saved as string
-        query = query.filter(tm_db.DbTelemetry.timestamp <= t_to_string)
+        query = query.filter(tm_db.DbTelemetry.timestamp <= t_to) # ToDo: Funktion Cast verwenden um String auf Double zu casten
         # query = query.filter(tm_db.DbTelemetry.timestamp <= end)  # <- comparison with float
     if dest_id is not None:
         query = query.filter(tm_db.DbTelemetry.destID == dest_id)
@@ -136,6 +139,7 @@ def highest_cuc_timestamp(tm_list):
     :rtype: PUS packet || None
     """
     highest = None
+    timestamp = None
     if isinstance(tm_list, list) and len(tm_list) > 0:
         cuc = 0
         for i in range(len(tm_list)):
@@ -147,7 +151,8 @@ def highest_cuc_timestamp(tm_list):
             if tstamp > cuc:
                 cuc = tstamp
                 highest = tm_list[i]
-    return highest
+                timestamp = tstamp
+    return highest, timestamp
 
 
 def lowest_cuc_timestamp(pool_name, tm_list):
@@ -622,11 +627,13 @@ def get_tm(pool_name, st=None, sst=None, apid=None, ssc=None, duration=5, t_from
         of decoded telemetry packets or []
     """
 
+
     # set the time interval
     t_from, t_to = set_time_interval(pool_name=pool_name, t_from=t_from, t_to=t_to, duration=duration)
 
     # for the case that t_to is in future, wait
     current_cuc = cfl.get_last_pckt_time(pool_name=pool_name, string=False)
+
     if t_to > current_cuc:
         difference = t_to - current_cuc
         time.sleep(difference)
@@ -979,7 +986,7 @@ def get_tc_acknow(pool_name, t_tc_sent, tc_apid, tc_ssc, tm_st=1, tm_sst=None):
     :param pool_name: str
         Name of the TM pool in the database
     :param t_tc_sent: float
-        CUC timestamp of the telecommand
+        CUC timestamp from which search for telecommand should start
     :param tc_apid: int or str
         Application process ID of the sent TC. Can be provided as integer or hexadecimal string
     :param tc_ssc: int
@@ -1002,7 +1009,7 @@ def get_tc_acknow(pool_name, t_tc_sent, tc_apid, tc_ssc, tm_st=1, tm_sst=None):
 
     # make database query
     packets = fetch_packets(pool_name=pool_name, st=tm_st, sst=tm_sst, t_from=t_tc_sent - 1)
-
+    # print(packets[1][0][0].CTIME + (packets[1][0][0].FTIME/1000000))
     # filter for TM packets with the correct APID and source sequence counter (SSC) in the data field
     ack_tms = []
     for i in range(len(packets)):
@@ -1531,6 +1538,68 @@ def get_acquisition(pool_name, tm_21_3):
             logger.info(meta_data[i])
     return result
 
+
+
+def await_tc_identifier(pool_name, tc_apid, tc_ssc):
+    """
+    Gather the data necessary to identify the newest telecommand and put it in tuple.
+    :param pool_name: str
+        Name of the pool for TM/TC packets in the database
+    :param tc_apid: int or str
+        APID of the TC
+    :param tc_ssc: int
+        Sequence number of TC
+    :param last_tm_timestamp: float
+        Timestamp of the latest TM in datapool
+    :return: tc_identifier: tuple
+        Tuple with data to identify TC
+
+    """
+
+    assert isinstance(pool_name, str)
+    assert isinstance(tc_apid, int) or isinstance(tc_apid, str)
+    assert isinstance(tc_ssc, int)
+
+    last_tm_timestamp = cfl.get_pool_rows(pool_name)[-1].timestamp
+    length_last_tm_timestamp = len(last_tm_timestamp)
+    last_tm_timestamp = last_tm_timestamp[:length_last_tm_timestamp - 1]
+    last_tm_timestamp = float(last_tm_timestamp)
+
+    tc_identifier = (tc_apid, tc_ssc, last_tm_timestamp)
+
+    return tc_identifier
+
+
+def get_tc_identifier(pool_name, tc_apid, tc_ssc, tc_time):
+    """
+    Gather the data necessary to identify the newest telecommand and put it in tuple.
+    :param pool_name: str
+        Name of the pool for TM/TC packets in the database
+    :param tc_apid: int or str
+        APID of the TC
+    :param tc_ssc: int
+        Sequence number of TC
+    :param tc_time: float or int
+        Timestamp of the latest TM in datapool
+    :return: tc_identifier: tuple
+        Tuple with data to identify TC
+
+    """
+    assert isinstance(pool_name, str)
+    assert isinstance(tc_apid, int) or isinstance(tc_apid, str)
+    assert isinstance(tc_ssc, int)
+    assert isinstance(tc_time, int) or isinstance(tc_time, float)
+
+    tc_time = float(tc_time)
+
+    tc_identifier = (tc_apid, tc_ssc, tc_time)
+
+    return tc_identifier
+
+
+
+
+
 if __name__ == '__main__':
     sys.path.append('.')
     r=get_tc_acknow('PLM',0.,321,5)
diff --git a/Tst/tst/verification.py b/Tst/tst/verification.py
new file mode 100644
index 0000000000000000000000000000000000000000..802718b988b39b70ec70cf038e4e5c7a251d4ceb
--- /dev/null
+++ b/Tst/tst/verification.py
@@ -0,0 +1,218 @@
+import os
+import json
+import struct
+import threading
+import subprocess
+import time
+import sys
+import dbus
+import dbus.service
+from dbus.mainloop.glib import DBusGMainLoop
+import DBus_Basic
+
+import ccs_function_lib as cfl
+
+from typing import NamedTuple
+import confignator
+import gi
+
+import matplotlib
+matplotlib.use('Gtk3Cairo')
+
+
+# from sqlalchemy.sql.expression import func, distinct
+from sqlalchemy.orm import load_only
+from database.tm_db import DbTelemetryPool, DbTelemetry, RMapTelemetry, FEEDataTelemetry, scoped_session_maker
+
+import importlib
+from confignator import config
+check_cfg = config.get_config(file_path=confignator.get_option('config-files', 'ccs'))
+
+
+def type_comparison(comparison_data, sst_1=1, sst_2=7, st_=1, st_2=1,):
+    pool_rows = cfl.get_pool_rows("PLM")
+
+    st_list = []
+    sst_list = []
+    x = 0
+    header_counter = 0
+    while header_counter < 2:
+        x += 1
+        entry = pool_rows.all()[-x]
+
+        if entry.data.hex() == comparison_data:
+
+            st_list.append(entry.stc)
+            sst_list.append(entry.sst)
+
+            # print("ST Entry_" + str(x) + ": ", entry.stc)
+            # print("SST Entry_" + str(x) + ": ", entry.sst)
+            # print("Timestamp entry_" + str(x) + ": ", entry.timestamp)
+            header_counter += 1
+
+
+    st_list_reverse = [st_list[1], st_list[0]]
+    sst_list_reverse = [sst_list[1], sst_list[0]]
+
+
+    if sst_list_reverse == [sst_1, sst_2]:
+        print("Verification successful")
+    else:
+        print("Verification unsuccessful")
+
+    return False
+
+
+def Verification( st_1=1, sst_1=1, st_2=1, sst_2=7, pool_name="PLM", verification_duration=2):
+    verification_running = True
+
+    print("RUNNING!!")
+
+    print("Variables: ")
+    print(st_1)
+    print(sst_1)
+    print(st_2)
+    print(sst_2)
+    print(pool_name)
+    print(verification_duration)
+
+
+    while verification_running == True:
+
+        # while running the script checks the last three entries of the database and keeps them up to date
+        # to recognize a tc it checks the time
+
+        pool_rows = cfl.get_pool_rows(pool_name)
+
+        system_time = time.clock_gettime(0)
+
+        entry_1_data = pool_rows.all()[-1]
+        # entry_2_data = pool_rows.all()[-2]
+        # entry_3_data = pool_rows.all()[-3]
+
+        time_1 = entry_1_data.timestamp
+        # time_2 = entry_2_data.timestamp
+        # time_3 = entry_3_data.timestamp
+
+        # in this script the number 1 after a variable name always refers to data from the last entry
+        # number 2 refers to second last entry, number 3 to third last entry and so on
+        # this part triggers as soon as a tc has arrived in the database
+
+        if time_1 == "":
+
+            first_raw_digits = ""           # this string will contain the first bytes of raw data
+
+            telecommand = entry_1_data
+            telecommand_time = telecommand.timestamp
+            telecommand_raw = telecommand.raw.hex()
+            # telecommand_data = telecommand.data.hex()
+            # Variable to generate new telecommand timestamp, other than telecommand_time
+            telecommand_verification_timestamp = time.clock_gettime(0)
+            verification_time = telecommand_verification_timestamp + verification_duration
+
+            for i in telecommand_raw:
+                first_raw_digits += str(i)
+                if len(first_raw_digits) > 7:
+                    break
+
+            # print("After Loop telecommand_first_digits: ", first_raw_digits)
+
+
+            while system_time < verification_time and system_time != verification_time:
+                system_time = time.clock_gettime(0)
+
+                if system_time >= verification_time:
+
+                    verification_running = type_comparison(first_raw_digits, sst_1, sst_2)
+
+
+
+def verification_template(verification_descr, pool_name="LIVE", ST_1=None, ST_2=None, SST_1=None, SST_2=None, time=2,
+                          comment="", preamble="Ver.verification"):
+    if comment:
+        commentstr = "# TC({}, {}): {} [{}]\n# {}\n".format(*cmd[3:], cmd[1], cmd[0], cmd[2])
+        newline = "\n"
+    else:
+        commentstr = ""
+        newline = ""
+
+    exe = "{}('{}', ST_1={}, SST_1={}, ST_2={}, SST_2={}, pool_name='{}', time={})".format(preamble, verification_descr,
+                                                                                  ST_1, SST_1, ST_2, SST_2,
+                                                                                  pool_name, time)
+    return commentstr + exe + newline
+
+
+# def  new_verification_template(verification_descr, pool_name="LIVE", comment="", preamble=):
+
+
+# reads in verification as soon as exec button in step widget is pressed
+def read_verification(verification_string):
+
+
+    first_split = verification_string.split("(")
+
+
+    second_split = ""
+    for i in first_split[1]:
+        if i != ")":
+            second_split += i
+
+
+    third_split = second_split.split(",")
+
+
+    st_1 = third_split[1]
+    sst_1 = third_split[2]
+    st_2 = third_split[3]
+    sst_2 = third_split[4]
+    pool_name = third_split[5]
+    time_duration = third_split[6]
+
+
+    st_1_value = st_1.split("=")[1]
+    sst_1_value = sst_1.split("=")[1]
+    st_2_value = st_2.split("=")[1]
+    sst_2_value = sst_2.split("=")[1]
+    pool_name_value = pool_name.split("=")[1]
+    time_duration_value = time_duration.split("=")[1]
+
+    st_sst_list = [st_1_value, sst_1_value, st_2_value, sst_2_value]
+
+
+
+    value_list = []
+
+    for element in st_sst_list:
+        #  print(element)
+        if element == "None":
+            element = None
+        else:
+            try:
+                element = int(element)
+            except:
+                raise AssertionError("ST and SST values have to be None or int")
+
+        value_list.append(element)
+
+
+    if type(pool_name_value) == str:
+        # print("if pool name: ", pool_name_value)
+        value_list.append(pool_name_value)
+    else:
+        raise AssertionError("Pool Name needs to be str")
+
+    # time_duration_value_checker = isinstance(time_duration_value, int)
+    # print("Time instance: ", time_duration_value_checker)
+    try:
+        time_duration_value = int(time_duration_value)
+        value_list.append(time_duration_value)
+    except:
+        raise AssertionError("Time has to be int")
+
+    Verification(value_list[0], value_list[1], value_list[2], value_list[3], value_list[4], value_list[5])
+
+
+
+
+
+
diff --git a/Tst/tst/verification_tab.py b/Tst/tst/verification_tab.py
index f62beabd578f8d66ab1015aee54e6e4fe42dd0e0..3d596912e442085294dc566ef23754b9af3aee69 100644
--- a/Tst/tst/verification_tab.py
+++ b/Tst/tst/verification_tab.py
@@ -12,11 +12,25 @@ sys.path.append(confignator.get_option('paths', 'ccs'))
 import ccs_function_lib as cfl
 import s2k_partypes as s2k
 
+import time
+import sys
+import dbus
+import dbus.service
+from dbus.mainloop.glib import DBusGMainLoop
+import DBus_Basic
+
+
+from typing import NamedTuple
+import confignator
+import gi
+
+
+import verification as ver
 
 
 verification_list = [
-    ("Verification", 1, 7),
-    ("Other Verification", 0, 0)
+    ("Get TC Verification", 1, 7),
+    ("Await TC Verification", 1, 7)
 ]
 
 
@@ -59,11 +73,23 @@ class VerificationTable(Gtk.Grid):
         # setting up layout
         self.scrollable_treelist = Gtk.ScrolledWindow()
         self.scrollable_treelist.set_vexpand(True)
+        self.scrollable_treelist.set_hexpand(True)
         self.grid.attach(self.scrollable_treelist, 0, 0, 8, 10)
         self.scrollable_treelist.add(self.treeview)
 
 
+        # handle selection
+        self.selected_row = self.treeview.get_selection()
+        self.selected_row.connect("changed", self.item_selected)
+
+
+        # Set up Drag and Drop
+        self.treeview.drag_source_set(Gdk.ModifierType.BUTTON1_MASK, [], Gdk.DragAction.COPY)
+        self.treeview.drag_source_set_target_list(None)
+        self.treeview.drag_source_add_text_targets()
 
+        self.treeview.connect("drag-data-get", self.on_drag_data_get)
+        self.treeview.connect("drag-begin", self.on_drag_begin)
 
         self.show_all()
 
@@ -74,4 +100,168 @@ class VerificationTable(Gtk.Grid):
         ):
             return True
         else:
-            return model[iter][2] == self.current_filter_verification
\ No newline at end of file
+            return model[iter][2] == self.current_filter_verification
+
+
+
+
+
+
+    # drag and drop
+
+    def item_selected(self, selection):
+        model, row = selection.get_selected()
+        if row is not None:
+
+            global verification_name
+            global ST
+            global SST
+
+            verification_name = model[row][0]
+            ST = model[row][1]
+            SST = model[row][2]
+            global selected_data_for_drag_drop
+
+
+            selected_data_for_drag_drop = ver.verification_template("Verification_1")
+                # str(verification_name) + "\n ST = " + str(ST) + "\n SST = " + str(SST) + "\n Time = 2"
+            # selected_data_for_drag_drop = "{} ({}, {})".format((name, ST, SST))
+
+        else:
+            pass
+
+
+
+    def on_drag_data_get(self, treeview, drag_context, selection_data, info, time, *args):
+        treeselection = treeview.get_selection()
+        model, my_iter = treeselection.get_selected()
+        global selected_data_for_drag_drop
+        selection_data.set_text(selected_data_for_drag_drop, -1)
+
+
+
+    def on_drag_begin(self, *args):
+        pass
+
+
+
+
+
+
+
+
+
+
+"""
+
+def make_verification_template(pool_name="LIVE", preamble="verification.Verification", options="", comment=False):
+
+
+    prcfg = ""
+
+    return
+    
+    
+    def verification(self):
+
+        # if st_variable == 1 and sst_variable == 7:
+
+            pool_rows = cfl.get_pool_rows("PLM")
+
+            system_time = time.clock_gettime(0)
+
+            entry_1_data = pool_rows.all()[-1]
+
+            time_1 = entry_1_data.timestamp
+
+            if time_1 == "":
+
+                first_raw_digits = ""  # this string will contain the first bytes of raw data
+
+                telecommand = entry_1_data
+                telecommand_time = telecommand.timestamp
+                telecommand_raw = telecommand.raw.hex()
+
+                # Variable to generate new telecommand timestamp, other than telecommand_time
+                telecommand_verification_timestamp = time.clock_gettime(0)
+                verification_time = telecommand_verification_timestamp + 2
+
+                for i in telecommand_raw:
+                    first_raw_digits += str(i)
+                    if len(first_raw_digits) > 7:
+                        break
+
+                # print("After Loop telecommand_first_digits: ", first_raw_digits)
+
+                while system_time < verification_time and system_time != verification_time:
+                    system_time = time.clock_gettime(0)
+
+                    if system_time >= verification_time:
+                        verification_running = self.type_comparison(first_raw_digits)
+
+
+
+
+
+    def type_comparison(comparison_data):
+        pool_rows = cfl.get_pool_rows("PLM")
+
+        st_list = []
+        sst_list = []
+        x = 0
+        header_counter = 0
+        while header_counter < 2:
+            x += 1
+            entry = pool_rows.all()[-x]
+
+            if entry.data.hex() == comparison_data:
+                st_list.append(entry.stc)
+                sst_list.append(entry.sst)
+
+                # print("ST Entry_" + str(x) + ": ", entry.stc)
+                # print("SST Entry_" + str(x) + ": ", entry.sst)
+                # print("Timestamp entry_" + str(x) + ": ", entry.timestamp)
+                header_counter += 1
+
+
+        st_list_reverse = [st_list[1], st_list[0]]
+        sst_list_reverse = [sst_list[1], sst_list[0]]
+
+        if sst_list_reverse == [1, 7]:
+            print("Verification successful")
+        else:
+            print("Verification unsuccessful")
+
+        return False
+
+
+    def get_drop_verification(self):
+        global verification_name
+        global ST
+        global SST
+
+        return
+
+    def verification_table(self, name, subtype, subsubtype):
+
+"""
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Tst/tst/view.py b/Tst/tst/view.py
index 8bf2dcb2064bd14b9bb23062845b2b9493d61493..7f5fe4bb229b3bbf95244730b2865c5b6d7dc618 100644
--- a/Tst/tst/view.py
+++ b/Tst/tst/view.py
@@ -16,6 +16,7 @@ import dnd_data_parser
 import toolbox
 import cairo
 import sys
+import verification
 
 import confignator
 ccs_path = confignator.get_option('paths', 'ccs')
@@ -1311,12 +1312,23 @@ class StepWidget(Gtk.EventBox):
             return
 
         commands = str(self.get_commands_from_widget())
+        commands2 = str(self.get_verification_from_widget())
+
 
         if len(commands) == 0:
             return
 
+        # if len(commands2) == 0:
+        #    return
+        # print("Commands: ", commands)
+        # print("Verification: ", commands2)
+        # print(type(commands2))
+
+        # verification.read_verification(commands2)
+
         ed = cfl.dbus_connection('editor')
         cfl.Functions(ed, '_to_console_via_socket', commands)
+        # cfl.Functions(ed, '_to_console_via_socket', commands2)
 
     def on_toggle_detail(self, toolbutton, *args):
         """