@@ -6,6 +6,7 @@ import time
66import ssl
77import socket
88import datetime
9+ import json
910from dataclasses import dataclass
1011import shortuuid
1112import sys
@@ -122,11 +123,41 @@ def parse_line_data(rx_username: str, rx_device_id: str, line_data: list[str]) -
122123 elif rx_control_type == 'MAP' :
123124 pass
124125 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 )
126156
127157
128158def parse_tgrph_data (control_data : ControlData ):
129159 """parse the TGRPH line"""
160+ line = ""
130161 if file_format == 'raw' :
131162 line = f"\t { control_data .device_id } \t TGRPH\t { control_data .control_id } \t "
132163 line += "\t " .join (control_data .data )
0 commit comments