From 5cf039a6132f5f5672ca236d23f2b5533593932d Mon Sep 17 00:00:00 2001
From: 488_MP-4 <488_MP-4@iastate.edu>
Date: Mon, 13 Nov 2023 18:54:39 +0100
Subject: [PATCH] writing points to file

---
 cflib_groundstation/LogfileHandler.py         |  51 +++++++++++++++---
 .../__pycache__/LogfileHandler.cpython-38.pyc | Bin 3148 -> 4769 bytes
 .../crazyflie_connection.cpython-38.pyc       | Bin 9845 -> 10694 bytes
 cflib_groundstation/crazyflie_connection.py   |  51 ++++++++++++++----
 .../logs/cflie1_2023_11_13_18:10:24.txt       |   0
 .../logs/cflie1_2023_11_13_18:12:13.txt       |   0
 .../logs/cflie1_2023_11_13_18:13:15.txt       |   0
 .../logs/cflie1_2023_11_13_18:14:15.txt       |   1 +
 .../logs/cflie1_2023_11_13_18:15:17.txt       |   0
 .../logs/cflie1_2023_11_13_18:17:02.txt       |   0
 .../logs/cflie1_2023_11_13_18:17:50.txt       |   1 +
 .../logs/cflie1_2023_11_13_18:43:23.txt       |   1 +
 .../logs/cflie1_2023_11_13_18:45:48.txt       |   1 +
 .../logs/cflie1_2023_11_13_18:51:23.txt       |   1 +
 .../logs/cflie1_2023_11_13_18:51:55.txt       |   1 +
 .../logs/cflie1_2023_11_13_18:52:26.txt       |   1 +
 16 files changed, 92 insertions(+), 17 deletions(-)
 create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:10:24.txt
 create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:12:13.txt
 create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:13:15.txt
 create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:14:15.txt
 create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:15:17.txt
 create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:17:02.txt
 create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:17:50.txt
 create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:43:23.txt
 create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:45:48.txt
 create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:51:23.txt
 create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:51:55.txt
 create mode 100644 cflib_groundstation/logs/cflie1_2023_11_13_18:52:26.txt

diff --git a/cflib_groundstation/LogfileHandler.py b/cflib_groundstation/LogfileHandler.py
index 59fea4953..71220df02 100644
--- a/cflib_groundstation/LogfileHandler.py
+++ b/cflib_groundstation/LogfileHandler.py
@@ -1,10 +1,13 @@
 
 from datetime import datetime
 from email.utils import localtime
+from threading import Thread
 from time import time
 from typing import List
 import time
 import struct
+from venv import create
+import os
 
 import cflib.crtp
 from cflib.crazyflie import Crazyflie
@@ -41,7 +44,11 @@ class LogfileHandler:
         self.is_connected = False
         self.param_callback_count = 0
         self.logging_configs = []
-        self.data_log = ""
+        self.data_log = None
+        self.data_log_name = ""
+        self.header_id = 0
+
+        self.create_log_data_file()
 
     
 
@@ -110,15 +117,35 @@ class LogfileHandler:
                     raise Exception("loggingBlocks.txt is not formatted correctly")
                 config = LogConfig(data[1], data[2])
                 for i in range(3, len(data)):
-                    config.add_variable(data[i])
+                    config.add_variable(data[i], 'float')
                 active_blocks.append(config)
+        self.add_config_headers(active_blocks)
         return active_blocks
         
     def create_log_data_file(self):
-        raise Exception
+        self.data_log_name = os.getcwd()
+        self.data_log_name += f"/logs/cflie1_{time.strftime('%Y_%m_%d_%H:%M:%S', time.localtime())}.txt"
+        self.data_log = open(self.data_log_name, 'w')
+        self.data_log.close()
+        self.data_log = open(self.data_log_name, 'a')
+        self.data_log.write("#Crazyflie\r")
+        self.data_log.write("#Controller:Unknown\r")
+        self.data_log.close()
+
+    def add_config_headers(self, config_list: List[LogConfig]):
+        self.data_log = open(self.data_log_name, 'a')
+        header = "#" + str(self.header_id) + "\ttime"
+        for config in config_list:
+            print(config)
+            for variable in config.variables:
+                print("Var: " + variable.name)
+                header += "\t" + variable.name
+        self.data_log.write(header + "\r")
+        self.header_id += 1
+        self.data_log.close()
+
+
 
-    def add_config_headers(self):
-        raise Exception
 
     def start_logging(self):
         raise Exception
@@ -126,8 +153,18 @@ class LogfileHandler:
     def stop_logging(self):
         raise Exception
     
-    def write_data_point(self):
-        raise Exception
+    def write_data_points(self, data, timestamp):
+        self.data_log = open(self.data_log_name, 'a')
+        line = str(timestamp) + " "
+        for group in data:
+            for data in group.values():
+                line += str(data) + "\t"
+        line += "\r"
+        self.data_log.write(line)
+        self.data_log.close()
+
+                    
+
 
 
 
diff --git a/cflib_groundstation/__pycache__/LogfileHandler.cpython-38.pyc b/cflib_groundstation/__pycache__/LogfileHandler.cpython-38.pyc
index 6467201807fee9556118b139b0fd672116df9b80..38c58eb95bad0da7d7cb58dabaca510ba2832a5c 100644
GIT binary patch
delta 2450
zcmZ`)&2QX96rb_e+TM>On{75t(vT)y!KNq`qH1XRK_OKsA_<75Al!oM>^RA$_U>lv
zq-3>WQB#Q{R7OaMBJCn^h&XWQAHf069DGIMKj0EByf?d{`DktV=QnTO_&vY(dozCw
zwhNit>9k4U`grL>cVOUgW`zFv`0RL7u@p)eVTz~vs-+59^)x?WC4{VbpoMwO(=8p|
z3D59N%k0i2t)!SsS!sCdUdHdSdc>UJ_4<8QpO8&2>-Ssz-8DHY2ewJ?gg;;n%m`)5
z%lmmN?+;poVx0C)`a{-GcfqhV@(y7c*7Jz4o*l_L#k5<b*!%eJ)8pFWDt8@Lq_Gl~
zeHY(z<se)DK`X&b=td{#7xZ5AEj@REnU9F2yM}9?1piMcOR@AL1^z&M+Dfrr)&~}8
zmSz3$&afP~IT8IvEqW~)mtG!i5L;skV1mhjdV{o#Hi0N97^+X_C7Eh5DVki37Ug$u
z#5!|A$M&i#ae7~}D~|8R#wrBua=XmpTqjJlvW3xd*>iW{KLXcV-X(k_+Lh;rPeI{=
zESAqS6^$OarKg5+g--6J&%qahbERdk?7n7OsvTBK_FiA%6T9Hs1!fm+&J^Zn3b*#6
zn)(-o0JWRiFno`{6#b-K8XZAV0J@6Pv(?(xVzsnby#e7&NB?ReeLJcpM(O$J>%>2=
z4{U1<y=6Akh6cIJv?WTuq3gX3+5&x>QnH?f<Rlvu<p!pwC;COdqwrorqJ(ibKZ*W|
z2xk%A04S#TwP?e*NHfu|#^7L_br`ct)yi^t#qQ)QC>ne?`rVj+^+>n_NCMmOJliRS
z<xSUK@~Wl#!5#Q&a5=heUQ}~5Ma}3-^Oa_af_DExS%+s9p5SwUkhEx<Kyjr8QOKIa
zXehT7CIPB#(w2T8O#V@xCK6bLS_3VV9k8_%ASYTn(xIzY59kf1iA<2SW};=VM0e0#
zzz8HrU*O{q0G~iOgD`_|380>wnB`7=3u~LM=O$*Wm5^6G&*d|>EB7na2bDCC?h2Y;
zMaUzl2yY_D2-gq>2x$`jHi~Z{3?UrOB|izeZFmAG6(Q85<1_=9fdr;#ePXV<f(*Us
zR2cZ5dLDbB`I6nbdC-g{2|v`m)FucRn#lM=5JJfI8f8>uOTtXUSlOX@$aJ1;OAUIR
ze0qLc4%LRdgKU!5G|-G~E1?R_sH`ROMCc`^c1F{%YW>3c8LUoAZ%CbFLp2qqO*gT0
z(8Dm*>0QiyVnO7Ye*p2+RRgz@y84mBXU6uZA!rKuy#|w=)Iu6bEC(UygQ#1?p|R=k
zva{s50iQ#q$S-EPsB+O~_s~jPZHmt4pW#T~Uvsnu7R-JHPmlv3kozpv;l?Utp$ZvV
zKYgSQ$9v@%&ynl1P=692<3sY0BJXzT!Y<{vLGwH|#OWY(c!;~xO1ZM~9he28oU}f2
zB!WYRFK`a4n+KiqW%Rr9BIl_ftk(8@e}BOD@G;-d>`F-Y{R^4)Kie1#!sa2m0okM-
z$|N9~EQmI~4U}prZ2}a_ZPSJf78ERiia;xQeR6%YAu|PK!66`Jx0j`sCe8xnliK0a
z9v$NjINhV^Vxr3*<UjTy;Y$Fqw&{2qz?oxoxr?)ciI7;o#&Iv>?;#xS*SPNiFNbdD
z?5I`Cl`wb$R^9H!uGQhm39OIJRZkyk-(zbRaHBS-nxp7mVdYZD=h3N+fLjCC5HbkJ
zQof2%MyMb>3r<LQnD8C|Y!q>T=~Pklq0AY5TsN~lx~$7$zBtN}S8>wyow7F-olTlE
z@cZI)2jX!BKZKQxwQ#G38jK^>pb0lhVXSPrl}(;NBisg~_mc&xM;pnBw1H;o`i8sV
zax?llIoV92RSF@EbNzT^F2P3D-C(DH>*D`nwX)&YwqmJL6CpnD-(vl;Uu7GfdljP(
YaNEXhvU6k0Li!~{xW&7dDxi}818B||+5i9m

delta 828
zcmZuuId2m|6yDjLU9b1>?Oa^pSb~GF0Rd9NQGf`Egd-t`f&ppecsACGS=*UiBiYzc
zgn}~B^e8DQXov(Q4Fv^hDYoS=K+ntu0R=PCd*A!sHS^w{^K~lo(6$YUpX$;B?|pVB
za}<2oIe+S<f)pTO2}1${6{!hU31>N{5)EmIP9dFZjidtu8A(ivn1O|?1na~OGAQ#q
zH;b}7HcfIt9_16xAcdfS3PBMS6Wb)Epp41_&+sM_X!4$fEo{G%u)QUtDXcc6N``6R
zWClil;8j2j@B3l2%2vP&P-S004e|(sU62tt%U;WK!i4(=vI1a5qmX@5RxFVfdSv6R
zL`%$r_2LZweVEL^FrWs+-9Lag!Tiv!k#0MzwKj<FU2>7?M%|V>%sY=<CvY9?I?Ibr
zebH$Q*%j?OfNUzYtQC1RI>|Ot*N>M3OhlQZ*uK;44c5A?weFHnyc+wIie|3?Noq@D
z5J?zdc}pJ4SQ#rL1;eMxHlUYTL;pEf8fznc*BGfIZCcs`K-vbIxe?gqtgto<BajT{
zdHOMkS)6`SI3YS87h;x+ib=1sy0LJ~;zq2}W~c4NRug0QS(EzBb>dahw8%ahb@QJm
zv#fbUYw(P4kzF(wlmf6=$2_O3R&@3*SG_wSib3qRB6^!cx+cWm{6GJuHg|{tggO^G
zfKV@I&LnJQn$`1@GZb=1tVM&K-)U1dF~W%UTM>JccYww|=TF-yL93g6ukTTv{m9Rc
z)10AVZ`2gNqFB><wMCo5fmm3T?~We+xYG}MgIMnLlCJ-IWUSu^y0}lgTQaW|iqTo%
Q@ajO9^+TNK9LKuy3(kzP$^ZZW

diff --git a/cflib_groundstation/__pycache__/crazyflie_connection.cpython-38.pyc b/cflib_groundstation/__pycache__/crazyflie_connection.cpython-38.pyc
index a880844f863cc0e4376eae434e19710590875b17..c8b8d69dfd7a79b2ef07b4e7cc8c8446aa446fb0 100644
GIT binary patch
delta 4323
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

delta 3514
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
ZXl^m2LT$kx))yK64QS2<nf@pj`46B_5*+{l

diff --git a/cflib_groundstation/crazyflie_connection.py b/cflib_groundstation/crazyflie_connection.py
index 4e414f4ed..6030a4464 100644
--- a/cflib_groundstation/crazyflie_connection.py
+++ b/cflib_groundstation/crazyflie_connection.py
@@ -7,7 +7,8 @@ cflib library.
 
 from datetime import datetime
 from email.utils import localtime
-from time import time
+from threading import Thread
+from time import sleep, time
 from typing import List
 import time
 import struct
@@ -45,15 +46,15 @@ class CrazyflieConnection:
         # be in seconds since startup.
         self.start_time = time.time()
 
-        self.logging_queue = Queue()
-
         self.scf = None
         self.is_connected = False
         self.param_callback_count = 0
         self.logging_configs = []
-
+        self.logging_thread = None
+        self.stop_thread = False
         self.setpoint_handler = SetpointHandler()
         self.logfile_handler = LogfileHandler()
+        self.timestamp = 0
 
         # self.timer = QTimer()
         # self.timer.timeout.connect(self.update_plot)
@@ -253,8 +254,16 @@ class CrazyflieConnection:
         id = command['data'][0]
         print(id)
         if id == 0: # logdata?
-            for config in self.logging_configs:
-                self.simple_log(self.scf, config)
+            filename = self.logfile_handler.data_log_name
+            data = bytearray()
+            data += bytes(filename, 'utf-8')
+            responsedata = {
+            "msg_type": (MessageTypeID.RESPLOGFILE_ID),
+            "msg_id": command['msg_id'],
+            "data_len": len(data),
+            "data": data
+            }
+            outputQueue.put(responsedata)
         elif id == 1: # param toc
             params = self.get_param_toc()
             filename = self.logfile_handler.CopyTocToFile(params, True)
@@ -304,24 +313,28 @@ class CrazyflieConnection:
             self.enable_logging()
         elif id == 5:
             self.disable_logging()
+        elif id == 8:
+            self.start_logging()
+        elif id == 9:
+            self.stop_logging()
             
     def simple_log(self, scf, logconf):
         print("Logging...")
         with SyncLogger(scf, logconf) as logger:
             for log_entry in logger:
-                timestamp = log_entry[0]
+                self.timestamp = log_entry[0]
                 data = log_entry[1]
                 logconf_name = log_entry[2]
 
-                print('[%d][%s]: %s' % (timestamp, logconf_name, data))
-
-                break
+                #print('[%d][%s]: %s' % (self.timestamp, logconf_name, data))
+                return data
 
     def enable_logging(self):
         """ Begins logging all configured logging blocks. This is used from
         the controls tab when hitting begin logging. """
         for i in range(0, len(self.logging_configs)):
             self.logging_configs[i].start()
+        
 
     def disable_logging(self):
         """ Stops logging all configured logging blocks. This is used from
@@ -333,6 +346,24 @@ class CrazyflieConnection:
         for block in self.logging_configs:
             block.delete()
             self.logging_configs.remove(block)
+    
+    def start_logging(self):
+        self.stop_thread = False
+        self.logging_thread = Thread(target=self.continous_log)
+        self.logging_thread.start()
+
+    def stop_logging(self):
+        self.stop_thread = True
+
+    def continous_log(self):
+        while not self.stop_thread:
+            data = []
+            for config in self.logging_configs:
+                data.append(self.simple_log(self.scf, config))
+            print(data)
+            self.logfile_handler.write_data_points(data, self.timestamp / 1000)
+            sleep(0.3)
+
 
 
 
diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:10:24.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:10:24.txt
new file mode 100644
index 000000000..e69de29bb
diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:12:13.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:12:13.txt
new file mode 100644
index 000000000..e69de29bb
diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:13:15.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:13:15.txt
new file mode 100644
index 000000000..e69de29bb
diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:14:15.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:14:15.txt
new file mode 100644
index 000000000..c1e1cb035
--- /dev/null
+++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:14:15.txt
@@ -0,0 +1 @@
+#Crazyflie#Controller:Unknown
\ No newline at end of file
diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:15:17.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:15:17.txt
new file mode 100644
index 000000000..e69de29bb
diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:17:02.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:17:02.txt
new file mode 100644
index 000000000..e69de29bb
diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:17:50.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:17:50.txt
new file mode 100644
index 000000000..498dffdd1
--- /dev/null
+++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:17:50.txt
@@ -0,0 +1 @@
+#Crazyflie
#Controller:Unknown
#0	time	stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	ctrlStdnt.r_roll	ctrlStdnt.r_pitch	ctrlStdnt.r_yaw	ctrlStdnt.rollRate	ctrlStdnt.pitchRate	ctrlStdnt.yawRate	ctrlStdnt.roll	ctrlStdnt.pitch	ctrlStdnt.yaw
\ No newline at end of file
diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:43:23.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:43:23.txt
new file mode 100644
index 000000000..498dffdd1
--- /dev/null
+++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:43:23.txt
@@ -0,0 +1 @@
+#Crazyflie
#Controller:Unknown
#0	time	stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	ctrlStdnt.r_roll	ctrlStdnt.r_pitch	ctrlStdnt.r_yaw	ctrlStdnt.rollRate	ctrlStdnt.pitchRate	ctrlStdnt.yawRate	ctrlStdnt.roll	ctrlStdnt.pitch	ctrlStdnt.yaw
\ No newline at end of file
diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:45:48.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:45:48.txt
new file mode 100644
index 000000000..891e2c4a3
--- /dev/null
+++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:45:48.txt
@@ -0,0 +1 @@
+#Crazyflie
#Controller:Unknown
#0	time	stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	ctrlStdnt.r_roll	ctrlStdnt.r_pitch	ctrlStdnt.r_yaw	ctrlStdnt.rollRate	ctrlStdnt.pitchRate	ctrlStdnt.yawRate	ctrlStdnt.roll	ctrlStdnt.pitch	ctrlStdnt.yawstateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	
\ No newline at end of file
diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:51:23.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:51:23.txt
new file mode 100644
index 000000000..f2deb3d7f
--- /dev/null
+++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:51:23.txt
@@ -0,0 +1 @@
+#Crazyflie
#Controller:Unknown
\ No newline at end of file
diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:51:55.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:51:55.txt
new file mode 100644
index 000000000..498dffdd1
--- /dev/null
+++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:51:55.txt
@@ -0,0 +1 @@
+#Crazyflie
#Controller:Unknown
#0	time	stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	ctrlStdnt.r_roll	ctrlStdnt.r_pitch	ctrlStdnt.r_yaw	ctrlStdnt.rollRate	ctrlStdnt.pitchRate	ctrlStdnt.yawRate	ctrlStdnt.roll	ctrlStdnt.pitch	ctrlStdnt.yaw
\ No newline at end of file
diff --git a/cflib_groundstation/logs/cflie1_2023_11_13_18:52:26.txt b/cflib_groundstation/logs/cflie1_2023_11_13_18:52:26.txt
new file mode 100644
index 000000000..24cf99abd
--- /dev/null
+++ b/cflib_groundstation/logs/cflie1_2023_11_13_18:52:26.txt
@@ -0,0 +1 @@
+#Crazyflie
#Controller:Unknown
#0	time	stateEstimate.roll	stateEstimate.pitch	stateEstimate.yaw	ctrlStdnt.r_roll	ctrlStdnt.r_pitch	ctrlStdnt.r_yaw	ctrlStdnt.rollRate	ctrlStdnt.pitchRate	ctrlStdnt.yawRate	ctrlStdnt.roll	ctrlStdnt.pitch	ctrlStdnt.yaw2664.527 -0.2249341905117035	0.1795833259820938	-20.655818939208984	0.0630495622754097	-0.019611896947026253	-0.021850405260920525	0.0	0.0	0.0	0.0	0.0	-20.662267684936523	
2665.559 -0.22593162953853607	0.17787422239780426	-20.668827056884766	-0.003237646771594882	-0.06716358661651611	-0.1893502026796341	0.0	0.0	0.0	0.0	0.0	-20.665260314941406	
2666.608 -0.232166588306427	0.1993357241153717	-20.671485900878906	-0.15982186794281006	-0.14582476019859314	0.21151892840862274	0.0	0.0	0.0	0.0	0.0	-20.670024871826172	
2667.666 -0.23002538084983826	0.20136956870555878	-20.67282485961914	-0.1109040230512619	0.16435162723064423	0.19461053609848022	0.0	0.0	0.0	0.0	0.0	-20.678686141967773	
2668.717 -0.24088990688323975	0.1908612698316574	-20.68611717224121	-0.05335886403918266	0.25089824199676514	0.03748396039009094	0.0	0.0	0.0	0.0	0.0	-20.681615829467773	
2669.788 -0.2471611648797989	0.18524512648582458	-20.680728912353516	0.029240721836686134	0.07677371054887772	0.14828798174858093	0.0	0.0	0.0	0.0	0.0	-20.68077278137207	
2670.836 -0.24013113975524902	0.1678890585899353	-20.677570343017578	0.0710749700665474	0.10382790118455887	0.08601564168930054	0.0	0.0	0.0	0.0	0.0	-20.67952537536621	
2671.903 -0.23463235795497894	0.1790095418691635	-20.68352508544922	0.037242621183395386	0.038598258048295975	-0.171991229057312	0.0	0.0	0.0	0.0	0.0	-20.701509475708008	
2672.956 -0.2289217859506607	0.19495955109596252	-20.708011627197266	-0.21793454885482788	0.0018176068551838398	-0.140023872256279	0.0	0.0	0.0	0.0	0.0	-20.71295738220215	
2674.007 -0.2356119155883789	0.18666185438632965	-20.723102569580078	-0.04160384088754654	0.5091188549995422	-0.2663525938987732	0.0	0.0	0.0	0.0	0.0	-20.731910705566406	
2675.079 -0.23103639483451843	0.18645061552524567	-20.73302459716797	-0.04817742854356766	0.003122511552646756	-0.03841472044587135	0.0	0.0	0.0	0.0	0.0	-20.731088638305664	
2676.137 -0.21975839138031006	0.1698170006275177	-20.736764907836914	0.009844992309808731	0.1422719806432724	0.10667766630649567	0.0	0.0	0.0	0.0	0.0	-20.744792938232422	
\ No newline at end of file
-- 
GitLab