@@ -6,6 +6,7 @@ import time
6
6
import ssl
7
7
import socket
8
8
import datetime
9
+ import json
9
10
from dataclasses import dataclass
10
11
import shortuuid
11
12
import sys
@@ -122,11 +123,41 @@ def parse_line_data(rx_username: str, rx_device_id: str, line_data: list[str]) -
122
123
elif rx_control_type == 'MAP' :
123
124
pass
124
125
elif rx_control_type == 'LOG' :
125
- pass
126
+ parse_log_data (control_data )
127
+
128
+
129
+ def format_log_json (log : str ):
130
+ log_dict = json .loads (log )
131
+ log_str = "{time}, {color}, " .format_map (log_dict )
132
+ log_str += ", " .join (log_dict ["lines" ])
133
+ return log_str
134
+
135
+
136
+ def parse_log_data (control_data : ControlData ):
137
+ """parse the LOG data."""
138
+ line = ""
139
+ if file_format == 'raw' :
140
+ line = f"\t { control_data .device_id } \t LOG\t { control_data .control_id } \t "
141
+ line += "\t " .join (control_data .data )
142
+ line += '\n '
143
+ if screen :
144
+ print (line )
145
+ elif file_format == 'cvs' :
146
+ line = f"# { control_data .device_id } , TGRPH, { control_data .control_id } "
147
+ line += "\n Timestamp, color, lines\n "
148
+ line += "\n " .join (format_log_json (l_str ) for l_str in control_data .data )
149
+ if screen :
150
+ print (line )
151
+ if out_to_file :
152
+ filename = f"{ control_data .device_id } _{ control_data .control_type } _{ control_data .control_id } _{ control_data .data [0 ]} .{ file_format } "
153
+ print ("Writing to file: " + filename )
154
+ with open (filename , "w" , encoding = 'utf-8' ) as writer :
155
+ writer .write (line )
126
156
127
157
128
158
def parse_tgrph_data (control_data : ControlData ):
129
159
"""parse the TGRPH line"""
160
+ line = ""
130
161
if file_format == 'raw' :
131
162
line = f"\t { control_data .device_id } \t TGRPH\t { control_data .control_id } \t "
132
163
line += "\t " .join (control_data .data )
0 commit comments