diff --git a/application_events.json b/application_events.json index 5a7aaf4..ec2f2e7 100644 --- a/application_events.json +++ b/application_events.json @@ -2186,8 +2186,2361 @@ "event_type": "application_started", "message": "Application initialization completed successfully", "details": {} + }, + { + "timestamp": "2025-08-27T12:48:22.727289", + "level": "info", + "event_type": "dataset_activated", + "message": "Dataset activated: DAR", + "details": { + "dataset_id": "DAR", + "variables_count": 4, + "streaming_count": 4, + "prefix": "dar" + } + }, + { + "timestamp": "2025-08-27T12:48:22.732281", + "level": "info", + "event_type": "csv_recording_started", + "message": "🔥 CRITICAL PRIORITY: CSV recording started with MAXIMUM PRIORITY, async buffering, and performance monitoring: 1 datasets activated", + "details": { + "activated_datasets": 1, + "total_datasets": 1, + "priority": "CRITICAL", + "recording_protection": true, + "performance_monitoring": true, + "async_csv_buffering": true, + "csv_flush_interval": 5.0 + } + }, + { + "timestamp": "2025-08-27T12:48:22.736284", + "level": "info", + "event_type": "plc_connection", + "message": "Successfully connected to PLC 10.1.33.11 and auto-started CSV recording for 1 datasets", + "details": { + "ip": "10.1.33.11", + "rack": 0, + "slot": 2, + "symbols_path": "C:/Users/migue/Downloads/symSAE452.asc", + "auto_started_recording": true, + "recording_datasets": 1, + "dataset_names": [ + "DAR" + ] + } + }, + { + "timestamp": "2025-08-27T12:48:32.727570", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 276.5341143608093, + "points_saved": 20, + "points_rate": 0.07232380730395128, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025484764575958253, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:48:42.734101", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.006531238555908, + "points_saved": 20, + "points_rate": 1.9986946048735164, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027927649021148682, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:48:52.738201", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.7% CPU", + "details": { + "duration": 10.004100322723389, + "points_saved": 20, + "points_rate": 1.999180271570433, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.7, + "cpu_max": 1.7, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.029233503341674804, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:49:02.741903", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.00370192527771, + "points_saved": 20, + "points_rate": 1.9992598889280466, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025135672092437743, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:49:12.746842", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.00443148612976, + "points_saved": 20, + "points_rate": 1.9991140953614597, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.023645269870758056, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:49:22.258968", + "level": "info", + "event_type": "plot_session_created", + "message": "Plot session 'DAR_Brix' created and started", + "details": { + "session_id": "DAR_1756291762257_2", + "variables": [ + "HMI_Instrument.QTM306.PVFiltered", + "HMI_Instrument.QTM307.PVFiltered" + ], + "time_window": 60, + "trigger_variable": null, + "auto_started": true + } + }, + { + "timestamp": "2025-08-27T12:49:22.750165", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.003830909729004, + "points_saved": 20, + "points_rate": 1.9992341114591854, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027708137035369874, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:49:28.264592", + "level": "info", + "event_type": "plot_session_created", + "message": "Plot session 'DAR_Brix' created and started", + "details": { + "session_id": "DAR_1756291768264_3", + "variables": [ + "HMI_Instrument.QTM306.PVFiltered", + "HMI_Instrument.QTM307.PVFiltered" + ], + "time_window": 60, + "trigger_variable": null, + "auto_started": true + } + }, + { + "timestamp": "2025-08-27T12:49:32.754271", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.00410509109497, + "points_saved": 20, + "points_rate": 1.9991793186781646, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025402474403381347, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:49:42.760472", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.00569486618042, + "points_saved": 20, + "points_rate": 1.9988616750247563, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0281427264213562, + "csv_write_time_avg": 2.535581588745117e-05 + } + }, + { + "timestamp": "2025-08-27T12:49:52.768153", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.007675647735596, + "points_saved": 20, + "points_rate": 1.9984660478605074, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02747495174407959, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:50:02.775302", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.00766110420227, + "points_saved": 20, + "points_rate": 1.9984689521112873, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027161777019500732, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:50:12.780615", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.6% CPU", + "details": { + "duration": 10.005312204360962, + "points_saved": 20, + "points_rate": 1.9989381232184547, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.6, + "cpu_max": 1.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025378239154815675, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:50:22.785476", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.004861831665039, + "points_saved": 20, + "points_rate": 1.9990281061854045, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.026065421104431153, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:50:32.791111", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.004613637924194, + "points_saved": 20, + "points_rate": 1.999077697931941, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025345396995544434, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:50:42.799204", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.009113788604736, + "points_saved": 20, + "points_rate": 1.9981789019892826, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027391982078552247, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:50:52.803810", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.004606485366821, + "points_saved": 20, + "points_rate": 1.9990791271253778, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02724825143814087, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:51:02.808785", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.004975318908691, + "points_saved": 20, + "points_rate": 1.999005431048033, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.024904286861419676, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:51:12.812974", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.004188537597656, + "points_saved": 20, + "points_rate": 1.9991626432105083, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025618982315063477, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:51:22.817460", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.004485845565796, + "points_saved": 20, + "points_rate": 1.9991032331625949, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.028228747844696044, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:51:32.822238", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.004777908325195, + "points_saved": 20, + "points_rate": 1.9990448746850804, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02596944570541382, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:51:42.829872", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.007634162902832, + "points_saved": 20, + "points_rate": 1.998474332139132, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02799912691116333, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:51:52.837300", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.007428407669067, + "points_saved": 20, + "points_rate": 1.9985154212717875, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025254178047180175, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:52:02.841711", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.004410982131958, + "points_saved": 20, + "points_rate": 1.9991181925373045, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.028142380714416503, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:52:12.847573", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.004786729812622, + "points_saved": 20, + "points_rate": 1.9990431120738719, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.026019752025604248, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:52:22.856941", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.01044249534607, + "points_saved": 20, + "points_rate": 1.9979136795699244, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027534174919128417, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:52:32.861130", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.004189491271973, + "points_saved": 20, + "points_rate": 1.9991624526353429, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02678595781326294, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:52:42.865583", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.00445294380188, + "points_saved": 20, + "points_rate": 1.9991098076372804, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027931928634643555, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:52:52.872099", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.006516218185425, + "points_saved": 20, + "points_rate": 1.9986976050318925, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027212464809417726, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:53:02.889937", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.017837762832642, + "points_saved": 20, + "points_rate": 1.9964387998178965, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.026789355278015136, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:53:12.895552", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.005107164382935, + "points_saved": 20, + "points_rate": 1.998979088519688, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027616238594055174, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:53:22.902647", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.007603168487549, + "points_saved": 20, + "points_rate": 1.9984805215875285, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02759968042373657, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:53:32.907162", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.004514932632446, + "points_saved": 20, + "points_rate": 1.999097420981857, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.028693842887878417, + "csv_write_time_avg": 4.994869232177734e-06 + } + }, + { + "timestamp": "2025-08-27T12:53:42.912691", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.9% CPU", + "details": { + "duration": 10.005378007888794, + "points_saved": 20, + "points_rate": 1.9989249765706896, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.9, + "cpu_max": 0.9, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025321877002716063, + "csv_write_time_avg": 5.626678466796875e-06 + } + }, + { + "timestamp": "2025-08-27T12:53:52.919199", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.00608777999878, + "points_saved": 20, + "points_rate": 1.9987831847705857, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02524073123931885, + "csv_write_time_avg": 9.22679901123047e-06 + } + }, + { + "timestamp": "2025-08-27T12:54:02.925411", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.006782531738281, + "points_saved": 20, + "points_rate": 1.9986444130834722, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.023662567138671875, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:54:12.931653", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.006242036819458, + "points_saved": 20, + "points_rate": 1.9987523714104676, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025496196746826173, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:54:22.938102", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.004938125610352, + "points_saved": 20, + "points_rate": 1.9990128623389063, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027496480941772462, + "csv_write_time_avg": 2.968311309814453e-06 + } + }, + { + "timestamp": "2025-08-27T12:54:32.946142", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.009551048278809, + "points_saved": 20, + "points_rate": 1.998091613053824, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.030640852451324464, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:54:42.952126", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005476474761963, + "points_saved": 20, + "points_rate": 1.998905304554805, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02450435161590576, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:54:52.958396", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.006777286529541, + "points_saved": 20, + "points_rate": 1.9986454607041841, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027165961265563966, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:55:02.963655", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005259990692139, + "points_saved": 20, + "points_rate": 1.9989485549207053, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.024803340435028076, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:55:12.969312", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005130529403687, + "points_saved": 20, + "points_rate": 1.9989744202959454, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025948452949523925, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:55:22.973957", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005171298980713, + "points_saved": 20, + "points_rate": 1.9989662747740782, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027081310749053955, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:55:32.979379", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.004915237426758, + "points_saved": 20, + "points_rate": 1.9990174354684445, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.029121792316436766, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:55:42.986375", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.006487131118774, + "points_saved": 20, + "points_rate": 1.9987034148880078, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025013446807861328, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:55:52.992322", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.006962776184082, + "points_saved": 20, + "points_rate": 1.9986084136935829, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.024305105209350586, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:56:02.998298", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.005975484848022, + "points_saved": 20, + "points_rate": 1.9988056167323074, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02606879472732544, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:56:13.007579", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.009280443191528, + "points_saved": 20, + "points_rate": 1.9981456322971067, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.024049866199493408, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:56:23.012696", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.005117177963257, + "points_saved": 20, + "points_rate": 1.9989770878497, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.032612967491149905, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:56:33.020631", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.5% CPU", + "details": { + "duration": 10.00742483139038, + "points_saved": 20, + "points_rate": 1.9985161354663208, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.5, + "cpu_max": 0.5, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.026971757411956787, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:56:43.025856", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.005091190338135, + "points_saved": 20, + "points_rate": 1.998982280072959, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02644253969192505, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:56:53.035263", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.010051488876343, + "points_saved": 20, + "points_rate": 1.9979917208442908, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025069355964660645, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:57:03.042056", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.006280660629272, + "points_saved": 20, + "points_rate": 1.9987446563129128, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.024583840370178224, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:57:13.047203", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005658864974976, + "points_saved": 20, + "points_rate": 1.9988688670978412, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.023779869079589844, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:57:23.053887", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.00668454170227, + "points_saved": 20, + "points_rate": 1.9986639847245282, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.028527450561523438, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:57:33.058955", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005067825317383, + "points_saved": 20, + "points_rate": 1.9989869483334117, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025045180320739747, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:57:43.064402", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005446672439575, + "points_saved": 20, + "points_rate": 1.9989112585139095, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02575467824935913, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:57:53.070521", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.0061194896698, + "points_saved": 20, + "points_rate": 1.9987768505710695, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025682783126831053, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:58:03.076320", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005798816680908, + "points_saved": 20, + "points_rate": 1.9988409087995571, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027329635620117188, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:58:13.083174", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.006854057312012, + "points_saved": 20, + "points_rate": 1.9986301274560903, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027016651630401612, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:58:23.088669", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005495309829712, + "points_saved": 20, + "points_rate": 1.998901541670943, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02421966791152954, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:58:33.093964", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005294799804688, + "points_saved": 20, + "points_rate": 1.9989416004404406, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02779942750930786, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:58:43.100009", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.00604510307312, + "points_saved": 20, + "points_rate": 1.9987917098092505, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.024622237682342528, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:58:53.106080", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005553007125854, + "points_saved": 20, + "points_rate": 1.9988900149503182, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02706114053726196, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:59:03.112529", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.006455421447754, + "points_saved": 20, + "points_rate": 1.998709748622091, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.026785802841186524, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:59:13.118560", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.006542205810547, + "points_saved": 20, + "points_rate": 1.9986924142873752, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.029735398292541505, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:59:23.124957", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.006397485733032, + "points_saved": 20, + "points_rate": 1.9987213208865322, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.03006788492202759, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:59:33.131447", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.006489753723145, + "points_saved": 20, + "points_rate": 1.9987028910471367, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.023465240001678468, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:59:43.136894", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005446434020996, + "points_saved": 20, + "points_rate": 1.9989113061457253, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02698429822921753, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T12:59:53.143382", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.006488800048828, + "points_saved": 20, + "points_rate": 1.9987030815346944, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.023996496200561525, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:00:03.151801", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.007905960083008, + "points_saved": 20, + "points_rate": 1.9984200570799644, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.026020491123199464, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:00:13.157105", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005817174911499, + "points_saved": 20, + "points_rate": 1.9988372414147073, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025600755214691163, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:00:23.165897", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.008791208267212, + "points_saved": 20, + "points_rate": 1.998243302695744, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025961089134216308, + "csv_write_time_avg": 0.0036481738090515135 + } + }, + { + "timestamp": "2025-08-27T13:00:33.171842", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.005945682525635, + "points_saved": 20, + "points_rate": 1.9988115700975635, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.024579596519470216, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:00:43.177483", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 1.1% CPU", + "details": { + "duration": 10.005640745162964, + "points_saved": 20, + "points_rate": 1.9988724869687748, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 1.1, + "cpu_max": 1.1, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027034616470336913, + "csv_write_time_avg": 1.016855239868164e-05 + } + }, + { + "timestamp": "2025-08-27T13:00:53.183760", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.006277084350586, + "points_saved": 20, + "points_rate": 1.9987453706712952, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.024646067619323732, + "csv_write_time_avg": 7.843971252441406e-06 + } + }, + { + "timestamp": "2025-08-27T13:01:03.192776", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.008902072906494, + "points_saved": 20, + "points_rate": 1.9982211689470732, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.030113530158996583, + "csv_write_time_avg": 5.471706390380859e-06 + } + }, + { + "timestamp": "2025-08-27T13:01:13.203129", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.01046633720398, + "points_saved": 20, + "points_rate": 1.9979089211528376, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02841684818267822, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:01:23.210661", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.007023334503174, + "points_saved": 20, + "points_rate": 1.9985963189515192, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.023812055587768555, + "csv_write_time_avg": 3.2901763916015627e-06 + } + }, + { + "timestamp": "2025-08-27T13:01:33.222005", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.011852502822876, + "points_saved": 20, + "points_rate": 1.9976323057457082, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02655034065246582, + "csv_write_time_avg": 6.651878356933593e-06 + } + }, + { + "timestamp": "2025-08-27T13:01:43.229387", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.006806373596191, + "points_saved": 20, + "points_rate": 1.9986396511849873, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02653520107269287, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:01:53.239953", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.011142253875732, + "points_saved": 20, + "points_rate": 1.9977740294577437, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.0267378568649292, + "csv_write_time_avg": 4.065036773681641e-06 + } + }, + { + "timestamp": "2025-08-27T13:02:03.247663", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.007097244262695, + "points_saved": 20, + "points_rate": 1.9985815578505017, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.026399004459381103, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:02:13.253277", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.006227254867554, + "points_saved": 20, + "points_rate": 1.9987553241178837, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.028397953510284422, + "csv_write_time_avg": 7.748603820800781e-06 + } + }, + { + "timestamp": "2025-08-27T13:02:23.259783", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.006505727767944, + "points_saved": 20, + "points_rate": 1.9986997003859417, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02543623447418213, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:02:33.266179", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005887985229492, + "points_saved": 20, + "points_rate": 1.9988230959134894, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.024902331829071044, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:02:43.273224", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.00704288482666, + "points_saved": 20, + "points_rate": 1.9985924143810079, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.026255548000335693, + "csv_write_time_avg": 1.0669231414794922e-05 + } + }, + { + "timestamp": "2025-08-27T13:02:53.279516", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.00680160522461, + "points_saved": 20, + "points_rate": 1.998640603562869, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025149965286254884, + "csv_write_time_avg": 5.900859832763672e-06 + } + }, + { + "timestamp": "2025-08-27T13:03:03.288488", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.008972644805908, + "points_saved": 20, + "points_rate": 1.998207079762464, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025091898441314698, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:03:13.294450", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.005962133407593, + "points_saved": 20, + "points_rate": 1.998808283835557, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02886803150177002, + "csv_write_time_avg": 1.2600421905517578e-05 + } + }, + { + "timestamp": "2025-08-27T13:03:23.301330", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.006879806518555, + "points_saved": 20, + "points_rate": 1.998624984680225, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.026345336437225343, + "csv_write_time_avg": 5.829334259033203e-06 + } + }, + { + "timestamp": "2025-08-27T13:03:33.307716", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.006385326385498, + "points_saved": 20, + "points_rate": 1.9987237496504036, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027469146251678466, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:03:43.314851", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.007135152816772, + "points_saved": 20, + "points_rate": 1.9985739869187709, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.026946377754211426, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:03:53.321559", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.00670838356018, + "points_saved": 20, + "points_rate": 1.9986592227327815, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.027851510047912597, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:04:03.339043", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.3% CPU", + "details": { + "duration": 10.017483711242676, + "points_saved": 20, + "points_rate": 1.9965093606844493, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.3, + "cpu_max": 0.3, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025515437126159668, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:04:13.345336", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.006293296813965, + "points_saved": 20, + "points_rate": 1.9987421322507168, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02820836305618286, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:04:23.352874", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.0% CPU", + "details": { + "duration": 10.007538080215454, + "points_saved": 20, + "points_rate": 1.9984935195539537, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.0, + "cpu_max": 0.0, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.025189387798309325, + "csv_write_time_avg": 3.6716461181640626e-06 + } + }, + { + "timestamp": "2025-08-27T13:04:33.359240", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.6% CPU", + "details": { + "duration": 10.006365537643433, + "points_saved": 20, + "points_rate": 1.9987277023571675, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.6, + "cpu_max": 0.6, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.023956871032714842, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:04:43.366573", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.2% CPU", + "details": { + "duration": 10.00682282447815, + "points_saved": 20, + "points_rate": 1.9986363654882626, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.2, + "cpu_max": 0.2, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.02813206911087036, + "csv_write_time_avg": 0.0 + } + }, + { + "timestamp": "2025-08-27T13:04:53.372232", + "level": "info", + "event_type": "performance_report", + "message": "Performance report: 20 points saved, 0 lost, 0.8% CPU", + "details": { + "duration": 10.006168842315674, + "points_saved": 20, + "points_rate": 1.9987669921599591, + "variables_saved": 80, + "udp_points_sent": 0, + "points_lost": 0, + "cpu_average": 0.8, + "cpu_max": 0.8, + "delay_average": 0.0, + "delay_max": 0.0, + "read_errors": 0, + "csv_errors": 0, + "udp_errors": 0, + "read_time_avg": 0.024851667881011962, + "csv_write_time_avg": 0.0 + } } ], - "last_updated": "2025-08-27T12:43:57.197628", - "total_entries": 130 + "last_updated": "2025-08-27T13:04:53.372232", + "total_entries": 234 } \ No newline at end of file diff --git a/frontend/src/components/PlotHistoricalManager.jsx b/frontend/src/components/PlotHistoricalManager.jsx index 94532f9..0e8022a 100644 --- a/frontend/src/components/PlotHistoricalManager.jsx +++ b/frontend/src/components/PlotHistoricalManager.jsx @@ -45,6 +45,7 @@ import Form from '@rjsf/chakra-ui' import validator from '@rjsf/validator-ajv8' import allWidgets from './widgets/AllWidgets' import LayoutObjectFieldTemplate from './rjsf/LayoutObjectFieldTemplate' +import TooltipFieldTemplate from './rjsf/TooltipFieldTemplate' import PlotHistoricalSession from './PlotHistoricalSession' import { useVariableContext } from '../contexts/VariableContext' import * as api from '../services/api' @@ -232,7 +233,10 @@ function CollapsiblePlotItemsForm({ data, schema, uiSchema, onSave, title, icon, formData={item} validator={validator} widgets={allWidgets} - templates={{ ObjectFieldTemplate: LayoutObjectFieldTemplate }} + templates={{ + ObjectFieldTemplate: LayoutObjectFieldTemplate, + FieldTemplate: TooltipFieldTemplate + }} onChange={(e) => { const newFormData = [...formData] newFormData[index] = e.formData diff --git a/frontend/src/components/PlotManager.jsx b/frontend/src/components/PlotManager.jsx index fa5d815..a09aca4 100644 --- a/frontend/src/components/PlotManager.jsx +++ b/frontend/src/components/PlotManager.jsx @@ -39,6 +39,7 @@ import Form from '@rjsf/chakra-ui' import validator from '@rjsf/validator-ajv8' import allWidgets from './widgets/AllWidgets' import LayoutObjectFieldTemplate from './rjsf/LayoutObjectFieldTemplate' +import TooltipFieldTemplate from './rjsf/TooltipFieldTemplate' import PlotRealtimeSession from './PlotRealtimeSession' import { useVariableContext } from '../contexts/VariableContext' import * as api from '../services/api' @@ -558,7 +559,10 @@ function CollapsiblePlotItemsForm({ data, schema, uiSchema, onSave, title, icon, formData={item} validator={validator} widgets={allWidgets} - templates={{ ObjectFieldTemplate: LayoutObjectFieldTemplate }} + templates={{ + ObjectFieldTemplate: LayoutObjectFieldTemplate, + FieldTemplate: TooltipFieldTemplate + }} onChange={({ formData: newItemData }) => updateItem(index, newItemData)} >
{/* Prevents form buttons from showing */} @@ -624,7 +628,10 @@ function CollapsiblePlotItemsForm({ data, schema, uiSchema, onSave, title, icon, formData={item} validator={validator} widgets={allWidgets} - templates={{ ObjectFieldTemplate: LayoutObjectFieldTemplate }} + templates={{ + ObjectFieldTemplate: LayoutObjectFieldTemplate, + FieldTemplate: TooltipFieldTemplate + }} onChange={({ formData: newItemData }) => updateItem(index, newItemData)} >
{/* Prevents form buttons from showing */} @@ -1176,7 +1183,10 @@ export default function PlotManager() { formData={selectedPlotVars} validator={validator} widgets={allWidgets} - templates={{ ObjectFieldTemplate: LayoutObjectFieldTemplate }} + templates={{ + ObjectFieldTemplate: LayoutObjectFieldTemplate, + FieldTemplate: TooltipFieldTemplate + }} onSubmit={({ formData }) => { const updatedConfig = updateSelectedPlotVariables(formData) savePlotVariables(updatedConfig).then(() => { diff --git a/frontend/src/components/rjsf/TooltipFieldTemplate.jsx b/frontend/src/components/rjsf/TooltipFieldTemplate.jsx index 130f382..83f4592 100644 --- a/frontend/src/components/rjsf/TooltipFieldTemplate.jsx +++ b/frontend/src/components/rjsf/TooltipFieldTemplate.jsx @@ -1,5 +1,5 @@ import React from 'react' -import { Box, FormControl, FormErrorMessage, Tooltip as ChakraTooltip } from '@chakra-ui/react' +import { Box, FormControl, FormErrorMessage, Tooltip as ChakraTooltip, useColorModeValue } from '@chakra-ui/react' /** * Custom RJSF Field Template with integrated tooltips @@ -21,6 +21,11 @@ export default function TooltipFieldTemplate(props) { uiSchema } = props + // Theme-aware colors for tooltips + // Both light and dark themes use dark backgrounds with light text for better readability + const tooltipBg = useColorModeValue('gray.700', 'gray.600') + const tooltipColor = useColorModeValue('white', 'white') + if (hidden) { return
{children}
} @@ -36,6 +41,17 @@ export default function TooltipFieldTemplate(props) { {children} diff --git a/frontend/src/pages/Dashboard.jsx b/frontend/src/pages/Dashboard.jsx index 35fd6ce..2ad738a 100644 --- a/frontend/src/pages/Dashboard.jsx +++ b/frontend/src/pages/Dashboard.jsx @@ -565,7 +565,10 @@ function CollapsibleArrayItemsForm({ data, schema, uiSchema, onSave, title, icon formData={item} validator={validator} widgets={allWidgets} - templates={{ ObjectFieldTemplate: LayoutObjectFieldTemplate }} + templates={{ + ObjectFieldTemplate: LayoutObjectFieldTemplate, + FieldTemplate: TooltipFieldTemplate + }} onChange={({ formData: newItemData }) => updateItem(index, newItemData)} >
{/* Prevents form buttons from showing */} @@ -665,7 +668,10 @@ function CollapsibleArrayForm({ data, schema, uiSchema, onSave, title, icon, get formData={formData} validator={validator} widgets={allWidgets} - templates={{ ObjectFieldTemplate: LayoutObjectFieldTemplate }} + templates={{ + ObjectFieldTemplate: LayoutObjectFieldTemplate, + FieldTemplate: TooltipFieldTemplate + }} onSubmit={({ formData }) => onSave(formData)} onChange={({ formData }) => setFormData(formData)} > @@ -1602,7 +1608,10 @@ function DatasetManager() { formData={selectedDatasetVars} validator={validator} widgets={allWidgets} - templates={{ ObjectFieldTemplate: LayoutObjectFieldTemplate }} + templates={{ + ObjectFieldTemplate: LayoutObjectFieldTemplate, + FieldTemplate: TooltipFieldTemplate + }} onSubmit={({ formData }) => { updateSelectedDatasetVariables(formData) saveVariables(variablesConfig).then(() => { diff --git a/system_state.json b/system_state.json index e1120d6..68c63f4 100644 --- a/system_state.json +++ b/system_state.json @@ -1,12 +1,12 @@ { "last_state": { - "should_connect": false, + "should_connect": true, "should_stream": false, "active_datasets": [ "DAR" ] }, "auto_recovery_enabled": true, - "last_update": "2025-08-27T12:43:58.812150", + "last_update": "2025-08-27T12:48:41.182586", "plotjuggler_path": "C:\\Program Files\\PlotJuggler\\plotjuggler.exe" } \ No newline at end of file