diff --git a/positioning/analyzer/README.md b/positioning/analyzer/README.md new file mode 100644 index 0000000..e6c24eb --- /dev/null +++ b/positioning/analyzer/README.md @@ -0,0 +1,183 @@ +# Position Algorithm Analyzer + +A framework for evaluating magnetic position estimation algorithms using Hall effect sensor data. + +## Features + +- **Algorithm Registry System**: Automatic discovery and registration of algorithms via decorators +- **Grid Registry System**: Support for multiple sensor grid layouts (hexagonal, square, etc.) +- **Comprehensive Metrics**: MAE, RMS, percentiles, bias analysis, and quality scoring +- **Visual Debugger**: Interactive pygame-based tool with heatmaps and real-time comparison +- **Batch Processing**: Analyze entire directories of datasets at once +- **Flexible CLI**: List algorithms/grids, run single or all algorithms, detailed output modes + +## Project Structure + +``` +analyzer/ +├── analyzer.py # Main analyzer and CLI entry point +├── base_algorithm.py # Base class and registry for algorithms +├── algorithms.py # Algorithm implementations +├── grid.py # Grid and sensor classes with registry +├── report.py # Analysis reporting and metrics +├── visualizer.py # Visual debugging tool (requires pygame) +├── utils.py # Legacy re-exports (for backward compatibility) +└── datasets/ # Test datasets in JSON format +``` + +## Registration System + +**Algorithms** are automatically discovered using the `@AlgorithmRegistry.register` decorator. Add your algorithm class to `algorithms.py` and it will be available immediately. + +**Grids** are automatically discovered using the `@GridRegistry.register("grid_type")` decorator. Add your grid class to `grid.py` and it will be available for all algorithms. + +## Requirements + +```bash +pip install -r requirements.txt +``` + +**Note:** pygame is optional and only required for the visual debugger. + +## Quick Start + +**List available algorithms:** +```bash +python analyzer.py --list-algorithms +``` + +**List available grid types:** +```bash +python analyzer.py --list-grids +``` + +**Run a specific algorithm:** +```bash +python analyzer.py --algorithm gaussian_fit --dataset datasets/test_new.json +``` + +**Run all algorithms:** +```bash +python analyzer.py --algorithm all --dataset datasets/test_new.json +``` + +**Enable detailed per-point output:** +```bash +python analyzer.py --algorithm gaussian_fit --dataset datasets/test_new.json --detailed +``` + +**Process entire directory:** +```bash +python analyzer.py --algorithm all --dataset datasets/ +``` + +**Visual debugging:** +```bash +python analyzer.py --visual-debug --dataset datasets/test_new.json +``` + +**Visual Debugger Features:** +- Interactive dropdown menus for datasets, algorithms, and data points +- Sensor grid visualization with ADC-accurate color coding +- Position markers: Green crosshair (actual) vs Cyan X (estimated) +- Heatmap mode showing all data points with color-coded accuracy +- Navigation: Arrow keys, mouse clicks, H for heatmap, ESC to exit + +## Creating Custom Algorithms + +1. **Create algorithm class** in `algorithms.py`: +```python +from base_algorithm import PositionAlgorithm, AlgorithmRegistry +from grid import BaseGrid +from typing import Tuple, Set + +@AlgorithmRegistry.register +class MyAlgorithm(PositionAlgorithm): + @property + def name(self) -> str: + return "my_algorithm" + + @property + def supported_grids(self) -> Set[str]: + return {"HexagonalGrid"} # or set() for all grids + + def estimate(self, grid: BaseGrid) -> Tuple[float, float]: + # Access sensors via grid.sensors (each has: row, col, x, y, value) + estimated_x = 0.0 + estimated_y = 0.0 + return estimated_x, estimated_y +``` + +2. **Done!** The algorithm is automatically registered and available. + +## Creating Custom Grid Types + +1. **Create grid class** in `grid.py`: +```python +from grid import BaseGrid, GridRegistry, Sensor + +@GridRegistry.register("my_grid_type") +class MyCustomGrid(BaseGrid): + @property + def grid_type_name(self) -> str: + return "my_grid_type" + + def _build_grid(self): + # Create sensor layout + pass + + def update_data(self, data: dict): + # Update sensor values from data point + pass +``` + +2. **Done!** The grid is automatically registered and available to all algorithms. + +## Dataset Format + +Datasets are JSON files with the following structure: + +```json +{ + "metadata": { + "version": 1, + "grid_type": "hexagonal", + "grid_rows": 7, + "grid_cols": 10, + "sensor_spacing_mm": 10.0, + "adc_precision_in_bits": 12, + "magnet": { + "shape": "rounded", + "size": "10x5mm", + "height_mm": 10.0 + } + }, + "data_points": [ + { + "timestamp_ns": 1234567890, + "cursor_x_mm": 24.73, + "cursor_y_mm": 21.80, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 1234 + } + ] + } + ] +} +``` + +## Metrics + +- **MAE**: Mean Absolute Error (average position error) +- **Median**: Typical error (robust to outliers) +- **RMS**: Root Mean Square (penalizes large errors) +- **P90/P95/P99**: Percentile values (95% of errors are below P95) +- **Max**: Worst case error +- **Fail%**: Percentage of points exceeding failure threshold +- **BiasX/BiasY**: Systematic directional bias (should be near 0) +- **Score**: Overall quality score (0-100, higher is better) + +**Score calculation** (0-100): MAE (30%), RMS (25%), P95 (20%), Fail% (15%), Bias (10%) diff --git a/positioning/analyzer/algorithms.py b/positioning/analyzer/algorithms.py new file mode 100644 index 0000000..cce4fcf --- /dev/null +++ b/positioning/analyzer/algorithms.py @@ -0,0 +1,174 @@ +"""Position estimation algorithms.""" + +import math +import numpy as np +from typing import Tuple, Set + +from base_algorithm import PositionAlgorithm, AlgorithmRegistry +from grid import HexagonalGrid, SquareGrid, BaseGrid + + +@AlgorithmRegistry.register +class ExampleAlgorithm(PositionAlgorithm): + """Example algorithm that returns the actual cursor position.""" + + @property + def name(self) -> str: + return "ideal_algorithm" + + @property + def description(self) -> str: + return "Example algorithm that returns actual position (for testing)" + + @property + def supported_grids(self) -> Set[str]: + """This algorithm supports SquareGrid.""" + return {"SquareGrid"} + + def estimate(self, grid: SquareGrid) -> Tuple[float, float]: + """Return the actual cursor position.""" + if grid.actual_cursor_position is None: + raise ValueError("Grid has no actual cursor position data") + return grid.actual_cursor_position + + +@AlgorithmRegistry.register +class GaussianFitAlgorithm(PositionAlgorithm): + """Gaussian fit algorithm with hexagonal-aware neighbor selection. + + This algorithm: + 1. Finds the sensor with the peak value + 2. Selects the 7 hexagonal neighbors (center + 6 adjacent sensors) + 3. Respects hexagonal grid topology (even/odd row offsets) + 4. Fits a 2D Gaussian using weighted least squares + 5. Returns the center of the fitted Gaussian + + Key improvement: Uses proper hexagonal neighbor selection that respects + the grid's topology, avoiding asymmetric sensor selection that can occur + with pure Euclidean distance-based neighbor selection. + """ + + @property + def name(self) -> str: + return "gaussian_fit" + + @property + def description(self) -> str: + return "Gaussian fit with hexagonal neighbor selection" + + @property + def supported_grids(self) -> Set[str]: + """This algorithm only supports HexagonalGrid.""" + return {"HexagonalGrid"} + + def get_hex_neighbors(self, grid: HexagonalGrid, center_row: int, center_col: int): + """Get the 6 immediate hexagonal neighbors + center (7 total). + + For hexagonal grids with offset rows: + - Even rows (row % 2 == 0): normal + - Odd rows (row % 2 == 1): shifted right by half spacing + + Hexagon neighbors: + - Same row: col-1, col+1 + - Adjacent rows: depends on even/odd + """ + neighbors = [] + + # Always include center + center = grid.get_sensor(center_row, center_col) + if center: + neighbors.append(center) + + # Same row neighbors (always col-1 and col+1) + for dc in [-1, +1]: + sensor = grid.get_sensor(center_row, center_col + dc) + if sensor: + neighbors.append(sensor) + + # Adjacent row neighbors depend on even/odd row + if center_row % 2 == 0: + # Even row: neighbors in odd rows are at col-1, col + for dr in [-1, +1]: + for dc in [-1, 0]: + sensor = grid.get_sensor(center_row + dr, center_col + dc) + if sensor: + neighbors.append(sensor) + else: + # Odd row: neighbors in even rows are at col, col+1 + for dr in [-1, +1]: + for dc in [0, +1]: + sensor = grid.get_sensor(center_row + dr, center_col + dc) + if sensor: + neighbors.append(sensor) + + return neighbors + + def estimate(self, grid: BaseGrid) -> Tuple[float, float]: + """Estimate position using Gaussian fit on local sensor readings.""" + if not isinstance(grid, HexagonalGrid): + raise RuntimeError("Only HexagonalGrid supported") + + sensors = grid.sensors + + # Find the sensor with the peak value + peak_sensor = max(sensors, key=lambda s: s.value) + peak_x, peak_y = peak_sensor.x, peak_sensor.y + + # FIX: Use ONLY hexagonal neighbors (7 sensors) to maintain symmetry + # The original used 9 sensors selected by Euclidean distance, + # which breaks hexagonal symmetry and causes bias on odd rows + local_sensors = self.get_hex_neighbors(grid, peak_sensor.row, peak_sensor.col) + + # If we got less than 7 (edge case), fall back to Euclidean + if len(local_sensors) < 4: + local_sensors = sorted( + sensors, key=lambda s: (s.x - peak_x) ** 2 + (s.y - peak_y) ** 2 + )[:9] + + # Build matrices for weighted least squares fitting + # We fit: ln(value) = a + bx*x + by*y + d*(x^2 + y^2) + matrix_a = [] + vector_b = [] + weights = [] + + for sensor in local_sensors: + if sensor.value <= 1e-6: + continue + + # Coordinates relative to peak + rel_x = sensor.x - peak_x + rel_y = sensor.y - peak_y + + matrix_a.append([1.0, rel_x, rel_y, rel_x * rel_x + rel_y * rel_y]) + vector_b.append(math.log(sensor.value)) + weights.append(sensor.value) # SAME AS V1 + + # Need at least 4 points to fit the model + if len(matrix_a) < 4: + return peak_x, peak_y + + matrix_a = np.asarray(matrix_a) + vector_b = np.asarray(vector_b) + weights = np.asarray(weights) + + try: + # Apply weights and solve weighted least squares + weighted_a = matrix_a * weights[:, None] + weighted_b = vector_b * weights + coefficients = np.linalg.lstsq(weighted_a, weighted_b, rcond=None)[0] + + coef_a, coef_bx, coef_by, coef_d = coefficients + + # If d >= 0, the fit is not concave (not a valid Gaussian peak) + if coef_d >= 0: + return peak_x, peak_y + + # Find the center of the Gaussian + center_x = -coef_bx / (2.0 * coef_d) + center_y = -coef_by / (2.0 * coef_d) + + return center_x + peak_x, center_y + peak_y + + except np.linalg.LinAlgError: + # If the fit fails, fall back to peak position + return peak_x, peak_y diff --git a/positioning/analyzer/analyzer.py b/positioning/analyzer/analyzer.py new file mode 100644 index 0000000..9a9451a --- /dev/null +++ b/positioning/analyzer/analyzer.py @@ -0,0 +1,515 @@ +"""Main analyzer module for position algorithm evaluation.""" + +import json +import math +import argparse +from pathlib import Path +from typing import Callable, List + +from grid import HexagonalGrid, GridRegistry +from report import AnalysisReport, print_comparison_table +from base_algorithm import AlgorithmRegistry +import algorithms # Import to trigger algorithm registration +import grid # Import to trigger grid registration + + +class PositionAlgorithmAnalyzer: + """Analyzer for position estimation algorithms.""" + + def __init__(self, json_path: str): + """Initialize analyzer with dataset from JSON file.""" + self.json_path = json_path + with open(json_path, "r", encoding="utf-8") as f: + data = json.load(f) + self.data = data + self._validate_json_format() + + self.data_points = self.data["data_points"] + self.estimations = [] + + def _validate_json_format(self): + """Validate JSON structure matches expected format. + + Expected format: + { + "metadata": { + "version": 1, + "grid_type": "hexagonal", + "grid_rows": int, + "grid_cols": int, + "sensor_spacing_mm": float, + "adc_precision_in_bits": int, + "magnet": { + "shape": string, + "size": string, + "height_mm": float + } + }, + "data_points": [ + { + "timestamp_ns": int, + "cursor_x_mm": float, + "cursor_y_mm": float, + "sensors": [ + { + "row": int, + "col": int, + "value": int + } + ] + } + ] + } + """ + # Validate top-level structure + if not isinstance(self.data, dict): + raise ValueError("JSON root must be a dictionary") + + if "metadata" not in self.data: + raise ValueError("Missing required field: 'metadata'") + + if "data_points" not in self.data: + raise ValueError("Missing required field: 'data_points'") + + metadata = self.data["metadata"] + + # Validate metadata structure + if not isinstance(metadata, dict): + raise ValueError("'metadata' must be a dictionary") + + required_metadata_fields = { + "version": int, + "grid_type": str, + "grid_rows": int, + "grid_cols": int, + "sensor_spacing_mm": (int, float), + "adc_precision_in_bits": int, + } + + for field, expected_type in required_metadata_fields.items(): + if field not in metadata: + raise ValueError(f"Missing required field in metadata: '{field}'") + if not isinstance(metadata[field], expected_type): + type_name = ( + expected_type.__name__ + if not isinstance(expected_type, tuple) + else " or ".join(t.__name__ for t in expected_type) + ) + raise ValueError( + f"Field 'metadata.{field}' must be of type {type_name}, got {type(metadata[field]).__name__}" + ) + + if metadata["version"] != 1: + raise ValueError("Only version 1 format is supported") + + supported_grids = "hexagonal" + if metadata["grid_type"] not in supported_grids: + raise ValueError( + f"Wrong grid_type, currently only supported: {supported_grids}" + ) + + # Validate magnet structure + if "magnet" not in metadata: + raise ValueError("Missing required field in metadata: 'magnet'") + + magnet = metadata["magnet"] + if not isinstance(magnet, dict): + raise ValueError("'metadata.magnet' must be a dictionary") + + required_magnet_fields = {"shape": str, "size": str, "height_mm": (int, float)} + + for field, expected_type in required_magnet_fields.items(): + if field not in magnet: + raise ValueError( + f"Missing required field in metadata.magnet: '{field}'" + ) + if not isinstance(magnet[field], expected_type): + type_name = ( + expected_type.__name__ + if not isinstance(expected_type, tuple) + else " or ".join(t.__name__ for t in expected_type) + ) + raise ValueError( + f"Field 'metadata.magnet.{field}' must be of type {type_name}, got {type(magnet[field]).__name__}" + ) + + # Validate data_points structure + data_points = self.data["data_points"] + if not isinstance(data_points, list): + raise ValueError("'data_points' must be a list") + + if len(data_points) == 0: + raise ValueError("'data_points' list cannot be empty") + + grid_rows = metadata["grid_rows"] + grid_cols = metadata["grid_cols"] + adc_max_value = 1 << metadata["adc_precision_in_bits"] + + for idx, point in enumerate(data_points): + if not isinstance(point, dict): + raise ValueError(f"data_points[{idx}] must be a dictionary") + + # Validate required fields in each data point + required_point_fields = { + "timestamp_ns": int, + "cursor_x_mm": (int, float), + "cursor_y_mm": (int, float), + } + + for field, expected_type in required_point_fields.items(): + if field not in point: + raise ValueError( + f"Missing required field in data_points[{idx}]: '{field}'" + ) + if not isinstance(point[field], expected_type): + type_name = ( + expected_type.__name__ + if not isinstance(expected_type, tuple) + else " or ".join(t.__name__ for t in expected_type) + ) + raise ValueError( + f"Field 'data_points[{idx}].{field}' must be of type {type_name}, got {type(point[field]).__name__}" + ) + + # Validate sensors array + if "sensors" not in point: + raise ValueError( + f"Missing required field in data_points[{idx}]: 'sensors'" + ) + + sensors = point["sensors"] + if not isinstance(sensors, list): + raise ValueError(f"Field 'data_points[{idx}].sensors' must be a list") + + expected_sensor_count = grid_rows * grid_cols + if len(sensors) != expected_sensor_count: + raise ValueError( + f"data_points[{idx}].sensors must contain exactly {expected_sensor_count} sensors " + f"(grid_rows * grid_cols = {grid_rows} * {grid_cols}), got {len(sensors)}" + ) + + for sensor_idx, sensor in enumerate(sensors): + if not isinstance(sensor, dict): + raise ValueError( + f"data_points[{idx}].sensors[{sensor_idx}] must be a dictionary" + ) + + required_sensor_fields = {"row": int, "col": int, "value": int} + + for field, expected_type in required_sensor_fields.items(): + if field not in sensor: + raise ValueError( + f"Missing required field in data_points[{idx}].sensors[{sensor_idx}]: '{field}'" + ) + if not isinstance(sensor[field], expected_type): + raise ValueError( + f"Field 'data_points[{idx}].sensors[{sensor_idx}].{field}' must be of type {expected_type.__name__}, got {type(sensor[field]).__name__}" + ) + + # Validate sensor row and col are within grid bounds + if not (0 <= sensor["row"] < grid_rows): + raise ValueError( + f"data_points[{idx}].sensors[{sensor_idx}].row must be in range [0, {grid_rows}), got {sensor['row']}" + ) + + if not (0 <= sensor["col"] < grid_cols): + raise ValueError( + f"data_points[{idx}].sensors[{sensor_idx}].col must be in range [0, {grid_cols}), got {sensor['col']}" + ) + + # Validate sensor value is within ADC range + if not (0 <= sensor["value"] < adc_max_value): + raise ValueError( + f"data_points[{idx}].sensors[{sensor_idx}].value must be in range [0, {adc_max_value}), got {sensor['value']}" + ) + + def analyze( + self, algorithm_fn: Callable, algorithm_name: str = "", detailed: bool = False + ): + """Run analysis on dataset using specified algorithm. + + Args: + algorithm_fn: Algorithm function that takes a grid and returns (x, y) position + algorithm_name: Name of the algorithm (for detailed output) + detailed: If True, print detailed output for each data point + """ + data = self.data + metadata = data["metadata"] + magnet = metadata["magnet"] + data_points = data["data_points"] + + grid = HexagonalGrid(metadata) + + if detailed: + print("\n" + "=" * 80) + print(f" ALGORITHM: {algorithm_name}") + print(f" DATASET: {self.json_path}") + print("=" * 80) + grid.describe() + print( + f"Magnet: shape={magnet['shape']}, size={magnet['size']}, height={magnet['height_mm']}mm" + ) + print(f"Total data points: {len(data_points)}") + print("-" * 80) + + self.estimations = [] + for i, point in enumerate(data_points): + grid.update_data(point) + + actual_x, actual_y = grid.actual_cursor_position + estimated_x, estimated_y = algorithm_fn(grid) + + error_x = actual_x - estimated_x + error_y = actual_y - estimated_y + error_distance = math.sqrt(error_x**2 + error_y**2) + + result = { + "error_distance": error_distance, + "error_x": error_x, + "error_y": error_y, + } + self.estimations.append(result) + + if detailed: + status = ( + "✓" + if error_distance < 1.0 + else "✗" + if error_distance > 5.0 + else "~" + ) + print(f"\n[{status}] Data Point #{i + 1}/{len(data_points)}") + print(f" Actual: ({actual_x:7.2f}, {actual_y:7.2f}) mm") + print(f" Estimated: ({estimated_x:7.2f}, {estimated_y:7.2f}) mm") + print( + f" Error: Δx={error_x:+6.2f}mm Δy={error_y:+6.2f}mm Distance={error_distance:6.2f}mm" + ) + + if detailed: + print("\n" + "-" * 80) + + +def visual_debug(dataset_paths: List[str]): + """Start visual debugging tool. + + Args: + dataset_paths: List of paths to dataset JSON files + """ + try: + from visualizer import start_visualizer + + start_visualizer(dataset_paths) + except ImportError as e: + print( + f"Error: Could not import visualizer. Make sure pygame and pygame_gui are installed:" + ) + print(f" python -m pip install pygame pygame-gui") + print(f"\nDetails: {e}") + except Exception as e: + print(f"Error starting visualizer: {e}") + + +def main(): + """Main entry point for CLI.""" + parser = argparse.ArgumentParser( + description="Position Algorithm Analyzer - Evaluate magnetic position estimation algorithms" + ) + + parser.add_argument( + "--list-algorithms", + action="store_true", + help="Print available algorithms and exit", + ) + + parser.add_argument( + "--list-grids", + action="store_true", + help="Print supported grid types and exit", + ) + + parser.add_argument( + "--list-algorithms-per-grid", + type=str, + metavar="GRID_TYPE", + help="List algorithms that support a specific grid type", + ) + + parser.add_argument( + "--dataset", + type=str, + help="Path to a single JSON file or folder containing JSON files", + ) + + parser.add_argument( + "--algorithm", + type=str, + default="all", + help="Algorithm(s) to run (use 'all' to run all algorithms, or comma-separated list like 'alg1,alg2', default: all)", + ) + + parser.add_argument( + "--detailed", action="store_true", help="Enable detailed analysis output" + ) + + parser.add_argument( + "--print-metric-guide", + action="store_true", + help="Print metric guide before results (default: False)", + ) + + parser.add_argument( + "--visual-debug", + action="store_true", + help="Enable visual debugging", + ) + + args = parser.parse_args() + + # Handle --list-algorithms + if args.list_algorithms: + all_algorithms = AlgorithmRegistry.get_all_algorithms() + print("Available algorithms:") + for name, algorithm in all_algorithms.items(): + description = f" - {algorithm.description}" if algorithm.description else "" + supported_grids = algorithm.supported_grids + if supported_grids: + grid_info = f" [Grids: {', '.join(sorted(supported_grids))}]" + else: + grid_info = " [All grids]" + print(f" - {name}{description}{grid_info}") + return + + # Handle --list-grids + if args.list_grids: + all_grids = GridRegistry.get_all_grids() + print("Supported grid types:") + for grid_type_name, grid_class in all_grids.items(): + print(f" - {grid_class.__name__}") + return + + # Handle --list-algorithms-per-grid + if args.list_algorithms_per_grid: + grid_type = args.list_algorithms_per_grid + algorithms_for_grid = AlgorithmRegistry.get_algorithms_for_grid(grid_type) + print(f"Algorithms supporting '{grid_type}':") + if algorithms_for_grid: + for name, algorithm in algorithms_for_grid.items(): + description = ( + f" - {algorithm.description}" if algorithm.description else "" + ) + print(f" - {name}{description}") + else: + print(" (none)") + return + + # Collect dataset paths + datasets = [] + if args.dataset: + dataset_path = Path(args.dataset) + if dataset_path.is_file(): + datasets = [str(dataset_path)] + elif dataset_path.is_dir(): + datasets = [str(f) for f in dataset_path.glob("*.json")] + else: + print(f"Error: {args.dataset} is not a valid file or directory") + return + else: + # No dataset specified - print help + parser.print_help() + return + + # Handle --visual-debug + if args.visual_debug: + visual_debug(datasets) + return + + # Get algorithms to run + all_algorithms = AlgorithmRegistry.get_all_algorithms() + if args.algorithm == "all": + algorithms_to_run = all_algorithms + else: + # Support comma-separated list of algorithms + algorithm_names = [name.strip() for name in args.algorithm.split(",")] + algorithms_to_run = {} + + for alg_name in algorithm_names: + if alg_name not in all_algorithms: + print(f"Error: Unknown algorithm '{alg_name}'") + print("Available algorithms:") + for name in all_algorithms.keys(): + print(f" - {name}") + return + algorithms_to_run[alg_name] = all_algorithms[alg_name] + + # Run analysis + reports = [] + skipped = [] # Track skipped algorithm-dataset pairs + + for algorithm_name, algorithm_instance in algorithms_to_run.items(): + for dataset_path in datasets: + analyzer = PositionAlgorithmAnalyzer(dataset_path) + + # Check grid compatibility + dataset_grid_type = analyzer.data["metadata"]["grid_type"] + # Map dataset grid type to class name + grid_type_map = { + "hexagonal": "HexagonalGrid", + "square": "SquareGrid", + } + dataset_grid_class = grid_type_map.get(dataset_grid_type, dataset_grid_type) + + # Get supported grids from algorithm + supported_grids = algorithm_instance.supported_grids + + # Check if algorithm supports this grid type (empty set means supports all) + if supported_grids and dataset_grid_class not in supported_grids: + skipped.append( + { + "algorithm": algorithm_name, + "dataset": Path(dataset_path).name, + "grid_type": dataset_grid_class, + "supported": ", ".join(sorted(supported_grids)) + if supported_grids + else "All", + } + ) + continue + + analyzer.analyze( + algorithm_instance, + algorithm_name=algorithm_name, + detailed=args.detailed, + ) + + reports.append( + AnalysisReport( + algorithm_name, + dataset_path, + analyzer.estimations, + analyzer.data_points, + failure_threshold=0.15, + ) + ) + + # Print skipped combinations if any + if skipped: + print("\nSkipped (grid type incompatibility):") + for skip in skipped: + print( + f" • {skip['algorithm']} × {skip['dataset']}: " + f"Algorithm supports {skip['supported']}, dataset uses {skip['grid_type']}" + ) + print() + + # Print metric guide if requested + if args.print_metric_guide: + AnalysisReport.print_metric_help() + + if reports: + print_comparison_table(reports) + elif not skipped: + print("No results to display.") + + +if __name__ == "__main__": + main() diff --git a/positioning/analyzer/base_algorithm.py b/positioning/analyzer/base_algorithm.py new file mode 100644 index 0000000..2039e76 --- /dev/null +++ b/positioning/analyzer/base_algorithm.py @@ -0,0 +1,103 @@ +"""Base class for position estimation algorithms with automatic discovery.""" + +from abc import ABC, abstractmethod +from typing import Tuple, Set, Type + + +class PositionAlgorithm(ABC): + """Base class for all position estimation algorithms. + + All algorithms should inherit from this class and implement the estimate method. + The class name will be used for automatic discovery. + """ + + @property + @abstractmethod + def name(self) -> str: + """Return the display name of the algorithm.""" + pass + + @property + def description(self) -> str: + """Return a description of the algorithm (optional).""" + return "" + + @property + def supported_grids(self) -> Set[str]: + """Return set of supported grid type names (e.g., {'HexagonalGrid'}). + + By default, returns empty set which means all grids are supported. + Override to specify specific grid types. + """ + return set() + + @abstractmethod + def estimate(self, grid) -> Tuple[float, float]: + """Estimate position based on sensor grid data. + + Args: + grid: Grid object containing sensor data (e.g., HexagonalGrid) + + Returns: + Tuple of (x, y) coordinates in millimeters + """ + pass + + def __call__(self, grid) -> Tuple[float, float]: + """Allow algorithm to be called as a function.""" + return self.estimate(grid) + + def supports_grid(self, grid_type: str) -> bool: + """Check if algorithm supports a specific grid type. + + Args: + grid_type: Name of the grid class (e.g., 'HexagonalGrid') + + Returns: + True if supported, False otherwise + """ + supported = self.supported_grids + # Empty set means all grids are supported + return len(supported) == 0 or grid_type in supported + + +class AlgorithmRegistry: + """Registry for automatic algorithm discovery.""" + + _algorithms = {} + + @classmethod + def register(cls, algorithm_class): + """Register an algorithm class.""" + if not issubclass(algorithm_class, PositionAlgorithm): + raise TypeError(f"{algorithm_class} must inherit from PositionAlgorithm") + + instance = algorithm_class() + cls._algorithms[instance.name] = instance + return algorithm_class + + @classmethod + def get_algorithm(cls, name: str) -> PositionAlgorithm: + """Get an algorithm by name.""" + if name not in cls._algorithms: + raise ValueError(f"Unknown algorithm: {name}") + return cls._algorithms[name] + + @classmethod + def get_all_algorithms(cls): + """Get all registered algorithms.""" + return dict(cls._algorithms) + + @classmethod + def list_names(cls): + """List all registered algorithm names.""" + return list(cls._algorithms.keys()) + + @classmethod + def get_algorithms_for_grid(cls, grid_type: str): + """Get all algorithms that support a specific grid type.""" + return { + name: algo + for name, algo in cls._algorithms.items() + if algo.supports_grid(grid_type) + } diff --git a/positioning/analyzer/datasets/hexgrid/test_centers.json b/positioning/analyzer/datasets/hexgrid/test_centers.json new file mode 100644 index 0000000..caddec3 --- /dev/null +++ b/positioning/analyzer/datasets/hexgrid/test_centers.json @@ -0,0 +1,4658 @@ +{ + "metadata": { + "version": 1, + "grid_type": "hexagonal", + "grid_rows": 7, + "grid_cols": 10, + "sensor_spacing_mm": 10.0, + "adc_precision_in_bits": 12, + "magnet": { + "shape": "rounded", + "size": "10x5mm", + "height_mm": 10.0 + } + }, + "data_points": [ + { + "timestamp_ns": 0, + "cursor_x_mm": 25.0, + "cursor_y_mm": 22.2, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2079 + }, + { + "row": 0, + "col": 1, + "value": 2121 + }, + { + "row": 0, + "col": 2, + "value": 2159 + }, + { + "row": 0, + "col": 3, + "value": 2121 + }, + { + "row": 0, + "col": 4, + "value": 2079 + }, + { + "row": 0, + "col": 5, + "value": 2061 + }, + { + "row": 0, + "col": 6, + "value": 2054 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2158 + }, + { + "row": 1, + "col": 1, + "value": 2526 + }, + { + "row": 1, + "col": 2, + "value": 2526 + }, + { + "row": 1, + "col": 3, + "value": 2158 + }, + { + "row": 1, + "col": 4, + "value": 2079 + }, + { + "row": 1, + "col": 5, + "value": 2059 + }, + { + "row": 1, + "col": 6, + "value": 2053 + }, + { + "row": 1, + "col": 7, + "value": 2050 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2120 + }, + { + "row": 2, + "col": 1, + "value": 2515 + }, + { + "row": 2, + "col": 2, + "value": 4094 + }, + { + "row": 2, + "col": 3, + "value": 2515 + }, + { + "row": 2, + "col": 4, + "value": 2120 + }, + { + "row": 2, + "col": 5, + "value": 2069 + }, + { + "row": 2, + "col": 6, + "value": 2056 + }, + { + "row": 2, + "col": 7, + "value": 2051 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2156 + }, + { + "row": 3, + "col": 1, + "value": 2503 + }, + { + "row": 3, + "col": 2, + "value": 2503 + }, + { + "row": 3, + "col": 3, + "value": 2156 + }, + { + "row": 3, + "col": 4, + "value": 2079 + }, + { + "row": 3, + "col": 5, + "value": 2059 + }, + { + "row": 3, + "col": 6, + "value": 2053 + }, + { + "row": 3, + "col": 7, + "value": 2050 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2078 + }, + { + "row": 4, + "col": 1, + "value": 2119 + }, + { + "row": 4, + "col": 2, + "value": 2155 + }, + { + "row": 4, + "col": 3, + "value": 2119 + }, + { + "row": 4, + "col": 4, + "value": 2078 + }, + { + "row": 4, + "col": 5, + "value": 2061 + }, + { + "row": 4, + "col": 6, + "value": 2054 + }, + { + "row": 4, + "col": 7, + "value": 2051 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2069 + }, + { + "row": 5, + "col": 1, + "value": 2078 + }, + { + "row": 5, + "col": 2, + "value": 2078 + }, + { + "row": 5, + "col": 3, + "value": 2069 + }, + { + "row": 5, + "col": 4, + "value": 2059 + }, + { + "row": 5, + "col": 5, + "value": 2054 + }, + { + "row": 5, + "col": 6, + "value": 2051 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2056 + }, + { + "row": 6, + "col": 1, + "value": 2059 + }, + { + "row": 6, + "col": 2, + "value": 2061 + }, + { + "row": 6, + "col": 3, + "value": 2059 + }, + { + "row": 6, + "col": 4, + "value": 2056 + }, + { + "row": 6, + "col": 5, + "value": 2053 + }, + { + "row": 6, + "col": 6, + "value": 2051 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 1390963733, + "cursor_x_mm": 29.933333333333334, + "cursor_y_mm": 31.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2059 + }, + { + "row": 0, + "col": 1, + "value": 2069 + }, + { + "row": 0, + "col": 2, + "value": 2079 + }, + { + "row": 0, + "col": 3, + "value": 2079 + }, + { + "row": 0, + "col": 4, + "value": 2069 + }, + { + "row": 0, + "col": 5, + "value": 2059 + }, + { + "row": 0, + "col": 6, + "value": 2054 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2079 + }, + { + "row": 1, + "col": 1, + "value": 2120 + }, + { + "row": 1, + "col": 2, + "value": 2157 + }, + { + "row": 1, + "col": 3, + "value": 2119 + }, + { + "row": 1, + "col": 4, + "value": 2079 + }, + { + "row": 1, + "col": 5, + "value": 2061 + }, + { + "row": 1, + "col": 6, + "value": 2054 + }, + { + "row": 1, + "col": 7, + "value": 2051 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2079 + }, + { + "row": 2, + "col": 1, + "value": 2158 + }, + { + "row": 2, + "col": 2, + "value": 2516 + }, + { + "row": 2, + "col": 3, + "value": 2509 + }, + { + "row": 2, + "col": 4, + "value": 2156 + }, + { + "row": 2, + "col": 5, + "value": 2079 + }, + { + "row": 2, + "col": 6, + "value": 2059 + }, + { + "row": 2, + "col": 7, + "value": 2053 + }, + { + "row": 2, + "col": 8, + "value": 2050 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2120 + }, + { + "row": 3, + "col": 1, + "value": 2522 + }, + { + "row": 3, + "col": 2, + "value": 4094 + }, + { + "row": 3, + "col": 3, + "value": 2507 + }, + { + "row": 3, + "col": 4, + "value": 2119 + }, + { + "row": 3, + "col": 5, + "value": 2069 + }, + { + "row": 3, + "col": 6, + "value": 2056 + }, + { + "row": 3, + "col": 7, + "value": 2051 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2079 + }, + { + "row": 4, + "col": 1, + "value": 2158 + }, + { + "row": 4, + "col": 2, + "value": 2520 + }, + { + "row": 4, + "col": 3, + "value": 2513 + }, + { + "row": 4, + "col": 4, + "value": 2156 + }, + { + "row": 4, + "col": 5, + "value": 2079 + }, + { + "row": 4, + "col": 6, + "value": 2059 + }, + { + "row": 4, + "col": 7, + "value": 2053 + }, + { + "row": 4, + "col": 8, + "value": 2050 + }, + { + "row": 4, + "col": 9, + "value": 2049 + }, + { + "row": 5, + "col": 0, + "value": 2079 + }, + { + "row": 5, + "col": 1, + "value": 2120 + }, + { + "row": 5, + "col": 2, + "value": 2157 + }, + { + "row": 5, + "col": 3, + "value": 2119 + }, + { + "row": 5, + "col": 4, + "value": 2079 + }, + { + "row": 5, + "col": 5, + "value": 2061 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2051 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2059 + }, + { + "row": 6, + "col": 1, + "value": 2069 + }, + { + "row": 6, + "col": 2, + "value": 2079 + }, + { + "row": 6, + "col": 3, + "value": 2079 + }, + { + "row": 6, + "col": 4, + "value": 2069 + }, + { + "row": 6, + "col": 5, + "value": 2059 + }, + { + "row": 6, + "col": 6, + "value": 2054 + }, + { + "row": 6, + "col": 7, + "value": 2051 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 2803388637, + "cursor_x_mm": 35.266666666666666, + "cursor_y_mm": 22.2, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2061 + }, + { + "row": 0, + "col": 1, + "value": 2078 + }, + { + "row": 0, + "col": 2, + "value": 2119 + }, + { + "row": 0, + "col": 3, + "value": 2159 + }, + { + "row": 0, + "col": 4, + "value": 2122 + }, + { + "row": 0, + "col": 5, + "value": 2080 + }, + { + "row": 0, + "col": 6, + "value": 2061 + }, + { + "row": 0, + "col": 7, + "value": 2054 + }, + { + "row": 0, + "col": 8, + "value": 2051 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2078 + }, + { + "row": 1, + "col": 1, + "value": 2154 + }, + { + "row": 1, + "col": 2, + "value": 2511 + }, + { + "row": 1, + "col": 3, + "value": 2541 + }, + { + "row": 1, + "col": 4, + "value": 2162 + }, + { + "row": 1, + "col": 5, + "value": 2080 + }, + { + "row": 1, + "col": 6, + "value": 2060 + }, + { + "row": 1, + "col": 7, + "value": 2053 + }, + { + "row": 1, + "col": 8, + "value": 2050 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2068 + }, + { + "row": 2, + "col": 1, + "value": 2117 + }, + { + "row": 2, + "col": 2, + "value": 2487 + }, + { + "row": 2, + "col": 3, + "value": 4094 + }, + { + "row": 2, + "col": 4, + "value": 2544 + }, + { + "row": 2, + "col": 5, + "value": 2123 + }, + { + "row": 2, + "col": 6, + "value": 2069 + }, + { + "row": 2, + "col": 7, + "value": 2056 + }, + { + "row": 2, + "col": 8, + "value": 2051 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2078 + }, + { + "row": 3, + "col": 1, + "value": 2152 + }, + { + "row": 3, + "col": 2, + "value": 2490 + }, + { + "row": 3, + "col": 3, + "value": 2517 + }, + { + "row": 3, + "col": 4, + "value": 2160 + }, + { + "row": 3, + "col": 5, + "value": 2080 + }, + { + "row": 3, + "col": 6, + "value": 2060 + }, + { + "row": 3, + "col": 7, + "value": 2053 + }, + { + "row": 3, + "col": 8, + "value": 2050 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2061 + }, + { + "row": 4, + "col": 1, + "value": 2078 + }, + { + "row": 4, + "col": 2, + "value": 2117 + }, + { + "row": 4, + "col": 3, + "value": 2155 + }, + { + "row": 4, + "col": 4, + "value": 2120 + }, + { + "row": 4, + "col": 5, + "value": 2079 + }, + { + "row": 4, + "col": 6, + "value": 2061 + }, + { + "row": 4, + "col": 7, + "value": 2054 + }, + { + "row": 4, + "col": 8, + "value": 2051 + }, + { + "row": 4, + "col": 9, + "value": 2049 + }, + { + "row": 5, + "col": 0, + "value": 2059 + }, + { + "row": 5, + "col": 1, + "value": 2068 + }, + { + "row": 5, + "col": 2, + "value": 2078 + }, + { + "row": 5, + "col": 3, + "value": 2079 + }, + { + "row": 5, + "col": 4, + "value": 2069 + }, + { + "row": 5, + "col": 5, + "value": 2059 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2051 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2053 + }, + { + "row": 6, + "col": 1, + "value": 2056 + }, + { + "row": 6, + "col": 2, + "value": 2059 + }, + { + "row": 6, + "col": 3, + "value": 2061 + }, + { + "row": 6, + "col": 4, + "value": 2059 + }, + { + "row": 6, + "col": 5, + "value": 2056 + }, + { + "row": 6, + "col": 6, + "value": 2053 + }, + { + "row": 6, + "col": 7, + "value": 2051 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 3959134026, + "cursor_x_mm": 40.06666666666667, + "cursor_y_mm": 31.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2054 + }, + { + "row": 0, + "col": 1, + "value": 2059 + }, + { + "row": 0, + "col": 2, + "value": 2069 + }, + { + "row": 0, + "col": 3, + "value": 2079 + }, + { + "row": 0, + "col": 4, + "value": 2079 + }, + { + "row": 0, + "col": 5, + "value": 2069 + }, + { + "row": 0, + "col": 6, + "value": 2059 + }, + { + "row": 0, + "col": 7, + "value": 2054 + }, + { + "row": 0, + "col": 8, + "value": 2051 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2061 + }, + { + "row": 1, + "col": 1, + "value": 2079 + }, + { + "row": 1, + "col": 2, + "value": 2119 + }, + { + "row": 1, + "col": 3, + "value": 2157 + }, + { + "row": 1, + "col": 4, + "value": 2120 + }, + { + "row": 1, + "col": 5, + "value": 2079 + }, + { + "row": 1, + "col": 6, + "value": 2061 + }, + { + "row": 1, + "col": 7, + "value": 2054 + }, + { + "row": 1, + "col": 8, + "value": 2051 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2059 + }, + { + "row": 2, + "col": 1, + "value": 2079 + }, + { + "row": 2, + "col": 2, + "value": 2156 + }, + { + "row": 2, + "col": 3, + "value": 2509 + }, + { + "row": 2, + "col": 4, + "value": 2516 + }, + { + "row": 2, + "col": 5, + "value": 2158 + }, + { + "row": 2, + "col": 6, + "value": 2079 + }, + { + "row": 2, + "col": 7, + "value": 2059 + }, + { + "row": 2, + "col": 8, + "value": 2053 + }, + { + "row": 2, + "col": 9, + "value": 2050 + }, + { + "row": 3, + "col": 0, + "value": 2069 + }, + { + "row": 3, + "col": 1, + "value": 2119 + }, + { + "row": 3, + "col": 2, + "value": 2507 + }, + { + "row": 3, + "col": 3, + "value": 4094 + }, + { + "row": 3, + "col": 4, + "value": 2522 + }, + { + "row": 3, + "col": 5, + "value": 2120 + }, + { + "row": 3, + "col": 6, + "value": 2069 + }, + { + "row": 3, + "col": 7, + "value": 2056 + }, + { + "row": 3, + "col": 8, + "value": 2051 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2059 + }, + { + "row": 4, + "col": 1, + "value": 2079 + }, + { + "row": 4, + "col": 2, + "value": 2156 + }, + { + "row": 4, + "col": 3, + "value": 2513 + }, + { + "row": 4, + "col": 4, + "value": 2520 + }, + { + "row": 4, + "col": 5, + "value": 2158 + }, + { + "row": 4, + "col": 6, + "value": 2079 + }, + { + "row": 4, + "col": 7, + "value": 2059 + }, + { + "row": 4, + "col": 8, + "value": 2053 + }, + { + "row": 4, + "col": 9, + "value": 2050 + }, + { + "row": 5, + "col": 0, + "value": 2061 + }, + { + "row": 5, + "col": 1, + "value": 2079 + }, + { + "row": 5, + "col": 2, + "value": 2119 + }, + { + "row": 5, + "col": 3, + "value": 2157 + }, + { + "row": 5, + "col": 4, + "value": 2120 + }, + { + "row": 5, + "col": 5, + "value": 2079 + }, + { + "row": 5, + "col": 6, + "value": 2061 + }, + { + "row": 5, + "col": 7, + "value": 2054 + }, + { + "row": 5, + "col": 8, + "value": 2051 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2054 + }, + { + "row": 6, + "col": 1, + "value": 2059 + }, + { + "row": 6, + "col": 2, + "value": 2069 + }, + { + "row": 6, + "col": 3, + "value": 2079 + }, + { + "row": 6, + "col": 4, + "value": 2079 + }, + { + "row": 6, + "col": 5, + "value": 2069 + }, + { + "row": 6, + "col": 6, + "value": 2059 + }, + { + "row": 6, + "col": 7, + "value": 2054 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 5164730706, + "cursor_x_mm": 45.13333333333333, + "cursor_y_mm": 21.933333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2054 + }, + { + "row": 0, + "col": 1, + "value": 2061 + }, + { + "row": 0, + "col": 2, + "value": 2079 + }, + { + "row": 0, + "col": 3, + "value": 2123 + }, + { + "row": 0, + "col": 4, + "value": 2164 + }, + { + "row": 0, + "col": 5, + "value": 2124 + }, + { + "row": 0, + "col": 6, + "value": 2080 + }, + { + "row": 0, + "col": 7, + "value": 2061 + }, + { + "row": 0, + "col": 8, + "value": 2054 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2059 + }, + { + "row": 1, + "col": 1, + "value": 2079 + }, + { + "row": 1, + "col": 2, + "value": 2158 + }, + { + "row": 1, + "col": 3, + "value": 2544 + }, + { + "row": 1, + "col": 4, + "value": 2560 + }, + { + "row": 1, + "col": 5, + "value": 2163 + }, + { + "row": 1, + "col": 6, + "value": 2080 + }, + { + "row": 1, + "col": 7, + "value": 2060 + }, + { + "row": 1, + "col": 8, + "value": 2053 + }, + { + "row": 1, + "col": 9, + "value": 2050 + }, + { + "row": 2, + "col": 0, + "value": 2056 + }, + { + "row": 2, + "col": 1, + "value": 2068 + }, + { + "row": 2, + "col": 2, + "value": 2118 + }, + { + "row": 2, + "col": 3, + "value": 2500 + }, + { + "row": 2, + "col": 4, + "value": 4094 + }, + { + "row": 2, + "col": 5, + "value": 2528 + }, + { + "row": 2, + "col": 6, + "value": 2121 + }, + { + "row": 2, + "col": 7, + "value": 2069 + }, + { + "row": 2, + "col": 8, + "value": 2056 + }, + { + "row": 2, + "col": 9, + "value": 2051 + }, + { + "row": 3, + "col": 0, + "value": 2059 + }, + { + "row": 3, + "col": 1, + "value": 2078 + }, + { + "row": 3, + "col": 2, + "value": 2152 + }, + { + "row": 3, + "col": 3, + "value": 2473 + }, + { + "row": 3, + "col": 4, + "value": 2486 + }, + { + "row": 3, + "col": 5, + "value": 2155 + }, + { + "row": 3, + "col": 6, + "value": 2079 + }, + { + "row": 3, + "col": 7, + "value": 2059 + }, + { + "row": 3, + "col": 8, + "value": 2053 + }, + { + "row": 3, + "col": 9, + "value": 2050 + }, + { + "row": 4, + "col": 0, + "value": 2054 + }, + { + "row": 4, + "col": 1, + "value": 2061 + }, + { + "row": 4, + "col": 2, + "value": 2078 + }, + { + "row": 4, + "col": 3, + "value": 2116 + }, + { + "row": 4, + "col": 4, + "value": 2150 + }, + { + "row": 4, + "col": 5, + "value": 2117 + }, + { + "row": 4, + "col": 6, + "value": 2078 + }, + { + "row": 4, + "col": 7, + "value": 2061 + }, + { + "row": 4, + "col": 8, + "value": 2054 + }, + { + "row": 4, + "col": 9, + "value": 2051 + }, + { + "row": 5, + "col": 0, + "value": 2054 + }, + { + "row": 5, + "col": 1, + "value": 2059 + }, + { + "row": 5, + "col": 2, + "value": 2068 + }, + { + "row": 5, + "col": 3, + "value": 2077 + }, + { + "row": 5, + "col": 4, + "value": 2078 + }, + { + "row": 5, + "col": 5, + "value": 2068 + }, + { + "row": 5, + "col": 6, + "value": 2059 + }, + { + "row": 5, + "col": 7, + "value": 2054 + }, + { + "row": 5, + "col": 8, + "value": 2051 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2051 + }, + { + "row": 6, + "col": 1, + "value": 2053 + }, + { + "row": 6, + "col": 2, + "value": 2056 + }, + { + "row": 6, + "col": 3, + "value": 2059 + }, + { + "row": 6, + "col": 4, + "value": 2061 + }, + { + "row": 6, + "col": 5, + "value": 2059 + }, + { + "row": 6, + "col": 6, + "value": 2056 + }, + { + "row": 6, + "col": 7, + "value": 2053 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 6304052464, + "cursor_x_mm": 49.93333333333333, + "cursor_y_mm": 30.866666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2051 + }, + { + "row": 0, + "col": 1, + "value": 2054 + }, + { + "row": 0, + "col": 2, + "value": 2060 + }, + { + "row": 0, + "col": 3, + "value": 2069 + }, + { + "row": 0, + "col": 4, + "value": 2080 + }, + { + "row": 0, + "col": 5, + "value": 2080 + }, + { + "row": 0, + "col": 6, + "value": 2069 + }, + { + "row": 0, + "col": 7, + "value": 2060 + }, + { + "row": 0, + "col": 8, + "value": 2054 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2054 + }, + { + "row": 1, + "col": 1, + "value": 2061 + }, + { + "row": 1, + "col": 2, + "value": 2080 + }, + { + "row": 1, + "col": 3, + "value": 2122 + }, + { + "row": 1, + "col": 4, + "value": 2162 + }, + { + "row": 1, + "col": 5, + "value": 2122 + }, + { + "row": 1, + "col": 6, + "value": 2079 + }, + { + "row": 1, + "col": 7, + "value": 2061 + }, + { + "row": 1, + "col": 8, + "value": 2054 + }, + { + "row": 1, + "col": 9, + "value": 2051 + }, + { + "row": 2, + "col": 0, + "value": 2053 + }, + { + "row": 2, + "col": 1, + "value": 2059 + }, + { + "row": 2, + "col": 2, + "value": 2079 + }, + { + "row": 2, + "col": 3, + "value": 2160 + }, + { + "row": 2, + "col": 4, + "value": 2542 + }, + { + "row": 2, + "col": 5, + "value": 2534 + }, + { + "row": 2, + "col": 6, + "value": 2158 + }, + { + "row": 2, + "col": 7, + "value": 2079 + }, + { + "row": 2, + "col": 8, + "value": 2059 + }, + { + "row": 2, + "col": 9, + "value": 2053 + }, + { + "row": 3, + "col": 0, + "value": 2056 + }, + { + "row": 3, + "col": 1, + "value": 2069 + }, + { + "row": 3, + "col": 2, + "value": 2120 + }, + { + "row": 3, + "col": 3, + "value": 2522 + }, + { + "row": 3, + "col": 4, + "value": 4094 + }, + { + "row": 3, + "col": 5, + "value": 2507 + }, + { + "row": 3, + "col": 6, + "value": 2119 + }, + { + "row": 3, + "col": 7, + "value": 2069 + }, + { + "row": 3, + "col": 8, + "value": 2056 + }, + { + "row": 3, + "col": 9, + "value": 2051 + }, + { + "row": 4, + "col": 0, + "value": 2053 + }, + { + "row": 4, + "col": 1, + "value": 2059 + }, + { + "row": 4, + "col": 2, + "value": 2079 + }, + { + "row": 4, + "col": 3, + "value": 2156 + }, + { + "row": 4, + "col": 4, + "value": 2495 + }, + { + "row": 4, + "col": 5, + "value": 2489 + }, + { + "row": 4, + "col": 6, + "value": 2154 + }, + { + "row": 4, + "col": 7, + "value": 2078 + }, + { + "row": 4, + "col": 8, + "value": 2059 + }, + { + "row": 4, + "col": 9, + "value": 2053 + }, + { + "row": 5, + "col": 0, + "value": 2054 + }, + { + "row": 5, + "col": 1, + "value": 2061 + }, + { + "row": 5, + "col": 2, + "value": 2078 + }, + { + "row": 5, + "col": 3, + "value": 2118 + }, + { + "row": 5, + "col": 4, + "value": 2153 + }, + { + "row": 5, + "col": 5, + "value": 2117 + }, + { + "row": 5, + "col": 6, + "value": 2078 + }, + { + "row": 5, + "col": 7, + "value": 2061 + }, + { + "row": 5, + "col": 8, + "value": 2054 + }, + { + "row": 5, + "col": 9, + "value": 2051 + }, + { + "row": 6, + "col": 0, + "value": 2051 + }, + { + "row": 6, + "col": 1, + "value": 2054 + }, + { + "row": 6, + "col": 2, + "value": 2059 + }, + { + "row": 6, + "col": 3, + "value": 2068 + }, + { + "row": 6, + "col": 4, + "value": 2078 + }, + { + "row": 6, + "col": 5, + "value": 2078 + }, + { + "row": 6, + "col": 6, + "value": 2068 + }, + { + "row": 6, + "col": 7, + "value": 2059 + }, + { + "row": 6, + "col": 8, + "value": 2054 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 7424058962, + "cursor_x_mm": 55.13333333333333, + "cursor_y_mm": 22.333333333333332, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2051 + }, + { + "row": 0, + "col": 1, + "value": 2054 + }, + { + "row": 0, + "col": 2, + "value": 2061 + }, + { + "row": 0, + "col": 3, + "value": 2078 + }, + { + "row": 0, + "col": 4, + "value": 2119 + }, + { + "row": 0, + "col": 5, + "value": 2157 + }, + { + "row": 0, + "col": 6, + "value": 2120 + }, + { + "row": 0, + "col": 7, + "value": 2079 + }, + { + "row": 0, + "col": 8, + "value": 2061 + }, + { + "row": 0, + "col": 9, + "value": 2054 + }, + { + "row": 1, + "col": 0, + "value": 2053 + }, + { + "row": 1, + "col": 1, + "value": 2059 + }, + { + "row": 1, + "col": 2, + "value": 2078 + }, + { + "row": 1, + "col": 3, + "value": 2155 + }, + { + "row": 1, + "col": 4, + "value": 2506 + }, + { + "row": 1, + "col": 5, + "value": 2521 + }, + { + "row": 1, + "col": 6, + "value": 2159 + }, + { + "row": 1, + "col": 7, + "value": 2079 + }, + { + "row": 1, + "col": 8, + "value": 2060 + }, + { + "row": 1, + "col": 9, + "value": 2053 + }, + { + "row": 2, + "col": 0, + "value": 2051 + }, + { + "row": 2, + "col": 1, + "value": 2056 + }, + { + "row": 2, + "col": 2, + "value": 2068 + }, + { + "row": 2, + "col": 3, + "value": 2118 + }, + { + "row": 2, + "col": 4, + "value": 2500 + }, + { + "row": 2, + "col": 5, + "value": 4094 + }, + { + "row": 2, + "col": 6, + "value": 2529 + }, + { + "row": 2, + "col": 7, + "value": 2121 + }, + { + "row": 2, + "col": 8, + "value": 2069 + }, + { + "row": 2, + "col": 9, + "value": 2056 + }, + { + "row": 3, + "col": 0, + "value": 2053 + }, + { + "row": 3, + "col": 1, + "value": 2059 + }, + { + "row": 3, + "col": 2, + "value": 2078 + }, + { + "row": 3, + "col": 3, + "value": 2155 + }, + { + "row": 3, + "col": 4, + "value": 2509 + }, + { + "row": 3, + "col": 5, + "value": 2523 + }, + { + "row": 3, + "col": 6, + "value": 2159 + }, + { + "row": 3, + "col": 7, + "value": 2079 + }, + { + "row": 3, + "col": 8, + "value": 2060 + }, + { + "row": 3, + "col": 9, + "value": 2053 + }, + { + "row": 4, + "col": 0, + "value": 2051 + }, + { + "row": 4, + "col": 1, + "value": 2054 + }, + { + "row": 4, + "col": 2, + "value": 2061 + }, + { + "row": 4, + "col": 3, + "value": 2078 + }, + { + "row": 4, + "col": 4, + "value": 2119 + }, + { + "row": 4, + "col": 5, + "value": 2157 + }, + { + "row": 4, + "col": 6, + "value": 2120 + }, + { + "row": 4, + "col": 7, + "value": 2079 + }, + { + "row": 4, + "col": 8, + "value": 2061 + }, + { + "row": 4, + "col": 9, + "value": 2054 + }, + { + "row": 5, + "col": 0, + "value": 2051 + }, + { + "row": 5, + "col": 1, + "value": 2054 + }, + { + "row": 5, + "col": 2, + "value": 2059 + }, + { + "row": 5, + "col": 3, + "value": 2069 + }, + { + "row": 5, + "col": 4, + "value": 2079 + }, + { + "row": 5, + "col": 5, + "value": 2079 + }, + { + "row": 5, + "col": 6, + "value": 2069 + }, + { + "row": 5, + "col": 7, + "value": 2059 + }, + { + "row": 5, + "col": 8, + "value": 2054 + }, + { + "row": 5, + "col": 9, + "value": 2051 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2051 + }, + { + "row": 6, + "col": 2, + "value": 2053 + }, + { + "row": 6, + "col": 3, + "value": 2056 + }, + { + "row": 6, + "col": 4, + "value": 2059 + }, + { + "row": 6, + "col": 5, + "value": 2061 + }, + { + "row": 6, + "col": 6, + "value": 2059 + }, + { + "row": 6, + "col": 7, + "value": 2056 + }, + { + "row": 6, + "col": 8, + "value": 2053 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 8743044457, + "cursor_x_mm": 59.93333333333333, + "cursor_y_mm": 31.133333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2051 + }, + { + "row": 0, + "col": 2, + "value": 2054 + }, + { + "row": 0, + "col": 3, + "value": 2059 + }, + { + "row": 0, + "col": 4, + "value": 2069 + }, + { + "row": 0, + "col": 5, + "value": 2078 + }, + { + "row": 0, + "col": 6, + "value": 2078 + }, + { + "row": 0, + "col": 7, + "value": 2068 + }, + { + "row": 0, + "col": 8, + "value": 2059 + }, + { + "row": 0, + "col": 9, + "value": 2054 + }, + { + "row": 1, + "col": 0, + "value": 2051 + }, + { + "row": 1, + "col": 1, + "value": 2054 + }, + { + "row": 1, + "col": 2, + "value": 2061 + }, + { + "row": 1, + "col": 3, + "value": 2079 + }, + { + "row": 1, + "col": 4, + "value": 2119 + }, + { + "row": 1, + "col": 5, + "value": 2154 + }, + { + "row": 1, + "col": 6, + "value": 2118 + }, + { + "row": 1, + "col": 7, + "value": 2078 + }, + { + "row": 1, + "col": 8, + "value": 2061 + }, + { + "row": 1, + "col": 9, + "value": 2054 + }, + { + "row": 2, + "col": 0, + "value": 2050 + }, + { + "row": 2, + "col": 1, + "value": 2053 + }, + { + "row": 2, + "col": 2, + "value": 2059 + }, + { + "row": 2, + "col": 3, + "value": 2079 + }, + { + "row": 2, + "col": 4, + "value": 2157 + }, + { + "row": 2, + "col": 5, + "value": 2504 + }, + { + "row": 2, + "col": 6, + "value": 2497 + }, + { + "row": 2, + "col": 7, + "value": 2155 + }, + { + "row": 2, + "col": 8, + "value": 2078 + }, + { + "row": 2, + "col": 9, + "value": 2059 + }, + { + "row": 3, + "col": 0, + "value": 2051 + }, + { + "row": 3, + "col": 1, + "value": 2056 + }, + { + "row": 3, + "col": 2, + "value": 2069 + }, + { + "row": 3, + "col": 3, + "value": 2120 + }, + { + "row": 3, + "col": 4, + "value": 2522 + }, + { + "row": 3, + "col": 5, + "value": 4094 + }, + { + "row": 3, + "col": 6, + "value": 2507 + }, + { + "row": 3, + "col": 7, + "value": 2119 + }, + { + "row": 3, + "col": 8, + "value": 2069 + }, + { + "row": 3, + "col": 9, + "value": 2056 + }, + { + "row": 4, + "col": 0, + "value": 2050 + }, + { + "row": 4, + "col": 1, + "value": 2053 + }, + { + "row": 4, + "col": 2, + "value": 2059 + }, + { + "row": 4, + "col": 3, + "value": 2079 + }, + { + "row": 4, + "col": 4, + "value": 2159 + }, + { + "row": 4, + "col": 5, + "value": 2533 + }, + { + "row": 4, + "col": 6, + "value": 2525 + }, + { + "row": 4, + "col": 7, + "value": 2157 + }, + { + "row": 4, + "col": 8, + "value": 2079 + }, + { + "row": 4, + "col": 9, + "value": 2059 + }, + { + "row": 5, + "col": 0, + "value": 2051 + }, + { + "row": 5, + "col": 1, + "value": 2054 + }, + { + "row": 5, + "col": 2, + "value": 2061 + }, + { + "row": 5, + "col": 3, + "value": 2079 + }, + { + "row": 5, + "col": 4, + "value": 2121 + }, + { + "row": 5, + "col": 5, + "value": 2160 + }, + { + "row": 5, + "col": 6, + "value": 2121 + }, + { + "row": 5, + "col": 7, + "value": 2079 + }, + { + "row": 5, + "col": 8, + "value": 2061 + }, + { + "row": 5, + "col": 9, + "value": 2054 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2051 + }, + { + "row": 6, + "col": 2, + "value": 2054 + }, + { + "row": 6, + "col": 3, + "value": 2060 + }, + { + "row": 6, + "col": 4, + "value": 2069 + }, + { + "row": 6, + "col": 5, + "value": 2079 + }, + { + "row": 6, + "col": 6, + "value": 2079 + }, + { + "row": 6, + "col": 7, + "value": 2069 + }, + { + "row": 6, + "col": 8, + "value": 2059 + }, + { + "row": 6, + "col": 9, + "value": 2054 + } + ] + }, + { + "timestamp_ns": 10235656281, + "cursor_x_mm": 65.13333333333333, + "cursor_y_mm": 39.53333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2051 + }, + { + "row": 0, + "col": 3, + "value": 2053 + }, + { + "row": 0, + "col": 4, + "value": 2056 + }, + { + "row": 0, + "col": 5, + "value": 2059 + }, + { + "row": 0, + "col": 6, + "value": 2061 + }, + { + "row": 0, + "col": 7, + "value": 2060 + }, + { + "row": 0, + "col": 8, + "value": 2056 + }, + { + "row": 0, + "col": 9, + "value": 2053 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2051 + }, + { + "row": 1, + "col": 2, + "value": 2054 + }, + { + "row": 1, + "col": 3, + "value": 2059 + }, + { + "row": 1, + "col": 4, + "value": 2069 + }, + { + "row": 1, + "col": 5, + "value": 2079 + }, + { + "row": 1, + "col": 6, + "value": 2079 + }, + { + "row": 1, + "col": 7, + "value": 2069 + }, + { + "row": 1, + "col": 8, + "value": 2060 + }, + { + "row": 1, + "col": 9, + "value": 2054 + }, + { + "row": 2, + "col": 0, + "value": 2049 + }, + { + "row": 2, + "col": 1, + "value": 2051 + }, + { + "row": 2, + "col": 2, + "value": 2054 + }, + { + "row": 2, + "col": 3, + "value": 2061 + }, + { + "row": 2, + "col": 4, + "value": 2079 + }, + { + "row": 2, + "col": 5, + "value": 2120 + }, + { + "row": 2, + "col": 6, + "value": 2159 + }, + { + "row": 2, + "col": 7, + "value": 2121 + }, + { + "row": 2, + "col": 8, + "value": 2079 + }, + { + "row": 2, + "col": 9, + "value": 2061 + }, + { + "row": 3, + "col": 0, + "value": 2050 + }, + { + "row": 3, + "col": 1, + "value": 2053 + }, + { + "row": 3, + "col": 2, + "value": 2059 + }, + { + "row": 3, + "col": 3, + "value": 2078 + }, + { + "row": 3, + "col": 4, + "value": 2156 + }, + { + "row": 3, + "col": 5, + "value": 2517 + }, + { + "row": 3, + "col": 6, + "value": 2532 + }, + { + "row": 3, + "col": 7, + "value": 2160 + }, + { + "row": 3, + "col": 8, + "value": 2079 + }, + { + "row": 3, + "col": 9, + "value": 2060 + }, + { + "row": 4, + "col": 0, + "value": 2049 + }, + { + "row": 4, + "col": 1, + "value": 2051 + }, + { + "row": 4, + "col": 2, + "value": 2056 + }, + { + "row": 4, + "col": 3, + "value": 2068 + }, + { + "row": 4, + "col": 4, + "value": 2118 + }, + { + "row": 4, + "col": 5, + "value": 2500 + }, + { + "row": 4, + "col": 6, + "value": 4094 + }, + { + "row": 4, + "col": 7, + "value": 2529 + }, + { + "row": 4, + "col": 8, + "value": 2121 + }, + { + "row": 4, + "col": 9, + "value": 2069 + }, + { + "row": 5, + "col": 0, + "value": 2050 + }, + { + "row": 5, + "col": 1, + "value": 2053 + }, + { + "row": 5, + "col": 2, + "value": 2059 + }, + { + "row": 5, + "col": 3, + "value": 2078 + }, + { + "row": 5, + "col": 4, + "value": 2154 + }, + { + "row": 5, + "col": 5, + "value": 2498 + }, + { + "row": 5, + "col": 6, + "value": 2512 + }, + { + "row": 5, + "col": 7, + "value": 2158 + }, + { + "row": 5, + "col": 8, + "value": 2079 + }, + { + "row": 5, + "col": 9, + "value": 2059 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2051 + }, + { + "row": 6, + "col": 2, + "value": 2054 + }, + { + "row": 6, + "col": 3, + "value": 2061 + }, + { + "row": 6, + "col": 4, + "value": 2078 + }, + { + "row": 6, + "col": 5, + "value": 2118 + }, + { + "row": 6, + "col": 6, + "value": 2155 + }, + { + "row": 6, + "col": 7, + "value": 2119 + }, + { + "row": 6, + "col": 8, + "value": 2079 + }, + { + "row": 6, + "col": 9, + "value": 2061 + } + ] + }, + { + "timestamp_ns": 11644656069, + "cursor_x_mm": 55.13333333333333, + "cursor_y_mm": 39.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2051 + }, + { + "row": 0, + "col": 2, + "value": 2053 + }, + { + "row": 0, + "col": 3, + "value": 2056 + }, + { + "row": 0, + "col": 4, + "value": 2059 + }, + { + "row": 0, + "col": 5, + "value": 2061 + }, + { + "row": 0, + "col": 6, + "value": 2059 + }, + { + "row": 0, + "col": 7, + "value": 2056 + }, + { + "row": 0, + "col": 8, + "value": 2053 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2051 + }, + { + "row": 1, + "col": 1, + "value": 2054 + }, + { + "row": 1, + "col": 2, + "value": 2059 + }, + { + "row": 1, + "col": 3, + "value": 2068 + }, + { + "row": 1, + "col": 4, + "value": 2078 + }, + { + "row": 1, + "col": 5, + "value": 2078 + }, + { + "row": 1, + "col": 6, + "value": 2069 + }, + { + "row": 1, + "col": 7, + "value": 2059 + }, + { + "row": 1, + "col": 8, + "value": 2054 + }, + { + "row": 1, + "col": 9, + "value": 2051 + }, + { + "row": 2, + "col": 0, + "value": 2051 + }, + { + "row": 2, + "col": 1, + "value": 2054 + }, + { + "row": 2, + "col": 2, + "value": 2061 + }, + { + "row": 2, + "col": 3, + "value": 2078 + }, + { + "row": 2, + "col": 4, + "value": 2118 + }, + { + "row": 2, + "col": 5, + "value": 2154 + }, + { + "row": 2, + "col": 6, + "value": 2119 + }, + { + "row": 2, + "col": 7, + "value": 2079 + }, + { + "row": 2, + "col": 8, + "value": 2061 + }, + { + "row": 2, + "col": 9, + "value": 2054 + }, + { + "row": 3, + "col": 0, + "value": 2053 + }, + { + "row": 3, + "col": 1, + "value": 2059 + }, + { + "row": 3, + "col": 2, + "value": 2078 + }, + { + "row": 3, + "col": 3, + "value": 2154 + }, + { + "row": 3, + "col": 4, + "value": 2493 + }, + { + "row": 3, + "col": 5, + "value": 2507 + }, + { + "row": 3, + "col": 6, + "value": 2158 + }, + { + "row": 3, + "col": 7, + "value": 2079 + }, + { + "row": 3, + "col": 8, + "value": 2059 + }, + { + "row": 3, + "col": 9, + "value": 2053 + }, + { + "row": 4, + "col": 0, + "value": 2051 + }, + { + "row": 4, + "col": 1, + "value": 2056 + }, + { + "row": 4, + "col": 2, + "value": 2068 + }, + { + "row": 4, + "col": 3, + "value": 2118 + }, + { + "row": 4, + "col": 4, + "value": 2500 + }, + { + "row": 4, + "col": 5, + "value": 4094 + }, + { + "row": 4, + "col": 6, + "value": 2529 + }, + { + "row": 4, + "col": 7, + "value": 2121 + }, + { + "row": 4, + "col": 8, + "value": 2069 + }, + { + "row": 4, + "col": 9, + "value": 2056 + }, + { + "row": 5, + "col": 0, + "value": 2053 + }, + { + "row": 5, + "col": 1, + "value": 2059 + }, + { + "row": 5, + "col": 2, + "value": 2078 + }, + { + "row": 5, + "col": 3, + "value": 2156 + }, + { + "row": 5, + "col": 4, + "value": 2522 + }, + { + "row": 5, + "col": 5, + "value": 2537 + }, + { + "row": 5, + "col": 6, + "value": 2161 + }, + { + "row": 5, + "col": 7, + "value": 2079 + }, + { + "row": 5, + "col": 8, + "value": 2060 + }, + { + "row": 5, + "col": 9, + "value": 2053 + }, + { + "row": 6, + "col": 0, + "value": 2051 + }, + { + "row": 6, + "col": 1, + "value": 2054 + }, + { + "row": 6, + "col": 2, + "value": 2061 + }, + { + "row": 6, + "col": 3, + "value": 2079 + }, + { + "row": 6, + "col": 4, + "value": 2120 + }, + { + "row": 6, + "col": 5, + "value": 2160 + }, + { + "row": 6, + "col": 6, + "value": 2122 + }, + { + "row": 6, + "col": 7, + "value": 2079 + }, + { + "row": 6, + "col": 8, + "value": 2061 + }, + { + "row": 6, + "col": 9, + "value": 2054 + } + ] + }, + { + "timestamp_ns": 12893887968, + "cursor_x_mm": 45.13333333333333, + "cursor_y_mm": 39.53333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2051 + }, + { + "row": 0, + "col": 1, + "value": 2053 + }, + { + "row": 0, + "col": 2, + "value": 2056 + }, + { + "row": 0, + "col": 3, + "value": 2059 + }, + { + "row": 0, + "col": 4, + "value": 2061 + }, + { + "row": 0, + "col": 5, + "value": 2060 + }, + { + "row": 0, + "col": 6, + "value": 2056 + }, + { + "row": 0, + "col": 7, + "value": 2053 + }, + { + "row": 0, + "col": 8, + "value": 2051 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2054 + }, + { + "row": 1, + "col": 1, + "value": 2059 + }, + { + "row": 1, + "col": 2, + "value": 2069 + }, + { + "row": 1, + "col": 3, + "value": 2079 + }, + { + "row": 1, + "col": 4, + "value": 2079 + }, + { + "row": 1, + "col": 5, + "value": 2069 + }, + { + "row": 1, + "col": 6, + "value": 2060 + }, + { + "row": 1, + "col": 7, + "value": 2054 + }, + { + "row": 1, + "col": 8, + "value": 2051 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2054 + }, + { + "row": 2, + "col": 1, + "value": 2061 + }, + { + "row": 2, + "col": 2, + "value": 2079 + }, + { + "row": 2, + "col": 3, + "value": 2120 + }, + { + "row": 2, + "col": 4, + "value": 2159 + }, + { + "row": 2, + "col": 5, + "value": 2121 + }, + { + "row": 2, + "col": 6, + "value": 2079 + }, + { + "row": 2, + "col": 7, + "value": 2061 + }, + { + "row": 2, + "col": 8, + "value": 2054 + }, + { + "row": 2, + "col": 9, + "value": 2051 + }, + { + "row": 3, + "col": 0, + "value": 2059 + }, + { + "row": 3, + "col": 1, + "value": 2078 + }, + { + "row": 3, + "col": 2, + "value": 2156 + }, + { + "row": 3, + "col": 3, + "value": 2517 + }, + { + "row": 3, + "col": 4, + "value": 2532 + }, + { + "row": 3, + "col": 5, + "value": 2160 + }, + { + "row": 3, + "col": 6, + "value": 2079 + }, + { + "row": 3, + "col": 7, + "value": 2060 + }, + { + "row": 3, + "col": 8, + "value": 2053 + }, + { + "row": 3, + "col": 9, + "value": 2050 + }, + { + "row": 4, + "col": 0, + "value": 2056 + }, + { + "row": 4, + "col": 1, + "value": 2068 + }, + { + "row": 4, + "col": 2, + "value": 2118 + }, + { + "row": 4, + "col": 3, + "value": 2500 + }, + { + "row": 4, + "col": 4, + "value": 4094 + }, + { + "row": 4, + "col": 5, + "value": 2529 + }, + { + "row": 4, + "col": 6, + "value": 2121 + }, + { + "row": 4, + "col": 7, + "value": 2069 + }, + { + "row": 4, + "col": 8, + "value": 2056 + }, + { + "row": 4, + "col": 9, + "value": 2051 + }, + { + "row": 5, + "col": 0, + "value": 2059 + }, + { + "row": 5, + "col": 1, + "value": 2078 + }, + { + "row": 5, + "col": 2, + "value": 2154 + }, + { + "row": 5, + "col": 3, + "value": 2498 + }, + { + "row": 5, + "col": 4, + "value": 2512 + }, + { + "row": 5, + "col": 5, + "value": 2158 + }, + { + "row": 5, + "col": 6, + "value": 2079 + }, + { + "row": 5, + "col": 7, + "value": 2059 + }, + { + "row": 5, + "col": 8, + "value": 2053 + }, + { + "row": 5, + "col": 9, + "value": 2050 + }, + { + "row": 6, + "col": 0, + "value": 2054 + }, + { + "row": 6, + "col": 1, + "value": 2061 + }, + { + "row": 6, + "col": 2, + "value": 2078 + }, + { + "row": 6, + "col": 3, + "value": 2118 + }, + { + "row": 6, + "col": 4, + "value": 2155 + }, + { + "row": 6, + "col": 5, + "value": 2119 + }, + { + "row": 6, + "col": 6, + "value": 2079 + }, + { + "row": 6, + "col": 7, + "value": 2061 + }, + { + "row": 6, + "col": 8, + "value": 2054 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 14050927536, + "cursor_x_mm": 35.0, + "cursor_y_mm": 39.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2053 + }, + { + "row": 0, + "col": 1, + "value": 2056 + }, + { + "row": 0, + "col": 2, + "value": 2059 + }, + { + "row": 0, + "col": 3, + "value": 2061 + }, + { + "row": 0, + "col": 4, + "value": 2059 + }, + { + "row": 0, + "col": 5, + "value": 2056 + }, + { + "row": 0, + "col": 6, + "value": 2053 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2059 + }, + { + "row": 1, + "col": 1, + "value": 2068 + }, + { + "row": 1, + "col": 2, + "value": 2078 + }, + { + "row": 1, + "col": 3, + "value": 2078 + }, + { + "row": 1, + "col": 4, + "value": 2068 + }, + { + "row": 1, + "col": 5, + "value": 2059 + }, + { + "row": 1, + "col": 6, + "value": 2054 + }, + { + "row": 1, + "col": 7, + "value": 2051 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2061 + }, + { + "row": 2, + "col": 1, + "value": 2078 + }, + { + "row": 2, + "col": 2, + "value": 2118 + }, + { + "row": 2, + "col": 3, + "value": 2154 + }, + { + "row": 2, + "col": 4, + "value": 2118 + }, + { + "row": 2, + "col": 5, + "value": 2078 + }, + { + "row": 2, + "col": 6, + "value": 2061 + }, + { + "row": 2, + "col": 7, + "value": 2054 + }, + { + "row": 2, + "col": 8, + "value": 2051 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2079 + }, + { + "row": 3, + "col": 1, + "value": 2156 + }, + { + "row": 3, + "col": 2, + "value": 2500 + }, + { + "row": 3, + "col": 3, + "value": 2500 + }, + { + "row": 3, + "col": 4, + "value": 2156 + }, + { + "row": 3, + "col": 5, + "value": 2079 + }, + { + "row": 3, + "col": 6, + "value": 2059 + }, + { + "row": 3, + "col": 7, + "value": 2053 + }, + { + "row": 3, + "col": 8, + "value": 2050 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2069 + }, + { + "row": 4, + "col": 1, + "value": 2120 + }, + { + "row": 4, + "col": 2, + "value": 2514 + }, + { + "row": 4, + "col": 3, + "value": 4094 + }, + { + "row": 4, + "col": 4, + "value": 2514 + }, + { + "row": 4, + "col": 5, + "value": 2120 + }, + { + "row": 4, + "col": 6, + "value": 2069 + }, + { + "row": 4, + "col": 7, + "value": 2056 + }, + { + "row": 4, + "col": 8, + "value": 2051 + }, + { + "row": 4, + "col": 9, + "value": 2049 + }, + { + "row": 5, + "col": 0, + "value": 2079 + }, + { + "row": 5, + "col": 1, + "value": 2158 + }, + { + "row": 5, + "col": 2, + "value": 2530 + }, + { + "row": 5, + "col": 3, + "value": 2530 + }, + { + "row": 5, + "col": 4, + "value": 2158 + }, + { + "row": 5, + "col": 5, + "value": 2079 + }, + { + "row": 5, + "col": 6, + "value": 2059 + }, + { + "row": 5, + "col": 7, + "value": 2053 + }, + { + "row": 5, + "col": 8, + "value": 2050 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2061 + }, + { + "row": 6, + "col": 1, + "value": 2079 + }, + { + "row": 6, + "col": 2, + "value": 2121 + }, + { + "row": 6, + "col": 3, + "value": 2160 + }, + { + "row": 6, + "col": 4, + "value": 2121 + }, + { + "row": 6, + "col": 5, + "value": 2079 + }, + { + "row": 6, + "col": 6, + "value": 2061 + }, + { + "row": 6, + "col": 7, + "value": 2054 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 15208472374, + "cursor_x_mm": 25.0, + "cursor_y_mm": 39.93333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2056 + }, + { + "row": 0, + "col": 1, + "value": 2059 + }, + { + "row": 0, + "col": 2, + "value": 2061 + }, + { + "row": 0, + "col": 3, + "value": 2059 + }, + { + "row": 0, + "col": 4, + "value": 2056 + }, + { + "row": 0, + "col": 5, + "value": 2053 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2068 + }, + { + "row": 1, + "col": 1, + "value": 2078 + }, + { + "row": 1, + "col": 2, + "value": 2078 + }, + { + "row": 1, + "col": 3, + "value": 2068 + }, + { + "row": 1, + "col": 4, + "value": 2059 + }, + { + "row": 1, + "col": 5, + "value": 2054 + }, + { + "row": 1, + "col": 6, + "value": 2051 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2078 + }, + { + "row": 2, + "col": 1, + "value": 2117 + }, + { + "row": 2, + "col": 2, + "value": 2152 + }, + { + "row": 2, + "col": 3, + "value": 2117 + }, + { + "row": 2, + "col": 4, + "value": 2078 + }, + { + "row": 2, + "col": 5, + "value": 2061 + }, + { + "row": 2, + "col": 6, + "value": 2054 + }, + { + "row": 2, + "col": 7, + "value": 2051 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2154 + }, + { + "row": 3, + "col": 1, + "value": 2488 + }, + { + "row": 3, + "col": 2, + "value": 2488 + }, + { + "row": 3, + "col": 3, + "value": 2154 + }, + { + "row": 3, + "col": 4, + "value": 2078 + }, + { + "row": 3, + "col": 5, + "value": 2059 + }, + { + "row": 3, + "col": 6, + "value": 2053 + }, + { + "row": 3, + "col": 7, + "value": 2050 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2120 + }, + { + "row": 4, + "col": 1, + "value": 2514 + }, + { + "row": 4, + "col": 2, + "value": 4094 + }, + { + "row": 4, + "col": 3, + "value": 2514 + }, + { + "row": 4, + "col": 4, + "value": 2120 + }, + { + "row": 4, + "col": 5, + "value": 2069 + }, + { + "row": 4, + "col": 6, + "value": 2056 + }, + { + "row": 4, + "col": 7, + "value": 2051 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2160 + }, + { + "row": 5, + "col": 1, + "value": 2543 + }, + { + "row": 5, + "col": 2, + "value": 2543 + }, + { + "row": 5, + "col": 3, + "value": 2160 + }, + { + "row": 5, + "col": 4, + "value": 2079 + }, + { + "row": 5, + "col": 5, + "value": 2059 + }, + { + "row": 5, + "col": 6, + "value": 2053 + }, + { + "row": 5, + "col": 7, + "value": 2050 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2079 + }, + { + "row": 6, + "col": 1, + "value": 2122 + }, + { + "row": 6, + "col": 2, + "value": 2162 + }, + { + "row": 6, + "col": 3, + "value": 2122 + }, + { + "row": 6, + "col": 4, + "value": 2079 + }, + { + "row": 6, + "col": 5, + "value": 2061 + }, + { + "row": 6, + "col": 6, + "value": 2054 + }, + { + "row": 6, + "col": 7, + "value": 2051 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + } + ] +} \ No newline at end of file diff --git a/positioning/analyzer/datasets/hexgrid/test_long.json b/positioning/analyzer/datasets/hexgrid/test_long.json new file mode 100644 index 0000000..13bba8f --- /dev/null +++ b/positioning/analyzer/datasets/hexgrid/test_long.json @@ -0,0 +1,54638 @@ +{ + "metadata": { + "version": 1, + "grid_type": "hexagonal", + "grid_rows": 7, + "grid_cols": 10, + "sensor_spacing_mm": 10.0, + "adc_precision_in_bits": 12, + "magnet": { + "shape": "rounded", + "size": "10x5mm", + "height_mm": 10.0 + } + }, + "data_points": [ + { + "timestamp_ns": 0, + "cursor_x_mm": 3.4, + "cursor_y_mm": 3.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 3985 + }, + { + "row": 0, + "col": 1, + "value": 2361 + }, + { + "row": 0, + "col": 2, + "value": 2104 + }, + { + "row": 0, + "col": 3, + "value": 2065 + }, + { + "row": 0, + "col": 4, + "value": 2055 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2314 + }, + { + "row": 1, + "col": 1, + "value": 2123 + }, + { + "row": 1, + "col": 2, + "value": 2072 + }, + { + "row": 1, + "col": 3, + "value": 2057 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2127 + }, + { + "row": 2, + "col": 1, + "value": 2098 + }, + { + "row": 2, + "col": 2, + "value": 2071 + }, + { + "row": 2, + "col": 3, + "value": 2058 + }, + { + "row": 2, + "col": 4, + "value": 2053 + }, + { + "row": 2, + "col": 5, + "value": 2050 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2072 + }, + { + "row": 3, + "col": 1, + "value": 2064 + }, + { + "row": 3, + "col": 2, + "value": 2057 + }, + { + "row": 3, + "col": 3, + "value": 2053 + }, + { + "row": 3, + "col": 4, + "value": 2050 + }, + { + "row": 3, + "col": 5, + "value": 2049 + }, + { + "row": 3, + "col": 6, + "value": 2048 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2059 + }, + { + "row": 4, + "col": 1, + "value": 2057 + }, + { + "row": 4, + "col": 2, + "value": 2054 + }, + { + "row": 4, + "col": 3, + "value": 2052 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2049 + }, + { + "row": 4, + "col": 6, + "value": 2048 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2047 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2053 + }, + { + "row": 5, + "col": 1, + "value": 2052 + }, + { + "row": 5, + "col": 2, + "value": 2051 + }, + { + "row": 5, + "col": 3, + "value": 2050 + }, + { + "row": 5, + "col": 4, + "value": 2049 + }, + { + "row": 5, + "col": 5, + "value": 2048 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2047 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2050 + }, + { + "row": 6, + "col": 1, + "value": 2050 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2048 + }, + { + "row": 6, + "col": 5, + "value": 2048 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2047 + }, + { + "row": 6, + "col": 8, + "value": 2047 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 142969682, + "cursor_x_mm": 2.466666666666667, + "cursor_y_mm": 5.933333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 4029 + }, + { + "row": 0, + "col": 1, + "value": 2338 + }, + { + "row": 0, + "col": 2, + "value": 2101 + }, + { + "row": 0, + "col": 3, + "value": 2065 + }, + { + "row": 0, + "col": 4, + "value": 2055 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2394 + }, + { + "row": 1, + "col": 1, + "value": 2128 + }, + { + "row": 1, + "col": 2, + "value": 2072 + }, + { + "row": 1, + "col": 3, + "value": 2057 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2152 + }, + { + "row": 2, + "col": 1, + "value": 2108 + }, + { + "row": 2, + "col": 2, + "value": 2073 + }, + { + "row": 2, + "col": 3, + "value": 2059 + }, + { + "row": 2, + "col": 4, + "value": 2053 + }, + { + "row": 2, + "col": 5, + "value": 2050 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2077 + }, + { + "row": 3, + "col": 1, + "value": 2066 + }, + { + "row": 3, + "col": 2, + "value": 2058 + }, + { + "row": 3, + "col": 3, + "value": 2053 + }, + { + "row": 3, + "col": 4, + "value": 2050 + }, + { + "row": 3, + "col": 5, + "value": 2049 + }, + { + "row": 3, + "col": 6, + "value": 2048 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2061 + }, + { + "row": 4, + "col": 1, + "value": 2059 + }, + { + "row": 4, + "col": 2, + "value": 2055 + }, + { + "row": 4, + "col": 3, + "value": 2052 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2049 + }, + { + "row": 4, + "col": 6, + "value": 2048 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2047 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2054 + }, + { + "row": 5, + "col": 1, + "value": 2052 + }, + { + "row": 5, + "col": 2, + "value": 2051 + }, + { + "row": 5, + "col": 3, + "value": 2050 + }, + { + "row": 5, + "col": 4, + "value": 2049 + }, + { + "row": 5, + "col": 5, + "value": 2048 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2047 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2051 + }, + { + "row": 6, + "col": 1, + "value": 2050 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2048 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2047 + }, + { + "row": 6, + "col": 8, + "value": 2047 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 285463225, + "cursor_x_mm": 2.466666666666667, + "cursor_y_mm": 8.733333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 3800 + }, + { + "row": 0, + "col": 1, + "value": 2299 + }, + { + "row": 0, + "col": 2, + "value": 2097 + }, + { + "row": 0, + "col": 3, + "value": 2064 + }, + { + "row": 0, + "col": 4, + "value": 2054 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2557 + }, + { + "row": 1, + "col": 1, + "value": 2138 + }, + { + "row": 1, + "col": 2, + "value": 2073 + }, + { + "row": 1, + "col": 3, + "value": 2057 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2216 + }, + { + "row": 2, + "col": 1, + "value": 2128 + }, + { + "row": 2, + "col": 2, + "value": 2077 + }, + { + "row": 2, + "col": 3, + "value": 2060 + }, + { + "row": 2, + "col": 4, + "value": 2053 + }, + { + "row": 2, + "col": 5, + "value": 2050 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2087 + }, + { + "row": 3, + "col": 1, + "value": 2071 + }, + { + "row": 3, + "col": 2, + "value": 2059 + }, + { + "row": 3, + "col": 3, + "value": 2054 + }, + { + "row": 3, + "col": 4, + "value": 2051 + }, + { + "row": 3, + "col": 5, + "value": 2049 + }, + { + "row": 3, + "col": 6, + "value": 2048 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2065 + }, + { + "row": 4, + "col": 1, + "value": 2061 + }, + { + "row": 4, + "col": 2, + "value": 2057 + }, + { + "row": 4, + "col": 3, + "value": 2053 + }, + { + "row": 4, + "col": 4, + "value": 2051 + }, + { + "row": 4, + "col": 5, + "value": 2049 + }, + { + "row": 4, + "col": 6, + "value": 2048 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2047 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2055 + }, + { + "row": 5, + "col": 1, + "value": 2053 + }, + { + "row": 5, + "col": 2, + "value": 2052 + }, + { + "row": 5, + "col": 3, + "value": 2050 + }, + { + "row": 5, + "col": 4, + "value": 2049 + }, + { + "row": 5, + "col": 5, + "value": 2048 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2047 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2052 + }, + { + "row": 6, + "col": 1, + "value": 2051 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2048 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2047 + }, + { + "row": 6, + "col": 8, + "value": 2047 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 429154713, + "cursor_x_mm": 2.066666666666667, + "cursor_y_mm": 12.866666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2838 + }, + { + "row": 0, + "col": 1, + "value": 2218 + }, + { + "row": 0, + "col": 2, + "value": 2089 + }, + { + "row": 0, + "col": 3, + "value": 2062 + }, + { + "row": 0, + "col": 4, + "value": 2054 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2785 + }, + { + "row": 1, + "col": 1, + "value": 2146 + }, + { + "row": 1, + "col": 2, + "value": 2074 + }, + { + "row": 1, + "col": 3, + "value": 2058 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2460 + }, + { + "row": 2, + "col": 1, + "value": 2175 + }, + { + "row": 2, + "col": 2, + "value": 2084 + }, + { + "row": 2, + "col": 3, + "value": 2061 + }, + { + "row": 2, + "col": 4, + "value": 2054 + }, + { + "row": 2, + "col": 5, + "value": 2050 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2116 + }, + { + "row": 3, + "col": 1, + "value": 2081 + }, + { + "row": 3, + "col": 2, + "value": 2062 + }, + { + "row": 3, + "col": 3, + "value": 2054 + }, + { + "row": 3, + "col": 4, + "value": 2051 + }, + { + "row": 3, + "col": 5, + "value": 2049 + }, + { + "row": 3, + "col": 6, + "value": 2048 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2075 + }, + { + "row": 4, + "col": 1, + "value": 2068 + }, + { + "row": 4, + "col": 2, + "value": 2060 + }, + { + "row": 4, + "col": 3, + "value": 2054 + }, + { + "row": 4, + "col": 4, + "value": 2051 + }, + { + "row": 4, + "col": 5, + "value": 2049 + }, + { + "row": 4, + "col": 6, + "value": 2048 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2047 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2058 + }, + { + "row": 5, + "col": 1, + "value": 2056 + }, + { + "row": 5, + "col": 2, + "value": 2053 + }, + { + "row": 5, + "col": 3, + "value": 2051 + }, + { + "row": 5, + "col": 4, + "value": 2049 + }, + { + "row": 5, + "col": 5, + "value": 2048 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2047 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2053 + }, + { + "row": 6, + "col": 1, + "value": 2052 + }, + { + "row": 6, + "col": 2, + "value": 2051 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2048 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2047 + }, + { + "row": 6, + "col": 8, + "value": 2047 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 570654166, + "cursor_x_mm": 2.8666666666666667, + "cursor_y_mm": 16.6, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2388 + }, + { + "row": 0, + "col": 1, + "value": 2173 + }, + { + "row": 0, + "col": 2, + "value": 2085 + }, + { + "row": 0, + "col": 3, + "value": 2062 + }, + { + "row": 0, + "col": 4, + "value": 2054 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2877 + }, + { + "row": 1, + "col": 1, + "value": 2157 + }, + { + "row": 1, + "col": 2, + "value": 2076 + }, + { + "row": 1, + "col": 3, + "value": 2058 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 3114 + }, + { + "row": 2, + "col": 1, + "value": 2263 + }, + { + "row": 2, + "col": 2, + "value": 2095 + }, + { + "row": 2, + "col": 3, + "value": 2064 + }, + { + "row": 2, + "col": 4, + "value": 2054 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2175 + }, + { + "row": 3, + "col": 1, + "value": 2098 + }, + { + "row": 3, + "col": 2, + "value": 2067 + }, + { + "row": 3, + "col": 3, + "value": 2056 + }, + { + "row": 3, + "col": 4, + "value": 2052 + }, + { + "row": 3, + "col": 5, + "value": 2049 + }, + { + "row": 3, + "col": 6, + "value": 2048 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2092 + }, + { + "row": 4, + "col": 1, + "value": 2079 + }, + { + "row": 4, + "col": 2, + "value": 2064 + }, + { + "row": 4, + "col": 3, + "value": 2056 + }, + { + "row": 4, + "col": 4, + "value": 2052 + }, + { + "row": 4, + "col": 5, + "value": 2050 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2047 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2063 + }, + { + "row": 5, + "col": 1, + "value": 2059 + }, + { + "row": 5, + "col": 2, + "value": 2055 + }, + { + "row": 5, + "col": 3, + "value": 2052 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2055 + }, + { + "row": 6, + "col": 1, + "value": 2054 + }, + { + "row": 6, + "col": 2, + "value": 2053 + }, + { + "row": 6, + "col": 3, + "value": 2051 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2047 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 729052898, + "cursor_x_mm": 3.533333333333333, + "cursor_y_mm": 21.533333333333335, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2199 + }, + { + "row": 0, + "col": 1, + "value": 2127 + }, + { + "row": 0, + "col": 2, + "value": 2078 + }, + { + "row": 0, + "col": 3, + "value": 2060 + }, + { + "row": 0, + "col": 4, + "value": 2053 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2575 + }, + { + "row": 1, + "col": 1, + "value": 2145 + }, + { + "row": 1, + "col": 2, + "value": 2075 + }, + { + "row": 1, + "col": 3, + "value": 2058 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 3975 + }, + { + "row": 2, + "col": 1, + "value": 2353 + }, + { + "row": 2, + "col": 2, + "value": 2103 + }, + { + "row": 2, + "col": 3, + "value": 2065 + }, + { + "row": 2, + "col": 4, + "value": 2055 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2311 + }, + { + "row": 3, + "col": 1, + "value": 2121 + }, + { + "row": 3, + "col": 2, + "value": 2072 + }, + { + "row": 3, + "col": 3, + "value": 2057 + }, + { + "row": 3, + "col": 4, + "value": 2052 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2048 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2127 + }, + { + "row": 4, + "col": 1, + "value": 2098 + }, + { + "row": 4, + "col": 2, + "value": 2071 + }, + { + "row": 4, + "col": 3, + "value": 2058 + }, + { + "row": 4, + "col": 4, + "value": 2053 + }, + { + "row": 4, + "col": 5, + "value": 2050 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2072 + }, + { + "row": 5, + "col": 1, + "value": 2064 + }, + { + "row": 5, + "col": 2, + "value": 2057 + }, + { + "row": 5, + "col": 3, + "value": 2053 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2059 + }, + { + "row": 6, + "col": 1, + "value": 2057 + }, + { + "row": 6, + "col": 2, + "value": 2054 + }, + { + "row": 6, + "col": 3, + "value": 2052 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2047 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 886981533, + "cursor_x_mm": 3.4, + "cursor_y_mm": 25.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2119 + }, + { + "row": 0, + "col": 1, + "value": 2094 + }, + { + "row": 0, + "col": 2, + "value": 2070 + }, + { + "row": 0, + "col": 3, + "value": 2058 + }, + { + "row": 0, + "col": 4, + "value": 2053 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2284 + }, + { + "row": 1, + "col": 1, + "value": 2119 + }, + { + "row": 1, + "col": 2, + "value": 2071 + }, + { + "row": 1, + "col": 3, + "value": 2057 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 3904 + }, + { + "row": 2, + "col": 1, + "value": 2352 + }, + { + "row": 2, + "col": 2, + "value": 2104 + }, + { + "row": 2, + "col": 3, + "value": 2065 + }, + { + "row": 2, + "col": 4, + "value": 2055 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2652 + }, + { + "row": 3, + "col": 1, + "value": 2151 + }, + { + "row": 3, + "col": 2, + "value": 2076 + }, + { + "row": 3, + "col": 3, + "value": 2058 + }, + { + "row": 3, + "col": 4, + "value": 2052 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2220 + }, + { + "row": 4, + "col": 1, + "value": 2136 + }, + { + "row": 4, + "col": 2, + "value": 2080 + }, + { + "row": 4, + "col": 3, + "value": 2061 + }, + { + "row": 4, + "col": 4, + "value": 2054 + }, + { + "row": 4, + "col": 5, + "value": 2050 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2088 + }, + { + "row": 5, + "col": 1, + "value": 2072 + }, + { + "row": 5, + "col": 2, + "value": 2060 + }, + { + "row": 5, + "col": 3, + "value": 2054 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2065 + }, + { + "row": 6, + "col": 1, + "value": 2062 + }, + { + "row": 6, + "col": 2, + "value": 2057 + }, + { + "row": 6, + "col": 3, + "value": 2053 + }, + { + "row": 6, + "col": 4, + "value": 2051 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2047 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 1014945216, + "cursor_x_mm": 3.4, + "cursor_y_mm": 30.2, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2089 + }, + { + "row": 0, + "col": 1, + "value": 2078 + }, + { + "row": 0, + "col": 2, + "value": 2064 + }, + { + "row": 0, + "col": 3, + "value": 2056 + }, + { + "row": 0, + "col": 4, + "value": 2052 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2047 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2169 + }, + { + "row": 1, + "col": 1, + "value": 2098 + }, + { + "row": 1, + "col": 2, + "value": 2067 + }, + { + "row": 1, + "col": 3, + "value": 2056 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 3025 + }, + { + "row": 2, + "col": 1, + "value": 2272 + }, + { + "row": 2, + "col": 2, + "value": 2098 + }, + { + "row": 2, + "col": 3, + "value": 2064 + }, + { + "row": 2, + "col": 4, + "value": 2055 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 3020 + }, + { + "row": 3, + "col": 1, + "value": 2169 + }, + { + "row": 3, + "col": 2, + "value": 2078 + }, + { + "row": 3, + "col": 3, + "value": 2059 + }, + { + "row": 3, + "col": 4, + "value": 2052 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2440 + }, + { + "row": 4, + "col": 1, + "value": 2191 + }, + { + "row": 4, + "col": 2, + "value": 2089 + }, + { + "row": 4, + "col": 3, + "value": 2063 + }, + { + "row": 4, + "col": 4, + "value": 2054 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2116 + }, + { + "row": 5, + "col": 1, + "value": 2083 + }, + { + "row": 5, + "col": 2, + "value": 2063 + }, + { + "row": 5, + "col": 3, + "value": 2055 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2074 + }, + { + "row": 6, + "col": 1, + "value": 2068 + }, + { + "row": 6, + "col": 2, + "value": 2060 + }, + { + "row": 6, + "col": 3, + "value": 2055 + }, + { + "row": 6, + "col": 4, + "value": 2051 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2047 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 1158637973, + "cursor_x_mm": 3.9333333333333336, + "cursor_y_mm": 36.733333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2069 + }, + { + "row": 0, + "col": 1, + "value": 2065 + }, + { + "row": 0, + "col": 2, + "value": 2059 + }, + { + "row": 0, + "col": 3, + "value": 2054 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2048 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2047 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2102 + }, + { + "row": 1, + "col": 1, + "value": 2079 + }, + { + "row": 1, + "col": 2, + "value": 2062 + }, + { + "row": 1, + "col": 3, + "value": 2055 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2049 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2319 + }, + { + "row": 2, + "col": 1, + "value": 2170 + }, + { + "row": 2, + "col": 2, + "value": 2087 + }, + { + "row": 2, + "col": 3, + "value": 2063 + }, + { + "row": 2, + "col": 4, + "value": 2054 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2967 + }, + { + "row": 3, + "col": 1, + "value": 2173 + }, + { + "row": 3, + "col": 2, + "value": 2079 + }, + { + "row": 3, + "col": 3, + "value": 2059 + }, + { + "row": 3, + "col": 4, + "value": 2053 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 3481 + }, + { + "row": 4, + "col": 1, + "value": 2340 + }, + { + "row": 4, + "col": 2, + "value": 2105 + }, + { + "row": 4, + "col": 3, + "value": 2066 + }, + { + "row": 4, + "col": 4, + "value": 2055 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2216 + }, + { + "row": 5, + "col": 1, + "value": 2110 + }, + { + "row": 5, + "col": 2, + "value": 2070 + }, + { + "row": 5, + "col": 3, + "value": 2057 + }, + { + "row": 5, + "col": 4, + "value": 2052 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2100 + }, + { + "row": 6, + "col": 1, + "value": 2085 + }, + { + "row": 6, + "col": 2, + "value": 2067 + }, + { + "row": 6, + "col": 3, + "value": 2057 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 1317215231, + "cursor_x_mm": 4.333333333333333, + "cursor_y_mm": 44.06666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2057 + }, + { + "row": 0, + "col": 1, + "value": 2056 + }, + { + "row": 0, + "col": 2, + "value": 2054 + }, + { + "row": 0, + "col": 3, + "value": 2052 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2048 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2047 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2068 + }, + { + "row": 1, + "col": 1, + "value": 2062 + }, + { + "row": 1, + "col": 2, + "value": 2056 + }, + { + "row": 1, + "col": 3, + "value": 2053 + }, + { + "row": 1, + "col": 4, + "value": 2050 + }, + { + "row": 1, + "col": 5, + "value": 2049 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2108 + }, + { + "row": 2, + "col": 1, + "value": 2091 + }, + { + "row": 2, + "col": 2, + "value": 2070 + }, + { + "row": 2, + "col": 3, + "value": 2058 + }, + { + "row": 2, + "col": 4, + "value": 2053 + }, + { + "row": 2, + "col": 5, + "value": 2050 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2255 + }, + { + "row": 3, + "col": 1, + "value": 2119 + }, + { + "row": 3, + "col": 2, + "value": 2072 + }, + { + "row": 3, + "col": 3, + "value": 2058 + }, + { + "row": 3, + "col": 4, + "value": 2052 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 3742 + }, + { + "row": 4, + "col": 1, + "value": 2391 + }, + { + "row": 4, + "col": 2, + "value": 2110 + }, + { + "row": 4, + "col": 3, + "value": 2067 + }, + { + "row": 4, + "col": 4, + "value": 2055 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2910 + }, + { + "row": 5, + "col": 1, + "value": 2176 + }, + { + "row": 5, + "col": 2, + "value": 2080 + }, + { + "row": 5, + "col": 3, + "value": 2059 + }, + { + "row": 5, + "col": 4, + "value": 2053 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2269 + }, + { + "row": 6, + "col": 1, + "value": 2160 + }, + { + "row": 6, + "col": 2, + "value": 2086 + }, + { + "row": 6, + "col": 3, + "value": 2063 + }, + { + "row": 6, + "col": 4, + "value": 2054 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 1460755797, + "cursor_x_mm": 3.8, + "cursor_y_mm": 48.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2054 + }, + { + "row": 0, + "col": 1, + "value": 2054 + }, + { + "row": 0, + "col": 2, + "value": 2052 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2048 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2047 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2061 + }, + { + "row": 1, + "col": 1, + "value": 2058 + }, + { + "row": 1, + "col": 2, + "value": 2054 + }, + { + "row": 1, + "col": 3, + "value": 2051 + }, + { + "row": 1, + "col": 4, + "value": 2050 + }, + { + "row": 1, + "col": 5, + "value": 2049 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2083 + }, + { + "row": 2, + "col": 1, + "value": 2075 + }, + { + "row": 2, + "col": 2, + "value": 2063 + }, + { + "row": 2, + "col": 3, + "value": 2056 + }, + { + "row": 2, + "col": 4, + "value": 2052 + }, + { + "row": 2, + "col": 5, + "value": 2050 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2047 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2149 + }, + { + "row": 3, + "col": 1, + "value": 2094 + }, + { + "row": 3, + "col": 2, + "value": 2067 + }, + { + "row": 3, + "col": 3, + "value": 2056 + }, + { + "row": 3, + "col": 4, + "value": 2052 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2048 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2777 + }, + { + "row": 4, + "col": 1, + "value": 2255 + }, + { + "row": 4, + "col": 2, + "value": 2097 + }, + { + "row": 4, + "col": 3, + "value": 2064 + }, + { + "row": 4, + "col": 4, + "value": 2055 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 3174 + }, + { + "row": 5, + "col": 1, + "value": 2180 + }, + { + "row": 5, + "col": 2, + "value": 2080 + }, + { + "row": 5, + "col": 3, + "value": 2059 + }, + { + "row": 5, + "col": 4, + "value": 2053 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2589 + }, + { + "row": 6, + "col": 1, + "value": 2226 + }, + { + "row": 6, + "col": 2, + "value": 2094 + }, + { + "row": 6, + "col": 3, + "value": 2064 + }, + { + "row": 6, + "col": 4, + "value": 2055 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 1618097501, + "cursor_x_mm": 3.666666666666667, + "cursor_y_mm": 54.2, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2052 + }, + { + "row": 0, + "col": 1, + "value": 2052 + }, + { + "row": 0, + "col": 2, + "value": 2051 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2048 + }, + { + "row": 0, + "col": 6, + "value": 2048 + }, + { + "row": 0, + "col": 7, + "value": 2047 + }, + { + "row": 0, + "col": 8, + "value": 2047 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2056 + }, + { + "row": 1, + "col": 1, + "value": 2054 + }, + { + "row": 1, + "col": 2, + "value": 2052 + }, + { + "row": 1, + "col": 3, + "value": 2050 + }, + { + "row": 1, + "col": 4, + "value": 2049 + }, + { + "row": 1, + "col": 5, + "value": 2048 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2047 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2067 + }, + { + "row": 2, + "col": 1, + "value": 2064 + }, + { + "row": 2, + "col": 2, + "value": 2058 + }, + { + "row": 2, + "col": 3, + "value": 2054 + }, + { + "row": 2, + "col": 4, + "value": 2051 + }, + { + "row": 2, + "col": 5, + "value": 2049 + }, + { + "row": 2, + "col": 6, + "value": 2048 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2047 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2096 + }, + { + "row": 3, + "col": 1, + "value": 2076 + }, + { + "row": 3, + "col": 2, + "value": 2061 + }, + { + "row": 3, + "col": 3, + "value": 2054 + }, + { + "row": 3, + "col": 4, + "value": 2051 + }, + { + "row": 3, + "col": 5, + "value": 2049 + }, + { + "row": 3, + "col": 6, + "value": 2048 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2270 + }, + { + "row": 4, + "col": 1, + "value": 2153 + }, + { + "row": 4, + "col": 2, + "value": 2084 + }, + { + "row": 4, + "col": 3, + "value": 2062 + }, + { + "row": 4, + "col": 4, + "value": 2054 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2818 + }, + { + "row": 5, + "col": 1, + "value": 2163 + }, + { + "row": 5, + "col": 2, + "value": 2078 + }, + { + "row": 5, + "col": 3, + "value": 2059 + }, + { + "row": 5, + "col": 4, + "value": 2052 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 3690 + }, + { + "row": 6, + "col": 1, + "value": 2346 + }, + { + "row": 6, + "col": 2, + "value": 2104 + }, + { + "row": 6, + "col": 3, + "value": 2066 + }, + { + "row": 6, + "col": 4, + "value": 2055 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 1778308921, + "cursor_x_mm": 4.733333333333333, + "cursor_y_mm": 58.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2051 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2048 + }, + { + "row": 0, + "col": 6, + "value": 2048 + }, + { + "row": 0, + "col": 7, + "value": 2047 + }, + { + "row": 0, + "col": 8, + "value": 2047 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2053 + }, + { + "row": 1, + "col": 1, + "value": 2052 + }, + { + "row": 1, + "col": 2, + "value": 2051 + }, + { + "row": 1, + "col": 3, + "value": 2050 + }, + { + "row": 1, + "col": 4, + "value": 2049 + }, + { + "row": 1, + "col": 5, + "value": 2048 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2047 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2060 + }, + { + "row": 2, + "col": 1, + "value": 2059 + }, + { + "row": 2, + "col": 2, + "value": 2055 + }, + { + "row": 2, + "col": 3, + "value": 2052 + }, + { + "row": 2, + "col": 4, + "value": 2050 + }, + { + "row": 2, + "col": 5, + "value": 2049 + }, + { + "row": 2, + "col": 6, + "value": 2048 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2047 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2076 + }, + { + "row": 3, + "col": 1, + "value": 2067 + }, + { + "row": 3, + "col": 2, + "value": 2058 + }, + { + "row": 3, + "col": 3, + "value": 2053 + }, + { + "row": 3, + "col": 4, + "value": 2051 + }, + { + "row": 3, + "col": 5, + "value": 2049 + }, + { + "row": 3, + "col": 6, + "value": 2048 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2047 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2147 + }, + { + "row": 4, + "col": 1, + "value": 2112 + }, + { + "row": 4, + "col": 2, + "value": 2076 + }, + { + "row": 4, + "col": 3, + "value": 2060 + }, + { + "row": 4, + "col": 4, + "value": 2053 + }, + { + "row": 4, + "col": 5, + "value": 2050 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2434 + }, + { + "row": 5, + "col": 1, + "value": 2143 + }, + { + "row": 5, + "col": 2, + "value": 2076 + }, + { + "row": 5, + "col": 3, + "value": 2059 + }, + { + "row": 5, + "col": 4, + "value": 2052 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 4090 + }, + { + "row": 6, + "col": 1, + "value": 2447 + }, + { + "row": 6, + "col": 2, + "value": 2113 + }, + { + "row": 6, + "col": 3, + "value": 2067 + }, + { + "row": 6, + "col": 4, + "value": 2055 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 1936429219, + "cursor_x_mm": 10.466666666666667, + "cursor_y_mm": 59.4, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2048 + }, + { + "row": 0, + "col": 6, + "value": 2048 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2047 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2053 + }, + { + "row": 1, + "col": 1, + "value": 2052 + }, + { + "row": 1, + "col": 2, + "value": 2051 + }, + { + "row": 1, + "col": 3, + "value": 2050 + }, + { + "row": 1, + "col": 4, + "value": 2049 + }, + { + "row": 1, + "col": 5, + "value": 2048 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2058 + }, + { + "row": 2, + "col": 1, + "value": 2058 + }, + { + "row": 2, + "col": 2, + "value": 2056 + }, + { + "row": 2, + "col": 3, + "value": 2053 + }, + { + "row": 2, + "col": 4, + "value": 2051 + }, + { + "row": 2, + "col": 5, + "value": 2050 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2073 + }, + { + "row": 3, + "col": 1, + "value": 2069 + }, + { + "row": 3, + "col": 2, + "value": 2061 + }, + { + "row": 3, + "col": 3, + "value": 2055 + }, + { + "row": 3, + "col": 4, + "value": 2052 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2115 + }, + { + "row": 4, + "col": 1, + "value": 2117 + }, + { + "row": 4, + "col": 2, + "value": 2086 + }, + { + "row": 4, + "col": 3, + "value": 2066 + }, + { + "row": 4, + "col": 4, + "value": 2056 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2411 + }, + { + "row": 5, + "col": 1, + "value": 2221 + }, + { + "row": 5, + "col": 2, + "value": 2098 + }, + { + "row": 5, + "col": 3, + "value": 2065 + }, + { + "row": 5, + "col": 4, + "value": 2055 + }, + { + "row": 5, + "col": 5, + "value": 2051 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 3265 + }, + { + "row": 6, + "col": 1, + "value": 3419 + }, + { + "row": 6, + "col": 2, + "value": 2216 + }, + { + "row": 6, + "col": 3, + "value": 2086 + }, + { + "row": 6, + "col": 4, + "value": 2061 + }, + { + "row": 6, + "col": 5, + "value": 2053 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 2081496559, + "cursor_x_mm": 10.733333333333334, + "cursor_y_mm": 56.6, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2051 + }, + { + "row": 0, + "col": 1, + "value": 2051 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2048 + }, + { + "row": 0, + "col": 6, + "value": 2048 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2047 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2054 + }, + { + "row": 1, + "col": 1, + "value": 2053 + }, + { + "row": 1, + "col": 2, + "value": 2052 + }, + { + "row": 1, + "col": 3, + "value": 2051 + }, + { + "row": 1, + "col": 4, + "value": 2050 + }, + { + "row": 1, + "col": 5, + "value": 2049 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2060 + }, + { + "row": 2, + "col": 1, + "value": 2061 + }, + { + "row": 2, + "col": 2, + "value": 2058 + }, + { + "row": 2, + "col": 3, + "value": 2054 + }, + { + "row": 2, + "col": 4, + "value": 2052 + }, + { + "row": 2, + "col": 5, + "value": 2050 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2080 + }, + { + "row": 3, + "col": 1, + "value": 2075 + }, + { + "row": 3, + "col": 2, + "value": 2064 + }, + { + "row": 3, + "col": 3, + "value": 2057 + }, + { + "row": 3, + "col": 4, + "value": 2052 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2141 + }, + { + "row": 4, + "col": 1, + "value": 2147 + }, + { + "row": 4, + "col": 2, + "value": 2099 + }, + { + "row": 4, + "col": 3, + "value": 2069 + }, + { + "row": 4, + "col": 4, + "value": 2057 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2678 + }, + { + "row": 5, + "col": 1, + "value": 2305 + }, + { + "row": 5, + "col": 2, + "value": 2109 + }, + { + "row": 5, + "col": 3, + "value": 2068 + }, + { + "row": 5, + "col": 4, + "value": 2056 + }, + { + "row": 5, + "col": 5, + "value": 2051 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 3298 + }, + { + "row": 6, + "col": 1, + "value": 3669 + }, + { + "row": 6, + "col": 2, + "value": 2236 + }, + { + "row": 6, + "col": 3, + "value": 2088 + }, + { + "row": 6, + "col": 4, + "value": 2061 + }, + { + "row": 6, + "col": 5, + "value": 2053 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 2222555646, + "cursor_x_mm": 9.4, + "cursor_y_mm": 50.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2052 + }, + { + "row": 0, + "col": 1, + "value": 2052 + }, + { + "row": 0, + "col": 2, + "value": 2052 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2048 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2047 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2057 + }, + { + "row": 1, + "col": 1, + "value": 2056 + }, + { + "row": 1, + "col": 2, + "value": 2054 + }, + { + "row": 1, + "col": 3, + "value": 2052 + }, + { + "row": 1, + "col": 4, + "value": 2050 + }, + { + "row": 1, + "col": 5, + "value": 2049 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2069 + }, + { + "row": 2, + "col": 1, + "value": 2069 + }, + { + "row": 2, + "col": 2, + "value": 2063 + }, + { + "row": 2, + "col": 3, + "value": 2057 + }, + { + "row": 2, + "col": 4, + "value": 2053 + }, + { + "row": 2, + "col": 5, + "value": 2050 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2113 + }, + { + "row": 3, + "col": 1, + "value": 2095 + }, + { + "row": 3, + "col": 2, + "value": 2071 + }, + { + "row": 3, + "col": 3, + "value": 2059 + }, + { + "row": 3, + "col": 4, + "value": 2053 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2292 + }, + { + "row": 4, + "col": 1, + "value": 2285 + }, + { + "row": 4, + "col": 2, + "value": 2127 + }, + { + "row": 4, + "col": 3, + "value": 2074 + }, + { + "row": 4, + "col": 4, + "value": 2058 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 3860 + }, + { + "row": 5, + "col": 1, + "value": 2442 + }, + { + "row": 5, + "col": 2, + "value": 2115 + }, + { + "row": 5, + "col": 3, + "value": 2068 + }, + { + "row": 5, + "col": 4, + "value": 2056 + }, + { + "row": 5, + "col": 5, + "value": 2051 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2964 + }, + { + "row": 6, + "col": 1, + "value": 2907 + }, + { + "row": 6, + "col": 2, + "value": 2182 + }, + { + "row": 6, + "col": 3, + "value": 2081 + }, + { + "row": 6, + "col": 4, + "value": 2060 + }, + { + "row": 6, + "col": 5, + "value": 2053 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 2382897141, + "cursor_x_mm": 9.4, + "cursor_y_mm": 44.06666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2056 + }, + { + "row": 0, + "col": 1, + "value": 2056 + }, + { + "row": 0, + "col": 2, + "value": 2054 + }, + { + "row": 0, + "col": 3, + "value": 2052 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2048 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2047 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2066 + }, + { + "row": 1, + "col": 1, + "value": 2063 + }, + { + "row": 1, + "col": 2, + "value": 2058 + }, + { + "row": 1, + "col": 3, + "value": 2054 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2049 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2094 + }, + { + "row": 2, + "col": 1, + "value": 2092 + }, + { + "row": 2, + "col": 2, + "value": 2074 + }, + { + "row": 2, + "col": 3, + "value": 2061 + }, + { + "row": 2, + "col": 4, + "value": 2054 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2239 + }, + { + "row": 3, + "col": 1, + "value": 2148 + }, + { + "row": 3, + "col": 2, + "value": 2084 + }, + { + "row": 3, + "col": 3, + "value": 2062 + }, + { + "row": 3, + "col": 4, + "value": 2054 + }, + { + "row": 3, + "col": 5, + "value": 2051 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 3024 + }, + { + "row": 4, + "col": 1, + "value": 2791 + }, + { + "row": 4, + "col": 2, + "value": 2167 + }, + { + "row": 4, + "col": 3, + "value": 2079 + }, + { + "row": 4, + "col": 4, + "value": 2059 + }, + { + "row": 4, + "col": 5, + "value": 2053 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 3876 + }, + { + "row": 5, + "col": 1, + "value": 2394 + }, + { + "row": 5, + "col": 2, + "value": 2109 + }, + { + "row": 5, + "col": 3, + "value": 2067 + }, + { + "row": 5, + "col": 4, + "value": 2055 + }, + { + "row": 5, + "col": 5, + "value": 2051 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2315 + }, + { + "row": 6, + "col": 1, + "value": 2280 + }, + { + "row": 6, + "col": 2, + "value": 2122 + }, + { + "row": 6, + "col": 3, + "value": 2073 + }, + { + "row": 6, + "col": 4, + "value": 2058 + }, + { + "row": 6, + "col": 5, + "value": 2052 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 2539589201, + "cursor_x_mm": 8.866666666666667, + "cursor_y_mm": 35.53333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2064 + }, + { + "row": 0, + "col": 1, + "value": 2064 + }, + { + "row": 0, + "col": 2, + "value": 2060 + }, + { + "row": 0, + "col": 3, + "value": 2055 + }, + { + "row": 0, + "col": 4, + "value": 2052 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2093 + }, + { + "row": 1, + "col": 1, + "value": 2082 + }, + { + "row": 1, + "col": 2, + "value": 2066 + }, + { + "row": 1, + "col": 3, + "value": 2057 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2203 + }, + { + "row": 2, + "col": 1, + "value": 2191 + }, + { + "row": 2, + "col": 2, + "value": 2106 + }, + { + "row": 2, + "col": 3, + "value": 2070 + }, + { + "row": 2, + "col": 4, + "value": 2057 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2050 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 3215 + }, + { + "row": 3, + "col": 1, + "value": 2327 + }, + { + "row": 3, + "col": 2, + "value": 2105 + }, + { + "row": 3, + "col": 3, + "value": 2066 + }, + { + "row": 3, + "col": 4, + "value": 2055 + }, + { + "row": 3, + "col": 5, + "value": 2051 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 3482 + }, + { + "row": 4, + "col": 1, + "value": 3154 + }, + { + "row": 4, + "col": 2, + "value": 2186 + }, + { + "row": 4, + "col": 3, + "value": 2081 + }, + { + "row": 4, + "col": 4, + "value": 2060 + }, + { + "row": 4, + "col": 5, + "value": 2053 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2393 + }, + { + "row": 5, + "col": 1, + "value": 2195 + }, + { + "row": 5, + "col": 2, + "value": 2092 + }, + { + "row": 5, + "col": 3, + "value": 2064 + }, + { + "row": 5, + "col": 4, + "value": 2055 + }, + { + "row": 5, + "col": 5, + "value": 2051 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2115 + }, + { + "row": 6, + "col": 1, + "value": 2112 + }, + { + "row": 6, + "col": 2, + "value": 2083 + }, + { + "row": 6, + "col": 3, + "value": 2064 + }, + { + "row": 6, + "col": 4, + "value": 2055 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 2682711489, + "cursor_x_mm": 8.733333333333334, + "cursor_y_mm": 27.666666666666668, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2087 + }, + { + "row": 0, + "col": 1, + "value": 2084 + }, + { + "row": 0, + "col": 2, + "value": 2071 + }, + { + "row": 0, + "col": 3, + "value": 2060 + }, + { + "row": 0, + "col": 4, + "value": 2054 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2193 + }, + { + "row": 1, + "col": 1, + "value": 2128 + }, + { + "row": 1, + "col": 2, + "value": 2079 + }, + { + "row": 1, + "col": 3, + "value": 2061 + }, + { + "row": 1, + "col": 4, + "value": 2054 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2818 + }, + { + "row": 2, + "col": 1, + "value": 2591 + }, + { + "row": 2, + "col": 2, + "value": 2151 + }, + { + "row": 2, + "col": 3, + "value": 2076 + }, + { + "row": 2, + "col": 4, + "value": 2058 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2050 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 4030 + }, + { + "row": 3, + "col": 1, + "value": 2388 + }, + { + "row": 3, + "col": 2, + "value": 2107 + }, + { + "row": 3, + "col": 3, + "value": 2066 + }, + { + "row": 3, + "col": 4, + "value": 2055 + }, + { + "row": 3, + "col": 5, + "value": 2051 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2417 + }, + { + "row": 4, + "col": 1, + "value": 2339 + }, + { + "row": 4, + "col": 2, + "value": 2128 + }, + { + "row": 4, + "col": 3, + "value": 2073 + }, + { + "row": 4, + "col": 4, + "value": 2058 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2130 + }, + { + "row": 5, + "col": 1, + "value": 2101 + }, + { + "row": 5, + "col": 2, + "value": 2072 + }, + { + "row": 5, + "col": 3, + "value": 2059 + }, + { + "row": 5, + "col": 4, + "value": 2053 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2074 + }, + { + "row": 6, + "col": 1, + "value": 2073 + }, + { + "row": 6, + "col": 2, + "value": 2065 + }, + { + "row": 6, + "col": 3, + "value": 2057 + }, + { + "row": 6, + "col": 4, + "value": 2053 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 2842124800, + "cursor_x_mm": 8.066666666666666, + "cursor_y_mm": 19.666666666666664, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2174 + }, + { + "row": 0, + "col": 1, + "value": 2155 + }, + { + "row": 0, + "col": 2, + "value": 2094 + }, + { + "row": 0, + "col": 3, + "value": 2066 + }, + { + "row": 0, + "col": 4, + "value": 2056 + }, + { + "row": 0, + "col": 5, + "value": 2052 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2861 + }, + { + "row": 1, + "col": 1, + "value": 2252 + }, + { + "row": 1, + "col": 2, + "value": 2096 + }, + { + "row": 1, + "col": 3, + "value": 2064 + }, + { + "row": 1, + "col": 4, + "value": 2054 + }, + { + "row": 1, + "col": 5, + "value": 2051 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 3828 + }, + { + "row": 2, + "col": 1, + "value": 3047 + }, + { + "row": 2, + "col": 2, + "value": 2169 + }, + { + "row": 2, + "col": 3, + "value": 2078 + }, + { + "row": 2, + "col": 4, + "value": 2059 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2050 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2516 + }, + { + "row": 3, + "col": 1, + "value": 2204 + }, + { + "row": 3, + "col": 2, + "value": 2091 + }, + { + "row": 3, + "col": 3, + "value": 2063 + }, + { + "row": 3, + "col": 4, + "value": 2054 + }, + { + "row": 3, + "col": 5, + "value": 2051 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2134 + }, + { + "row": 4, + "col": 1, + "value": 2123 + }, + { + "row": 4, + "col": 2, + "value": 2085 + }, + { + "row": 4, + "col": 3, + "value": 2064 + }, + { + "row": 4, + "col": 4, + "value": 2055 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2076 + }, + { + "row": 5, + "col": 1, + "value": 2070 + }, + { + "row": 5, + "col": 2, + "value": 2061 + }, + { + "row": 5, + "col": 3, + "value": 2055 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2059 + }, + { + "row": 6, + "col": 1, + "value": 2059 + }, + { + "row": 6, + "col": 2, + "value": 2056 + }, + { + "row": 6, + "col": 3, + "value": 2053 + }, + { + "row": 6, + "col": 4, + "value": 2051 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 3001264229, + "cursor_x_mm": 8.333333333333334, + "cursor_y_mm": 12.466666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2600 + }, + { + "row": 0, + "col": 1, + "value": 2425 + }, + { + "row": 0, + "col": 2, + "value": 2134 + }, + { + "row": 0, + "col": 3, + "value": 2074 + }, + { + "row": 0, + "col": 4, + "value": 2058 + }, + { + "row": 0, + "col": 5, + "value": 2052 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 4063 + }, + { + "row": 1, + "col": 1, + "value": 2369 + }, + { + "row": 1, + "col": 2, + "value": 2104 + }, + { + "row": 1, + "col": 3, + "value": 2065 + }, + { + "row": 1, + "col": 4, + "value": 2055 + }, + { + "row": 1, + "col": 5, + "value": 2051 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2601 + }, + { + "row": 2, + "col": 1, + "value": 2426 + }, + { + "row": 2, + "col": 2, + "value": 2134 + }, + { + "row": 2, + "col": 3, + "value": 2074 + }, + { + "row": 2, + "col": 4, + "value": 2058 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2050 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2156 + }, + { + "row": 3, + "col": 1, + "value": 2111 + }, + { + "row": 3, + "col": 2, + "value": 2075 + }, + { + "row": 3, + "col": 3, + "value": 2059 + }, + { + "row": 3, + "col": 4, + "value": 2053 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2080 + }, + { + "row": 4, + "col": 1, + "value": 2077 + }, + { + "row": 4, + "col": 2, + "value": 2067 + }, + { + "row": 4, + "col": 3, + "value": 2058 + }, + { + "row": 4, + "col": 4, + "value": 2053 + }, + { + "row": 4, + "col": 5, + "value": 2050 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2061 + }, + { + "row": 5, + "col": 1, + "value": 2059 + }, + { + "row": 5, + "col": 2, + "value": 2055 + }, + { + "row": 5, + "col": 3, + "value": 2052 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2054 + }, + { + "row": 6, + "col": 1, + "value": 2054 + }, + { + "row": 6, + "col": 2, + "value": 2053 + }, + { + "row": 6, + "col": 3, + "value": 2051 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2047 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 3159275241, + "cursor_x_mm": 10.333333333333332, + "cursor_y_mm": 6.6, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 3326 + }, + { + "row": 0, + "col": 1, + "value": 3238 + }, + { + "row": 0, + "col": 2, + "value": 2198 + }, + { + "row": 0, + "col": 3, + "value": 2083 + }, + { + "row": 0, + "col": 4, + "value": 2060 + }, + { + "row": 0, + "col": 5, + "value": 2053 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 3299 + }, + { + "row": 1, + "col": 1, + "value": 2366 + }, + { + "row": 1, + "col": 2, + "value": 2110 + }, + { + "row": 1, + "col": 3, + "value": 2067 + }, + { + "row": 1, + "col": 4, + "value": 2056 + }, + { + "row": 1, + "col": 5, + "value": 2051 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2207 + }, + { + "row": 2, + "col": 1, + "value": 2203 + }, + { + "row": 2, + "col": 2, + "value": 2111 + }, + { + "row": 2, + "col": 3, + "value": 2071 + }, + { + "row": 2, + "col": 4, + "value": 2057 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2050 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2095 + }, + { + "row": 3, + "col": 1, + "value": 2084 + }, + { + "row": 3, + "col": 2, + "value": 2067 + }, + { + "row": 3, + "col": 3, + "value": 2058 + }, + { + "row": 3, + "col": 4, + "value": 2053 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2065 + }, + { + "row": 4, + "col": 1, + "value": 2065 + }, + { + "row": 4, + "col": 2, + "value": 2060 + }, + { + "row": 4, + "col": 3, + "value": 2056 + }, + { + "row": 4, + "col": 4, + "value": 2052 + }, + { + "row": 4, + "col": 5, + "value": 2050 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2056 + }, + { + "row": 5, + "col": 1, + "value": 2055 + }, + { + "row": 5, + "col": 2, + "value": 2053 + }, + { + "row": 5, + "col": 3, + "value": 2051 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2052 + }, + { + "row": 6, + "col": 1, + "value": 2052 + }, + { + "row": 6, + "col": 2, + "value": 2051 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2047 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 3300869226, + "cursor_x_mm": 12.466666666666667, + "cursor_y_mm": 3.666666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2977 + }, + { + "row": 0, + "col": 1, + "value": 3926 + }, + { + "row": 0, + "col": 2, + "value": 2293 + }, + { + "row": 0, + "col": 3, + "value": 2096 + }, + { + "row": 0, + "col": 4, + "value": 2063 + }, + { + "row": 0, + "col": 5, + "value": 2054 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2582 + }, + { + "row": 1, + "col": 1, + "value": 2337 + }, + { + "row": 1, + "col": 2, + "value": 2118 + }, + { + "row": 1, + "col": 3, + "value": 2070 + }, + { + "row": 1, + "col": 4, + "value": 2057 + }, + { + "row": 1, + "col": 5, + "value": 2052 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2129 + }, + { + "row": 2, + "col": 1, + "value": 2144 + }, + { + "row": 2, + "col": 2, + "value": 2102 + }, + { + "row": 2, + "col": 3, + "value": 2071 + }, + { + "row": 2, + "col": 4, + "value": 2058 + }, + { + "row": 2, + "col": 5, + "value": 2053 + }, + { + "row": 2, + "col": 6, + "value": 2050 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2078 + }, + { + "row": 3, + "col": 1, + "value": 2075 + }, + { + "row": 3, + "col": 2, + "value": 2065 + }, + { + "row": 3, + "col": 3, + "value": 2057 + }, + { + "row": 3, + "col": 4, + "value": 2053 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2060 + }, + { + "row": 4, + "col": 1, + "value": 2060 + }, + { + "row": 4, + "col": 2, + "value": 2058 + }, + { + "row": 4, + "col": 3, + "value": 2055 + }, + { + "row": 4, + "col": 4, + "value": 2052 + }, + { + "row": 4, + "col": 5, + "value": 2050 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2054 + }, + { + "row": 5, + "col": 1, + "value": 2053 + }, + { + "row": 5, + "col": 2, + "value": 2052 + }, + { + "row": 5, + "col": 3, + "value": 2051 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2051 + }, + { + "row": 6, + "col": 1, + "value": 2051 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2048 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2047 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 3459774417, + "cursor_x_mm": 14.2, + "cursor_y_mm": 4.333333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2681 + }, + { + "row": 0, + "col": 1, + "value": 4017 + }, + { + "row": 0, + "col": 2, + "value": 2373 + }, + { + "row": 0, + "col": 3, + "value": 2105 + }, + { + "row": 0, + "col": 4, + "value": 2066 + }, + { + "row": 0, + "col": 5, + "value": 2055 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2421 + }, + { + "row": 1, + "col": 1, + "value": 2331 + }, + { + "row": 1, + "col": 2, + "value": 2126 + }, + { + "row": 1, + "col": 3, + "value": 2073 + }, + { + "row": 1, + "col": 4, + "value": 2058 + }, + { + "row": 1, + "col": 5, + "value": 2052 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2111 + }, + { + "row": 2, + "col": 1, + "value": 2130 + }, + { + "row": 2, + "col": 2, + "value": 2100 + }, + { + "row": 2, + "col": 3, + "value": 2072 + }, + { + "row": 2, + "col": 4, + "value": 2059 + }, + { + "row": 2, + "col": 5, + "value": 2053 + }, + { + "row": 2, + "col": 6, + "value": 2050 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2074 + }, + { + "row": 3, + "col": 1, + "value": 2072 + }, + { + "row": 3, + "col": 2, + "value": 2064 + }, + { + "row": 3, + "col": 3, + "value": 2057 + }, + { + "row": 3, + "col": 4, + "value": 2053 + }, + { + "row": 3, + "col": 5, + "value": 2050 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2058 + }, + { + "row": 4, + "col": 1, + "value": 2059 + }, + { + "row": 4, + "col": 2, + "value": 2057 + }, + { + "row": 4, + "col": 3, + "value": 2055 + }, + { + "row": 4, + "col": 4, + "value": 2052 + }, + { + "row": 4, + "col": 5, + "value": 2050 + }, + { + "row": 4, + "col": 6, + "value": 2049 + }, + { + "row": 4, + "col": 7, + "value": 2048 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2053 + }, + { + "row": 5, + "col": 1, + "value": 2053 + }, + { + "row": 5, + "col": 2, + "value": 2052 + }, + { + "row": 5, + "col": 3, + "value": 2051 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2048 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2047 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2050 + }, + { + "row": 6, + "col": 1, + "value": 2050 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2048 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2047 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 3633250922, + "cursor_x_mm": 14.733333333333333, + "cursor_y_mm": 11.266666666666666, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2411 + }, + { + "row": 0, + "col": 1, + "value": 3399 + }, + { + "row": 0, + "col": 2, + "value": 2375 + }, + { + "row": 0, + "col": 3, + "value": 2110 + }, + { + "row": 0, + "col": 4, + "value": 2067 + }, + { + "row": 0, + "col": 5, + "value": 2056 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 3285 + }, + { + "row": 1, + "col": 1, + "value": 3174 + }, + { + "row": 1, + "col": 2, + "value": 2194 + }, + { + "row": 1, + "col": 3, + "value": 2083 + }, + { + "row": 1, + "col": 4, + "value": 2060 + }, + { + "row": 1, + "col": 5, + "value": 2053 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2199 + }, + { + "row": 2, + "col": 1, + "value": 2347 + }, + { + "row": 2, + "col": 2, + "value": 2190 + }, + { + "row": 2, + "col": 3, + "value": 2092 + }, + { + "row": 2, + "col": 4, + "value": 2064 + }, + { + "row": 2, + "col": 5, + "value": 2055 + }, + { + "row": 2, + "col": 6, + "value": 2051 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2108 + }, + { + "row": 3, + "col": 1, + "value": 2107 + }, + { + "row": 3, + "col": 2, + "value": 2082 + }, + { + "row": 3, + "col": 3, + "value": 2064 + }, + { + "row": 3, + "col": 4, + "value": 2055 + }, + { + "row": 3, + "col": 5, + "value": 2051 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2067 + }, + { + "row": 4, + "col": 1, + "value": 2070 + }, + { + "row": 4, + "col": 2, + "value": 2067 + }, + { + "row": 4, + "col": 3, + "value": 2060 + }, + { + "row": 4, + "col": 4, + "value": 2055 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2047 + }, + { + "row": 5, + "col": 0, + "value": 2057 + }, + { + "row": 5, + "col": 1, + "value": 2057 + }, + { + "row": 5, + "col": 2, + "value": 2055 + }, + { + "row": 5, + "col": 3, + "value": 2053 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2052 + }, + { + "row": 6, + "col": 1, + "value": 2052 + }, + { + "row": 6, + "col": 2, + "value": 2052 + }, + { + "row": 6, + "col": 3, + "value": 2051 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 3758245039, + "cursor_x_mm": 14.733333333333333, + "cursor_y_mm": 15.933333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2275 + }, + { + "row": 0, + "col": 1, + "value": 2629 + }, + { + "row": 0, + "col": 2, + "value": 2258 + }, + { + "row": 0, + "col": 3, + "value": 2100 + }, + { + "row": 0, + "col": 4, + "value": 2066 + }, + { + "row": 0, + "col": 5, + "value": 2055 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 3550 + }, + { + "row": 1, + "col": 1, + "value": 3414 + }, + { + "row": 1, + "col": 2, + "value": 2204 + }, + { + "row": 1, + "col": 3, + "value": 2083 + }, + { + "row": 1, + "col": 4, + "value": 2060 + }, + { + "row": 1, + "col": 5, + "value": 2053 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2302 + }, + { + "row": 2, + "col": 1, + "value": 2753 + }, + { + "row": 2, + "col": 2, + "value": 2281 + }, + { + "row": 2, + "col": 3, + "value": 2103 + }, + { + "row": 2, + "col": 4, + "value": 2066 + }, + { + "row": 2, + "col": 5, + "value": 2055 + }, + { + "row": 2, + "col": 6, + "value": 2051 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2153 + }, + { + "row": 3, + "col": 1, + "value": 2150 + }, + { + "row": 3, + "col": 2, + "value": 2097 + }, + { + "row": 3, + "col": 3, + "value": 2068 + }, + { + "row": 3, + "col": 4, + "value": 2057 + }, + { + "row": 3, + "col": 5, + "value": 2052 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2076 + }, + { + "row": 4, + "col": 1, + "value": 2082 + }, + { + "row": 4, + "col": 2, + "value": 2075 + }, + { + "row": 4, + "col": 3, + "value": 2064 + }, + { + "row": 4, + "col": 4, + "value": 2056 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2061 + }, + { + "row": 5, + "col": 1, + "value": 2061 + }, + { + "row": 5, + "col": 2, + "value": 2058 + }, + { + "row": 5, + "col": 3, + "value": 2054 + }, + { + "row": 5, + "col": 4, + "value": 2052 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2054 + }, + { + "row": 6, + "col": 1, + "value": 2054 + }, + { + "row": 6, + "col": 2, + "value": 2054 + }, + { + "row": 6, + "col": 3, + "value": 2052 + }, + { + "row": 6, + "col": 4, + "value": 2051 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 3918568378, + "cursor_x_mm": 14.866666666666667, + "cursor_y_mm": 22.333333333333332, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2139 + }, + { + "row": 0, + "col": 1, + "value": 2198 + }, + { + "row": 0, + "col": 2, + "value": 2139 + }, + { + "row": 0, + "col": 3, + "value": 2083 + }, + { + "row": 0, + "col": 4, + "value": 2062 + }, + { + "row": 0, + "col": 5, + "value": 2054 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2722 + }, + { + "row": 1, + "col": 1, + "value": 2722 + }, + { + "row": 1, + "col": 2, + "value": 2174 + }, + { + "row": 1, + "col": 3, + "value": 2081 + }, + { + "row": 1, + "col": 4, + "value": 2060 + }, + { + "row": 1, + "col": 5, + "value": 2053 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2497 + }, + { + "row": 2, + "col": 1, + "value": 4051 + }, + { + "row": 2, + "col": 2, + "value": 2497 + }, + { + "row": 2, + "col": 3, + "value": 2119 + }, + { + "row": 2, + "col": 4, + "value": 2069 + }, + { + "row": 2, + "col": 5, + "value": 2056 + }, + { + "row": 2, + "col": 6, + "value": 2051 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2370 + }, + { + "row": 3, + "col": 1, + "value": 2370 + }, + { + "row": 3, + "col": 2, + "value": 2141 + }, + { + "row": 3, + "col": 3, + "value": 2076 + }, + { + "row": 3, + "col": 4, + "value": 2059 + }, + { + "row": 3, + "col": 5, + "value": 2053 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2105 + }, + { + "row": 4, + "col": 1, + "value": 2129 + }, + { + "row": 4, + "col": 2, + "value": 2105 + }, + { + "row": 4, + "col": 3, + "value": 2075 + }, + { + "row": 4, + "col": 4, + "value": 2060 + }, + { + "row": 4, + "col": 5, + "value": 2053 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2073 + }, + { + "row": 5, + "col": 1, + "value": 2073 + }, + { + "row": 5, + "col": 2, + "value": 2066 + }, + { + "row": 5, + "col": 3, + "value": 2058 + }, + { + "row": 5, + "col": 4, + "value": 2053 + }, + { + "row": 5, + "col": 5, + "value": 2051 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2058 + }, + { + "row": 6, + "col": 1, + "value": 2059 + }, + { + "row": 6, + "col": 2, + "value": 2058 + }, + { + "row": 6, + "col": 3, + "value": 2055 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 4060574348, + "cursor_x_mm": 15.533333333333333, + "cursor_y_mm": 28.6, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2087 + }, + { + "row": 0, + "col": 1, + "value": 2102 + }, + { + "row": 0, + "col": 2, + "value": 2090 + }, + { + "row": 0, + "col": 3, + "value": 2070 + }, + { + "row": 0, + "col": 4, + "value": 2059 + }, + { + "row": 0, + "col": 5, + "value": 2053 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2230 + }, + { + "row": 1, + "col": 1, + "value": 2243 + }, + { + "row": 1, + "col": 2, + "value": 2123 + }, + { + "row": 1, + "col": 3, + "value": 2074 + }, + { + "row": 1, + "col": 4, + "value": 2058 + }, + { + "row": 1, + "col": 5, + "value": 2053 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2379 + }, + { + "row": 2, + "col": 1, + "value": 3561 + }, + { + "row": 2, + "col": 2, + "value": 2458 + }, + { + "row": 2, + "col": 3, + "value": 2119 + }, + { + "row": 2, + "col": 4, + "value": 2069 + }, + { + "row": 2, + "col": 5, + "value": 2056 + }, + { + "row": 2, + "col": 6, + "value": 2051 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 3036 + }, + { + "row": 3, + "col": 1, + "value": 3235 + }, + { + "row": 3, + "col": 2, + "value": 2212 + }, + { + "row": 3, + "col": 3, + "value": 2086 + }, + { + "row": 3, + "col": 4, + "value": 2061 + }, + { + "row": 3, + "col": 5, + "value": 2053 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2174 + }, + { + "row": 4, + "col": 1, + "value": 2308 + }, + { + "row": 4, + "col": 2, + "value": 2190 + }, + { + "row": 4, + "col": 3, + "value": 2094 + }, + { + "row": 4, + "col": 4, + "value": 2065 + }, + { + "row": 4, + "col": 5, + "value": 2055 + }, + { + "row": 4, + "col": 6, + "value": 2051 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2102 + }, + { + "row": 5, + "col": 1, + "value": 2104 + }, + { + "row": 5, + "col": 2, + "value": 2081 + }, + { + "row": 5, + "col": 3, + "value": 2064 + }, + { + "row": 5, + "col": 4, + "value": 2056 + }, + { + "row": 5, + "col": 5, + "value": 2052 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2065 + }, + { + "row": 6, + "col": 1, + "value": 2069 + }, + { + "row": 6, + "col": 2, + "value": 2066 + }, + { + "row": 6, + "col": 3, + "value": 2060 + }, + { + "row": 6, + "col": 4, + "value": 2055 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 4203336881, + "cursor_x_mm": 15.266666666666667, + "cursor_y_mm": 34.733333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2069 + }, + { + "row": 0, + "col": 1, + "value": 2074 + }, + { + "row": 0, + "col": 2, + "value": 2070 + }, + { + "row": 0, + "col": 3, + "value": 2062 + }, + { + "row": 0, + "col": 4, + "value": 2055 + }, + { + "row": 0, + "col": 5, + "value": 2052 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2120 + }, + { + "row": 1, + "col": 1, + "value": 2122 + }, + { + "row": 1, + "col": 2, + "value": 2089 + }, + { + "row": 1, + "col": 3, + "value": 2066 + }, + { + "row": 1, + "col": 4, + "value": 2056 + }, + { + "row": 1, + "col": 5, + "value": 2052 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2218 + }, + { + "row": 2, + "col": 1, + "value": 2459 + }, + { + "row": 2, + "col": 2, + "value": 2236 + }, + { + "row": 2, + "col": 3, + "value": 2100 + }, + { + "row": 2, + "col": 4, + "value": 2066 + }, + { + "row": 2, + "col": 5, + "value": 2055 + }, + { + "row": 2, + "col": 6, + "value": 2051 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 3302 + }, + { + "row": 3, + "col": 1, + "value": 3494 + }, + { + "row": 3, + "col": 2, + "value": 2221 + }, + { + "row": 3, + "col": 3, + "value": 2086 + }, + { + "row": 3, + "col": 4, + "value": 2061 + }, + { + "row": 3, + "col": 5, + "value": 2053 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2321 + }, + { + "row": 4, + "col": 1, + "value": 3043 + }, + { + "row": 4, + "col": 2, + "value": 2363 + }, + { + "row": 4, + "col": 3, + "value": 2112 + }, + { + "row": 4, + "col": 4, + "value": 2068 + }, + { + "row": 4, + "col": 5, + "value": 2056 + }, + { + "row": 4, + "col": 6, + "value": 2051 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2176 + }, + { + "row": 5, + "col": 1, + "value": 2182 + }, + { + "row": 5, + "col": 2, + "value": 2108 + }, + { + "row": 5, + "col": 3, + "value": 2071 + }, + { + "row": 5, + "col": 4, + "value": 2058 + }, + { + "row": 5, + "col": 5, + "value": 2052 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2080 + }, + { + "row": 6, + "col": 1, + "value": 2089 + }, + { + "row": 6, + "col": 2, + "value": 2081 + }, + { + "row": 6, + "col": 3, + "value": 2067 + }, + { + "row": 6, + "col": 4, + "value": 2057 + }, + { + "row": 6, + "col": 5, + "value": 2053 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 4346125882, + "cursor_x_mm": 15.533333333333333, + "cursor_y_mm": 40.06666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2060 + }, + { + "row": 0, + "col": 1, + "value": 2062 + }, + { + "row": 0, + "col": 2, + "value": 2060 + }, + { + "row": 0, + "col": 3, + "value": 2056 + }, + { + "row": 0, + "col": 4, + "value": 2053 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2082 + }, + { + "row": 1, + "col": 1, + "value": 2082 + }, + { + "row": 1, + "col": 2, + "value": 2070 + }, + { + "row": 1, + "col": 3, + "value": 2060 + }, + { + "row": 1, + "col": 4, + "value": 2054 + }, + { + "row": 1, + "col": 5, + "value": 2051 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2126 + }, + { + "row": 2, + "col": 1, + "value": 2172 + }, + { + "row": 2, + "col": 2, + "value": 2128 + }, + { + "row": 2, + "col": 3, + "value": 2081 + }, + { + "row": 2, + "col": 4, + "value": 2062 + }, + { + "row": 2, + "col": 5, + "value": 2054 + }, + { + "row": 2, + "col": 6, + "value": 2051 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2584 + }, + { + "row": 3, + "col": 1, + "value": 2602 + }, + { + "row": 3, + "col": 2, + "value": 2166 + }, + { + "row": 3, + "col": 3, + "value": 2080 + }, + { + "row": 3, + "col": 4, + "value": 2060 + }, + { + "row": 3, + "col": 5, + "value": 2053 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2497 + }, + { + "row": 4, + "col": 1, + "value": 4091 + }, + { + "row": 4, + "col": 2, + "value": 2526 + }, + { + "row": 4, + "col": 3, + "value": 2121 + }, + { + "row": 4, + "col": 4, + "value": 2069 + }, + { + "row": 4, + "col": 5, + "value": 2056 + }, + { + "row": 4, + "col": 6, + "value": 2051 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2442 + }, + { + "row": 5, + "col": 1, + "value": 2453 + }, + { + "row": 5, + "col": 2, + "value": 2152 + }, + { + "row": 5, + "col": 3, + "value": 2078 + }, + { + "row": 5, + "col": 4, + "value": 2059 + }, + { + "row": 5, + "col": 5, + "value": 2053 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2112 + }, + { + "row": 6, + "col": 1, + "value": 2144 + }, + { + "row": 6, + "col": 2, + "value": 2114 + }, + { + "row": 6, + "col": 3, + "value": 2077 + }, + { + "row": 6, + "col": 4, + "value": 2061 + }, + { + "row": 6, + "col": 5, + "value": 2054 + }, + { + "row": 6, + "col": 6, + "value": 2051 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 4504743811, + "cursor_x_mm": 15.266666666666667, + "cursor_y_mm": 45.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2056 + }, + { + "row": 0, + "col": 1, + "value": 2057 + }, + { + "row": 0, + "col": 2, + "value": 2056 + }, + { + "row": 0, + "col": 3, + "value": 2054 + }, + { + "row": 0, + "col": 4, + "value": 2052 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2067 + }, + { + "row": 1, + "col": 1, + "value": 2067 + }, + { + "row": 1, + "col": 2, + "value": 2062 + }, + { + "row": 1, + "col": 3, + "value": 2057 + }, + { + "row": 1, + "col": 4, + "value": 2053 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2089 + }, + { + "row": 2, + "col": 1, + "value": 2104 + }, + { + "row": 2, + "col": 2, + "value": 2091 + }, + { + "row": 2, + "col": 3, + "value": 2071 + }, + { + "row": 2, + "col": 4, + "value": 2059 + }, + { + "row": 2, + "col": 5, + "value": 2053 + }, + { + "row": 2, + "col": 6, + "value": 2050 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2238 + }, + { + "row": 3, + "col": 1, + "value": 2253 + }, + { + "row": 3, + "col": 2, + "value": 2125 + }, + { + "row": 3, + "col": 3, + "value": 2075 + }, + { + "row": 3, + "col": 4, + "value": 2059 + }, + { + "row": 3, + "col": 5, + "value": 2053 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2386 + }, + { + "row": 4, + "col": 1, + "value": 3623 + }, + { + "row": 4, + "col": 2, + "value": 2469 + }, + { + "row": 4, + "col": 3, + "value": 2120 + }, + { + "row": 4, + "col": 4, + "value": 2069 + }, + { + "row": 4, + "col": 5, + "value": 2056 + }, + { + "row": 4, + "col": 6, + "value": 2051 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 3003 + }, + { + "row": 5, + "col": 1, + "value": 3193 + }, + { + "row": 5, + "col": 2, + "value": 2210 + }, + { + "row": 5, + "col": 3, + "value": 2085 + }, + { + "row": 5, + "col": 4, + "value": 2061 + }, + { + "row": 5, + "col": 5, + "value": 2053 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2170 + }, + { + "row": 6, + "col": 1, + "value": 2295 + }, + { + "row": 6, + "col": 2, + "value": 2185 + }, + { + "row": 6, + "col": 3, + "value": 2093 + }, + { + "row": 6, + "col": 4, + "value": 2065 + }, + { + "row": 6, + "col": 5, + "value": 2055 + }, + { + "row": 6, + "col": 6, + "value": 2051 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 4646463386, + "cursor_x_mm": 15.533333333333333, + "cursor_y_mm": 51.13333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2053 + }, + { + "row": 0, + "col": 1, + "value": 2053 + }, + { + "row": 0, + "col": 2, + "value": 2053 + }, + { + "row": 0, + "col": 3, + "value": 2052 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2059 + }, + { + "row": 1, + "col": 1, + "value": 2059 + }, + { + "row": 1, + "col": 2, + "value": 2057 + }, + { + "row": 1, + "col": 3, + "value": 2054 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2070 + }, + { + "row": 2, + "col": 1, + "value": 2075 + }, + { + "row": 2, + "col": 2, + "value": 2070 + }, + { + "row": 2, + "col": 3, + "value": 2062 + }, + { + "row": 2, + "col": 4, + "value": 2055 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2050 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2124 + }, + { + "row": 3, + "col": 1, + "value": 2124 + }, + { + "row": 3, + "col": 2, + "value": 2089 + }, + { + "row": 3, + "col": 3, + "value": 2066 + }, + { + "row": 3, + "col": 4, + "value": 2056 + }, + { + "row": 3, + "col": 5, + "value": 2052 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2230 + }, + { + "row": 4, + "col": 1, + "value": 2484 + }, + { + "row": 4, + "col": 2, + "value": 2236 + }, + { + "row": 4, + "col": 3, + "value": 2099 + }, + { + "row": 4, + "col": 4, + "value": 2066 + }, + { + "row": 4, + "col": 5, + "value": 2055 + }, + { + "row": 4, + "col": 6, + "value": 2051 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 3387 + }, + { + "row": 5, + "col": 1, + "value": 3453 + }, + { + "row": 5, + "col": 2, + "value": 2213 + }, + { + "row": 5, + "col": 3, + "value": 2085 + }, + { + "row": 5, + "col": 4, + "value": 2061 + }, + { + "row": 5, + "col": 5, + "value": 2053 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2326 + }, + { + "row": 6, + "col": 1, + "value": 2989 + }, + { + "row": 6, + "col": 2, + "value": 2339 + }, + { + "row": 6, + "col": 3, + "value": 2109 + }, + { + "row": 6, + "col": 4, + "value": 2067 + }, + { + "row": 6, + "col": 5, + "value": 2056 + }, + { + "row": 6, + "col": 6, + "value": 2051 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 4806055779, + "cursor_x_mm": 15.666666666666666, + "cursor_y_mm": 56.6, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2051 + }, + { + "row": 0, + "col": 1, + "value": 2051 + }, + { + "row": 0, + "col": 2, + "value": 2051 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2048 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2047 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2055 + }, + { + "row": 1, + "col": 1, + "value": 2055 + }, + { + "row": 1, + "col": 2, + "value": 2054 + }, + { + "row": 1, + "col": 3, + "value": 2052 + }, + { + "row": 1, + "col": 4, + "value": 2050 + }, + { + "row": 1, + "col": 5, + "value": 2049 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2061 + }, + { + "row": 2, + "col": 1, + "value": 2064 + }, + { + "row": 2, + "col": 2, + "value": 2062 + }, + { + "row": 2, + "col": 3, + "value": 2057 + }, + { + "row": 2, + "col": 4, + "value": 2054 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2085 + }, + { + "row": 3, + "col": 1, + "value": 2087 + }, + { + "row": 3, + "col": 2, + "value": 2074 + }, + { + "row": 3, + "col": 3, + "value": 2061 + }, + { + "row": 3, + "col": 4, + "value": 2055 + }, + { + "row": 3, + "col": 5, + "value": 2051 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2134 + }, + { + "row": 4, + "col": 1, + "value": 2197 + }, + { + "row": 4, + "col": 2, + "value": 2144 + }, + { + "row": 4, + "col": 3, + "value": 2086 + }, + { + "row": 4, + "col": 4, + "value": 2063 + }, + { + "row": 4, + "col": 5, + "value": 2055 + }, + { + "row": 4, + "col": 6, + "value": 2051 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2656 + }, + { + "row": 5, + "col": 1, + "value": 2781 + }, + { + "row": 5, + "col": 2, + "value": 2188 + }, + { + "row": 5, + "col": 3, + "value": 2083 + }, + { + "row": 5, + "col": 4, + "value": 2061 + }, + { + "row": 5, + "col": 5, + "value": 2053 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2435 + }, + { + "row": 6, + "col": 1, + "value": 4045 + }, + { + "row": 6, + "col": 2, + "value": 2571 + }, + { + "row": 6, + "col": 3, + "value": 2126 + }, + { + "row": 6, + "col": 4, + "value": 2070 + }, + { + "row": 6, + "col": 5, + "value": 2056 + }, + { + "row": 6, + "col": 6, + "value": 2052 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 4964372005, + "cursor_x_mm": 17.4, + "cursor_y_mm": 59.53333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2048 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2047 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2053 + }, + { + "row": 1, + "col": 1, + "value": 2053 + }, + { + "row": 1, + "col": 2, + "value": 2052 + }, + { + "row": 1, + "col": 3, + "value": 2051 + }, + { + "row": 1, + "col": 4, + "value": 2050 + }, + { + "row": 1, + "col": 5, + "value": 2049 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2047 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2057 + }, + { + "row": 2, + "col": 1, + "value": 2058 + }, + { + "row": 2, + "col": 2, + "value": 2058 + }, + { + "row": 2, + "col": 3, + "value": 2055 + }, + { + "row": 2, + "col": 4, + "value": 2053 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2049 + }, + { + "row": 2, + "col": 7, + "value": 2048 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2047 + }, + { + "row": 3, + "col": 0, + "value": 2071 + }, + { + "row": 3, + "col": 1, + "value": 2073 + }, + { + "row": 3, + "col": 2, + "value": 2066 + }, + { + "row": 3, + "col": 3, + "value": 2059 + }, + { + "row": 3, + "col": 4, + "value": 2054 + }, + { + "row": 3, + "col": 5, + "value": 2051 + }, + { + "row": 3, + "col": 6, + "value": 2049 + }, + { + "row": 3, + "col": 7, + "value": 2048 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2047 + }, + { + "row": 4, + "col": 0, + "value": 2095 + }, + { + "row": 4, + "col": 1, + "value": 2123 + }, + { + "row": 4, + "col": 2, + "value": 2108 + }, + { + "row": 4, + "col": 3, + "value": 2078 + }, + { + "row": 4, + "col": 4, + "value": 2062 + }, + { + "row": 4, + "col": 5, + "value": 2054 + }, + { + "row": 4, + "col": 6, + "value": 2051 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2289 + }, + { + "row": 5, + "col": 1, + "value": 2390 + }, + { + "row": 5, + "col": 2, + "value": 2163 + }, + { + "row": 5, + "col": 3, + "value": 2083 + }, + { + "row": 5, + "col": 4, + "value": 2061 + }, + { + "row": 5, + "col": 5, + "value": 2053 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2333 + }, + { + "row": 6, + "col": 1, + "value": 3915 + }, + { + "row": 6, + "col": 2, + "value": 2741 + }, + { + "row": 6, + "col": 3, + "value": 2143 + }, + { + "row": 6, + "col": 4, + "value": 2074 + }, + { + "row": 6, + "col": 5, + "value": 2057 + }, + { + "row": 6, + "col": 6, + "value": 2052 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 5125219402, + "cursor_x_mm": 20.46666666666667, + "cursor_y_mm": 58.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2048 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2052 + }, + { + "row": 1, + "col": 1, + "value": 2053 + }, + { + "row": 1, + "col": 2, + "value": 2053 + }, + { + "row": 1, + "col": 3, + "value": 2051 + }, + { + "row": 1, + "col": 4, + "value": 2050 + }, + { + "row": 1, + "col": 5, + "value": 2049 + }, + { + "row": 1, + "col": 6, + "value": 2048 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2056 + }, + { + "row": 2, + "col": 1, + "value": 2058 + }, + { + "row": 2, + "col": 2, + "value": 2058 + }, + { + "row": 2, + "col": 3, + "value": 2056 + }, + { + "row": 2, + "col": 4, + "value": 2053 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2050 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2069 + }, + { + "row": 3, + "col": 1, + "value": 2073 + }, + { + "row": 3, + "col": 2, + "value": 2069 + }, + { + "row": 3, + "col": 3, + "value": 2061 + }, + { + "row": 3, + "col": 4, + "value": 2055 + }, + { + "row": 3, + "col": 5, + "value": 2052 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2086 + }, + { + "row": 4, + "col": 1, + "value": 2118 + }, + { + "row": 4, + "col": 2, + "value": 2119 + }, + { + "row": 4, + "col": 3, + "value": 2087 + }, + { + "row": 4, + "col": 4, + "value": 2066 + }, + { + "row": 4, + "col": 5, + "value": 2056 + }, + { + "row": 4, + "col": 6, + "value": 2052 + }, + { + "row": 4, + "col": 7, + "value": 2050 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2216 + }, + { + "row": 5, + "col": 1, + "value": 2434 + }, + { + "row": 5, + "col": 2, + "value": 2224 + }, + { + "row": 5, + "col": 3, + "value": 2098 + }, + { + "row": 5, + "col": 4, + "value": 2065 + }, + { + "row": 5, + "col": 5, + "value": 2055 + }, + { + "row": 5, + "col": 6, + "value": 2051 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2201 + }, + { + "row": 6, + "col": 1, + "value": 3323 + }, + { + "row": 6, + "col": 2, + "value": 3418 + }, + { + "row": 6, + "col": 3, + "value": 2213 + }, + { + "row": 6, + "col": 4, + "value": 2085 + }, + { + "row": 6, + "col": 5, + "value": 2061 + }, + { + "row": 6, + "col": 6, + "value": 2053 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 5269858719, + "cursor_x_mm": 20.733333333333334, + "cursor_y_mm": 52.86666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2051 + }, + { + "row": 0, + "col": 1, + "value": 2052 + }, + { + "row": 0, + "col": 2, + "value": 2052 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2055 + }, + { + "row": 1, + "col": 1, + "value": 2056 + }, + { + "row": 1, + "col": 2, + "value": 2055 + }, + { + "row": 1, + "col": 3, + "value": 2053 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2060 + }, + { + "row": 2, + "col": 1, + "value": 2064 + }, + { + "row": 2, + "col": 2, + "value": 2065 + }, + { + "row": 2, + "col": 3, + "value": 2061 + }, + { + "row": 2, + "col": 4, + "value": 2056 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2050 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2083 + }, + { + "row": 3, + "col": 1, + "value": 2095 + }, + { + "row": 3, + "col": 2, + "value": 2085 + }, + { + "row": 3, + "col": 3, + "value": 2069 + }, + { + "row": 3, + "col": 4, + "value": 2058 + }, + { + "row": 3, + "col": 5, + "value": 2053 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2107 + }, + { + "row": 4, + "col": 1, + "value": 2197 + }, + { + "row": 4, + "col": 2, + "value": 2210 + }, + { + "row": 4, + "col": 3, + "value": 2117 + }, + { + "row": 4, + "col": 4, + "value": 2073 + }, + { + "row": 4, + "col": 5, + "value": 2058 + }, + { + "row": 4, + "col": 6, + "value": 2052 + }, + { + "row": 4, + "col": 7, + "value": 2050 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2335 + }, + { + "row": 5, + "col": 1, + "value": 3278 + }, + { + "row": 5, + "col": 2, + "value": 2427 + }, + { + "row": 5, + "col": 3, + "value": 2118 + }, + { + "row": 5, + "col": 4, + "value": 2069 + }, + { + "row": 5, + "col": 5, + "value": 2056 + }, + { + "row": 5, + "col": 6, + "value": 2051 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2185 + }, + { + "row": 6, + "col": 1, + "value": 3128 + }, + { + "row": 6, + "col": 2, + "value": 3447 + }, + { + "row": 6, + "col": 3, + "value": 2226 + }, + { + "row": 6, + "col": 4, + "value": 2087 + }, + { + "row": 6, + "col": 5, + "value": 2061 + }, + { + "row": 6, + "col": 6, + "value": 2053 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 5428190114, + "cursor_x_mm": 20.066666666666666, + "cursor_y_mm": 45.93333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2053 + }, + { + "row": 0, + "col": 1, + "value": 2054 + }, + { + "row": 0, + "col": 2, + "value": 2054 + }, + { + "row": 0, + "col": 3, + "value": 2053 + }, + { + "row": 0, + "col": 4, + "value": 2052 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2061 + }, + { + "row": 1, + "col": 1, + "value": 2063 + }, + { + "row": 1, + "col": 2, + "value": 2061 + }, + { + "row": 1, + "col": 3, + "value": 2057 + }, + { + "row": 1, + "col": 4, + "value": 2053 + }, + { + "row": 1, + "col": 5, + "value": 2051 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2071 + }, + { + "row": 2, + "col": 1, + "value": 2083 + }, + { + "row": 2, + "col": 2, + "value": 2083 + }, + { + "row": 2, + "col": 3, + "value": 2071 + }, + { + "row": 2, + "col": 4, + "value": 2060 + }, + { + "row": 2, + "col": 5, + "value": 2054 + }, + { + "row": 2, + "col": 6, + "value": 2051 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2130 + }, + { + "row": 3, + "col": 1, + "value": 2181 + }, + { + "row": 3, + "col": 2, + "value": 2133 + }, + { + "row": 3, + "col": 3, + "value": 2082 + }, + { + "row": 3, + "col": 4, + "value": 2062 + }, + { + "row": 3, + "col": 5, + "value": 2054 + }, + { + "row": 3, + "col": 6, + "value": 2051 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2164 + }, + { + "row": 4, + "col": 1, + "value": 2622 + }, + { + "row": 4, + "col": 2, + "value": 2653 + }, + { + "row": 4, + "col": 3, + "value": 2171 + }, + { + "row": 4, + "col": 4, + "value": 2081 + }, + { + "row": 4, + "col": 5, + "value": 2060 + }, + { + "row": 4, + "col": 6, + "value": 2053 + }, + { + "row": 4, + "col": 7, + "value": 2050 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2487 + }, + { + "row": 5, + "col": 1, + "value": 4083 + }, + { + "row": 5, + "col": 2, + "value": 2529 + }, + { + "row": 5, + "col": 3, + "value": 2121 + }, + { + "row": 5, + "col": 4, + "value": 2069 + }, + { + "row": 5, + "col": 5, + "value": 2056 + }, + { + "row": 5, + "col": 6, + "value": 2051 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2144 + }, + { + "row": 6, + "col": 1, + "value": 2410 + }, + { + "row": 6, + "col": 2, + "value": 2425 + }, + { + "row": 6, + "col": 3, + "value": 2149 + }, + { + "row": 6, + "col": 4, + "value": 2078 + }, + { + "row": 6, + "col": 5, + "value": 2059 + }, + { + "row": 6, + "col": 6, + "value": 2053 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 5571478795, + "cursor_x_mm": 19.53333333333333, + "cursor_y_mm": 37.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2058 + }, + { + "row": 0, + "col": 1, + "value": 2060 + }, + { + "row": 0, + "col": 2, + "value": 2060 + }, + { + "row": 0, + "col": 3, + "value": 2057 + }, + { + "row": 0, + "col": 4, + "value": 2054 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2074 + }, + { + "row": 1, + "col": 1, + "value": 2079 + }, + { + "row": 1, + "col": 2, + "value": 2073 + }, + { + "row": 1, + "col": 3, + "value": 2063 + }, + { + "row": 1, + "col": 4, + "value": 2056 + }, + { + "row": 1, + "col": 5, + "value": 2052 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2096 + }, + { + "row": 2, + "col": 1, + "value": 2142 + }, + { + "row": 2, + "col": 2, + "value": 2139 + }, + { + "row": 2, + "col": 3, + "value": 2093 + }, + { + "row": 2, + "col": 4, + "value": 2067 + }, + { + "row": 2, + "col": 5, + "value": 2056 + }, + { + "row": 2, + "col": 6, + "value": 2052 + }, + { + "row": 2, + "col": 7, + "value": 2050 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2281 + }, + { + "row": 3, + "col": 1, + "value": 2644 + }, + { + "row": 3, + "col": 2, + "value": 2259 + }, + { + "row": 3, + "col": 3, + "value": 2100 + }, + { + "row": 3, + "col": 4, + "value": 2066 + }, + { + "row": 3, + "col": 5, + "value": 2055 + }, + { + "row": 3, + "col": 6, + "value": 2051 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2222 + }, + { + "row": 4, + "col": 1, + "value": 3569 + }, + { + "row": 4, + "col": 2, + "value": 3399 + }, + { + "row": 4, + "col": 3, + "value": 2202 + }, + { + "row": 4, + "col": 4, + "value": 2083 + }, + { + "row": 4, + "col": 5, + "value": 2060 + }, + { + "row": 4, + "col": 6, + "value": 2053 + }, + { + "row": 4, + "col": 7, + "value": 2050 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2301 + }, + { + "row": 5, + "col": 1, + "value": 2733 + }, + { + "row": 5, + "col": 2, + "value": 2276 + }, + { + "row": 5, + "col": 3, + "value": 2102 + }, + { + "row": 5, + "col": 4, + "value": 2066 + }, + { + "row": 5, + "col": 5, + "value": 2055 + }, + { + "row": 5, + "col": 6, + "value": 2051 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2099 + }, + { + "row": 6, + "col": 1, + "value": 2151 + }, + { + "row": 6, + "col": 2, + "value": 2148 + }, + { + "row": 6, + "col": 3, + "value": 2096 + }, + { + "row": 6, + "col": 4, + "value": 2068 + }, + { + "row": 6, + "col": 5, + "value": 2057 + }, + { + "row": 6, + "col": 6, + "value": 2052 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 5729725836, + "cursor_x_mm": 18.733333333333334, + "cursor_y_mm": 28.466666666666665, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2072 + }, + { + "row": 0, + "col": 1, + "value": 2083 + }, + { + "row": 0, + "col": 2, + "value": 2081 + }, + { + "row": 0, + "col": 3, + "value": 2069 + }, + { + "row": 0, + "col": 4, + "value": 2059 + }, + { + "row": 0, + "col": 5, + "value": 2054 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2137 + }, + { + "row": 1, + "col": 1, + "value": 2174 + }, + { + "row": 1, + "col": 2, + "value": 2121 + }, + { + "row": 1, + "col": 3, + "value": 2077 + }, + { + "row": 1, + "col": 4, + "value": 2060 + }, + { + "row": 1, + "col": 5, + "value": 2053 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2190 + }, + { + "row": 2, + "col": 1, + "value": 2698 + }, + { + "row": 2, + "col": 2, + "value": 2519 + }, + { + "row": 2, + "col": 3, + "value": 2145 + }, + { + "row": 2, + "col": 4, + "value": 2076 + }, + { + "row": 2, + "col": 5, + "value": 2058 + }, + { + "row": 2, + "col": 6, + "value": 2052 + }, + { + "row": 2, + "col": 7, + "value": 2050 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2670 + }, + { + "row": 3, + "col": 1, + "value": 4068 + }, + { + "row": 3, + "col": 2, + "value": 2395 + }, + { + "row": 3, + "col": 3, + "value": 2108 + }, + { + "row": 3, + "col": 4, + "value": 2066 + }, + { + "row": 3, + "col": 5, + "value": 2055 + }, + { + "row": 3, + "col": 6, + "value": 2051 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2168 + }, + { + "row": 4, + "col": 1, + "value": 2486 + }, + { + "row": 4, + "col": 2, + "value": 2385 + }, + { + "row": 4, + "col": 3, + "value": 2133 + }, + { + "row": 4, + "col": 4, + "value": 2074 + }, + { + "row": 4, + "col": 5, + "value": 2058 + }, + { + "row": 4, + "col": 6, + "value": 2052 + }, + { + "row": 4, + "col": 7, + "value": 2050 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2117 + }, + { + "row": 5, + "col": 1, + "value": 2141 + }, + { + "row": 5, + "col": 2, + "value": 2106 + }, + { + "row": 5, + "col": 3, + "value": 2074 + }, + { + "row": 5, + "col": 4, + "value": 2059 + }, + { + "row": 5, + "col": 5, + "value": 2053 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2068 + }, + { + "row": 6, + "col": 1, + "value": 2076 + }, + { + "row": 6, + "col": 2, + "value": 2075 + }, + { + "row": 6, + "col": 3, + "value": 2066 + }, + { + "row": 6, + "col": 4, + "value": 2058 + }, + { + "row": 6, + "col": 5, + "value": 2053 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 5888681454, + "cursor_x_mm": 18.866666666666667, + "cursor_y_mm": 19.53333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2108 + }, + { + "row": 0, + "col": 1, + "value": 2174 + }, + { + "row": 0, + "col": 2, + "value": 2160 + }, + { + "row": 0, + "col": 3, + "value": 2097 + }, + { + "row": 0, + "col": 4, + "value": 2067 + }, + { + "row": 0, + "col": 5, + "value": 2056 + }, + { + "row": 0, + "col": 6, + "value": 2052 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2380 + }, + { + "row": 1, + "col": 1, + "value": 2906 + }, + { + "row": 1, + "col": 2, + "value": 2274 + }, + { + "row": 1, + "col": 3, + "value": 2099 + }, + { + "row": 1, + "col": 4, + "value": 2065 + }, + { + "row": 1, + "col": 5, + "value": 2055 + }, + { + "row": 1, + "col": 6, + "value": 2051 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2249 + }, + { + "row": 2, + "col": 1, + "value": 3711 + }, + { + "row": 2, + "col": 2, + "value": 3164 + }, + { + "row": 2, + "col": 3, + "value": 2180 + }, + { + "row": 2, + "col": 4, + "value": 2080 + }, + { + "row": 2, + "col": 5, + "value": 2059 + }, + { + "row": 2, + "col": 6, + "value": 2053 + }, + { + "row": 2, + "col": 7, + "value": 2050 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2273 + }, + { + "row": 3, + "col": 1, + "value": 2510 + }, + { + "row": 3, + "col": 2, + "value": 2213 + }, + { + "row": 3, + "col": 3, + "value": 2093 + }, + { + "row": 3, + "col": 4, + "value": 2064 + }, + { + "row": 3, + "col": 5, + "value": 2054 + }, + { + "row": 3, + "col": 6, + "value": 2051 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2094 + }, + { + "row": 4, + "col": 1, + "value": 2131 + }, + { + "row": 4, + "col": 2, + "value": 2124 + }, + { + "row": 4, + "col": 3, + "value": 2086 + }, + { + "row": 4, + "col": 4, + "value": 2065 + }, + { + "row": 4, + "col": 5, + "value": 2055 + }, + { + "row": 4, + "col": 6, + "value": 2051 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2072 + }, + { + "row": 5, + "col": 1, + "value": 2076 + }, + { + "row": 5, + "col": 2, + "value": 2070 + }, + { + "row": 5, + "col": 3, + "value": 2061 + }, + { + "row": 5, + "col": 4, + "value": 2055 + }, + { + "row": 5, + "col": 5, + "value": 2052 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2057 + }, + { + "row": 6, + "col": 1, + "value": 2059 + }, + { + "row": 6, + "col": 2, + "value": 2059 + }, + { + "row": 6, + "col": 3, + "value": 2056 + }, + { + "row": 6, + "col": 4, + "value": 2053 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 6046042470, + "cursor_x_mm": 19.53333333333333, + "cursor_y_mm": 10.333333333333332, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2184 + }, + { + "row": 0, + "col": 1, + "value": 2767 + }, + { + "row": 0, + "col": 2, + "value": 2678 + }, + { + "row": 0, + "col": 3, + "value": 2165 + }, + { + "row": 0, + "col": 4, + "value": 2079 + }, + { + "row": 0, + "col": 5, + "value": 2059 + }, + { + "row": 0, + "col": 6, + "value": 2053 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2547 + }, + { + "row": 1, + "col": 1, + "value": 4047 + }, + { + "row": 1, + "col": 2, + "value": 2452 + }, + { + "row": 1, + "col": 3, + "value": 2114 + }, + { + "row": 1, + "col": 4, + "value": 2068 + }, + { + "row": 1, + "col": 5, + "value": 2056 + }, + { + "row": 1, + "col": 6, + "value": 2051 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2146 + }, + { + "row": 2, + "col": 1, + "value": 2384 + }, + { + "row": 2, + "col": 2, + "value": 2356 + }, + { + "row": 2, + "col": 3, + "value": 2135 + }, + { + "row": 2, + "col": 4, + "value": 2075 + }, + { + "row": 2, + "col": 5, + "value": 2058 + }, + { + "row": 2, + "col": 6, + "value": 2052 + }, + { + "row": 2, + "col": 7, + "value": 2050 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2106 + }, + { + "row": 3, + "col": 1, + "value": 2129 + }, + { + "row": 3, + "col": 2, + "value": 2103 + }, + { + "row": 3, + "col": 3, + "value": 2074 + }, + { + "row": 3, + "col": 4, + "value": 2059 + }, + { + "row": 3, + "col": 5, + "value": 2053 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2066 + }, + { + "row": 4, + "col": 1, + "value": 2073 + }, + { + "row": 4, + "col": 2, + "value": 2073 + }, + { + "row": 4, + "col": 3, + "value": 2065 + }, + { + "row": 4, + "col": 4, + "value": 2058 + }, + { + "row": 4, + "col": 5, + "value": 2053 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2058 + }, + { + "row": 5, + "col": 1, + "value": 2059 + }, + { + "row": 5, + "col": 2, + "value": 2058 + }, + { + "row": 5, + "col": 3, + "value": 2055 + }, + { + "row": 5, + "col": 4, + "value": 2052 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2052 + }, + { + "row": 6, + "col": 1, + "value": 2053 + }, + { + "row": 6, + "col": 2, + "value": 2053 + }, + { + "row": 6, + "col": 3, + "value": 2052 + }, + { + "row": 6, + "col": 4, + "value": 2051 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 6204180409, + "cursor_x_mm": 19.933333333333334, + "cursor_y_mm": 4.866666666666666, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2218 + }, + { + "row": 0, + "col": 1, + "value": 3534 + }, + { + "row": 0, + "col": 2, + "value": 3431 + }, + { + "row": 0, + "col": 3, + "value": 2206 + }, + { + "row": 0, + "col": 4, + "value": 2084 + }, + { + "row": 0, + "col": 5, + "value": 2060 + }, + { + "row": 0, + "col": 6, + "value": 2053 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2299 + }, + { + "row": 1, + "col": 1, + "value": 2752 + }, + { + "row": 1, + "col": 2, + "value": 2284 + }, + { + "row": 1, + "col": 3, + "value": 2103 + }, + { + "row": 1, + "col": 4, + "value": 2066 + }, + { + "row": 1, + "col": 5, + "value": 2055 + }, + { + "row": 1, + "col": 6, + "value": 2051 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2099 + }, + { + "row": 2, + "col": 1, + "value": 2152 + }, + { + "row": 2, + "col": 2, + "value": 2150 + }, + { + "row": 2, + "col": 3, + "value": 2097 + }, + { + "row": 2, + "col": 4, + "value": 2068 + }, + { + "row": 2, + "col": 5, + "value": 2057 + }, + { + "row": 2, + "col": 6, + "value": 2052 + }, + { + "row": 2, + "col": 7, + "value": 2050 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2076 + }, + { + "row": 3, + "col": 1, + "value": 2082 + }, + { + "row": 3, + "col": 2, + "value": 2075 + }, + { + "row": 3, + "col": 3, + "value": 2064 + }, + { + "row": 3, + "col": 4, + "value": 2056 + }, + { + "row": 3, + "col": 5, + "value": 2052 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2058 + }, + { + "row": 4, + "col": 1, + "value": 2061 + }, + { + "row": 4, + "col": 2, + "value": 2061 + }, + { + "row": 4, + "col": 3, + "value": 2058 + }, + { + "row": 4, + "col": 4, + "value": 2054 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2054 + }, + { + "row": 5, + "col": 1, + "value": 2054 + }, + { + "row": 5, + "col": 2, + "value": 2054 + }, + { + "row": 5, + "col": 3, + "value": 2052 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2050 + }, + { + "row": 6, + "col": 1, + "value": 2051 + }, + { + "row": 6, + "col": 2, + "value": 2051 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 6363425761, + "cursor_x_mm": 22.733333333333334, + "cursor_y_mm": 2.8666666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2155 + }, + { + "row": 0, + "col": 1, + "value": 2878 + }, + { + "row": 0, + "col": 2, + "value": 3881 + }, + { + "row": 0, + "col": 3, + "value": 2300 + }, + { + "row": 0, + "col": 4, + "value": 2097 + }, + { + "row": 0, + "col": 5, + "value": 2064 + }, + { + "row": 0, + "col": 6, + "value": 2054 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2180 + }, + { + "row": 1, + "col": 1, + "value": 2438 + }, + { + "row": 1, + "col": 2, + "value": 2289 + }, + { + "row": 1, + "col": 3, + "value": 2114 + }, + { + "row": 1, + "col": 4, + "value": 2070 + }, + { + "row": 1, + "col": 5, + "value": 2057 + }, + { + "row": 1, + "col": 6, + "value": 2052 + }, + { + "row": 1, + "col": 7, + "value": 2050 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2081 + }, + { + "row": 2, + "col": 1, + "value": 2114 + }, + { + "row": 2, + "col": 2, + "value": 2127 + }, + { + "row": 2, + "col": 3, + "value": 2095 + }, + { + "row": 2, + "col": 4, + "value": 2069 + }, + { + "row": 2, + "col": 5, + "value": 2058 + }, + { + "row": 2, + "col": 6, + "value": 2052 + }, + { + "row": 2, + "col": 7, + "value": 2050 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2068 + }, + { + "row": 3, + "col": 1, + "value": 2074 + }, + { + "row": 3, + "col": 2, + "value": 2071 + }, + { + "row": 3, + "col": 3, + "value": 2063 + }, + { + "row": 3, + "col": 4, + "value": 2056 + }, + { + "row": 3, + "col": 5, + "value": 2052 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2056 + }, + { + "row": 4, + "col": 1, + "value": 2058 + }, + { + "row": 4, + "col": 2, + "value": 2059 + }, + { + "row": 4, + "col": 3, + "value": 2057 + }, + { + "row": 4, + "col": 4, + "value": 2054 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2052 + }, + { + "row": 5, + "col": 1, + "value": 2053 + }, + { + "row": 5, + "col": 2, + "value": 2053 + }, + { + "row": 5, + "col": 3, + "value": 2052 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2050 + }, + { + "row": 6, + "col": 1, + "value": 2050 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 6506658550, + "cursor_x_mm": 25.133333333333333, + "cursor_y_mm": 4.2, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2126 + }, + { + "row": 0, + "col": 1, + "value": 2567 + }, + { + "row": 0, + "col": 2, + "value": 4032 + }, + { + "row": 0, + "col": 3, + "value": 2432 + }, + { + "row": 0, + "col": 4, + "value": 2112 + }, + { + "row": 0, + "col": 5, + "value": 2067 + }, + { + "row": 0, + "col": 6, + "value": 2055 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2148 + }, + { + "row": 1, + "col": 1, + "value": 2380 + }, + { + "row": 1, + "col": 2, + "value": 2342 + }, + { + "row": 1, + "col": 3, + "value": 2132 + }, + { + "row": 1, + "col": 4, + "value": 2074 + }, + { + "row": 1, + "col": 5, + "value": 2058 + }, + { + "row": 1, + "col": 6, + "value": 2052 + }, + { + "row": 1, + "col": 7, + "value": 2050 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2076 + }, + { + "row": 2, + "col": 1, + "value": 2106 + }, + { + "row": 2, + "col": 2, + "value": 2127 + }, + { + "row": 2, + "col": 3, + "value": 2101 + }, + { + "row": 2, + "col": 4, + "value": 2073 + }, + { + "row": 2, + "col": 5, + "value": 2059 + }, + { + "row": 2, + "col": 6, + "value": 2053 + }, + { + "row": 2, + "col": 7, + "value": 2050 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2066 + }, + { + "row": 3, + "col": 1, + "value": 2073 + }, + { + "row": 3, + "col": 2, + "value": 2072 + }, + { + "row": 3, + "col": 3, + "value": 2065 + }, + { + "row": 3, + "col": 4, + "value": 2058 + }, + { + "row": 3, + "col": 5, + "value": 2053 + }, + { + "row": 3, + "col": 6, + "value": 2050 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2055 + }, + { + "row": 4, + "col": 1, + "value": 2058 + }, + { + "row": 4, + "col": 2, + "value": 2059 + }, + { + "row": 4, + "col": 3, + "value": 2057 + }, + { + "row": 4, + "col": 4, + "value": 2055 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2050 + }, + { + "row": 4, + "col": 7, + "value": 2049 + }, + { + "row": 4, + "col": 8, + "value": 2048 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2052 + }, + { + "row": 5, + "col": 1, + "value": 2053 + }, + { + "row": 5, + "col": 2, + "value": 2053 + }, + { + "row": 5, + "col": 3, + "value": 2052 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2048 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2047 + }, + { + "row": 6, + "col": 0, + "value": 2050 + }, + { + "row": 6, + "col": 1, + "value": 2050 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2048 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2047 + } + ] + }, + { + "timestamp_ns": 6681255347, + "cursor_x_mm": 25.4, + "cursor_y_mm": 11.533333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2110 + }, + { + "row": 0, + "col": 1, + "value": 2375 + }, + { + "row": 0, + "col": 2, + "value": 3466 + }, + { + "row": 0, + "col": 3, + "value": 2432 + }, + { + "row": 0, + "col": 4, + "value": 2117 + }, + { + "row": 0, + "col": 5, + "value": 2069 + }, + { + "row": 0, + "col": 6, + "value": 2056 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2189 + }, + { + "row": 1, + "col": 1, + "value": 3113 + }, + { + "row": 1, + "col": 2, + "value": 3272 + }, + { + "row": 1, + "col": 3, + "value": 2211 + }, + { + "row": 1, + "col": 4, + "value": 2085 + }, + { + "row": 1, + "col": 5, + "value": 2061 + }, + { + "row": 1, + "col": 6, + "value": 2053 + }, + { + "row": 1, + "col": 7, + "value": 2050 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2091 + }, + { + "row": 2, + "col": 1, + "value": 2183 + }, + { + "row": 2, + "col": 2, + "value": 2330 + }, + { + "row": 2, + "col": 3, + "value": 2196 + }, + { + "row": 2, + "col": 4, + "value": 2094 + }, + { + "row": 2, + "col": 5, + "value": 2065 + }, + { + "row": 2, + "col": 6, + "value": 2055 + }, + { + "row": 2, + "col": 7, + "value": 2051 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2081 + }, + { + "row": 3, + "col": 1, + "value": 2105 + }, + { + "row": 3, + "col": 2, + "value": 2106 + }, + { + "row": 3, + "col": 3, + "value": 2082 + }, + { + "row": 3, + "col": 4, + "value": 2064 + }, + { + "row": 3, + "col": 5, + "value": 2056 + }, + { + "row": 3, + "col": 6, + "value": 2052 + }, + { + "row": 3, + "col": 7, + "value": 2050 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2060 + }, + { + "row": 4, + "col": 1, + "value": 2066 + }, + { + "row": 4, + "col": 2, + "value": 2070 + }, + { + "row": 4, + "col": 3, + "value": 2066 + }, + { + "row": 4, + "col": 4, + "value": 2060 + }, + { + "row": 4, + "col": 5, + "value": 2055 + }, + { + "row": 4, + "col": 6, + "value": 2052 + }, + { + "row": 4, + "col": 7, + "value": 2050 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2055 + }, + { + "row": 5, + "col": 1, + "value": 2057 + }, + { + "row": 5, + "col": 2, + "value": 2057 + }, + { + "row": 5, + "col": 3, + "value": 2055 + }, + { + "row": 5, + "col": 4, + "value": 2053 + }, + { + "row": 5, + "col": 5, + "value": 2051 + }, + { + "row": 5, + "col": 6, + "value": 2049 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2051 + }, + { + "row": 6, + "col": 1, + "value": 2052 + }, + { + "row": 6, + "col": 2, + "value": 2052 + }, + { + "row": 6, + "col": 3, + "value": 2052 + }, + { + "row": 6, + "col": 4, + "value": 2051 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2048 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 6840144034, + "cursor_x_mm": 25.4, + "cursor_y_mm": 19.266666666666666, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2091 + }, + { + "row": 0, + "col": 1, + "value": 2185 + }, + { + "row": 0, + "col": 2, + "value": 2346 + }, + { + "row": 0, + "col": 3, + "value": 2203 + }, + { + "row": 0, + "col": 4, + "value": 2096 + }, + { + "row": 0, + "col": 5, + "value": 2065 + }, + { + "row": 0, + "col": 6, + "value": 2055 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2187 + }, + { + "row": 1, + "col": 1, + "value": 3118 + }, + { + "row": 1, + "col": 2, + "value": 3338 + }, + { + "row": 1, + "col": 3, + "value": 2217 + }, + { + "row": 1, + "col": 4, + "value": 2086 + }, + { + "row": 1, + "col": 5, + "value": 2061 + }, + { + "row": 1, + "col": 6, + "value": 2053 + }, + { + "row": 1, + "col": 7, + "value": 2050 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2108 + }, + { + "row": 2, + "col": 1, + "value": 2359 + }, + { + "row": 2, + "col": 2, + "value": 3397 + }, + { + "row": 2, + "col": 3, + "value": 2431 + }, + { + "row": 2, + "col": 4, + "value": 2118 + }, + { + "row": 2, + "col": 5, + "value": 2069 + }, + { + "row": 2, + "col": 6, + "value": 2056 + }, + { + "row": 2, + "col": 7, + "value": 2051 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2111 + }, + { + "row": 3, + "col": 1, + "value": 2211 + }, + { + "row": 3, + "col": 2, + "value": 2222 + }, + { + "row": 3, + "col": 3, + "value": 2118 + }, + { + "row": 3, + "col": 4, + "value": 2073 + }, + { + "row": 3, + "col": 5, + "value": 2058 + }, + { + "row": 3, + "col": 6, + "value": 2052 + }, + { + "row": 3, + "col": 7, + "value": 2050 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2068 + }, + { + "row": 4, + "col": 1, + "value": 2085 + }, + { + "row": 4, + "col": 2, + "value": 2097 + }, + { + "row": 4, + "col": 3, + "value": 2087 + }, + { + "row": 4, + "col": 4, + "value": 2069 + }, + { + "row": 4, + "col": 5, + "value": 2058 + }, + { + "row": 4, + "col": 6, + "value": 2053 + }, + { + "row": 4, + "col": 7, + "value": 2050 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2061 + }, + { + "row": 5, + "col": 1, + "value": 2065 + }, + { + "row": 5, + "col": 2, + "value": 2066 + }, + { + "row": 5, + "col": 3, + "value": 2061 + }, + { + "row": 5, + "col": 4, + "value": 2056 + }, + { + "row": 5, + "col": 5, + "value": 2052 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2053 + }, + { + "row": 6, + "col": 1, + "value": 2055 + }, + { + "row": 6, + "col": 2, + "value": 2056 + }, + { + "row": 6, + "col": 3, + "value": 2055 + }, + { + "row": 6, + "col": 4, + "value": 2053 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 6981790968, + "cursor_x_mm": 25.8, + "cursor_y_mm": 28.333333333333332, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2071 + }, + { + "row": 0, + "col": 1, + "value": 2095 + }, + { + "row": 0, + "col": 2, + "value": 2113 + }, + { + "row": 0, + "col": 3, + "value": 2096 + }, + { + "row": 0, + "col": 4, + "value": 2072 + }, + { + "row": 0, + "col": 5, + "value": 2059 + }, + { + "row": 0, + "col": 6, + "value": 2053 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2126 + }, + { + "row": 1, + "col": 1, + "value": 2284 + }, + { + "row": 1, + "col": 2, + "value": 2295 + }, + { + "row": 1, + "col": 3, + "value": 2131 + }, + { + "row": 1, + "col": 4, + "value": 2075 + }, + { + "row": 1, + "col": 5, + "value": 2059 + }, + { + "row": 1, + "col": 6, + "value": 2053 + }, + { + "row": 1, + "col": 7, + "value": 2050 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2114 + }, + { + "row": 2, + "col": 1, + "value": 2437 + }, + { + "row": 2, + "col": 2, + "value": 3863 + }, + { + "row": 2, + "col": 3, + "value": 2484 + }, + { + "row": 2, + "col": 4, + "value": 2119 + }, + { + "row": 2, + "col": 5, + "value": 2069 + }, + { + "row": 2, + "col": 6, + "value": 2056 + }, + { + "row": 2, + "col": 7, + "value": 2051 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2181 + }, + { + "row": 3, + "col": 1, + "value": 2895 + }, + { + "row": 3, + "col": 2, + "value": 2971 + }, + { + "row": 3, + "col": 3, + "value": 2193 + }, + { + "row": 3, + "col": 4, + "value": 2083 + }, + { + "row": 3, + "col": 5, + "value": 2060 + }, + { + "row": 3, + "col": 6, + "value": 2053 + }, + { + "row": 3, + "col": 7, + "value": 2050 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2086 + }, + { + "row": 4, + "col": 1, + "value": 2157 + }, + { + "row": 4, + "col": 2, + "value": 2247 + }, + { + "row": 4, + "col": 3, + "value": 2162 + }, + { + "row": 4, + "col": 4, + "value": 2089 + }, + { + "row": 4, + "col": 5, + "value": 2063 + }, + { + "row": 4, + "col": 6, + "value": 2055 + }, + { + "row": 4, + "col": 7, + "value": 2051 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2076 + }, + { + "row": 5, + "col": 1, + "value": 2094 + }, + { + "row": 5, + "col": 2, + "value": 2094 + }, + { + "row": 5, + "col": 3, + "value": 2077 + }, + { + "row": 5, + "col": 4, + "value": 2062 + }, + { + "row": 5, + "col": 5, + "value": 2055 + }, + { + "row": 5, + "col": 6, + "value": 2051 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2058 + }, + { + "row": 6, + "col": 1, + "value": 2063 + }, + { + "row": 6, + "col": 2, + "value": 2066 + }, + { + "row": 6, + "col": 3, + "value": 2064 + }, + { + "row": 6, + "col": 4, + "value": 2058 + }, + { + "row": 6, + "col": 5, + "value": 2054 + }, + { + "row": 6, + "col": 6, + "value": 2051 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 7141665967, + "cursor_x_mm": 26.733333333333334, + "cursor_y_mm": 36.33333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2059 + }, + { + "row": 0, + "col": 1, + "value": 2065 + }, + { + "row": 0, + "col": 2, + "value": 2069 + }, + { + "row": 0, + "col": 3, + "value": 2066 + }, + { + "row": 0, + "col": 4, + "value": 2060 + }, + { + "row": 0, + "col": 5, + "value": 2055 + }, + { + "row": 0, + "col": 6, + "value": 2052 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2077 + }, + { + "row": 1, + "col": 1, + "value": 2100 + }, + { + "row": 1, + "col": 2, + "value": 2105 + }, + { + "row": 1, + "col": 3, + "value": 2083 + }, + { + "row": 1, + "col": 4, + "value": 2065 + }, + { + "row": 1, + "col": 5, + "value": 2056 + }, + { + "row": 1, + "col": 6, + "value": 2052 + }, + { + "row": 1, + "col": 7, + "value": 2050 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2085 + }, + { + "row": 2, + "col": 1, + "value": 2161 + }, + { + "row": 2, + "col": 2, + "value": 2302 + }, + { + "row": 2, + "col": 3, + "value": 2203 + }, + { + "row": 2, + "col": 4, + "value": 2099 + }, + { + "row": 2, + "col": 5, + "value": 2066 + }, + { + "row": 2, + "col": 6, + "value": 2056 + }, + { + "row": 2, + "col": 7, + "value": 2051 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2164 + }, + { + "row": 3, + "col": 1, + "value": 2869 + }, + { + "row": 3, + "col": 2, + "value": 3396 + }, + { + "row": 3, + "col": 3, + "value": 2242 + }, + { + "row": 3, + "col": 4, + "value": 2090 + }, + { + "row": 3, + "col": 5, + "value": 2062 + }, + { + "row": 3, + "col": 6, + "value": 2054 + }, + { + "row": 3, + "col": 7, + "value": 2050 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2102 + }, + { + "row": 4, + "col": 1, + "value": 2324 + }, + { + "row": 4, + "col": 2, + "value": 3521 + }, + { + "row": 4, + "col": 3, + "value": 2547 + }, + { + "row": 4, + "col": 4, + "value": 2130 + }, + { + "row": 4, + "col": 5, + "value": 2071 + }, + { + "row": 4, + "col": 6, + "value": 2057 + }, + { + "row": 4, + "col": 7, + "value": 2052 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2109 + }, + { + "row": 5, + "col": 1, + "value": 2218 + }, + { + "row": 5, + "col": 2, + "value": 2256 + }, + { + "row": 5, + "col": 3, + "value": 2132 + }, + { + "row": 5, + "col": 4, + "value": 2077 + }, + { + "row": 5, + "col": 5, + "value": 2059 + }, + { + "row": 5, + "col": 6, + "value": 2053 + }, + { + "row": 5, + "col": 7, + "value": 2050 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2067 + }, + { + "row": 6, + "col": 1, + "value": 2086 + }, + { + "row": 6, + "col": 2, + "value": 2102 + }, + { + "row": 6, + "col": 3, + "value": 2092 + }, + { + "row": 6, + "col": 4, + "value": 2072 + }, + { + "row": 6, + "col": 5, + "value": 2059 + }, + { + "row": 6, + "col": 6, + "value": 2053 + }, + { + "row": 6, + "col": 7, + "value": 2051 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 7300106205, + "cursor_x_mm": 27.0, + "cursor_y_mm": 44.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2054 + }, + { + "row": 0, + "col": 1, + "value": 2057 + }, + { + "row": 0, + "col": 2, + "value": 2058 + }, + { + "row": 0, + "col": 3, + "value": 2058 + }, + { + "row": 0, + "col": 4, + "value": 2055 + }, + { + "row": 0, + "col": 5, + "value": 2053 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2063 + }, + { + "row": 1, + "col": 1, + "value": 2070 + }, + { + "row": 1, + "col": 2, + "value": 2072 + }, + { + "row": 1, + "col": 3, + "value": 2066 + }, + { + "row": 1, + "col": 4, + "value": 2059 + }, + { + "row": 1, + "col": 5, + "value": 2054 + }, + { + "row": 1, + "col": 6, + "value": 2051 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2069 + }, + { + "row": 2, + "col": 1, + "value": 2094 + }, + { + "row": 2, + "col": 2, + "value": 2121 + }, + { + "row": 2, + "col": 3, + "value": 2108 + }, + { + "row": 2, + "col": 4, + "value": 2078 + }, + { + "row": 2, + "col": 5, + "value": 2062 + }, + { + "row": 2, + "col": 6, + "value": 2054 + }, + { + "row": 2, + "col": 7, + "value": 2051 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2115 + }, + { + "row": 3, + "col": 1, + "value": 2281 + }, + { + "row": 3, + "col": 2, + "value": 2384 + }, + { + "row": 3, + "col": 3, + "value": 2163 + }, + { + "row": 3, + "col": 4, + "value": 2083 + }, + { + "row": 3, + "col": 5, + "value": 2061 + }, + { + "row": 3, + "col": 6, + "value": 2053 + }, + { + "row": 3, + "col": 7, + "value": 2050 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2100 + }, + { + "row": 4, + "col": 1, + "value": 2323 + }, + { + "row": 4, + "col": 2, + "value": 3885 + }, + { + "row": 4, + "col": 3, + "value": 2757 + }, + { + "row": 4, + "col": 4, + "value": 2145 + }, + { + "row": 4, + "col": 5, + "value": 2074 + }, + { + "row": 4, + "col": 6, + "value": 2058 + }, + { + "row": 4, + "col": 7, + "value": 2052 + }, + { + "row": 4, + "col": 8, + "value": 2050 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2142 + }, + { + "row": 5, + "col": 1, + "value": 2576 + }, + { + "row": 5, + "col": 2, + "value": 3026 + }, + { + "row": 5, + "col": 3, + "value": 2235 + }, + { + "row": 5, + "col": 4, + "value": 2091 + }, + { + "row": 5, + "col": 5, + "value": 2063 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2051 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2078 + }, + { + "row": 6, + "col": 1, + "value": 2129 + }, + { + "row": 6, + "col": 2, + "value": 2210 + }, + { + "row": 6, + "col": 3, + "value": 2166 + }, + { + "row": 6, + "col": 4, + "value": 2094 + }, + { + "row": 6, + "col": 5, + "value": 2066 + }, + { + "row": 6, + "col": 6, + "value": 2055 + }, + { + "row": 6, + "col": 7, + "value": 2051 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 7458464690, + "cursor_x_mm": 27.4, + "cursor_y_mm": 51.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2051 + }, + { + "row": 0, + "col": 1, + "value": 2053 + }, + { + "row": 0, + "col": 2, + "value": 2053 + }, + { + "row": 0, + "col": 3, + "value": 2053 + }, + { + "row": 0, + "col": 4, + "value": 2052 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2056 + }, + { + "row": 1, + "col": 1, + "value": 2059 + }, + { + "row": 1, + "col": 2, + "value": 2059 + }, + { + "row": 1, + "col": 3, + "value": 2057 + }, + { + "row": 1, + "col": 4, + "value": 2054 + }, + { + "row": 1, + "col": 5, + "value": 2052 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2060 + }, + { + "row": 2, + "col": 1, + "value": 2069 + }, + { + "row": 2, + "col": 2, + "value": 2075 + }, + { + "row": 2, + "col": 3, + "value": 2073 + }, + { + "row": 2, + "col": 4, + "value": 2064 + }, + { + "row": 2, + "col": 5, + "value": 2057 + }, + { + "row": 2, + "col": 6, + "value": 2053 + }, + { + "row": 2, + "col": 7, + "value": 2050 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2082 + }, + { + "row": 3, + "col": 1, + "value": 2118 + }, + { + "row": 3, + "col": 2, + "value": 2133 + }, + { + "row": 3, + "col": 3, + "value": 2099 + }, + { + "row": 3, + "col": 4, + "value": 2071 + }, + { + "row": 3, + "col": 5, + "value": 2058 + }, + { + "row": 3, + "col": 6, + "value": 2053 + }, + { + "row": 3, + "col": 7, + "value": 2050 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2086 + }, + { + "row": 4, + "col": 1, + "value": 2183 + }, + { + "row": 4, + "col": 2, + "value": 2479 + }, + { + "row": 4, + "col": 3, + "value": 2316 + }, + { + "row": 4, + "col": 4, + "value": 2118 + }, + { + "row": 4, + "col": 5, + "value": 2070 + }, + { + "row": 4, + "col": 6, + "value": 2057 + }, + { + "row": 4, + "col": 7, + "value": 2052 + }, + { + "row": 4, + "col": 8, + "value": 2050 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2152 + }, + { + "row": 5, + "col": 1, + "value": 2861 + }, + { + "row": 5, + "col": 2, + "value": 3950 + }, + { + "row": 5, + "col": 3, + "value": 2314 + }, + { + "row": 5, + "col": 4, + "value": 2098 + }, + { + "row": 5, + "col": 5, + "value": 2064 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2051 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2091 + }, + { + "row": 6, + "col": 1, + "value": 2228 + }, + { + "row": 6, + "col": 2, + "value": 2848 + }, + { + "row": 6, + "col": 3, + "value": 2470 + }, + { + "row": 6, + "col": 4, + "value": 2132 + }, + { + "row": 6, + "col": 5, + "value": 2073 + }, + { + "row": 6, + "col": 6, + "value": 2057 + }, + { + "row": 6, + "col": 7, + "value": 2052 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 7618357037, + "cursor_x_mm": 27.4, + "cursor_y_mm": 56.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2051 + }, + { + "row": 0, + "col": 2, + "value": 2051 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2053 + }, + { + "row": 1, + "col": 1, + "value": 2055 + }, + { + "row": 1, + "col": 2, + "value": 2055 + }, + { + "row": 1, + "col": 3, + "value": 2054 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2051 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2056 + }, + { + "row": 2, + "col": 1, + "value": 2060 + }, + { + "row": 2, + "col": 2, + "value": 2063 + }, + { + "row": 2, + "col": 3, + "value": 2062 + }, + { + "row": 2, + "col": 4, + "value": 2058 + }, + { + "row": 2, + "col": 5, + "value": 2054 + }, + { + "row": 2, + "col": 6, + "value": 2051 + }, + { + "row": 2, + "col": 7, + "value": 2050 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2069 + }, + { + "row": 3, + "col": 1, + "value": 2083 + }, + { + "row": 3, + "col": 2, + "value": 2087 + }, + { + "row": 3, + "col": 3, + "value": 2076 + }, + { + "row": 3, + "col": 4, + "value": 2063 + }, + { + "row": 3, + "col": 5, + "value": 2055 + }, + { + "row": 3, + "col": 6, + "value": 2052 + }, + { + "row": 3, + "col": 7, + "value": 2050 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2076 + }, + { + "row": 4, + "col": 1, + "value": 2120 + }, + { + "row": 4, + "col": 2, + "value": 2189 + }, + { + "row": 4, + "col": 3, + "value": 2156 + }, + { + "row": 4, + "col": 4, + "value": 2092 + }, + { + "row": 4, + "col": 5, + "value": 2065 + }, + { + "row": 4, + "col": 6, + "value": 2055 + }, + { + "row": 4, + "col": 7, + "value": 2051 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2135 + }, + { + "row": 5, + "col": 1, + "value": 2497 + }, + { + "row": 5, + "col": 2, + "value": 2904 + }, + { + "row": 5, + "col": 3, + "value": 2231 + }, + { + "row": 5, + "col": 4, + "value": 2091 + }, + { + "row": 5, + "col": 5, + "value": 2063 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2051 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2099 + }, + { + "row": 6, + "col": 1, + "value": 2315 + }, + { + "row": 6, + "col": 2, + "value": 3933 + }, + { + "row": 6, + "col": 3, + "value": 2836 + }, + { + "row": 6, + "col": 4, + "value": 2151 + }, + { + "row": 6, + "col": 5, + "value": 2075 + }, + { + "row": 6, + "col": 6, + "value": 2058 + }, + { + "row": 6, + "col": 7, + "value": 2052 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 7762209686, + "cursor_x_mm": 28.733333333333334, + "cursor_y_mm": 59.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2047 + }, + { + "row": 1, + "col": 0, + "value": 2052 + }, + { + "row": 1, + "col": 1, + "value": 2053 + }, + { + "row": 1, + "col": 2, + "value": 2053 + }, + { + "row": 1, + "col": 3, + "value": 2052 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2048 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2047 + }, + { + "row": 2, + "col": 0, + "value": 2054 + }, + { + "row": 2, + "col": 1, + "value": 2057 + }, + { + "row": 2, + "col": 2, + "value": 2059 + }, + { + "row": 2, + "col": 3, + "value": 2058 + }, + { + "row": 2, + "col": 4, + "value": 2056 + }, + { + "row": 2, + "col": 5, + "value": 2053 + }, + { + "row": 2, + "col": 6, + "value": 2051 + }, + { + "row": 2, + "col": 7, + "value": 2049 + }, + { + "row": 2, + "col": 8, + "value": 2048 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2063 + }, + { + "row": 3, + "col": 1, + "value": 2071 + }, + { + "row": 3, + "col": 2, + "value": 2074 + }, + { + "row": 3, + "col": 3, + "value": 2068 + }, + { + "row": 3, + "col": 4, + "value": 2060 + }, + { + "row": 3, + "col": 5, + "value": 2055 + }, + { + "row": 3, + "col": 6, + "value": 2051 + }, + { + "row": 3, + "col": 7, + "value": 2049 + }, + { + "row": 3, + "col": 8, + "value": 2048 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2069 + }, + { + "row": 4, + "col": 1, + "value": 2094 + }, + { + "row": 4, + "col": 2, + "value": 2127 + }, + { + "row": 4, + "col": 3, + "value": 2117 + }, + { + "row": 4, + "col": 4, + "value": 2083 + }, + { + "row": 4, + "col": 5, + "value": 2063 + }, + { + "row": 4, + "col": 6, + "value": 2055 + }, + { + "row": 4, + "col": 7, + "value": 2051 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2110 + }, + { + "row": 5, + "col": 1, + "value": 2277 + }, + { + "row": 5, + "col": 2, + "value": 2456 + }, + { + "row": 5, + "col": 3, + "value": 2191 + }, + { + "row": 5, + "col": 4, + "value": 2089 + }, + { + "row": 5, + "col": 5, + "value": 2063 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2051 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2094 + }, + { + "row": 6, + "col": 1, + "value": 2275 + }, + { + "row": 6, + "col": 2, + "value": 3804 + }, + { + "row": 6, + "col": 3, + "value": 2990 + }, + { + "row": 6, + "col": 4, + "value": 2165 + }, + { + "row": 6, + "col": 5, + "value": 2077 + }, + { + "row": 6, + "col": 6, + "value": 2059 + }, + { + "row": 6, + "col": 7, + "value": 2052 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 7920799842, + "cursor_x_mm": 31.4, + "cursor_y_mm": 59.13333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2048 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2051 + }, + { + "row": 1, + "col": 1, + "value": 2052 + }, + { + "row": 1, + "col": 2, + "value": 2053 + }, + { + "row": 1, + "col": 3, + "value": 2053 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2049 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2053 + }, + { + "row": 2, + "col": 1, + "value": 2056 + }, + { + "row": 2, + "col": 2, + "value": 2058 + }, + { + "row": 2, + "col": 3, + "value": 2058 + }, + { + "row": 2, + "col": 4, + "value": 2056 + }, + { + "row": 2, + "col": 5, + "value": 2054 + }, + { + "row": 2, + "col": 6, + "value": 2051 + }, + { + "row": 2, + "col": 7, + "value": 2050 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2060 + }, + { + "row": 3, + "col": 1, + "value": 2068 + }, + { + "row": 3, + "col": 2, + "value": 2073 + }, + { + "row": 3, + "col": 3, + "value": 2070 + }, + { + "row": 3, + "col": 4, + "value": 2062 + }, + { + "row": 3, + "col": 5, + "value": 2056 + }, + { + "row": 3, + "col": 6, + "value": 2052 + }, + { + "row": 3, + "col": 7, + "value": 2050 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2064 + }, + { + "row": 4, + "col": 1, + "value": 2083 + }, + { + "row": 4, + "col": 2, + "value": 2115 + }, + { + "row": 4, + "col": 3, + "value": 2121 + }, + { + "row": 4, + "col": 4, + "value": 2090 + }, + { + "row": 4, + "col": 5, + "value": 2067 + }, + { + "row": 4, + "col": 6, + "value": 2057 + }, + { + "row": 4, + "col": 7, + "value": 2052 + }, + { + "row": 4, + "col": 8, + "value": 2050 + }, + { + "row": 4, + "col": 9, + "value": 2049 + }, + { + "row": 5, + "col": 0, + "value": 2090 + }, + { + "row": 5, + "col": 1, + "value": 2194 + }, + { + "row": 5, + "col": 2, + "value": 2427 + }, + { + "row": 5, + "col": 3, + "value": 2249 + }, + { + "row": 5, + "col": 4, + "value": 2105 + }, + { + "row": 5, + "col": 5, + "value": 2067 + }, + { + "row": 5, + "col": 6, + "value": 2056 + }, + { + "row": 5, + "col": 7, + "value": 2051 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2079 + }, + { + "row": 6, + "col": 1, + "value": 2175 + }, + { + "row": 6, + "col": 2, + "value": 3078 + }, + { + "row": 6, + "col": 3, + "value": 3657 + }, + { + "row": 6, + "col": 4, + "value": 2250 + }, + { + "row": 6, + "col": 5, + "value": 2090 + }, + { + "row": 6, + "col": 6, + "value": 2062 + }, + { + "row": 6, + "col": 7, + "value": 2054 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 8079198230, + "cursor_x_mm": 32.46666666666667, + "cursor_y_mm": 51.93333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2051 + }, + { + "row": 0, + "col": 2, + "value": 2052 + }, + { + "row": 0, + "col": 3, + "value": 2052 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2053 + }, + { + "row": 1, + "col": 1, + "value": 2055 + }, + { + "row": 1, + "col": 2, + "value": 2056 + }, + { + "row": 1, + "col": 3, + "value": 2056 + }, + { + "row": 1, + "col": 4, + "value": 2054 + }, + { + "row": 1, + "col": 5, + "value": 2052 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2048 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2055 + }, + { + "row": 2, + "col": 1, + "value": 2060 + }, + { + "row": 2, + "col": 2, + "value": 2065 + }, + { + "row": 2, + "col": 3, + "value": 2066 + }, + { + "row": 2, + "col": 4, + "value": 2062 + }, + { + "row": 2, + "col": 5, + "value": 2057 + }, + { + "row": 2, + "col": 6, + "value": 2053 + }, + { + "row": 2, + "col": 7, + "value": 2051 + }, + { + "row": 2, + "col": 8, + "value": 2049 + }, + { + "row": 2, + "col": 9, + "value": 2048 + }, + { + "row": 3, + "col": 0, + "value": 2065 + }, + { + "row": 3, + "col": 1, + "value": 2081 + }, + { + "row": 3, + "col": 2, + "value": 2097 + }, + { + "row": 3, + "col": 3, + "value": 2091 + }, + { + "row": 3, + "col": 4, + "value": 2073 + }, + { + "row": 3, + "col": 5, + "value": 2060 + }, + { + "row": 3, + "col": 6, + "value": 2054 + }, + { + "row": 3, + "col": 7, + "value": 2051 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2067 + }, + { + "row": 4, + "col": 1, + "value": 2098 + }, + { + "row": 4, + "col": 2, + "value": 2187 + }, + { + "row": 4, + "col": 3, + "value": 2243 + }, + { + "row": 4, + "col": 4, + "value": 2138 + }, + { + "row": 4, + "col": 5, + "value": 2080 + }, + { + "row": 4, + "col": 6, + "value": 2060 + }, + { + "row": 4, + "col": 7, + "value": 2053 + }, + { + "row": 4, + "col": 8, + "value": 2050 + }, + { + "row": 4, + "col": 9, + "value": 2049 + }, + { + "row": 5, + "col": 0, + "value": 2093 + }, + { + "row": 5, + "col": 1, + "value": 2255 + }, + { + "row": 5, + "col": 2, + "value": 3255 + }, + { + "row": 5, + "col": 3, + "value": 2645 + }, + { + "row": 5, + "col": 4, + "value": 2145 + }, + { + "row": 5, + "col": 5, + "value": 2074 + }, + { + "row": 5, + "col": 6, + "value": 2058 + }, + { + "row": 5, + "col": 7, + "value": 2052 + }, + { + "row": 5, + "col": 8, + "value": 2050 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2074 + }, + { + "row": 6, + "col": 1, + "value": 2145 + }, + { + "row": 6, + "col": 2, + "value": 2720 + }, + { + "row": 6, + "col": 3, + "value": 3706 + }, + { + "row": 6, + "col": 4, + "value": 2303 + }, + { + "row": 6, + "col": 5, + "value": 2098 + }, + { + "row": 6, + "col": 6, + "value": 2064 + }, + { + "row": 6, + "col": 7, + "value": 2054 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 8240265429, + "cursor_x_mm": 32.6, + "cursor_y_mm": 43.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2052 + }, + { + "row": 0, + "col": 1, + "value": 2054 + }, + { + "row": 0, + "col": 2, + "value": 2056 + }, + { + "row": 0, + "col": 3, + "value": 2056 + }, + { + "row": 0, + "col": 4, + "value": 2055 + }, + { + "row": 0, + "col": 5, + "value": 2053 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2057 + }, + { + "row": 1, + "col": 1, + "value": 2062 + }, + { + "row": 1, + "col": 2, + "value": 2066 + }, + { + "row": 1, + "col": 3, + "value": 2065 + }, + { + "row": 1, + "col": 4, + "value": 2060 + }, + { + "row": 1, + "col": 5, + "value": 2055 + }, + { + "row": 1, + "col": 6, + "value": 2052 + }, + { + "row": 1, + "col": 7, + "value": 2050 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2060 + }, + { + "row": 2, + "col": 1, + "value": 2072 + }, + { + "row": 2, + "col": 2, + "value": 2090 + }, + { + "row": 2, + "col": 3, + "value": 2097 + }, + { + "row": 2, + "col": 4, + "value": 2082 + }, + { + "row": 2, + "col": 5, + "value": 2065 + }, + { + "row": 2, + "col": 6, + "value": 2056 + }, + { + "row": 2, + "col": 7, + "value": 2052 + }, + { + "row": 2, + "col": 8, + "value": 2050 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2078 + }, + { + "row": 3, + "col": 1, + "value": 2133 + }, + { + "row": 3, + "col": 2, + "value": 2240 + }, + { + "row": 3, + "col": 3, + "value": 2193 + }, + { + "row": 3, + "col": 4, + "value": 2101 + }, + { + "row": 3, + "col": 5, + "value": 2067 + }, + { + "row": 3, + "col": 6, + "value": 2056 + }, + { + "row": 3, + "col": 7, + "value": 2052 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2073 + }, + { + "row": 4, + "col": 1, + "value": 2138 + }, + { + "row": 4, + "col": 2, + "value": 2594 + }, + { + "row": 4, + "col": 3, + "value": 3308 + }, + { + "row": 4, + "col": 4, + "value": 2274 + }, + { + "row": 4, + "col": 5, + "value": 2096 + }, + { + "row": 4, + "col": 6, + "value": 2064 + }, + { + "row": 4, + "col": 7, + "value": 2054 + }, + { + "row": 4, + "col": 8, + "value": 2051 + }, + { + "row": 4, + "col": 9, + "value": 2049 + }, + { + "row": 5, + "col": 0, + "value": 2095 + }, + { + "row": 5, + "col": 1, + "value": 2281 + }, + { + "row": 5, + "col": 2, + "value": 3640 + }, + { + "row": 5, + "col": 3, + "value": 2791 + }, + { + "row": 5, + "col": 4, + "value": 2152 + }, + { + "row": 5, + "col": 5, + "value": 2075 + }, + { + "row": 5, + "col": 6, + "value": 2058 + }, + { + "row": 5, + "col": 7, + "value": 2052 + }, + { + "row": 5, + "col": 8, + "value": 2050 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2068 + }, + { + "row": 6, + "col": 1, + "value": 2106 + }, + { + "row": 6, + "col": 2, + "value": 2233 + }, + { + "row": 6, + "col": 3, + "value": 2327 + }, + { + "row": 6, + "col": 4, + "value": 2159 + }, + { + "row": 6, + "col": 5, + "value": 2083 + }, + { + "row": 6, + "col": 6, + "value": 2061 + }, + { + "row": 6, + "col": 7, + "value": 2054 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 8398851302, + "cursor_x_mm": 33.13333333333333, + "cursor_y_mm": 32.86666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2055 + }, + { + "row": 0, + "col": 1, + "value": 2061 + }, + { + "row": 0, + "col": 2, + "value": 2067 + }, + { + "row": 0, + "col": 3, + "value": 2069 + }, + { + "row": 0, + "col": 4, + "value": 2065 + }, + { + "row": 0, + "col": 5, + "value": 2059 + }, + { + "row": 0, + "col": 6, + "value": 2054 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2066 + }, + { + "row": 1, + "col": 1, + "value": 2086 + }, + { + "row": 1, + "col": 2, + "value": 2108 + }, + { + "row": 1, + "col": 3, + "value": 2102 + }, + { + "row": 1, + "col": 4, + "value": 2077 + }, + { + "row": 1, + "col": 5, + "value": 2062 + }, + { + "row": 1, + "col": 6, + "value": 2054 + }, + { + "row": 1, + "col": 7, + "value": 2051 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2067 + }, + { + "row": 2, + "col": 1, + "value": 2103 + }, + { + "row": 2, + "col": 2, + "value": 2220 + }, + { + "row": 2, + "col": 3, + "value": 2321 + }, + { + "row": 2, + "col": 4, + "value": 2162 + }, + { + "row": 2, + "col": 5, + "value": 2084 + }, + { + "row": 2, + "col": 6, + "value": 2062 + }, + { + "row": 2, + "col": 7, + "value": 2054 + }, + { + "row": 2, + "col": 8, + "value": 2050 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2093 + }, + { + "row": 3, + "col": 1, + "value": 2261 + }, + { + "row": 3, + "col": 2, + "value": 3541 + }, + { + "row": 3, + "col": 3, + "value": 2841 + }, + { + "row": 3, + "col": 4, + "value": 2158 + }, + { + "row": 3, + "col": 5, + "value": 2077 + }, + { + "row": 3, + "col": 6, + "value": 2058 + }, + { + "row": 3, + "col": 7, + "value": 2052 + }, + { + "row": 3, + "col": 8, + "value": 2050 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2072 + }, + { + "row": 4, + "col": 1, + "value": 2134 + }, + { + "row": 4, + "col": 2, + "value": 2564 + }, + { + "row": 4, + "col": 3, + "value": 3390 + }, + { + "row": 4, + "col": 4, + "value": 2295 + }, + { + "row": 4, + "col": 5, + "value": 2099 + }, + { + "row": 4, + "col": 6, + "value": 2064 + }, + { + "row": 4, + "col": 7, + "value": 2055 + }, + { + "row": 4, + "col": 8, + "value": 2051 + }, + { + "row": 4, + "col": 9, + "value": 2049 + }, + { + "row": 5, + "col": 0, + "value": 2077 + }, + { + "row": 5, + "col": 1, + "value": 2132 + }, + { + "row": 5, + "col": 2, + "value": 2244 + }, + { + "row": 5, + "col": 3, + "value": 2202 + }, + { + "row": 5, + "col": 4, + "value": 2104 + }, + { + "row": 5, + "col": 5, + "value": 2068 + }, + { + "row": 5, + "col": 6, + "value": 2056 + }, + { + "row": 5, + "col": 7, + "value": 2052 + }, + { + "row": 5, + "col": 8, + "value": 2050 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2059 + }, + { + "row": 6, + "col": 1, + "value": 2072 + }, + { + "row": 6, + "col": 2, + "value": 2091 + }, + { + "row": 6, + "col": 3, + "value": 2099 + }, + { + "row": 6, + "col": 4, + "value": 2083 + }, + { + "row": 6, + "col": 5, + "value": 2066 + }, + { + "row": 6, + "col": 6, + "value": 2057 + }, + { + "row": 6, + "col": 7, + "value": 2052 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 8541017396, + "cursor_x_mm": 32.86666666666667, + "cursor_y_mm": 23.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2061 + }, + { + "row": 0, + "col": 1, + "value": 2076 + }, + { + "row": 0, + "col": 2, + "value": 2103 + }, + { + "row": 0, + "col": 3, + "value": 2116 + }, + { + "row": 0, + "col": 4, + "value": 2093 + }, + { + "row": 0, + "col": 5, + "value": 2069 + }, + { + "row": 0, + "col": 6, + "value": 2058 + }, + { + "row": 0, + "col": 7, + "value": 2053 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2080 + }, + { + "row": 1, + "col": 1, + "value": 2152 + }, + { + "row": 1, + "col": 2, + "value": 2343 + }, + { + "row": 1, + "col": 3, + "value": 2270 + }, + { + "row": 1, + "col": 4, + "value": 2116 + }, + { + "row": 1, + "col": 5, + "value": 2071 + }, + { + "row": 1, + "col": 6, + "value": 2057 + }, + { + "row": 1, + "col": 7, + "value": 2052 + }, + { + "row": 1, + "col": 8, + "value": 2050 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2073 + }, + { + "row": 2, + "col": 1, + "value": 2138 + }, + { + "row": 2, + "col": 2, + "value": 2671 + }, + { + "row": 2, + "col": 3, + "value": 3851 + }, + { + "row": 2, + "col": 4, + "value": 2340 + }, + { + "row": 2, + "col": 5, + "value": 2102 + }, + { + "row": 2, + "col": 6, + "value": 2065 + }, + { + "row": 2, + "col": 7, + "value": 2055 + }, + { + "row": 2, + "col": 8, + "value": 2051 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2090 + }, + { + "row": 3, + "col": 1, + "value": 2230 + }, + { + "row": 3, + "col": 2, + "value": 3090 + }, + { + "row": 3, + "col": 3, + "value": 2663 + }, + { + "row": 3, + "col": 4, + "value": 2151 + }, + { + "row": 3, + "col": 5, + "value": 2076 + }, + { + "row": 3, + "col": 6, + "value": 2058 + }, + { + "row": 3, + "col": 7, + "value": 2052 + }, + { + "row": 3, + "col": 8, + "value": 2050 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2065 + }, + { + "row": 4, + "col": 1, + "value": 2094 + }, + { + "row": 4, + "col": 2, + "value": 2171 + }, + { + "row": 4, + "col": 3, + "value": 2229 + }, + { + "row": 4, + "col": 4, + "value": 2137 + }, + { + "row": 4, + "col": 5, + "value": 2080 + }, + { + "row": 4, + "col": 6, + "value": 2061 + }, + { + "row": 4, + "col": 7, + "value": 2054 + }, + { + "row": 4, + "col": 8, + "value": 2050 + }, + { + "row": 4, + "col": 9, + "value": 2049 + }, + { + "row": 5, + "col": 0, + "value": 2064 + }, + { + "row": 5, + "col": 1, + "value": 2078 + }, + { + "row": 5, + "col": 2, + "value": 2094 + }, + { + "row": 5, + "col": 3, + "value": 2089 + }, + { + "row": 5, + "col": 4, + "value": 2072 + }, + { + "row": 5, + "col": 5, + "value": 2060 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2051 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2054 + }, + { + "row": 6, + "col": 1, + "value": 2059 + }, + { + "row": 6, + "col": 2, + "value": 2064 + }, + { + "row": 6, + "col": 3, + "value": 2065 + }, + { + "row": 6, + "col": 4, + "value": 2062 + }, + { + "row": 6, + "col": 5, + "value": 2057 + }, + { + "row": 6, + "col": 6, + "value": 2053 + }, + { + "row": 6, + "col": 7, + "value": 2051 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 8699989035, + "cursor_x_mm": 32.33333333333333, + "cursor_y_mm": 14.466666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2069 + }, + { + "row": 0, + "col": 1, + "value": 2111 + }, + { + "row": 0, + "col": 2, + "value": 2260 + }, + { + "row": 0, + "col": 3, + "value": 2374 + }, + { + "row": 0, + "col": 4, + "value": 2167 + }, + { + "row": 0, + "col": 5, + "value": 2084 + }, + { + "row": 0, + "col": 6, + "value": 2061 + }, + { + "row": 0, + "col": 7, + "value": 2054 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2097 + }, + { + "row": 1, + "col": 1, + "value": 2296 + }, + { + "row": 1, + "col": 2, + "value": 3789 + }, + { + "row": 1, + "col": 3, + "value": 2821 + }, + { + "row": 1, + "col": 4, + "value": 2152 + }, + { + "row": 1, + "col": 5, + "value": 2075 + }, + { + "row": 1, + "col": 6, + "value": 2058 + }, + { + "row": 1, + "col": 7, + "value": 2052 + }, + { + "row": 1, + "col": 8, + "value": 2050 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2073 + }, + { + "row": 2, + "col": 1, + "value": 2137 + }, + { + "row": 2, + "col": 2, + "value": 2551 + }, + { + "row": 2, + "col": 3, + "value": 3121 + }, + { + "row": 2, + "col": 4, + "value": 2255 + }, + { + "row": 2, + "col": 5, + "value": 2094 + }, + { + "row": 2, + "col": 6, + "value": 2063 + }, + { + "row": 2, + "col": 7, + "value": 2054 + }, + { + "row": 2, + "col": 8, + "value": 2051 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2077 + }, + { + "row": 3, + "col": 1, + "value": 2127 + }, + { + "row": 3, + "col": 2, + "value": 2216 + }, + { + "row": 3, + "col": 3, + "value": 2175 + }, + { + "row": 3, + "col": 4, + "value": 2097 + }, + { + "row": 3, + "col": 5, + "value": 2067 + }, + { + "row": 3, + "col": 6, + "value": 2056 + }, + { + "row": 3, + "col": 7, + "value": 2051 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2059 + }, + { + "row": 4, + "col": 1, + "value": 2071 + }, + { + "row": 4, + "col": 2, + "value": 2087 + }, + { + "row": 4, + "col": 3, + "value": 2093 + }, + { + "row": 4, + "col": 4, + "value": 2079 + }, + { + "row": 4, + "col": 5, + "value": 2064 + }, + { + "row": 4, + "col": 6, + "value": 2056 + }, + { + "row": 4, + "col": 7, + "value": 2052 + }, + { + "row": 4, + "col": 8, + "value": 2050 + }, + { + "row": 4, + "col": 9, + "value": 2049 + }, + { + "row": 5, + "col": 0, + "value": 2057 + }, + { + "row": 5, + "col": 1, + "value": 2061 + }, + { + "row": 5, + "col": 2, + "value": 2065 + }, + { + "row": 5, + "col": 3, + "value": 2064 + }, + { + "row": 5, + "col": 4, + "value": 2059 + }, + { + "row": 5, + "col": 5, + "value": 2055 + }, + { + "row": 5, + "col": 6, + "value": 2052 + }, + { + "row": 5, + "col": 7, + "value": 2050 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2052 + }, + { + "row": 6, + "col": 1, + "value": 2053 + }, + { + "row": 6, + "col": 2, + "value": 2055 + }, + { + "row": 6, + "col": 3, + "value": 2055 + }, + { + "row": 6, + "col": 4, + "value": 2054 + }, + { + "row": 6, + "col": 5, + "value": 2053 + }, + { + "row": 6, + "col": 6, + "value": 2051 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 8860683959, + "cursor_x_mm": 32.33333333333333, + "cursor_y_mm": 9.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2074 + }, + { + "row": 0, + "col": 1, + "value": 2143 + }, + { + "row": 0, + "col": 2, + "value": 2618 + }, + { + "row": 0, + "col": 3, + "value": 3211 + }, + { + "row": 0, + "col": 4, + "value": 2254 + }, + { + "row": 0, + "col": 5, + "value": 2093 + }, + { + "row": 0, + "col": 6, + "value": 2063 + }, + { + "row": 0, + "col": 7, + "value": 2054 + }, + { + "row": 0, + "col": 8, + "value": 2051 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2098 + }, + { + "row": 1, + "col": 1, + "value": 2303 + }, + { + "row": 1, + "col": 2, + "value": 3741 + }, + { + "row": 1, + "col": 3, + "value": 2745 + }, + { + "row": 1, + "col": 4, + "value": 2146 + }, + { + "row": 1, + "col": 5, + "value": 2074 + }, + { + "row": 1, + "col": 6, + "value": 2058 + }, + { + "row": 1, + "col": 7, + "value": 2052 + }, + { + "row": 1, + "col": 8, + "value": 2050 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2069 + }, + { + "row": 2, + "col": 1, + "value": 2110 + }, + { + "row": 2, + "col": 2, + "value": 2248 + }, + { + "row": 2, + "col": 3, + "value": 2337 + }, + { + "row": 2, + "col": 4, + "value": 2156 + }, + { + "row": 2, + "col": 5, + "value": 2082 + }, + { + "row": 2, + "col": 6, + "value": 2061 + }, + { + "row": 2, + "col": 7, + "value": 2053 + }, + { + "row": 2, + "col": 8, + "value": 2050 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2068 + }, + { + "row": 3, + "col": 1, + "value": 2090 + }, + { + "row": 3, + "col": 2, + "value": 2113 + }, + { + "row": 3, + "col": 3, + "value": 2103 + }, + { + "row": 3, + "col": 4, + "value": 2077 + }, + { + "row": 3, + "col": 5, + "value": 2061 + }, + { + "row": 3, + "col": 6, + "value": 2054 + }, + { + "row": 3, + "col": 7, + "value": 2051 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2056 + }, + { + "row": 4, + "col": 1, + "value": 2062 + }, + { + "row": 4, + "col": 2, + "value": 2069 + }, + { + "row": 4, + "col": 3, + "value": 2070 + }, + { + "row": 4, + "col": 4, + "value": 2065 + }, + { + "row": 4, + "col": 5, + "value": 2058 + }, + { + "row": 4, + "col": 6, + "value": 2054 + }, + { + "row": 4, + "col": 7, + "value": 2051 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2054 + }, + { + "row": 5, + "col": 1, + "value": 2056 + }, + { + "row": 5, + "col": 2, + "value": 2058 + }, + { + "row": 5, + "col": 3, + "value": 2057 + }, + { + "row": 5, + "col": 4, + "value": 2055 + }, + { + "row": 5, + "col": 5, + "value": 2052 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2050 + }, + { + "row": 6, + "col": 1, + "value": 2051 + }, + { + "row": 6, + "col": 2, + "value": 2052 + }, + { + "row": 6, + "col": 3, + "value": 2052 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 9019059029, + "cursor_x_mm": 34.33333333333333, + "cursor_y_mm": 3.2666666666666666, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2072 + }, + { + "row": 0, + "col": 1, + "value": 2137 + }, + { + "row": 0, + "col": 2, + "value": 2702 + }, + { + "row": 0, + "col": 3, + "value": 4063 + }, + { + "row": 0, + "col": 4, + "value": 2381 + }, + { + "row": 0, + "col": 5, + "value": 2106 + }, + { + "row": 0, + "col": 6, + "value": 2066 + }, + { + "row": 0, + "col": 7, + "value": 2055 + }, + { + "row": 0, + "col": 8, + "value": 2051 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2083 + }, + { + "row": 1, + "col": 1, + "value": 2173 + }, + { + "row": 1, + "col": 2, + "value": 2504 + }, + { + "row": 1, + "col": 3, + "value": 2383 + }, + { + "row": 1, + "col": 4, + "value": 2131 + }, + { + "row": 1, + "col": 5, + "value": 2073 + }, + { + "row": 1, + "col": 6, + "value": 2058 + }, + { + "row": 1, + "col": 7, + "value": 2052 + }, + { + "row": 1, + "col": 8, + "value": 2050 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2062 + }, + { + "row": 2, + "col": 1, + "value": 2081 + }, + { + "row": 2, + "col": 2, + "value": 2119 + }, + { + "row": 2, + "col": 3, + "value": 2143 + }, + { + "row": 2, + "col": 4, + "value": 2106 + }, + { + "row": 2, + "col": 5, + "value": 2074 + }, + { + "row": 2, + "col": 6, + "value": 2059 + }, + { + "row": 2, + "col": 7, + "value": 2053 + }, + { + "row": 2, + "col": 8, + "value": 2050 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2060 + }, + { + "row": 3, + "col": 1, + "value": 2069 + }, + { + "row": 3, + "col": 2, + "value": 2077 + }, + { + "row": 3, + "col": 3, + "value": 2075 + }, + { + "row": 3, + "col": 4, + "value": 2066 + }, + { + "row": 3, + "col": 5, + "value": 2058 + }, + { + "row": 3, + "col": 6, + "value": 2053 + }, + { + "row": 3, + "col": 7, + "value": 2050 + }, + { + "row": 3, + "col": 8, + "value": 2049 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2053 + }, + { + "row": 4, + "col": 1, + "value": 2056 + }, + { + "row": 4, + "col": 2, + "value": 2059 + }, + { + "row": 4, + "col": 3, + "value": 2060 + }, + { + "row": 4, + "col": 4, + "value": 2058 + }, + { + "row": 4, + "col": 5, + "value": 2055 + }, + { + "row": 4, + "col": 6, + "value": 2052 + }, + { + "row": 4, + "col": 7, + "value": 2050 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2051 + }, + { + "row": 5, + "col": 1, + "value": 2053 + }, + { + "row": 5, + "col": 2, + "value": 2053 + }, + { + "row": 5, + "col": 3, + "value": 2053 + }, + { + "row": 5, + "col": 4, + "value": 2052 + }, + { + "row": 5, + "col": 5, + "value": 2051 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2050 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2051 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 9179775973, + "cursor_x_mm": 39.0, + "cursor_y_mm": 2.6, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2062 + }, + { + "row": 0, + "col": 1, + "value": 2090 + }, + { + "row": 0, + "col": 2, + "value": 2247 + }, + { + "row": 0, + "col": 3, + "value": 3610 + }, + { + "row": 0, + "col": 4, + "value": 3049 + }, + { + "row": 0, + "col": 5, + "value": 2174 + }, + { + "row": 0, + "col": 6, + "value": 2079 + }, + { + "row": 0, + "col": 7, + "value": 2059 + }, + { + "row": 0, + "col": 8, + "value": 2053 + }, + { + "row": 0, + "col": 9, + "value": 2050 + }, + { + "row": 1, + "col": 0, + "value": 2067 + }, + { + "row": 1, + "col": 1, + "value": 2103 + }, + { + "row": 1, + "col": 2, + "value": 2239 + }, + { + "row": 1, + "col": 3, + "value": 2398 + }, + { + "row": 1, + "col": 4, + "value": 2188 + }, + { + "row": 1, + "col": 5, + "value": 2089 + }, + { + "row": 1, + "col": 6, + "value": 2063 + }, + { + "row": 1, + "col": 7, + "value": 2054 + }, + { + "row": 1, + "col": 8, + "value": 2051 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2057 + }, + { + "row": 2, + "col": 1, + "value": 2067 + }, + { + "row": 2, + "col": 2, + "value": 2089 + }, + { + "row": 2, + "col": 3, + "value": 2118 + }, + { + "row": 2, + "col": 4, + "value": 2112 + }, + { + "row": 2, + "col": 5, + "value": 2082 + }, + { + "row": 2, + "col": 6, + "value": 2063 + }, + { + "row": 2, + "col": 7, + "value": 2055 + }, + { + "row": 2, + "col": 8, + "value": 2051 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2056 + }, + { + "row": 3, + "col": 1, + "value": 2062 + }, + { + "row": 3, + "col": 2, + "value": 2069 + }, + { + "row": 3, + "col": 3, + "value": 2072 + }, + { + "row": 3, + "col": 4, + "value": 2067 + }, + { + "row": 3, + "col": 5, + "value": 2060 + }, + { + "row": 3, + "col": 6, + "value": 2054 + }, + { + "row": 3, + "col": 7, + "value": 2051 + }, + { + "row": 3, + "col": 8, + "value": 2050 + }, + { + "row": 3, + "col": 9, + "value": 2048 + }, + { + "row": 4, + "col": 0, + "value": 2051 + }, + { + "row": 4, + "col": 1, + "value": 2054 + }, + { + "row": 4, + "col": 2, + "value": 2056 + }, + { + "row": 4, + "col": 3, + "value": 2058 + }, + { + "row": 4, + "col": 4, + "value": 2058 + }, + { + "row": 4, + "col": 5, + "value": 2056 + }, + { + "row": 4, + "col": 6, + "value": 2053 + }, + { + "row": 4, + "col": 7, + "value": 2051 + }, + { + "row": 4, + "col": 8, + "value": 2049 + }, + { + "row": 4, + "col": 9, + "value": 2048 + }, + { + "row": 5, + "col": 0, + "value": 2050 + }, + { + "row": 5, + "col": 1, + "value": 2051 + }, + { + "row": 5, + "col": 2, + "value": 2052 + }, + { + "row": 5, + "col": 3, + "value": 2053 + }, + { + "row": 5, + "col": 4, + "value": 2052 + }, + { + "row": 5, + "col": 5, + "value": 2051 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2049 + }, + { + "row": 5, + "col": 8, + "value": 2048 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2048 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 9337516352, + "cursor_x_mm": 40.06666666666667, + "cursor_y_mm": 10.733333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2060 + }, + { + "row": 0, + "col": 1, + "value": 2083 + }, + { + "row": 0, + "col": 2, + "value": 2196 + }, + { + "row": 0, + "col": 3, + "value": 3139 + }, + { + "row": 0, + "col": 4, + "value": 3165 + }, + { + "row": 0, + "col": 5, + "value": 2199 + }, + { + "row": 0, + "col": 6, + "value": 2084 + }, + { + "row": 0, + "col": 7, + "value": 2060 + }, + { + "row": 0, + "col": 8, + "value": 2053 + }, + { + "row": 0, + "col": 9, + "value": 2050 + }, + { + "row": 1, + "col": 0, + "value": 2068 + }, + { + "row": 1, + "col": 1, + "value": 2113 + }, + { + "row": 1, + "col": 2, + "value": 2407 + }, + { + "row": 1, + "col": 3, + "value": 3539 + }, + { + "row": 1, + "col": 4, + "value": 2417 + }, + { + "row": 1, + "col": 5, + "value": 2115 + }, + { + "row": 1, + "col": 6, + "value": 2068 + }, + { + "row": 1, + "col": 7, + "value": 2056 + }, + { + "row": 1, + "col": 8, + "value": 2051 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2058 + }, + { + "row": 2, + "col": 1, + "value": 2073 + }, + { + "row": 2, + "col": 2, + "value": 2118 + }, + { + "row": 2, + "col": 3, + "value": 2232 + }, + { + "row": 2, + "col": 4, + "value": 2234 + }, + { + "row": 2, + "col": 5, + "value": 2119 + }, + { + "row": 2, + "col": 6, + "value": 2073 + }, + { + "row": 2, + "col": 7, + "value": 2058 + }, + { + "row": 2, + "col": 8, + "value": 2052 + }, + { + "row": 2, + "col": 9, + "value": 2050 + }, + { + "row": 3, + "col": 0, + "value": 2058 + }, + { + "row": 3, + "col": 1, + "value": 2069 + }, + { + "row": 3, + "col": 2, + "value": 2088 + }, + { + "row": 3, + "col": 3, + "value": 2101 + }, + { + "row": 3, + "col": 4, + "value": 2088 + }, + { + "row": 3, + "col": 5, + "value": 2069 + }, + { + "row": 3, + "col": 6, + "value": 2058 + }, + { + "row": 3, + "col": 7, + "value": 2053 + }, + { + "row": 3, + "col": 8, + "value": 2050 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2052 + }, + { + "row": 4, + "col": 1, + "value": 2056 + }, + { + "row": 4, + "col": 2, + "value": 2061 + }, + { + "row": 4, + "col": 3, + "value": 2066 + }, + { + "row": 4, + "col": 4, + "value": 2066 + }, + { + "row": 4, + "col": 5, + "value": 2062 + }, + { + "row": 4, + "col": 6, + "value": 2056 + }, + { + "row": 4, + "col": 7, + "value": 2052 + }, + { + "row": 4, + "col": 8, + "value": 2050 + }, + { + "row": 4, + "col": 9, + "value": 2049 + }, + { + "row": 5, + "col": 0, + "value": 2051 + }, + { + "row": 5, + "col": 1, + "value": 2053 + }, + { + "row": 5, + "col": 2, + "value": 2055 + }, + { + "row": 5, + "col": 3, + "value": 2056 + }, + { + "row": 5, + "col": 4, + "value": 2055 + }, + { + "row": 5, + "col": 5, + "value": 2054 + }, + { + "row": 5, + "col": 6, + "value": 2051 + }, + { + "row": 5, + "col": 7, + "value": 2050 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2050 + }, + { + "row": 6, + "col": 2, + "value": 2051 + }, + { + "row": 6, + "col": 3, + "value": 2052 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 9497228945, + "cursor_x_mm": 39.4, + "cursor_y_mm": 19.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2059 + }, + { + "row": 0, + "col": 1, + "value": 2075 + }, + { + "row": 0, + "col": 2, + "value": 2128 + }, + { + "row": 0, + "col": 3, + "value": 2269 + }, + { + "row": 0, + "col": 4, + "value": 2254 + }, + { + "row": 0, + "col": 5, + "value": 2120 + }, + { + "row": 0, + "col": 6, + "value": 2073 + }, + { + "row": 0, + "col": 7, + "value": 2058 + }, + { + "row": 0, + "col": 8, + "value": 2052 + }, + { + "row": 0, + "col": 9, + "value": 2050 + }, + { + "row": 1, + "col": 0, + "value": 2069 + }, + { + "row": 1, + "col": 1, + "value": 2120 + }, + { + "row": 1, + "col": 2, + "value": 2479 + }, + { + "row": 1, + "col": 3, + "value": 3723 + }, + { + "row": 1, + "col": 4, + "value": 2403 + }, + { + "row": 1, + "col": 5, + "value": 2111 + }, + { + "row": 1, + "col": 6, + "value": 2067 + }, + { + "row": 1, + "col": 7, + "value": 2055 + }, + { + "row": 1, + "col": 8, + "value": 2051 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2061 + }, + { + "row": 2, + "col": 1, + "value": 2085 + }, + { + "row": 2, + "col": 2, + "value": 2204 + }, + { + "row": 2, + "col": 3, + "value": 3110 + }, + { + "row": 2, + "col": 4, + "value": 2957 + }, + { + "row": 2, + "col": 5, + "value": 2181 + }, + { + "row": 2, + "col": 6, + "value": 2081 + }, + { + "row": 2, + "col": 7, + "value": 2060 + }, + { + "row": 2, + "col": 8, + "value": 2053 + }, + { + "row": 2, + "col": 9, + "value": 2050 + }, + { + "row": 3, + "col": 0, + "value": 2064 + }, + { + "row": 3, + "col": 1, + "value": 2091 + }, + { + "row": 3, + "col": 2, + "value": 2176 + }, + { + "row": 3, + "col": 3, + "value": 2275 + }, + { + "row": 3, + "col": 4, + "value": 2164 + }, + { + "row": 3, + "col": 5, + "value": 2087 + }, + { + "row": 3, + "col": 6, + "value": 2063 + }, + { + "row": 3, + "col": 7, + "value": 2054 + }, + { + "row": 3, + "col": 8, + "value": 2051 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2055 + }, + { + "row": 4, + "col": 1, + "value": 2063 + }, + { + "row": 4, + "col": 2, + "value": 2079 + }, + { + "row": 4, + "col": 3, + "value": 2099 + }, + { + "row": 4, + "col": 4, + "value": 2097 + }, + { + "row": 4, + "col": 5, + "value": 2077 + }, + { + "row": 4, + "col": 6, + "value": 2062 + }, + { + "row": 4, + "col": 7, + "value": 2055 + }, + { + "row": 4, + "col": 8, + "value": 2051 + }, + { + "row": 4, + "col": 9, + "value": 2049 + }, + { + "row": 5, + "col": 0, + "value": 2054 + }, + { + "row": 5, + "col": 1, + "value": 2059 + }, + { + "row": 5, + "col": 2, + "value": 2065 + }, + { + "row": 5, + "col": 3, + "value": 2067 + }, + { + "row": 5, + "col": 4, + "value": 2064 + }, + { + "row": 5, + "col": 5, + "value": 2059 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2051 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2051 + }, + { + "row": 6, + "col": 1, + "value": 2053 + }, + { + "row": 6, + "col": 2, + "value": 2055 + }, + { + "row": 6, + "col": 3, + "value": 2056 + }, + { + "row": 6, + "col": 4, + "value": 2056 + }, + { + "row": 6, + "col": 5, + "value": 2055 + }, + { + "row": 6, + "col": 6, + "value": 2052 + }, + { + "row": 6, + "col": 7, + "value": 2051 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 9639669727, + "cursor_x_mm": 39.666666666666664, + "cursor_y_mm": 27.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2056 + }, + { + "row": 0, + "col": 1, + "value": 2066 + }, + { + "row": 0, + "col": 2, + "value": 2086 + }, + { + "row": 0, + "col": 3, + "value": 2116 + }, + { + "row": 0, + "col": 4, + "value": 2114 + }, + { + "row": 0, + "col": 5, + "value": 2084 + }, + { + "row": 0, + "col": 6, + "value": 2064 + }, + { + "row": 0, + "col": 7, + "value": 2055 + }, + { + "row": 0, + "col": 8, + "value": 2051 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2066 + }, + { + "row": 1, + "col": 1, + "value": 2098 + }, + { + "row": 1, + "col": 2, + "value": 2221 + }, + { + "row": 1, + "col": 3, + "value": 2402 + }, + { + "row": 1, + "col": 4, + "value": 2202 + }, + { + "row": 1, + "col": 5, + "value": 2093 + }, + { + "row": 1, + "col": 6, + "value": 2064 + }, + { + "row": 1, + "col": 7, + "value": 2055 + }, + { + "row": 1, + "col": 8, + "value": 2051 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2061 + }, + { + "row": 2, + "col": 1, + "value": 2086 + }, + { + "row": 2, + "col": 2, + "value": 2219 + }, + { + "row": 2, + "col": 3, + "value": 3436 + }, + { + "row": 2, + "col": 4, + "value": 3223 + }, + { + "row": 2, + "col": 5, + "value": 2193 + }, + { + "row": 2, + "col": 6, + "value": 2082 + }, + { + "row": 2, + "col": 7, + "value": 2060 + }, + { + "row": 2, + "col": 8, + "value": 2053 + }, + { + "row": 2, + "col": 9, + "value": 2050 + }, + { + "row": 3, + "col": 0, + "value": 2068 + }, + { + "row": 3, + "col": 1, + "value": 2115 + }, + { + "row": 3, + "col": 2, + "value": 2393 + }, + { + "row": 3, + "col": 3, + "value": 3198 + }, + { + "row": 3, + "col": 4, + "value": 2339 + }, + { + "row": 3, + "col": 5, + "value": 2107 + }, + { + "row": 3, + "col": 6, + "value": 2067 + }, + { + "row": 3, + "col": 7, + "value": 2055 + }, + { + "row": 3, + "col": 8, + "value": 2051 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2058 + }, + { + "row": 4, + "col": 1, + "value": 2072 + }, + { + "row": 4, + "col": 2, + "value": 2112 + }, + { + "row": 4, + "col": 3, + "value": 2199 + }, + { + "row": 4, + "col": 4, + "value": 2191 + }, + { + "row": 4, + "col": 5, + "value": 2107 + }, + { + "row": 4, + "col": 6, + "value": 2070 + }, + { + "row": 4, + "col": 7, + "value": 2057 + }, + { + "row": 4, + "col": 8, + "value": 2052 + }, + { + "row": 4, + "col": 9, + "value": 2050 + }, + { + "row": 5, + "col": 0, + "value": 2058 + }, + { + "row": 5, + "col": 1, + "value": 2068 + }, + { + "row": 5, + "col": 2, + "value": 2083 + }, + { + "row": 5, + "col": 3, + "value": 2093 + }, + { + "row": 5, + "col": 4, + "value": 2082 + }, + { + "row": 5, + "col": 5, + "value": 2066 + }, + { + "row": 5, + "col": 6, + "value": 2057 + }, + { + "row": 5, + "col": 7, + "value": 2052 + }, + { + "row": 5, + "col": 8, + "value": 2050 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2052 + }, + { + "row": 6, + "col": 1, + "value": 2056 + }, + { + "row": 6, + "col": 2, + "value": 2060 + }, + { + "row": 6, + "col": 3, + "value": 2064 + }, + { + "row": 6, + "col": 4, + "value": 2064 + }, + { + "row": 6, + "col": 5, + "value": 2060 + }, + { + "row": 6, + "col": 6, + "value": 2055 + }, + { + "row": 6, + "col": 7, + "value": 2052 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 9800421684, + "cursor_x_mm": 39.93333333333333, + "cursor_y_mm": 34.86666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2053 + }, + { + "row": 0, + "col": 1, + "value": 2057 + }, + { + "row": 0, + "col": 2, + "value": 2064 + }, + { + "row": 0, + "col": 3, + "value": 2070 + }, + { + "row": 0, + "col": 4, + "value": 2070 + }, + { + "row": 0, + "col": 5, + "value": 2064 + }, + { + "row": 0, + "col": 6, + "value": 2057 + }, + { + "row": 0, + "col": 7, + "value": 2053 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2059 + }, + { + "row": 1, + "col": 1, + "value": 2073 + }, + { + "row": 1, + "col": 2, + "value": 2098 + }, + { + "row": 1, + "col": 3, + "value": 2117 + }, + { + "row": 1, + "col": 4, + "value": 2098 + }, + { + "row": 1, + "col": 5, + "value": 2072 + }, + { + "row": 1, + "col": 6, + "value": 2059 + }, + { + "row": 1, + "col": 7, + "value": 2053 + }, + { + "row": 1, + "col": 8, + "value": 2050 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2059 + }, + { + "row": 2, + "col": 1, + "value": 2075 + }, + { + "row": 2, + "col": 2, + "value": 2132 + }, + { + "row": 2, + "col": 3, + "value": 2310 + }, + { + "row": 2, + "col": 4, + "value": 2307 + }, + { + "row": 2, + "col": 5, + "value": 2131 + }, + { + "row": 2, + "col": 6, + "value": 2075 + }, + { + "row": 2, + "col": 7, + "value": 2058 + }, + { + "row": 2, + "col": 8, + "value": 2053 + }, + { + "row": 2, + "col": 9, + "value": 2050 + }, + { + "row": 3, + "col": 0, + "value": 2069 + }, + { + "row": 3, + "col": 1, + "value": 2118 + }, + { + "row": 3, + "col": 2, + "value": 2477 + }, + { + "row": 3, + "col": 3, + "value": 3931 + }, + { + "row": 3, + "col": 4, + "value": 2465 + }, + { + "row": 3, + "col": 5, + "value": 2117 + }, + { + "row": 3, + "col": 6, + "value": 2068 + }, + { + "row": 3, + "col": 7, + "value": 2056 + }, + { + "row": 3, + "col": 8, + "value": 2051 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2060 + }, + { + "row": 4, + "col": 1, + "value": 2082 + }, + { + "row": 4, + "col": 2, + "value": 2185 + }, + { + "row": 4, + "col": 3, + "value": 2883 + }, + { + "row": 4, + "col": 4, + "value": 2866 + }, + { + "row": 4, + "col": 5, + "value": 2182 + }, + { + "row": 4, + "col": 6, + "value": 2082 + }, + { + "row": 4, + "col": 7, + "value": 2060 + }, + { + "row": 4, + "col": 8, + "value": 2053 + }, + { + "row": 4, + "col": 9, + "value": 2050 + }, + { + "row": 5, + "col": 0, + "value": 2063 + }, + { + "row": 5, + "col": 1, + "value": 2087 + }, + { + "row": 5, + "col": 2, + "value": 2154 + }, + { + "row": 5, + "col": 3, + "value": 2232 + }, + { + "row": 5, + "col": 4, + "value": 2153 + }, + { + "row": 5, + "col": 5, + "value": 2086 + }, + { + "row": 5, + "col": 6, + "value": 2063 + }, + { + "row": 5, + "col": 7, + "value": 2054 + }, + { + "row": 5, + "col": 8, + "value": 2051 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2055 + }, + { + "row": 6, + "col": 1, + "value": 2062 + }, + { + "row": 6, + "col": 2, + "value": 2075 + }, + { + "row": 6, + "col": 3, + "value": 2092 + }, + { + "row": 6, + "col": 4, + "value": 2092 + }, + { + "row": 6, + "col": 5, + "value": 2075 + }, + { + "row": 6, + "col": 6, + "value": 2062 + }, + { + "row": 6, + "col": 7, + "value": 2055 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 9942665823, + "cursor_x_mm": 39.93333333333333, + "cursor_y_mm": 43.13333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2051 + }, + { + "row": 0, + "col": 1, + "value": 2054 + }, + { + "row": 0, + "col": 2, + "value": 2057 + }, + { + "row": 0, + "col": 3, + "value": 2059 + }, + { + "row": 0, + "col": 4, + "value": 2059 + }, + { + "row": 0, + "col": 5, + "value": 2057 + }, + { + "row": 0, + "col": 6, + "value": 2054 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2056 + }, + { + "row": 1, + "col": 1, + "value": 2062 + }, + { + "row": 1, + "col": 2, + "value": 2071 + }, + { + "row": 1, + "col": 3, + "value": 2076 + }, + { + "row": 1, + "col": 4, + "value": 2071 + }, + { + "row": 1, + "col": 5, + "value": 2062 + }, + { + "row": 1, + "col": 6, + "value": 2056 + }, + { + "row": 1, + "col": 7, + "value": 2052 + }, + { + "row": 1, + "col": 8, + "value": 2050 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2056 + }, + { + "row": 2, + "col": 1, + "value": 2067 + }, + { + "row": 2, + "col": 2, + "value": 2090 + }, + { + "row": 2, + "col": 3, + "value": 2129 + }, + { + "row": 2, + "col": 4, + "value": 2128 + }, + { + "row": 2, + "col": 5, + "value": 2090 + }, + { + "row": 2, + "col": 6, + "value": 2066 + }, + { + "row": 2, + "col": 7, + "value": 2056 + }, + { + "row": 2, + "col": 8, + "value": 2052 + }, + { + "row": 2, + "col": 9, + "value": 2050 + }, + { + "row": 3, + "col": 0, + "value": 2066 + }, + { + "row": 3, + "col": 1, + "value": 2100 + }, + { + "row": 3, + "col": 2, + "value": 2246 + }, + { + "row": 3, + "col": 3, + "value": 2527 + }, + { + "row": 3, + "col": 4, + "value": 2242 + }, + { + "row": 3, + "col": 5, + "value": 2099 + }, + { + "row": 3, + "col": 6, + "value": 2065 + }, + { + "row": 3, + "col": 7, + "value": 2055 + }, + { + "row": 3, + "col": 8, + "value": 2051 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2061 + }, + { + "row": 4, + "col": 1, + "value": 2085 + }, + { + "row": 4, + "col": 2, + "value": 2212 + }, + { + "row": 4, + "col": 3, + "value": 3465 + }, + { + "row": 4, + "col": 4, + "value": 3432 + }, + { + "row": 4, + "col": 5, + "value": 2208 + }, + { + "row": 4, + "col": 6, + "value": 2084 + }, + { + "row": 4, + "col": 7, + "value": 2060 + }, + { + "row": 4, + "col": 8, + "value": 2053 + }, + { + "row": 4, + "col": 9, + "value": 2050 + }, + { + "row": 5, + "col": 0, + "value": 2067 + }, + { + "row": 5, + "col": 1, + "value": 2108 + }, + { + "row": 5, + "col": 2, + "value": 2322 + }, + { + "row": 5, + "col": 3, + "value": 2904 + }, + { + "row": 5, + "col": 4, + "value": 2315 + }, + { + "row": 5, + "col": 5, + "value": 2107 + }, + { + "row": 5, + "col": 6, + "value": 2067 + }, + { + "row": 5, + "col": 7, + "value": 2055 + }, + { + "row": 5, + "col": 8, + "value": 2051 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2057 + }, + { + "row": 6, + "col": 1, + "value": 2069 + }, + { + "row": 6, + "col": 2, + "value": 2102 + }, + { + "row": 6, + "col": 3, + "value": 2166 + }, + { + "row": 6, + "col": 4, + "value": 2165 + }, + { + "row": 6, + "col": 5, + "value": 2102 + }, + { + "row": 6, + "col": 6, + "value": 2069 + }, + { + "row": 6, + "col": 7, + "value": 2057 + }, + { + "row": 6, + "col": 8, + "value": 2052 + }, + { + "row": 6, + "col": 9, + "value": 2050 + } + ] + }, + { + "timestamp_ns": 10099186634, + "cursor_x_mm": 40.06666666666667, + "cursor_y_mm": 50.86666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2051 + }, + { + "row": 0, + "col": 2, + "value": 2052 + }, + { + "row": 0, + "col": 3, + "value": 2053 + }, + { + "row": 0, + "col": 4, + "value": 2053 + }, + { + "row": 0, + "col": 5, + "value": 2052 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2052 + }, + { + "row": 1, + "col": 1, + "value": 2055 + }, + { + "row": 1, + "col": 2, + "value": 2058 + }, + { + "row": 1, + "col": 3, + "value": 2059 + }, + { + "row": 1, + "col": 4, + "value": 2058 + }, + { + "row": 1, + "col": 5, + "value": 2055 + }, + { + "row": 1, + "col": 6, + "value": 2052 + }, + { + "row": 1, + "col": 7, + "value": 2050 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2053 + }, + { + "row": 2, + "col": 1, + "value": 2058 + }, + { + "row": 2, + "col": 2, + "value": 2065 + }, + { + "row": 2, + "col": 3, + "value": 2073 + }, + { + "row": 2, + "col": 4, + "value": 2073 + }, + { + "row": 2, + "col": 5, + "value": 2066 + }, + { + "row": 2, + "col": 6, + "value": 2058 + }, + { + "row": 2, + "col": 7, + "value": 2053 + }, + { + "row": 2, + "col": 8, + "value": 2051 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2060 + }, + { + "row": 3, + "col": 1, + "value": 2074 + }, + { + "row": 3, + "col": 2, + "value": 2104 + }, + { + "row": 3, + "col": 3, + "value": 2129 + }, + { + "row": 3, + "col": 4, + "value": 2105 + }, + { + "row": 3, + "col": 5, + "value": 2075 + }, + { + "row": 3, + "col": 6, + "value": 2060 + }, + { + "row": 3, + "col": 7, + "value": 2053 + }, + { + "row": 3, + "col": 8, + "value": 2050 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2059 + }, + { + "row": 4, + "col": 1, + "value": 2076 + }, + { + "row": 4, + "col": 2, + "value": 2140 + }, + { + "row": 4, + "col": 3, + "value": 2365 + }, + { + "row": 4, + "col": 4, + "value": 2369 + }, + { + "row": 4, + "col": 5, + "value": 2141 + }, + { + "row": 4, + "col": 6, + "value": 2077 + }, + { + "row": 4, + "col": 7, + "value": 2059 + }, + { + "row": 4, + "col": 8, + "value": 2053 + }, + { + "row": 4, + "col": 9, + "value": 2050 + }, + { + "row": 5, + "col": 0, + "value": 2068 + }, + { + "row": 5, + "col": 1, + "value": 2118 + }, + { + "row": 5, + "col": 2, + "value": 2489 + }, + { + "row": 5, + "col": 3, + "value": 4048 + }, + { + "row": 5, + "col": 4, + "value": 2503 + }, + { + "row": 5, + "col": 5, + "value": 2119 + }, + { + "row": 5, + "col": 6, + "value": 2069 + }, + { + "row": 5, + "col": 7, + "value": 2056 + }, + { + "row": 5, + "col": 8, + "value": 2051 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2060 + }, + { + "row": 6, + "col": 1, + "value": 2081 + }, + { + "row": 6, + "col": 2, + "value": 2173 + }, + { + "row": 6, + "col": 3, + "value": 2721 + }, + { + "row": 6, + "col": 4, + "value": 2734 + }, + { + "row": 6, + "col": 5, + "value": 2176 + }, + { + "row": 6, + "col": 6, + "value": 2081 + }, + { + "row": 6, + "col": 7, + "value": 2060 + }, + { + "row": 6, + "col": 8, + "value": 2053 + }, + { + "row": 6, + "col": 9, + "value": 2050 + } + ] + }, + { + "timestamp_ns": 10244284448, + "cursor_x_mm": 39.8, + "cursor_y_mm": 55.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2051 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2051 + }, + { + "row": 1, + "col": 1, + "value": 2053 + }, + { + "row": 1, + "col": 2, + "value": 2054 + }, + { + "row": 1, + "col": 3, + "value": 2055 + }, + { + "row": 1, + "col": 4, + "value": 2054 + }, + { + "row": 1, + "col": 5, + "value": 2053 + }, + { + "row": 1, + "col": 6, + "value": 2051 + }, + { + "row": 1, + "col": 7, + "value": 2050 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2052 + }, + { + "row": 2, + "col": 1, + "value": 2055 + }, + { + "row": 2, + "col": 2, + "value": 2060 + }, + { + "row": 2, + "col": 3, + "value": 2063 + }, + { + "row": 2, + "col": 4, + "value": 2063 + }, + { + "row": 2, + "col": 5, + "value": 2060 + }, + { + "row": 2, + "col": 6, + "value": 2055 + }, + { + "row": 2, + "col": 7, + "value": 2052 + }, + { + "row": 2, + "col": 8, + "value": 2050 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2057 + }, + { + "row": 3, + "col": 1, + "value": 2067 + }, + { + "row": 3, + "col": 2, + "value": 2081 + }, + { + "row": 3, + "col": 3, + "value": 2090 + }, + { + "row": 3, + "col": 4, + "value": 2081 + }, + { + "row": 3, + "col": 5, + "value": 2066 + }, + { + "row": 3, + "col": 6, + "value": 2057 + }, + { + "row": 3, + "col": 7, + "value": 2052 + }, + { + "row": 3, + "col": 8, + "value": 2050 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2058 + }, + { + "row": 4, + "col": 1, + "value": 2071 + }, + { + "row": 4, + "col": 2, + "value": 2108 + }, + { + "row": 4, + "col": 3, + "value": 2186 + }, + { + "row": 4, + "col": 4, + "value": 2183 + }, + { + "row": 4, + "col": 5, + "value": 2106 + }, + { + "row": 4, + "col": 6, + "value": 2070 + }, + { + "row": 4, + "col": 7, + "value": 2057 + }, + { + "row": 4, + "col": 8, + "value": 2052 + }, + { + "row": 4, + "col": 9, + "value": 2050 + }, + { + "row": 5, + "col": 0, + "value": 2068 + }, + { + "row": 5, + "col": 1, + "value": 2111 + }, + { + "row": 5, + "col": 2, + "value": 2360 + }, + { + "row": 5, + "col": 3, + "value": 3093 + }, + { + "row": 5, + "col": 4, + "value": 2338 + }, + { + "row": 5, + "col": 5, + "value": 2108 + }, + { + "row": 5, + "col": 6, + "value": 2067 + }, + { + "row": 5, + "col": 7, + "value": 2055 + }, + { + "row": 5, + "col": 8, + "value": 2051 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2061 + }, + { + "row": 6, + "col": 1, + "value": 2085 + }, + { + "row": 6, + "col": 2, + "value": 2213 + }, + { + "row": 6, + "col": 3, + "value": 3426 + }, + { + "row": 6, + "col": 4, + "value": 3331 + }, + { + "row": 6, + "col": 5, + "value": 2202 + }, + { + "row": 6, + "col": 6, + "value": 2083 + }, + { + "row": 6, + "col": 7, + "value": 2060 + }, + { + "row": 6, + "col": 8, + "value": 2053 + }, + { + "row": 6, + "col": 9, + "value": 2050 + } + ] + }, + { + "timestamp_ns": 10404048908, + "cursor_x_mm": 43.4, + "cursor_y_mm": 59.666666666666664, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2048 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2050 + }, + { + "row": 1, + "col": 1, + "value": 2051 + }, + { + "row": 1, + "col": 2, + "value": 2052 + }, + { + "row": 1, + "col": 3, + "value": 2053 + }, + { + "row": 1, + "col": 4, + "value": 2053 + }, + { + "row": 1, + "col": 5, + "value": 2052 + }, + { + "row": 1, + "col": 6, + "value": 2051 + }, + { + "row": 1, + "col": 7, + "value": 2049 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2051 + }, + { + "row": 2, + "col": 1, + "value": 2053 + }, + { + "row": 2, + "col": 2, + "value": 2056 + }, + { + "row": 2, + "col": 3, + "value": 2058 + }, + { + "row": 2, + "col": 4, + "value": 2059 + }, + { + "row": 2, + "col": 5, + "value": 2057 + }, + { + "row": 2, + "col": 6, + "value": 2054 + }, + { + "row": 2, + "col": 7, + "value": 2052 + }, + { + "row": 2, + "col": 8, + "value": 2050 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2054 + }, + { + "row": 3, + "col": 1, + "value": 2060 + }, + { + "row": 3, + "col": 2, + "value": 2068 + }, + { + "row": 3, + "col": 3, + "value": 2074 + }, + { + "row": 3, + "col": 4, + "value": 2071 + }, + { + "row": 3, + "col": 5, + "value": 2063 + }, + { + "row": 3, + "col": 6, + "value": 2056 + }, + { + "row": 3, + "col": 7, + "value": 2052 + }, + { + "row": 3, + "col": 8, + "value": 2050 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2055 + }, + { + "row": 4, + "col": 1, + "value": 2063 + }, + { + "row": 4, + "col": 2, + "value": 2082 + }, + { + "row": 4, + "col": 3, + "value": 2115 + }, + { + "row": 4, + "col": 4, + "value": 2126 + }, + { + "row": 4, + "col": 5, + "value": 2094 + }, + { + "row": 4, + "col": 6, + "value": 2069 + }, + { + "row": 4, + "col": 7, + "value": 2057 + }, + { + "row": 4, + "col": 8, + "value": 2052 + }, + { + "row": 4, + "col": 9, + "value": 2050 + }, + { + "row": 5, + "col": 0, + "value": 2062 + }, + { + "row": 5, + "col": 1, + "value": 2088 + }, + { + "row": 5, + "col": 2, + "value": 2186 + }, + { + "row": 5, + "col": 3, + "value": 2442 + }, + { + "row": 5, + "col": 4, + "value": 2276 + }, + { + "row": 5, + "col": 5, + "value": 2111 + }, + { + "row": 5, + "col": 6, + "value": 2069 + }, + { + "row": 5, + "col": 7, + "value": 2056 + }, + { + "row": 5, + "col": 8, + "value": 2052 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2058 + }, + { + "row": 6, + "col": 1, + "value": 2077 + }, + { + "row": 6, + "col": 2, + "value": 2162 + }, + { + "row": 6, + "col": 3, + "value": 2955 + }, + { + "row": 6, + "col": 4, + "value": 3814 + }, + { + "row": 6, + "col": 5, + "value": 2280 + }, + { + "row": 6, + "col": 6, + "value": 2094 + }, + { + "row": 6, + "col": 7, + "value": 2063 + }, + { + "row": 6, + "col": 8, + "value": 2054 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 10548073272, + "cursor_x_mm": 46.6, + "cursor_y_mm": 58.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2050 + }, + { + "row": 1, + "col": 1, + "value": 2051 + }, + { + "row": 1, + "col": 2, + "value": 2052 + }, + { + "row": 1, + "col": 3, + "value": 2053 + }, + { + "row": 1, + "col": 4, + "value": 2053 + }, + { + "row": 1, + "col": 5, + "value": 2052 + }, + { + "row": 1, + "col": 6, + "value": 2051 + }, + { + "row": 1, + "col": 7, + "value": 2050 + }, + { + "row": 1, + "col": 8, + "value": 2049 + }, + { + "row": 1, + "col": 9, + "value": 2048 + }, + { + "row": 2, + "col": 0, + "value": 2050 + }, + { + "row": 2, + "col": 1, + "value": 2052 + }, + { + "row": 2, + "col": 2, + "value": 2054 + }, + { + "row": 2, + "col": 3, + "value": 2057 + }, + { + "row": 2, + "col": 4, + "value": 2058 + }, + { + "row": 2, + "col": 5, + "value": 2058 + }, + { + "row": 2, + "col": 6, + "value": 2055 + }, + { + "row": 2, + "col": 7, + "value": 2052 + }, + { + "row": 2, + "col": 8, + "value": 2050 + }, + { + "row": 2, + "col": 9, + "value": 2049 + }, + { + "row": 3, + "col": 0, + "value": 2053 + }, + { + "row": 3, + "col": 1, + "value": 2057 + }, + { + "row": 3, + "col": 2, + "value": 2064 + }, + { + "row": 3, + "col": 3, + "value": 2071 + }, + { + "row": 3, + "col": 4, + "value": 2072 + }, + { + "row": 3, + "col": 5, + "value": 2066 + }, + { + "row": 3, + "col": 6, + "value": 2058 + }, + { + "row": 3, + "col": 7, + "value": 2054 + }, + { + "row": 3, + "col": 8, + "value": 2051 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2053 + }, + { + "row": 4, + "col": 1, + "value": 2059 + }, + { + "row": 4, + "col": 2, + "value": 2071 + }, + { + "row": 4, + "col": 3, + "value": 2098 + }, + { + "row": 4, + "col": 4, + "value": 2123 + }, + { + "row": 4, + "col": 5, + "value": 2106 + }, + { + "row": 4, + "col": 6, + "value": 2076 + }, + { + "row": 4, + "col": 7, + "value": 2061 + }, + { + "row": 4, + "col": 8, + "value": 2054 + }, + { + "row": 4, + "col": 9, + "value": 2051 + }, + { + "row": 5, + "col": 0, + "value": 2058 + }, + { + "row": 5, + "col": 1, + "value": 2073 + }, + { + "row": 5, + "col": 2, + "value": 2124 + }, + { + "row": 5, + "col": 3, + "value": 2311 + }, + { + "row": 5, + "col": 4, + "value": 2373 + }, + { + "row": 5, + "col": 5, + "value": 2152 + }, + { + "row": 5, + "col": 6, + "value": 2080 + }, + { + "row": 5, + "col": 7, + "value": 2060 + }, + { + "row": 5, + "col": 8, + "value": 2053 + }, + { + "row": 5, + "col": 9, + "value": 2050 + }, + { + "row": 6, + "col": 0, + "value": 2055 + }, + { + "row": 6, + "col": 1, + "value": 2066 + }, + { + "row": 6, + "col": 2, + "value": 2107 + }, + { + "row": 6, + "col": 3, + "value": 2385 + }, + { + "row": 6, + "col": 4, + "value": 3980 + }, + { + "row": 6, + "col": 5, + "value": 2625 + }, + { + "row": 6, + "col": 6, + "value": 2132 + }, + { + "row": 6, + "col": 7, + "value": 2071 + }, + { + "row": 6, + "col": 8, + "value": 2057 + }, + { + "row": 6, + "col": 9, + "value": 2052 + } + ] + }, + { + "timestamp_ns": 10708027368, + "cursor_x_mm": 47.266666666666666, + "cursor_y_mm": 50.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2051 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2052 + }, + { + "row": 0, + "col": 5, + "value": 2052 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2048 + }, + { + "row": 1, + "col": 0, + "value": 2050 + }, + { + "row": 1, + "col": 1, + "value": 2052 + }, + { + "row": 1, + "col": 2, + "value": 2054 + }, + { + "row": 1, + "col": 3, + "value": 2056 + }, + { + "row": 1, + "col": 4, + "value": 2056 + }, + { + "row": 1, + "col": 5, + "value": 2055 + }, + { + "row": 1, + "col": 6, + "value": 2053 + }, + { + "row": 1, + "col": 7, + "value": 2051 + }, + { + "row": 1, + "col": 8, + "value": 2050 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2051 + }, + { + "row": 2, + "col": 1, + "value": 2053 + }, + { + "row": 2, + "col": 2, + "value": 2057 + }, + { + "row": 2, + "col": 3, + "value": 2063 + }, + { + "row": 2, + "col": 4, + "value": 2067 + }, + { + "row": 2, + "col": 5, + "value": 2065 + }, + { + "row": 2, + "col": 6, + "value": 2060 + }, + { + "row": 2, + "col": 7, + "value": 2055 + }, + { + "row": 2, + "col": 8, + "value": 2052 + }, + { + "row": 2, + "col": 9, + "value": 2050 + }, + { + "row": 3, + "col": 0, + "value": 2054 + }, + { + "row": 3, + "col": 1, + "value": 2060 + }, + { + "row": 3, + "col": 2, + "value": 2073 + }, + { + "row": 3, + "col": 3, + "value": 2093 + }, + { + "row": 3, + "col": 4, + "value": 2100 + }, + { + "row": 3, + "col": 5, + "value": 2083 + }, + { + "row": 3, + "col": 6, + "value": 2065 + }, + { + "row": 3, + "col": 7, + "value": 2056 + }, + { + "row": 3, + "col": 8, + "value": 2052 + }, + { + "row": 3, + "col": 9, + "value": 2050 + }, + { + "row": 4, + "col": 0, + "value": 2053 + }, + { + "row": 4, + "col": 1, + "value": 2060 + }, + { + "row": 4, + "col": 2, + "value": 2080 + }, + { + "row": 4, + "col": 3, + "value": 2141 + }, + { + "row": 4, + "col": 4, + "value": 2258 + }, + { + "row": 4, + "col": 5, + "value": 2198 + }, + { + "row": 4, + "col": 6, + "value": 2101 + }, + { + "row": 4, + "col": 7, + "value": 2067 + }, + { + "row": 4, + "col": 8, + "value": 2056 + }, + { + "row": 4, + "col": 9, + "value": 2051 + }, + { + "row": 5, + "col": 0, + "value": 2058 + }, + { + "row": 5, + "col": 1, + "value": 2074 + }, + { + "row": 5, + "col": 2, + "value": 2145 + }, + { + "row": 5, + "col": 3, + "value": 2662 + }, + { + "row": 5, + "col": 4, + "value": 3361 + }, + { + "row": 5, + "col": 5, + "value": 2267 + }, + { + "row": 5, + "col": 6, + "value": 2095 + }, + { + "row": 5, + "col": 7, + "value": 2063 + }, + { + "row": 5, + "col": 8, + "value": 2054 + }, + { + "row": 5, + "col": 9, + "value": 2051 + }, + { + "row": 6, + "col": 0, + "value": 2054 + }, + { + "row": 6, + "col": 1, + "value": 2064 + }, + { + "row": 6, + "col": 2, + "value": 2097 + }, + { + "row": 6, + "col": 3, + "value": 2291 + }, + { + "row": 6, + "col": 4, + "value": 3608 + }, + { + "row": 6, + "col": 5, + "value": 2711 + }, + { + "row": 6, + "col": 6, + "value": 2145 + }, + { + "row": 6, + "col": 7, + "value": 2074 + }, + { + "row": 6, + "col": 8, + "value": 2058 + }, + { + "row": 6, + "col": 9, + "value": 2052 + } + ] + }, + { + "timestamp_ns": 10866171393, + "cursor_x_mm": 46.86666666666667, + "cursor_y_mm": 43.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2051 + }, + { + "row": 0, + "col": 2, + "value": 2053 + }, + { + "row": 0, + "col": 3, + "value": 2055 + }, + { + "row": 0, + "col": 4, + "value": 2056 + }, + { + "row": 0, + "col": 5, + "value": 2055 + }, + { + "row": 0, + "col": 6, + "value": 2054 + }, + { + "row": 0, + "col": 7, + "value": 2052 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2052 + }, + { + "row": 1, + "col": 1, + "value": 2055 + }, + { + "row": 1, + "col": 2, + "value": 2060 + }, + { + "row": 1, + "col": 3, + "value": 2065 + }, + { + "row": 1, + "col": 4, + "value": 2066 + }, + { + "row": 1, + "col": 5, + "value": 2062 + }, + { + "row": 1, + "col": 6, + "value": 2057 + }, + { + "row": 1, + "col": 7, + "value": 2053 + }, + { + "row": 1, + "col": 8, + "value": 2051 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2052 + }, + { + "row": 2, + "col": 1, + "value": 2057 + }, + { + "row": 2, + "col": 2, + "value": 2066 + }, + { + "row": 2, + "col": 3, + "value": 2083 + }, + { + "row": 2, + "col": 4, + "value": 2098 + }, + { + "row": 2, + "col": 5, + "value": 2090 + }, + { + "row": 2, + "col": 6, + "value": 2071 + }, + { + "row": 2, + "col": 7, + "value": 2059 + }, + { + "row": 2, + "col": 8, + "value": 2053 + }, + { + "row": 2, + "col": 9, + "value": 2051 + }, + { + "row": 3, + "col": 0, + "value": 2056 + }, + { + "row": 3, + "col": 1, + "value": 2068 + }, + { + "row": 3, + "col": 2, + "value": 2103 + }, + { + "row": 3, + "col": 3, + "value": 2198 + }, + { + "row": 3, + "col": 4, + "value": 2237 + }, + { + "row": 3, + "col": 5, + "value": 2130 + }, + { + "row": 3, + "col": 6, + "value": 2077 + }, + { + "row": 3, + "col": 7, + "value": 2060 + }, + { + "row": 3, + "col": 8, + "value": 2053 + }, + { + "row": 3, + "col": 9, + "value": 2050 + }, + { + "row": 4, + "col": 0, + "value": 2055 + }, + { + "row": 4, + "col": 1, + "value": 2064 + }, + { + "row": 4, + "col": 2, + "value": 2099 + }, + { + "row": 4, + "col": 3, + "value": 2292 + }, + { + "row": 4, + "col": 4, + "value": 3345 + }, + { + "row": 4, + "col": 5, + "value": 2552 + }, + { + "row": 4, + "col": 6, + "value": 2133 + }, + { + "row": 4, + "col": 7, + "value": 2072 + }, + { + "row": 4, + "col": 8, + "value": 2057 + }, + { + "row": 4, + "col": 9, + "value": 2052 + }, + { + "row": 5, + "col": 0, + "value": 2058 + }, + { + "row": 5, + "col": 1, + "value": 2077 + }, + { + "row": 5, + "col": 2, + "value": 2159 + }, + { + "row": 5, + "col": 3, + "value": 2857 + }, + { + "row": 5, + "col": 4, + "value": 3576 + }, + { + "row": 5, + "col": 5, + "value": 2263 + }, + { + "row": 5, + "col": 6, + "value": 2093 + }, + { + "row": 5, + "col": 7, + "value": 2063 + }, + { + "row": 5, + "col": 8, + "value": 2054 + }, + { + "row": 5, + "col": 9, + "value": 2051 + }, + { + "row": 6, + "col": 0, + "value": 2054 + }, + { + "row": 6, + "col": 1, + "value": 2062 + }, + { + "row": 6, + "col": 2, + "value": 2085 + }, + { + "row": 6, + "col": 3, + "value": 2164 + }, + { + "row": 6, + "col": 4, + "value": 2331 + }, + { + "row": 6, + "col": 5, + "value": 2225 + }, + { + "row": 6, + "col": 6, + "value": 2103 + }, + { + "row": 6, + "col": 7, + "value": 2067 + }, + { + "row": 6, + "col": 8, + "value": 2056 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 11008749576, + "cursor_x_mm": 46.06666666666667, + "cursor_y_mm": 36.2, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2051 + }, + { + "row": 0, + "col": 1, + "value": 2053 + }, + { + "row": 0, + "col": 2, + "value": 2057 + }, + { + "row": 0, + "col": 3, + "value": 2061 + }, + { + "row": 0, + "col": 4, + "value": 2064 + }, + { + "row": 0, + "col": 5, + "value": 2062 + }, + { + "row": 0, + "col": 6, + "value": 2058 + }, + { + "row": 0, + "col": 7, + "value": 2054 + }, + { + "row": 0, + "col": 8, + "value": 2051 + }, + { + "row": 0, + "col": 9, + "value": 2050 + }, + { + "row": 1, + "col": 0, + "value": 2054 + }, + { + "row": 1, + "col": 1, + "value": 2060 + }, + { + "row": 1, + "col": 2, + "value": 2071 + }, + { + "row": 1, + "col": 3, + "value": 2085 + }, + { + "row": 1, + "col": 4, + "value": 2088 + }, + { + "row": 1, + "col": 5, + "value": 2075 + }, + { + "row": 1, + "col": 6, + "value": 2062 + }, + { + "row": 1, + "col": 7, + "value": 2055 + }, + { + "row": 1, + "col": 8, + "value": 2051 + }, + { + "row": 1, + "col": 9, + "value": 2050 + }, + { + "row": 2, + "col": 0, + "value": 2053 + }, + { + "row": 2, + "col": 1, + "value": 2060 + }, + { + "row": 2, + "col": 2, + "value": 2079 + }, + { + "row": 2, + "col": 3, + "value": 2128 + }, + { + "row": 2, + "col": 4, + "value": 2199 + }, + { + "row": 2, + "col": 5, + "value": 2154 + }, + { + "row": 2, + "col": 6, + "value": 2090 + }, + { + "row": 2, + "col": 7, + "value": 2064 + }, + { + "row": 2, + "col": 8, + "value": 2055 + }, + { + "row": 2, + "col": 9, + "value": 2051 + }, + { + "row": 3, + "col": 0, + "value": 2058 + }, + { + "row": 3, + "col": 1, + "value": 2075 + }, + { + "row": 3, + "col": 2, + "value": 2147 + }, + { + "row": 3, + "col": 3, + "value": 2586 + }, + { + "row": 3, + "col": 4, + "value": 2891 + }, + { + "row": 3, + "col": 5, + "value": 2213 + }, + { + "row": 3, + "col": 6, + "value": 2088 + }, + { + "row": 3, + "col": 7, + "value": 2062 + }, + { + "row": 3, + "col": 8, + "value": 2054 + }, + { + "row": 3, + "col": 9, + "value": 2050 + }, + { + "row": 4, + "col": 0, + "value": 2055 + }, + { + "row": 4, + "col": 1, + "value": 2065 + }, + { + "row": 4, + "col": 2, + "value": 2104 + }, + { + "row": 4, + "col": 3, + "value": 2362 + }, + { + "row": 4, + "col": 4, + "value": 3987 + }, + { + "row": 4, + "col": 5, + "value": 2693 + }, + { + "row": 4, + "col": 6, + "value": 2138 + }, + { + "row": 4, + "col": 7, + "value": 2072 + }, + { + "row": 4, + "col": 8, + "value": 2057 + }, + { + "row": 4, + "col": 9, + "value": 2052 + }, + { + "row": 5, + "col": 0, + "value": 2057 + }, + { + "row": 5, + "col": 1, + "value": 2072 + }, + { + "row": 5, + "col": 2, + "value": 2123 + }, + { + "row": 5, + "col": 3, + "value": 2315 + }, + { + "row": 5, + "col": 4, + "value": 2406 + }, + { + "row": 5, + "col": 5, + "value": 2161 + }, + { + "row": 5, + "col": 6, + "value": 2082 + }, + { + "row": 5, + "col": 7, + "value": 2060 + }, + { + "row": 5, + "col": 8, + "value": 2053 + }, + { + "row": 5, + "col": 9, + "value": 2050 + }, + { + "row": 6, + "col": 0, + "value": 2053 + }, + { + "row": 6, + "col": 1, + "value": 2058 + }, + { + "row": 6, + "col": 2, + "value": 2071 + }, + { + "row": 6, + "col": 3, + "value": 2098 + }, + { + "row": 6, + "col": 4, + "value": 2127 + }, + { + "row": 6, + "col": 5, + "value": 2110 + }, + { + "row": 6, + "col": 6, + "value": 2078 + }, + { + "row": 6, + "col": 7, + "value": 2061 + }, + { + "row": 6, + "col": 8, + "value": 2054 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 11152888233, + "cursor_x_mm": 45.13333333333333, + "cursor_y_mm": 31.266666666666666, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2052 + }, + { + "row": 0, + "col": 1, + "value": 2055 + }, + { + "row": 0, + "col": 2, + "value": 2061 + }, + { + "row": 0, + "col": 3, + "value": 2070 + }, + { + "row": 0, + "col": 4, + "value": 2075 + }, + { + "row": 0, + "col": 5, + "value": 2070 + }, + { + "row": 0, + "col": 6, + "value": 2062 + }, + { + "row": 0, + "col": 7, + "value": 2055 + }, + { + "row": 0, + "col": 8, + "value": 2052 + }, + { + "row": 0, + "col": 9, + "value": 2050 + }, + { + "row": 1, + "col": 0, + "value": 2056 + }, + { + "row": 1, + "col": 1, + "value": 2065 + }, + { + "row": 1, + "col": 2, + "value": 2087 + }, + { + "row": 1, + "col": 3, + "value": 2122 + }, + { + "row": 1, + "col": 4, + "value": 2123 + }, + { + "row": 1, + "col": 5, + "value": 2089 + }, + { + "row": 1, + "col": 6, + "value": 2066 + }, + { + "row": 1, + "col": 7, + "value": 2056 + }, + { + "row": 1, + "col": 8, + "value": 2052 + }, + { + "row": 1, + "col": 9, + "value": 2050 + }, + { + "row": 2, + "col": 0, + "value": 2055 + }, + { + "row": 2, + "col": 1, + "value": 2065 + }, + { + "row": 2, + "col": 2, + "value": 2097 + }, + { + "row": 2, + "col": 3, + "value": 2224 + }, + { + "row": 2, + "col": 4, + "value": 2472 + }, + { + "row": 2, + "col": 5, + "value": 2237 + }, + { + "row": 2, + "col": 6, + "value": 2100 + }, + { + "row": 2, + "col": 7, + "value": 2066 + }, + { + "row": 2, + "col": 8, + "value": 2055 + }, + { + "row": 2, + "col": 9, + "value": 2051 + }, + { + "row": 3, + "col": 0, + "value": 2060 + }, + { + "row": 3, + "col": 1, + "value": 2083 + }, + { + "row": 3, + "col": 2, + "value": 2201 + }, + { + "row": 3, + "col": 3, + "value": 3345 + }, + { + "row": 3, + "col": 4, + "value": 3475 + }, + { + "row": 3, + "col": 5, + "value": 2217 + }, + { + "row": 3, + "col": 6, + "value": 2086 + }, + { + "row": 3, + "col": 7, + "value": 2061 + }, + { + "row": 3, + "col": 8, + "value": 2053 + }, + { + "row": 3, + "col": 9, + "value": 2050 + }, + { + "row": 4, + "col": 0, + "value": 2055 + }, + { + "row": 4, + "col": 1, + "value": 2067 + }, + { + "row": 4, + "col": 2, + "value": 2107 + }, + { + "row": 4, + "col": 3, + "value": 2323 + }, + { + "row": 4, + "col": 4, + "value": 3015 + }, + { + "row": 4, + "col": 5, + "value": 2350 + }, + { + "row": 4, + "col": 6, + "value": 2111 + }, + { + "row": 4, + "col": 7, + "value": 2068 + }, + { + "row": 4, + "col": 8, + "value": 2056 + }, + { + "row": 4, + "col": 9, + "value": 2051 + }, + { + "row": 5, + "col": 0, + "value": 2057 + }, + { + "row": 5, + "col": 1, + "value": 2069 + }, + { + "row": 5, + "col": 2, + "value": 2103 + }, + { + "row": 5, + "col": 3, + "value": 2175 + }, + { + "row": 5, + "col": 4, + "value": 2178 + }, + { + "row": 5, + "col": 5, + "value": 2106 + }, + { + "row": 5, + "col": 6, + "value": 2071 + }, + { + "row": 5, + "col": 7, + "value": 2057 + }, + { + "row": 5, + "col": 8, + "value": 2052 + }, + { + "row": 5, + "col": 9, + "value": 2050 + }, + { + "row": 6, + "col": 0, + "value": 2052 + }, + { + "row": 6, + "col": 1, + "value": 2057 + }, + { + "row": 6, + "col": 2, + "value": 2066 + }, + { + "row": 6, + "col": 3, + "value": 2079 + }, + { + "row": 6, + "col": 4, + "value": 2088 + }, + { + "row": 6, + "col": 5, + "value": 2080 + }, + { + "row": 6, + "col": 6, + "value": 2066 + }, + { + "row": 6, + "col": 7, + "value": 2057 + }, + { + "row": 6, + "col": 8, + "value": 2053 + }, + { + "row": 6, + "col": 9, + "value": 2050 + } + ] + }, + { + "timestamp_ns": 11327482495, + "cursor_x_mm": 44.86666666666667, + "cursor_y_mm": 20.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2054 + }, + { + "row": 0, + "col": 1, + "value": 2061 + }, + { + "row": 0, + "col": 2, + "value": 2079 + }, + { + "row": 0, + "col": 3, + "value": 2119 + }, + { + "row": 0, + "col": 4, + "value": 2154 + }, + { + "row": 0, + "col": 5, + "value": 2118 + }, + { + "row": 0, + "col": 6, + "value": 2078 + }, + { + "row": 0, + "col": 7, + "value": 2061 + }, + { + "row": 0, + "col": 8, + "value": 2054 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2059 + }, + { + "row": 1, + "col": 1, + "value": 2079 + }, + { + "row": 1, + "col": 2, + "value": 2158 + }, + { + "row": 1, + "col": 3, + "value": 2508 + }, + { + "row": 1, + "col": 4, + "value": 2494 + }, + { + "row": 1, + "col": 5, + "value": 2154 + }, + { + "row": 1, + "col": 6, + "value": 2078 + }, + { + "row": 1, + "col": 7, + "value": 2059 + }, + { + "row": 1, + "col": 8, + "value": 2053 + }, + { + "row": 1, + "col": 9, + "value": 2050 + }, + { + "row": 2, + "col": 0, + "value": 2056 + }, + { + "row": 2, + "col": 1, + "value": 2069 + }, + { + "row": 2, + "col": 2, + "value": 2121 + }, + { + "row": 2, + "col": 3, + "value": 2529 + }, + { + "row": 2, + "col": 4, + "value": 4094 + }, + { + "row": 2, + "col": 5, + "value": 2500 + }, + { + "row": 2, + "col": 6, + "value": 2118 + }, + { + "row": 2, + "col": 7, + "value": 2068 + }, + { + "row": 2, + "col": 8, + "value": 2056 + }, + { + "row": 2, + "col": 9, + "value": 2051 + }, + { + "row": 3, + "col": 0, + "value": 2060 + }, + { + "row": 3, + "col": 1, + "value": 2079 + }, + { + "row": 3, + "col": 2, + "value": 2160 + }, + { + "row": 3, + "col": 3, + "value": 2536 + }, + { + "row": 3, + "col": 4, + "value": 2521 + }, + { + "row": 3, + "col": 5, + "value": 2156 + }, + { + "row": 3, + "col": 6, + "value": 2078 + }, + { + "row": 3, + "col": 7, + "value": 2059 + }, + { + "row": 3, + "col": 8, + "value": 2053 + }, + { + "row": 3, + "col": 9, + "value": 2050 + }, + { + "row": 4, + "col": 0, + "value": 2054 + }, + { + "row": 4, + "col": 1, + "value": 2061 + }, + { + "row": 4, + "col": 2, + "value": 2079 + }, + { + "row": 4, + "col": 3, + "value": 2122 + }, + { + "row": 4, + "col": 4, + "value": 2160 + }, + { + "row": 4, + "col": 5, + "value": 2120 + }, + { + "row": 4, + "col": 6, + "value": 2079 + }, + { + "row": 4, + "col": 7, + "value": 2061 + }, + { + "row": 4, + "col": 8, + "value": 2054 + }, + { + "row": 4, + "col": 9, + "value": 2051 + }, + { + "row": 5, + "col": 0, + "value": 2054 + }, + { + "row": 5, + "col": 1, + "value": 2060 + }, + { + "row": 5, + "col": 2, + "value": 2069 + }, + { + "row": 5, + "col": 3, + "value": 2079 + }, + { + "row": 5, + "col": 4, + "value": 2079 + }, + { + "row": 5, + "col": 5, + "value": 2069 + }, + { + "row": 5, + "col": 6, + "value": 2059 + }, + { + "row": 5, + "col": 7, + "value": 2054 + }, + { + "row": 5, + "col": 8, + "value": 2051 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2051 + }, + { + "row": 6, + "col": 1, + "value": 2053 + }, + { + "row": 6, + "col": 2, + "value": 2056 + }, + { + "row": 6, + "col": 3, + "value": 2060 + }, + { + "row": 6, + "col": 4, + "value": 2061 + }, + { + "row": 6, + "col": 5, + "value": 2059 + }, + { + "row": 6, + "col": 6, + "value": 2056 + }, + { + "row": 6, + "col": 7, + "value": 2053 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 11487282324, + "cursor_x_mm": 44.46666666666667, + "cursor_y_mm": 11.266666666666666, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2056 + }, + { + "row": 0, + "col": 1, + "value": 2067 + }, + { + "row": 0, + "col": 2, + "value": 2108 + }, + { + "row": 0, + "col": 3, + "value": 2328 + }, + { + "row": 0, + "col": 4, + "value": 2925 + }, + { + "row": 0, + "col": 5, + "value": 2316 + }, + { + "row": 0, + "col": 6, + "value": 2106 + }, + { + "row": 0, + "col": 7, + "value": 2067 + }, + { + "row": 0, + "col": 8, + "value": 2055 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2061 + }, + { + "row": 1, + "col": 1, + "value": 2085 + }, + { + "row": 1, + "col": 2, + "value": 2214 + }, + { + "row": 1, + "col": 3, + "value": 3475 + }, + { + "row": 1, + "col": 4, + "value": 3409 + }, + { + "row": 1, + "col": 5, + "value": 2206 + }, + { + "row": 1, + "col": 6, + "value": 2084 + }, + { + "row": 1, + "col": 7, + "value": 2060 + }, + { + "row": 1, + "col": 8, + "value": 2053 + }, + { + "row": 1, + "col": 9, + "value": 2050 + }, + { + "row": 2, + "col": 0, + "value": 2055 + }, + { + "row": 2, + "col": 1, + "value": 2066 + }, + { + "row": 2, + "col": 2, + "value": 2100 + }, + { + "row": 2, + "col": 3, + "value": 2245 + }, + { + "row": 2, + "col": 4, + "value": 2516 + }, + { + "row": 2, + "col": 5, + "value": 2238 + }, + { + "row": 2, + "col": 6, + "value": 2099 + }, + { + "row": 2, + "col": 7, + "value": 2065 + }, + { + "row": 2, + "col": 8, + "value": 2055 + }, + { + "row": 2, + "col": 9, + "value": 2051 + }, + { + "row": 3, + "col": 0, + "value": 2056 + }, + { + "row": 3, + "col": 1, + "value": 2067 + }, + { + "row": 3, + "col": 2, + "value": 2090 + }, + { + "row": 3, + "col": 3, + "value": 2128 + }, + { + "row": 3, + "col": 4, + "value": 2127 + }, + { + "row": 3, + "col": 5, + "value": 2089 + }, + { + "row": 3, + "col": 6, + "value": 2066 + }, + { + "row": 3, + "col": 7, + "value": 2056 + }, + { + "row": 3, + "col": 8, + "value": 2052 + }, + { + "row": 3, + "col": 9, + "value": 2050 + }, + { + "row": 4, + "col": 0, + "value": 2052 + }, + { + "row": 4, + "col": 1, + "value": 2056 + }, + { + "row": 4, + "col": 2, + "value": 2062 + }, + { + "row": 4, + "col": 3, + "value": 2071 + }, + { + "row": 4, + "col": 4, + "value": 2076 + }, + { + "row": 4, + "col": 5, + "value": 2071 + }, + { + "row": 4, + "col": 6, + "value": 2062 + }, + { + "row": 4, + "col": 7, + "value": 2055 + }, + { + "row": 4, + "col": 8, + "value": 2052 + }, + { + "row": 4, + "col": 9, + "value": 2050 + }, + { + "row": 5, + "col": 0, + "value": 2051 + }, + { + "row": 5, + "col": 1, + "value": 2054 + }, + { + "row": 5, + "col": 2, + "value": 2057 + }, + { + "row": 5, + "col": 3, + "value": 2059 + }, + { + "row": 5, + "col": 4, + "value": 2059 + }, + { + "row": 5, + "col": 5, + "value": 2057 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2051 + }, + { + "row": 5, + "col": 8, + "value": 2050 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2050 + }, + { + "row": 6, + "col": 2, + "value": 2052 + }, + { + "row": 6, + "col": 3, + "value": 2053 + }, + { + "row": 6, + "col": 4, + "value": 2053 + }, + { + "row": 6, + "col": 5, + "value": 2053 + }, + { + "row": 6, + "col": 6, + "value": 2052 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 11645279614, + "cursor_x_mm": 45.93333333333333, + "cursor_y_mm": 6.333333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2056 + }, + { + "row": 0, + "col": 1, + "value": 2068 + }, + { + "row": 0, + "col": 2, + "value": 2116 + }, + { + "row": 0, + "col": 3, + "value": 2470 + }, + { + "row": 0, + "col": 4, + "value": 4049 + }, + { + "row": 0, + "col": 5, + "value": 2524 + }, + { + "row": 0, + "col": 6, + "value": 2122 + }, + { + "row": 0, + "col": 7, + "value": 2069 + }, + { + "row": 0, + "col": 8, + "value": 2056 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2060 + }, + { + "row": 1, + "col": 1, + "value": 2080 + }, + { + "row": 1, + "col": 2, + "value": 2169 + }, + { + "row": 1, + "col": 3, + "value": 2698 + }, + { + "row": 1, + "col": 4, + "value": 2749 + }, + { + "row": 1, + "col": 5, + "value": 2179 + }, + { + "row": 1, + "col": 6, + "value": 2082 + }, + { + "row": 1, + "col": 7, + "value": 2060 + }, + { + "row": 1, + "col": 8, + "value": 2053 + }, + { + "row": 1, + "col": 9, + "value": 2050 + }, + { + "row": 2, + "col": 0, + "value": 2054 + }, + { + "row": 2, + "col": 1, + "value": 2062 + }, + { + "row": 2, + "col": 2, + "value": 2083 + }, + { + "row": 2, + "col": 3, + "value": 2137 + }, + { + "row": 2, + "col": 4, + "value": 2199 + }, + { + "row": 2, + "col": 5, + "value": 2141 + }, + { + "row": 2, + "col": 6, + "value": 2084 + }, + { + "row": 2, + "col": 7, + "value": 2063 + }, + { + "row": 2, + "col": 8, + "value": 2054 + }, + { + "row": 2, + "col": 9, + "value": 2051 + }, + { + "row": 3, + "col": 0, + "value": 2054 + }, + { + "row": 3, + "col": 1, + "value": 2061 + }, + { + "row": 3, + "col": 2, + "value": 2072 + }, + { + "row": 3, + "col": 3, + "value": 2086 + }, + { + "row": 3, + "col": 4, + "value": 2087 + }, + { + "row": 3, + "col": 5, + "value": 2073 + }, + { + "row": 3, + "col": 6, + "value": 2061 + }, + { + "row": 3, + "col": 7, + "value": 2054 + }, + { + "row": 3, + "col": 8, + "value": 2051 + }, + { + "row": 3, + "col": 9, + "value": 2049 + }, + { + "row": 4, + "col": 0, + "value": 2051 + }, + { + "row": 4, + "col": 1, + "value": 2053 + }, + { + "row": 4, + "col": 2, + "value": 2057 + }, + { + "row": 4, + "col": 3, + "value": 2061 + }, + { + "row": 4, + "col": 4, + "value": 2064 + }, + { + "row": 4, + "col": 5, + "value": 2062 + }, + { + "row": 4, + "col": 6, + "value": 2057 + }, + { + "row": 4, + "col": 7, + "value": 2053 + }, + { + "row": 4, + "col": 8, + "value": 2051 + }, + { + "row": 4, + "col": 9, + "value": 2049 + }, + { + "row": 5, + "col": 0, + "value": 2050 + }, + { + "row": 5, + "col": 1, + "value": 2052 + }, + { + "row": 5, + "col": 2, + "value": 2054 + }, + { + "row": 5, + "col": 3, + "value": 2055 + }, + { + "row": 5, + "col": 4, + "value": 2055 + }, + { + "row": 5, + "col": 5, + "value": 2054 + }, + { + "row": 5, + "col": 6, + "value": 2052 + }, + { + "row": 5, + "col": 7, + "value": 2050 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2048 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2050 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2051 + }, + { + "row": 6, + "col": 4, + "value": 2051 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 11804634919, + "cursor_x_mm": 49.93333333333333, + "cursor_y_mm": 5.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2053 + }, + { + "row": 0, + "col": 1, + "value": 2061 + }, + { + "row": 0, + "col": 2, + "value": 2087 + }, + { + "row": 0, + "col": 3, + "value": 2227 + }, + { + "row": 0, + "col": 4, + "value": 3604 + }, + { + "row": 0, + "col": 5, + "value": 3366 + }, + { + "row": 0, + "col": 6, + "value": 2198 + }, + { + "row": 0, + "col": 7, + "value": 2083 + }, + { + "row": 0, + "col": 8, + "value": 2060 + }, + { + "row": 0, + "col": 9, + "value": 2053 + }, + { + "row": 1, + "col": 0, + "value": 2056 + }, + { + "row": 1, + "col": 1, + "value": 2067 + }, + { + "row": 1, + "col": 2, + "value": 2107 + }, + { + "row": 1, + "col": 3, + "value": 2301 + }, + { + "row": 1, + "col": 4, + "value": 2707 + }, + { + "row": 1, + "col": 5, + "value": 2267 + }, + { + "row": 1, + "col": 6, + "value": 2101 + }, + { + "row": 1, + "col": 7, + "value": 2065 + }, + { + "row": 1, + "col": 8, + "value": 2055 + }, + { + "row": 1, + "col": 9, + "value": 2051 + }, + { + "row": 2, + "col": 0, + "value": 2052 + }, + { + "row": 2, + "col": 1, + "value": 2057 + }, + { + "row": 2, + "col": 2, + "value": 2069 + }, + { + "row": 2, + "col": 3, + "value": 2098 + }, + { + "row": 2, + "col": 4, + "value": 2149 + }, + { + "row": 2, + "col": 5, + "value": 2145 + }, + { + "row": 2, + "col": 6, + "value": 2094 + }, + { + "row": 2, + "col": 7, + "value": 2067 + }, + { + "row": 2, + "col": 8, + "value": 2056 + }, + { + "row": 2, + "col": 9, + "value": 2052 + }, + { + "row": 3, + "col": 0, + "value": 2052 + }, + { + "row": 3, + "col": 1, + "value": 2056 + }, + { + "row": 3, + "col": 2, + "value": 2064 + }, + { + "row": 3, + "col": 3, + "value": 2075 + }, + { + "row": 3, + "col": 4, + "value": 2081 + }, + { + "row": 3, + "col": 5, + "value": 2074 + }, + { + "row": 3, + "col": 6, + "value": 2063 + }, + { + "row": 3, + "col": 7, + "value": 2056 + }, + { + "row": 3, + "col": 8, + "value": 2052 + }, + { + "row": 3, + "col": 9, + "value": 2050 + }, + { + "row": 4, + "col": 0, + "value": 2050 + }, + { + "row": 4, + "col": 1, + "value": 2052 + }, + { + "row": 4, + "col": 2, + "value": 2054 + }, + { + "row": 4, + "col": 3, + "value": 2058 + }, + { + "row": 4, + "col": 4, + "value": 2061 + }, + { + "row": 4, + "col": 5, + "value": 2061 + }, + { + "row": 4, + "col": 6, + "value": 2058 + }, + { + "row": 4, + "col": 7, + "value": 2054 + }, + { + "row": 4, + "col": 8, + "value": 2051 + }, + { + "row": 4, + "col": 9, + "value": 2050 + }, + { + "row": 5, + "col": 0, + "value": 2050 + }, + { + "row": 5, + "col": 1, + "value": 2051 + }, + { + "row": 5, + "col": 2, + "value": 2052 + }, + { + "row": 5, + "col": 3, + "value": 2053 + }, + { + "row": 5, + "col": 4, + "value": 2054 + }, + { + "row": 5, + "col": 5, + "value": 2053 + }, + { + "row": 5, + "col": 6, + "value": 2052 + }, + { + "row": 5, + "col": 7, + "value": 2051 + }, + { + "row": 5, + "col": 8, + "value": 2049 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2051 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2049 + }, + { + "row": 6, + "col": 9, + "value": 2048 + } + ] + }, + { + "timestamp_ns": 11962928371, + "cursor_x_mm": 52.333333333333336, + "cursor_y_mm": 10.866666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2052 + }, + { + "row": 0, + "col": 1, + "value": 2058 + }, + { + "row": 0, + "col": 2, + "value": 2077 + }, + { + "row": 0, + "col": 3, + "value": 2159 + }, + { + "row": 0, + "col": 4, + "value": 2842 + }, + { + "row": 0, + "col": 5, + "value": 3508 + }, + { + "row": 0, + "col": 6, + "value": 2257 + }, + { + "row": 0, + "col": 7, + "value": 2092 + }, + { + "row": 0, + "col": 8, + "value": 2063 + }, + { + "row": 0, + "col": 9, + "value": 2054 + }, + { + "row": 1, + "col": 0, + "value": 2055 + }, + { + "row": 1, + "col": 1, + "value": 2065 + }, + { + "row": 1, + "col": 2, + "value": 2099 + }, + { + "row": 1, + "col": 3, + "value": 2301 + }, + { + "row": 1, + "col": 4, + "value": 3424 + }, + { + "row": 1, + "col": 5, + "value": 2564 + }, + { + "row": 1, + "col": 6, + "value": 2133 + }, + { + "row": 1, + "col": 7, + "value": 2072 + }, + { + "row": 1, + "col": 8, + "value": 2057 + }, + { + "row": 1, + "col": 9, + "value": 2052 + }, + { + "row": 2, + "col": 0, + "value": 2052 + }, + { + "row": 2, + "col": 1, + "value": 2057 + }, + { + "row": 2, + "col": 2, + "value": 2069 + }, + { + "row": 2, + "col": 3, + "value": 2105 + }, + { + "row": 2, + "col": 4, + "value": 2206 + }, + { + "row": 2, + "col": 5, + "value": 2248 + }, + { + "row": 2, + "col": 6, + "value": 2132 + }, + { + "row": 2, + "col": 7, + "value": 2077 + }, + { + "row": 2, + "col": 8, + "value": 2060 + }, + { + "row": 2, + "col": 9, + "value": 2053 + }, + { + "row": 3, + "col": 0, + "value": 2052 + }, + { + "row": 3, + "col": 1, + "value": 2057 + }, + { + "row": 3, + "col": 2, + "value": 2066 + }, + { + "row": 3, + "col": 3, + "value": 2084 + }, + { + "row": 3, + "col": 4, + "value": 2100 + }, + { + "row": 3, + "col": 5, + "value": 2091 + }, + { + "row": 3, + "col": 6, + "value": 2072 + }, + { + "row": 3, + "col": 7, + "value": 2060 + }, + { + "row": 3, + "col": 8, + "value": 2054 + }, + { + "row": 3, + "col": 9, + "value": 2051 + }, + { + "row": 4, + "col": 0, + "value": 2050 + }, + { + "row": 4, + "col": 1, + "value": 2052 + }, + { + "row": 4, + "col": 2, + "value": 2055 + }, + { + "row": 4, + "col": 3, + "value": 2060 + }, + { + "row": 4, + "col": 4, + "value": 2065 + }, + { + "row": 4, + "col": 5, + "value": 2067 + }, + { + "row": 4, + "col": 6, + "value": 2062 + }, + { + "row": 4, + "col": 7, + "value": 2057 + }, + { + "row": 4, + "col": 8, + "value": 2053 + }, + { + "row": 4, + "col": 9, + "value": 2051 + }, + { + "row": 5, + "col": 0, + "value": 2050 + }, + { + "row": 5, + "col": 1, + "value": 2051 + }, + { + "row": 5, + "col": 2, + "value": 2053 + }, + { + "row": 5, + "col": 3, + "value": 2055 + }, + { + "row": 5, + "col": 4, + "value": 2056 + }, + { + "row": 5, + "col": 5, + "value": 2056 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2052 + }, + { + "row": 5, + "col": 8, + "value": 2050 + }, + { + "row": 5, + "col": 9, + "value": 2049 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2051 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2052 + }, + { + "row": 6, + "col": 6, + "value": 2051 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 12106047117, + "cursor_x_mm": 53.53333333333333, + "cursor_y_mm": 21.133333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2051 + }, + { + "row": 0, + "col": 1, + "value": 2055 + }, + { + "row": 0, + "col": 2, + "value": 2066 + }, + { + "row": 0, + "col": 3, + "value": 2096 + }, + { + "row": 0, + "col": 4, + "value": 2186 + }, + { + "row": 0, + "col": 5, + "value": 2265 + }, + { + "row": 0, + "col": 6, + "value": 2151 + }, + { + "row": 0, + "col": 7, + "value": 2083 + }, + { + "row": 0, + "col": 8, + "value": 2062 + }, + { + "row": 0, + "col": 9, + "value": 2054 + }, + { + "row": 1, + "col": 0, + "value": 2054 + }, + { + "row": 1, + "col": 1, + "value": 2062 + }, + { + "row": 1, + "col": 2, + "value": 2089 + }, + { + "row": 1, + "col": 3, + "value": 2233 + }, + { + "row": 1, + "col": 4, + "value": 3240 + }, + { + "row": 1, + "col": 5, + "value": 2787 + }, + { + "row": 1, + "col": 6, + "value": 2160 + }, + { + "row": 1, + "col": 7, + "value": 2077 + }, + { + "row": 1, + "col": 8, + "value": 2059 + }, + { + "row": 1, + "col": 9, + "value": 2052 + }, + { + "row": 2, + "col": 0, + "value": 2052 + }, + { + "row": 2, + "col": 1, + "value": 2057 + }, + { + "row": 2, + "col": 2, + "value": 2072 + }, + { + "row": 2, + "col": 3, + "value": 2132 + }, + { + "row": 2, + "col": 4, + "value": 2590 + }, + { + "row": 2, + "col": 5, + "value": 3703 + }, + { + "row": 2, + "col": 6, + "value": 2340 + }, + { + "row": 2, + "col": 7, + "value": 2103 + }, + { + "row": 2, + "col": 8, + "value": 2065 + }, + { + "row": 2, + "col": 9, + "value": 2055 + }, + { + "row": 3, + "col": 0, + "value": 2053 + }, + { + "row": 3, + "col": 1, + "value": 2060 + }, + { + "row": 3, + "col": 2, + "value": 2078 + }, + { + "row": 3, + "col": 3, + "value": 2139 + }, + { + "row": 3, + "col": 4, + "value": 2290 + }, + { + "row": 3, + "col": 5, + "value": 2243 + }, + { + "row": 3, + "col": 6, + "value": 2113 + }, + { + "row": 3, + "col": 7, + "value": 2070 + }, + { + "row": 3, + "col": 8, + "value": 2057 + }, + { + "row": 3, + "col": 9, + "value": 2052 + }, + { + "row": 4, + "col": 0, + "value": 2051 + }, + { + "row": 4, + "col": 1, + "value": 2054 + }, + { + "row": 4, + "col": 2, + "value": 2060 + }, + { + "row": 4, + "col": 3, + "value": 2073 + }, + { + "row": 4, + "col": 4, + "value": 2096 + }, + { + "row": 4, + "col": 5, + "value": 2108 + }, + { + "row": 4, + "col": 6, + "value": 2089 + }, + { + "row": 4, + "col": 7, + "value": 2068 + }, + { + "row": 4, + "col": 8, + "value": 2058 + }, + { + "row": 4, + "col": 9, + "value": 2052 + }, + { + "row": 5, + "col": 0, + "value": 2051 + }, + { + "row": 5, + "col": 1, + "value": 2053 + }, + { + "row": 5, + "col": 2, + "value": 2058 + }, + { + "row": 5, + "col": 3, + "value": 2064 + }, + { + "row": 5, + "col": 4, + "value": 2069 + }, + { + "row": 5, + "col": 5, + "value": 2068 + }, + { + "row": 5, + "col": 6, + "value": 2062 + }, + { + "row": 5, + "col": 7, + "value": 2056 + }, + { + "row": 5, + "col": 8, + "value": 2052 + }, + { + "row": 5, + "col": 9, + "value": 2050 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2050 + }, + { + "row": 6, + "col": 2, + "value": 2052 + }, + { + "row": 6, + "col": 3, + "value": 2054 + }, + { + "row": 6, + "col": 4, + "value": 2056 + }, + { + "row": 6, + "col": 5, + "value": 2057 + }, + { + "row": 6, + "col": 6, + "value": 2056 + }, + { + "row": 6, + "col": 7, + "value": 2054 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2050 + } + ] + }, + { + "timestamp_ns": 12265207460, + "cursor_x_mm": 53.93333333333333, + "cursor_y_mm": 29.933333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2053 + }, + { + "row": 0, + "col": 2, + "value": 2058 + }, + { + "row": 0, + "col": 3, + "value": 2068 + }, + { + "row": 0, + "col": 4, + "value": 2083 + }, + { + "row": 0, + "col": 5, + "value": 2091 + }, + { + "row": 0, + "col": 6, + "value": 2080 + }, + { + "row": 0, + "col": 7, + "value": 2065 + }, + { + "row": 0, + "col": 8, + "value": 2057 + }, + { + "row": 0, + "col": 9, + "value": 2052 + }, + { + "row": 1, + "col": 0, + "value": 2053 + }, + { + "row": 1, + "col": 1, + "value": 2058 + }, + { + "row": 1, + "col": 2, + "value": 2073 + }, + { + "row": 1, + "col": 3, + "value": 2114 + }, + { + "row": 1, + "col": 4, + "value": 2195 + }, + { + "row": 1, + "col": 5, + "value": 2179 + }, + { + "row": 1, + "col": 6, + "value": 2102 + }, + { + "row": 1, + "col": 7, + "value": 2068 + }, + { + "row": 1, + "col": 8, + "value": 2057 + }, + { + "row": 1, + "col": 9, + "value": 2052 + }, + { + "row": 2, + "col": 0, + "value": 2052 + }, + { + "row": 2, + "col": 1, + "value": 2056 + }, + { + "row": 2, + "col": 2, + "value": 2070 + }, + { + "row": 2, + "col": 3, + "value": 2120 + }, + { + "row": 2, + "col": 4, + "value": 2420 + }, + { + "row": 2, + "col": 5, + "value": 3109 + }, + { + "row": 2, + "col": 6, + "value": 2301 + }, + { + "row": 2, + "col": 7, + "value": 2102 + }, + { + "row": 2, + "col": 8, + "value": 2065 + }, + { + "row": 2, + "col": 9, + "value": 2055 + }, + { + "row": 3, + "col": 0, + "value": 2054 + }, + { + "row": 3, + "col": 1, + "value": 2062 + }, + { + "row": 3, + "col": 2, + "value": 2089 + }, + { + "row": 3, + "col": 3, + "value": 2242 + }, + { + "row": 3, + "col": 4, + "value": 3605 + }, + { + "row": 3, + "col": 5, + "value": 3117 + }, + { + "row": 3, + "col": 6, + "value": 2179 + }, + { + "row": 3, + "col": 7, + "value": 2080 + }, + { + "row": 3, + "col": 8, + "value": 2059 + }, + { + "row": 3, + "col": 9, + "value": 2053 + }, + { + "row": 4, + "col": 0, + "value": 2051 + }, + { + "row": 4, + "col": 1, + "value": 2056 + }, + { + "row": 4, + "col": 2, + "value": 2067 + }, + { + "row": 4, + "col": 3, + "value": 2103 + }, + { + "row": 4, + "col": 4, + "value": 2242 + }, + { + "row": 4, + "col": 5, + "value": 2423 + }, + { + "row": 4, + "col": 6, + "value": 2196 + }, + { + "row": 4, + "col": 7, + "value": 2091 + }, + { + "row": 4, + "col": 8, + "value": 2063 + }, + { + "row": 4, + "col": 9, + "value": 2054 + }, + { + "row": 5, + "col": 0, + "value": 2052 + }, + { + "row": 5, + "col": 1, + "value": 2057 + }, + { + "row": 5, + "col": 2, + "value": 2067 + }, + { + "row": 5, + "col": 3, + "value": 2089 + }, + { + "row": 5, + "col": 4, + "value": 2120 + }, + { + "row": 5, + "col": 5, + "value": 2115 + }, + { + "row": 5, + "col": 6, + "value": 2083 + }, + { + "row": 5, + "col": 7, + "value": 2064 + }, + { + "row": 5, + "col": 8, + "value": 2055 + }, + { + "row": 5, + "col": 9, + "value": 2051 + }, + { + "row": 6, + "col": 0, + "value": 2050 + }, + { + "row": 6, + "col": 1, + "value": 2052 + }, + { + "row": 6, + "col": 2, + "value": 2056 + }, + { + "row": 6, + "col": 3, + "value": 2062 + }, + { + "row": 6, + "col": 4, + "value": 2070 + }, + { + "row": 6, + "col": 5, + "value": 2073 + }, + { + "row": 6, + "col": 6, + "value": 2068 + }, + { + "row": 6, + "col": 7, + "value": 2060 + }, + { + "row": 6, + "col": 8, + "value": 2055 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 12423563311, + "cursor_x_mm": 53.666666666666664, + "cursor_y_mm": 39.13333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2051 + }, + { + "row": 0, + "col": 2, + "value": 2054 + }, + { + "row": 0, + "col": 3, + "value": 2058 + }, + { + "row": 0, + "col": 4, + "value": 2063 + }, + { + "row": 0, + "col": 5, + "value": 2065 + }, + { + "row": 0, + "col": 6, + "value": 2062 + }, + { + "row": 0, + "col": 7, + "value": 2057 + }, + { + "row": 0, + "col": 8, + "value": 2053 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2051 + }, + { + "row": 1, + "col": 1, + "value": 2055 + }, + { + "row": 1, + "col": 2, + "value": 2063 + }, + { + "row": 1, + "col": 3, + "value": 2076 + }, + { + "row": 1, + "col": 4, + "value": 2091 + }, + { + "row": 1, + "col": 5, + "value": 2089 + }, + { + "row": 1, + "col": 6, + "value": 2073 + }, + { + "row": 1, + "col": 7, + "value": 2061 + }, + { + "row": 1, + "col": 8, + "value": 2054 + }, + { + "row": 1, + "col": 9, + "value": 2051 + }, + { + "row": 2, + "col": 0, + "value": 2051 + }, + { + "row": 2, + "col": 1, + "value": 2055 + }, + { + "row": 2, + "col": 2, + "value": 2064 + }, + { + "row": 2, + "col": 3, + "value": 2090 + }, + { + "row": 2, + "col": 4, + "value": 2159 + }, + { + "row": 2, + "col": 5, + "value": 2221 + }, + { + "row": 2, + "col": 6, + "value": 2140 + }, + { + "row": 2, + "col": 7, + "value": 2082 + }, + { + "row": 2, + "col": 8, + "value": 2061 + }, + { + "row": 2, + "col": 9, + "value": 2054 + }, + { + "row": 3, + "col": 0, + "value": 2053 + }, + { + "row": 3, + "col": 1, + "value": 2061 + }, + { + "row": 3, + "col": 2, + "value": 2086 + }, + { + "row": 3, + "col": 3, + "value": 2206 + }, + { + "row": 3, + "col": 4, + "value": 2955 + }, + { + "row": 3, + "col": 5, + "value": 2706 + }, + { + "row": 3, + "col": 6, + "value": 2160 + }, + { + "row": 3, + "col": 7, + "value": 2078 + }, + { + "row": 3, + "col": 8, + "value": 2059 + }, + { + "row": 3, + "col": 9, + "value": 2053 + }, + { + "row": 4, + "col": 0, + "value": 2052 + }, + { + "row": 4, + "col": 1, + "value": 2057 + }, + { + "row": 4, + "col": 2, + "value": 2071 + }, + { + "row": 4, + "col": 3, + "value": 2130 + }, + { + "row": 4, + "col": 4, + "value": 2596 + }, + { + "row": 4, + "col": 5, + "value": 3946 + }, + { + "row": 4, + "col": 6, + "value": 2390 + }, + { + "row": 4, + "col": 7, + "value": 2108 + }, + { + "row": 4, + "col": 8, + "value": 2066 + }, + { + "row": 4, + "col": 9, + "value": 2055 + }, + { + "row": 5, + "col": 0, + "value": 2053 + }, + { + "row": 5, + "col": 1, + "value": 2060 + }, + { + "row": 5, + "col": 2, + "value": 2079 + }, + { + "row": 5, + "col": 3, + "value": 2146 + }, + { + "row": 5, + "col": 4, + "value": 2348 + }, + { + "row": 5, + "col": 5, + "value": 2299 + }, + { + "row": 5, + "col": 6, + "value": 2124 + }, + { + "row": 5, + "col": 7, + "value": 2073 + }, + { + "row": 5, + "col": 8, + "value": 2058 + }, + { + "row": 5, + "col": 9, + "value": 2052 + }, + { + "row": 6, + "col": 0, + "value": 2051 + }, + { + "row": 6, + "col": 1, + "value": 2054 + }, + { + "row": 6, + "col": 2, + "value": 2060 + }, + { + "row": 6, + "col": 3, + "value": 2075 + }, + { + "row": 6, + "col": 4, + "value": 2103 + }, + { + "row": 6, + "col": 5, + "value": 2120 + }, + { + "row": 6, + "col": 6, + "value": 2096 + }, + { + "row": 6, + "col": 7, + "value": 2071 + }, + { + "row": 6, + "col": 8, + "value": 2058 + }, + { + "row": 6, + "col": 9, + "value": 2053 + } + ] + }, + { + "timestamp_ns": 12564884411, + "cursor_x_mm": 53.93333333333333, + "cursor_y_mm": 47.53333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2051 + }, + { + "row": 0, + "col": 3, + "value": 2053 + }, + { + "row": 0, + "col": 4, + "value": 2055 + }, + { + "row": 0, + "col": 5, + "value": 2055 + }, + { + "row": 0, + "col": 6, + "value": 2054 + }, + { + "row": 0, + "col": 7, + "value": 2053 + }, + { + "row": 0, + "col": 8, + "value": 2051 + }, + { + "row": 0, + "col": 9, + "value": 2050 + }, + { + "row": 1, + "col": 0, + "value": 2050 + }, + { + "row": 1, + "col": 1, + "value": 2052 + }, + { + "row": 1, + "col": 2, + "value": 2056 + }, + { + "row": 1, + "col": 3, + "value": 2060 + }, + { + "row": 1, + "col": 4, + "value": 2064 + }, + { + "row": 1, + "col": 5, + "value": 2063 + }, + { + "row": 1, + "col": 6, + "value": 2059 + }, + { + "row": 1, + "col": 7, + "value": 2055 + }, + { + "row": 1, + "col": 8, + "value": 2052 + }, + { + "row": 1, + "col": 9, + "value": 2050 + }, + { + "row": 2, + "col": 0, + "value": 2050 + }, + { + "row": 2, + "col": 1, + "value": 2053 + }, + { + "row": 2, + "col": 2, + "value": 2058 + }, + { + "row": 2, + "col": 3, + "value": 2068 + }, + { + "row": 2, + "col": 4, + "value": 2083 + }, + { + "row": 2, + "col": 5, + "value": 2091 + }, + { + "row": 2, + "col": 6, + "value": 2080 + }, + { + "row": 2, + "col": 7, + "value": 2065 + }, + { + "row": 2, + "col": 8, + "value": 2057 + }, + { + "row": 2, + "col": 9, + "value": 2052 + }, + { + "row": 3, + "col": 0, + "value": 2053 + }, + { + "row": 3, + "col": 1, + "value": 2058 + }, + { + "row": 3, + "col": 2, + "value": 2073 + }, + { + "row": 3, + "col": 3, + "value": 2114 + }, + { + "row": 3, + "col": 4, + "value": 2195 + }, + { + "row": 3, + "col": 5, + "value": 2179 + }, + { + "row": 3, + "col": 6, + "value": 2102 + }, + { + "row": 3, + "col": 7, + "value": 2068 + }, + { + "row": 3, + "col": 8, + "value": 2057 + }, + { + "row": 3, + "col": 9, + "value": 2052 + }, + { + "row": 4, + "col": 0, + "value": 2052 + }, + { + "row": 4, + "col": 1, + "value": 2056 + }, + { + "row": 4, + "col": 2, + "value": 2070 + }, + { + "row": 4, + "col": 3, + "value": 2120 + }, + { + "row": 4, + "col": 4, + "value": 2419 + }, + { + "row": 4, + "col": 5, + "value": 3106 + }, + { + "row": 4, + "col": 6, + "value": 2300 + }, + { + "row": 4, + "col": 7, + "value": 2102 + }, + { + "row": 4, + "col": 8, + "value": 2065 + }, + { + "row": 4, + "col": 9, + "value": 2055 + }, + { + "row": 5, + "col": 0, + "value": 2054 + }, + { + "row": 5, + "col": 1, + "value": 2062 + }, + { + "row": 5, + "col": 2, + "value": 2089 + }, + { + "row": 5, + "col": 3, + "value": 2242 + }, + { + "row": 5, + "col": 4, + "value": 3607 + }, + { + "row": 5, + "col": 5, + "value": 3118 + }, + { + "row": 5, + "col": 6, + "value": 2179 + }, + { + "row": 5, + "col": 7, + "value": 2080 + }, + { + "row": 5, + "col": 8, + "value": 2059 + }, + { + "row": 5, + "col": 9, + "value": 2053 + }, + { + "row": 6, + "col": 0, + "value": 2051 + }, + { + "row": 6, + "col": 1, + "value": 2056 + }, + { + "row": 6, + "col": 2, + "value": 2067 + }, + { + "row": 6, + "col": 3, + "value": 2103 + }, + { + "row": 6, + "col": 4, + "value": 2243 + }, + { + "row": 6, + "col": 5, + "value": 2424 + }, + { + "row": 6, + "col": 6, + "value": 2197 + }, + { + "row": 6, + "col": 7, + "value": 2091 + }, + { + "row": 6, + "col": 8, + "value": 2063 + }, + { + "row": 6, + "col": 9, + "value": 2054 + } + ] + }, + { + "timestamp_ns": 12723229404, + "cursor_x_mm": 53.8, + "cursor_y_mm": 53.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2052 + }, + { + "row": 0, + "col": 5, + "value": 2052 + }, + { + "row": 0, + "col": 6, + "value": 2052 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2051 + }, + { + "row": 1, + "col": 2, + "value": 2053 + }, + { + "row": 1, + "col": 3, + "value": 2055 + }, + { + "row": 1, + "col": 4, + "value": 2057 + }, + { + "row": 1, + "col": 5, + "value": 2056 + }, + { + "row": 1, + "col": 6, + "value": 2055 + }, + { + "row": 1, + "col": 7, + "value": 2052 + }, + { + "row": 1, + "col": 8, + "value": 2051 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2050 + }, + { + "row": 2, + "col": 1, + "value": 2052 + }, + { + "row": 2, + "col": 2, + "value": 2055 + }, + { + "row": 2, + "col": 3, + "value": 2060 + }, + { + "row": 2, + "col": 4, + "value": 2066 + }, + { + "row": 2, + "col": 5, + "value": 2068 + }, + { + "row": 2, + "col": 6, + "value": 2064 + }, + { + "row": 2, + "col": 7, + "value": 2059 + }, + { + "row": 2, + "col": 8, + "value": 2054 + }, + { + "row": 2, + "col": 9, + "value": 2051 + }, + { + "row": 3, + "col": 0, + "value": 2052 + }, + { + "row": 3, + "col": 1, + "value": 2056 + }, + { + "row": 3, + "col": 2, + "value": 2064 + }, + { + "row": 3, + "col": 3, + "value": 2082 + }, + { + "row": 3, + "col": 4, + "value": 2102 + }, + { + "row": 3, + "col": 5, + "value": 2099 + }, + { + "row": 3, + "col": 6, + "value": 2077 + }, + { + "row": 3, + "col": 7, + "value": 2062 + }, + { + "row": 3, + "col": 8, + "value": 2055 + }, + { + "row": 3, + "col": 9, + "value": 2051 + }, + { + "row": 4, + "col": 0, + "value": 2051 + }, + { + "row": 4, + "col": 1, + "value": 2055 + }, + { + "row": 4, + "col": 2, + "value": 2065 + }, + { + "row": 4, + "col": 3, + "value": 2096 + }, + { + "row": 4, + "col": 4, + "value": 2191 + }, + { + "row": 4, + "col": 5, + "value": 2290 + }, + { + "row": 4, + "col": 6, + "value": 2162 + }, + { + "row": 4, + "col": 7, + "value": 2086 + }, + { + "row": 4, + "col": 8, + "value": 2062 + }, + { + "row": 4, + "col": 9, + "value": 2054 + }, + { + "row": 5, + "col": 0, + "value": 2054 + }, + { + "row": 5, + "col": 1, + "value": 2062 + }, + { + "row": 5, + "col": 2, + "value": 2088 + }, + { + "row": 5, + "col": 3, + "value": 2225 + }, + { + "row": 5, + "col": 4, + "value": 3275 + }, + { + "row": 5, + "col": 5, + "value": 2904 + }, + { + "row": 5, + "col": 6, + "value": 2170 + }, + { + "row": 5, + "col": 7, + "value": 2079 + }, + { + "row": 5, + "col": 8, + "value": 2059 + }, + { + "row": 5, + "col": 9, + "value": 2053 + }, + { + "row": 6, + "col": 0, + "value": 2052 + }, + { + "row": 6, + "col": 1, + "value": 2057 + }, + { + "row": 6, + "col": 2, + "value": 2070 + }, + { + "row": 6, + "col": 3, + "value": 2126 + }, + { + "row": 6, + "col": 4, + "value": 2521 + }, + { + "row": 6, + "col": 5, + "value": 3615 + }, + { + "row": 6, + "col": 6, + "value": 2353 + }, + { + "row": 6, + "col": 7, + "value": 2106 + }, + { + "row": 6, + "col": 8, + "value": 2066 + }, + { + "row": 6, + "col": 9, + "value": 2055 + } + ] + }, + { + "timestamp_ns": 12866735447, + "cursor_x_mm": 55.53333333333333, + "cursor_y_mm": 57.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2050 + }, + { + "row": 1, + "col": 2, + "value": 2051 + }, + { + "row": 1, + "col": 3, + "value": 2053 + }, + { + "row": 1, + "col": 4, + "value": 2054 + }, + { + "row": 1, + "col": 5, + "value": 2054 + }, + { + "row": 1, + "col": 6, + "value": 2053 + }, + { + "row": 1, + "col": 7, + "value": 2051 + }, + { + "row": 1, + "col": 8, + "value": 2050 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2049 + }, + { + "row": 2, + "col": 1, + "value": 2051 + }, + { + "row": 2, + "col": 2, + "value": 2053 + }, + { + "row": 2, + "col": 3, + "value": 2056 + }, + { + "row": 2, + "col": 4, + "value": 2060 + }, + { + "row": 2, + "col": 5, + "value": 2061 + }, + { + "row": 2, + "col": 6, + "value": 2059 + }, + { + "row": 2, + "col": 7, + "value": 2056 + }, + { + "row": 2, + "col": 8, + "value": 2053 + }, + { + "row": 2, + "col": 9, + "value": 2050 + }, + { + "row": 3, + "col": 0, + "value": 2051 + }, + { + "row": 3, + "col": 1, + "value": 2054 + }, + { + "row": 3, + "col": 2, + "value": 2060 + }, + { + "row": 3, + "col": 3, + "value": 2069 + }, + { + "row": 3, + "col": 4, + "value": 2079 + }, + { + "row": 3, + "col": 5, + "value": 2078 + }, + { + "row": 3, + "col": 6, + "value": 2068 + }, + { + "row": 3, + "col": 7, + "value": 2059 + }, + { + "row": 3, + "col": 8, + "value": 2054 + }, + { + "row": 3, + "col": 9, + "value": 2051 + }, + { + "row": 4, + "col": 0, + "value": 2051 + }, + { + "row": 4, + "col": 1, + "value": 2054 + }, + { + "row": 4, + "col": 2, + "value": 2062 + }, + { + "row": 4, + "col": 3, + "value": 2081 + }, + { + "row": 4, + "col": 4, + "value": 2123 + }, + { + "row": 4, + "col": 5, + "value": 2156 + }, + { + "row": 4, + "col": 6, + "value": 2116 + }, + { + "row": 4, + "col": 7, + "value": 2077 + }, + { + "row": 4, + "col": 8, + "value": 2060 + }, + { + "row": 4, + "col": 9, + "value": 2053 + }, + { + "row": 5, + "col": 0, + "value": 2053 + }, + { + "row": 5, + "col": 1, + "value": 2060 + }, + { + "row": 5, + "col": 2, + "value": 2081 + }, + { + "row": 5, + "col": 3, + "value": 2168 + }, + { + "row": 5, + "col": 4, + "value": 2546 + }, + { + "row": 5, + "col": 5, + "value": 2475 + }, + { + "row": 5, + "col": 6, + "value": 2147 + }, + { + "row": 5, + "col": 7, + "value": 2077 + }, + { + "row": 5, + "col": 8, + "value": 2059 + }, + { + "row": 5, + "col": 9, + "value": 2053 + }, + { + "row": 6, + "col": 0, + "value": 2052 + }, + { + "row": 6, + "col": 1, + "value": 2056 + }, + { + "row": 6, + "col": 2, + "value": 2070 + }, + { + "row": 6, + "col": 3, + "value": 2127 + }, + { + "row": 6, + "col": 4, + "value": 2593 + }, + { + "row": 6, + "col": 5, + "value": 4092 + }, + { + "row": 6, + "col": 6, + "value": 2448 + }, + { + "row": 6, + "col": 7, + "value": 2113 + }, + { + "row": 6, + "col": 8, + "value": 2067 + }, + { + "row": 6, + "col": 9, + "value": 2055 + } + ] + }, + { + "timestamp_ns": 13041398008, + "cursor_x_mm": 60.46666666666667, + "cursor_y_mm": 57.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2049 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2050 + }, + { + "row": 1, + "col": 3, + "value": 2052 + }, + { + "row": 1, + "col": 4, + "value": 2053 + }, + { + "row": 1, + "col": 5, + "value": 2053 + }, + { + "row": 1, + "col": 6, + "value": 2053 + }, + { + "row": 1, + "col": 7, + "value": 2052 + }, + { + "row": 1, + "col": 8, + "value": 2050 + }, + { + "row": 1, + "col": 9, + "value": 2049 + }, + { + "row": 2, + "col": 0, + "value": 2049 + }, + { + "row": 2, + "col": 1, + "value": 2050 + }, + { + "row": 2, + "col": 2, + "value": 2051 + }, + { + "row": 2, + "col": 3, + "value": 2054 + }, + { + "row": 2, + "col": 4, + "value": 2057 + }, + { + "row": 2, + "col": 5, + "value": 2059 + }, + { + "row": 2, + "col": 6, + "value": 2059 + }, + { + "row": 2, + "col": 7, + "value": 2057 + }, + { + "row": 2, + "col": 8, + "value": 2054 + }, + { + "row": 2, + "col": 9, + "value": 2051 + }, + { + "row": 3, + "col": 0, + "value": 2050 + }, + { + "row": 3, + "col": 1, + "value": 2052 + }, + { + "row": 3, + "col": 2, + "value": 2056 + }, + { + "row": 3, + "col": 3, + "value": 2062 + }, + { + "row": 3, + "col": 4, + "value": 2071 + }, + { + "row": 3, + "col": 5, + "value": 2076 + }, + { + "row": 3, + "col": 6, + "value": 2070 + }, + { + "row": 3, + "col": 7, + "value": 2062 + }, + { + "row": 3, + "col": 8, + "value": 2055 + }, + { + "row": 3, + "col": 9, + "value": 2052 + }, + { + "row": 4, + "col": 0, + "value": 2050 + }, + { + "row": 4, + "col": 1, + "value": 2052 + }, + { + "row": 4, + "col": 2, + "value": 2056 + }, + { + "row": 4, + "col": 3, + "value": 2067 + }, + { + "row": 4, + "col": 4, + "value": 2091 + }, + { + "row": 4, + "col": 5, + "value": 2128 + }, + { + "row": 4, + "col": 6, + "value": 2126 + }, + { + "row": 4, + "col": 7, + "value": 2089 + }, + { + "row": 4, + "col": 8, + "value": 2066 + }, + { + "row": 4, + "col": 9, + "value": 2056 + }, + { + "row": 5, + "col": 0, + "value": 2051 + }, + { + "row": 5, + "col": 1, + "value": 2055 + }, + { + "row": 5, + "col": 2, + "value": 2066 + }, + { + "row": 5, + "col": 3, + "value": 2101 + }, + { + "row": 5, + "col": 4, + "value": 2249 + }, + { + "row": 5, + "col": 5, + "value": 2511 + }, + { + "row": 5, + "col": 6, + "value": 2231 + }, + { + "row": 5, + "col": 7, + "value": 2097 + }, + { + "row": 5, + "col": 8, + "value": 2065 + }, + { + "row": 5, + "col": 9, + "value": 2055 + }, + { + "row": 6, + "col": 0, + "value": 2050 + }, + { + "row": 6, + "col": 1, + "value": 2053 + }, + { + "row": 6, + "col": 2, + "value": 2061 + }, + { + "row": 6, + "col": 3, + "value": 2086 + }, + { + "row": 6, + "col": 4, + "value": 2220 + }, + { + "row": 6, + "col": 5, + "value": 3522 + }, + { + "row": 6, + "col": 6, + "value": 3356 + }, + { + "row": 6, + "col": 7, + "value": 2200 + }, + { + "row": 6, + "col": 8, + "value": 2083 + }, + { + "row": 6, + "col": 9, + "value": 2060 + } + ] + }, + { + "timestamp_ns": 13200054958, + "cursor_x_mm": 61.13333333333333, + "cursor_y_mm": 51.666666666666664, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2052 + }, + { + "row": 0, + "col": 6, + "value": 2052 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2050 + }, + { + "row": 1, + "col": 2, + "value": 2051 + }, + { + "row": 1, + "col": 3, + "value": 2053 + }, + { + "row": 1, + "col": 4, + "value": 2055 + }, + { + "row": 1, + "col": 5, + "value": 2056 + }, + { + "row": 1, + "col": 6, + "value": 2056 + }, + { + "row": 1, + "col": 7, + "value": 2054 + }, + { + "row": 1, + "col": 8, + "value": 2052 + }, + { + "row": 1, + "col": 9, + "value": 2050 + }, + { + "row": 2, + "col": 0, + "value": 2049 + }, + { + "row": 2, + "col": 1, + "value": 2050 + }, + { + "row": 2, + "col": 2, + "value": 2052 + }, + { + "row": 2, + "col": 3, + "value": 2056 + }, + { + "row": 2, + "col": 4, + "value": 2061 + }, + { + "row": 2, + "col": 5, + "value": 2066 + }, + { + "row": 2, + "col": 6, + "value": 2066 + }, + { + "row": 2, + "col": 7, + "value": 2062 + }, + { + "row": 2, + "col": 8, + "value": 2057 + }, + { + "row": 2, + "col": 9, + "value": 2053 + }, + { + "row": 3, + "col": 0, + "value": 2050 + }, + { + "row": 3, + "col": 1, + "value": 2052 + }, + { + "row": 3, + "col": 2, + "value": 2057 + }, + { + "row": 3, + "col": 3, + "value": 2067 + }, + { + "row": 3, + "col": 4, + "value": 2085 + }, + { + "row": 3, + "col": 5, + "value": 2100 + }, + { + "row": 3, + "col": 6, + "value": 2090 + }, + { + "row": 3, + "col": 7, + "value": 2071 + }, + { + "row": 3, + "col": 8, + "value": 2059 + }, + { + "row": 3, + "col": 9, + "value": 2053 + }, + { + "row": 4, + "col": 0, + "value": 2050 + }, + { + "row": 4, + "col": 1, + "value": 2052 + }, + { + "row": 4, + "col": 2, + "value": 2057 + }, + { + "row": 4, + "col": 3, + "value": 2070 + }, + { + "row": 4, + "col": 4, + "value": 2109 + }, + { + "row": 4, + "col": 5, + "value": 2214 + }, + { + "row": 4, + "col": 6, + "value": 2240 + }, + { + "row": 4, + "col": 7, + "value": 2126 + }, + { + "row": 4, + "col": 8, + "value": 2075 + }, + { + "row": 4, + "col": 9, + "value": 2059 + }, + { + "row": 5, + "col": 0, + "value": 2051 + }, + { + "row": 5, + "col": 1, + "value": 2055 + }, + { + "row": 5, + "col": 2, + "value": 2066 + }, + { + "row": 5, + "col": 3, + "value": 2104 + }, + { + "row": 5, + "col": 4, + "value": 2334 + }, + { + "row": 5, + "col": 5, + "value": 3463 + }, + { + "row": 5, + "col": 6, + "value": 2497 + }, + { + "row": 5, + "col": 7, + "value": 2125 + }, + { + "row": 5, + "col": 8, + "value": 2070 + }, + { + "row": 5, + "col": 9, + "value": 2057 + }, + { + "row": 6, + "col": 0, + "value": 2050 + }, + { + "row": 6, + "col": 1, + "value": 2053 + }, + { + "row": 6, + "col": 2, + "value": 2059 + }, + { + "row": 6, + "col": 3, + "value": 2079 + }, + { + "row": 6, + "col": 4, + "value": 2172 + }, + { + "row": 6, + "col": 5, + "value": 2961 + }, + { + "row": 6, + "col": 6, + "value": 3397 + }, + { + "row": 6, + "col": 7, + "value": 2233 + }, + { + "row": 6, + "col": 8, + "value": 2089 + }, + { + "row": 6, + "col": 9, + "value": 2062 + } + ] + }, + { + "timestamp_ns": 13358788961, + "cursor_x_mm": 60.46666666666667, + "cursor_y_mm": 42.6, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2051 + }, + { + "row": 0, + "col": 3, + "value": 2052 + }, + { + "row": 0, + "col": 4, + "value": 2055 + }, + { + "row": 0, + "col": 5, + "value": 2056 + }, + { + "row": 0, + "col": 6, + "value": 2057 + }, + { + "row": 0, + "col": 7, + "value": 2055 + }, + { + "row": 0, + "col": 8, + "value": 2053 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2051 + }, + { + "row": 1, + "col": 2, + "value": 2054 + }, + { + "row": 1, + "col": 3, + "value": 2059 + }, + { + "row": 1, + "col": 4, + "value": 2065 + }, + { + "row": 1, + "col": 5, + "value": 2068 + }, + { + "row": 1, + "col": 6, + "value": 2066 + }, + { + "row": 1, + "col": 7, + "value": 2060 + }, + { + "row": 1, + "col": 8, + "value": 2055 + }, + { + "row": 1, + "col": 9, + "value": 2051 + }, + { + "row": 2, + "col": 0, + "value": 2049 + }, + { + "row": 2, + "col": 1, + "value": 2051 + }, + { + "row": 2, + "col": 2, + "value": 2055 + }, + { + "row": 2, + "col": 3, + "value": 2062 + }, + { + "row": 2, + "col": 4, + "value": 2078 + }, + { + "row": 2, + "col": 5, + "value": 2099 + }, + { + "row": 2, + "col": 6, + "value": 2102 + }, + { + "row": 2, + "col": 7, + "value": 2081 + }, + { + "row": 2, + "col": 8, + "value": 2064 + }, + { + "row": 2, + "col": 9, + "value": 2056 + }, + { + "row": 3, + "col": 0, + "value": 2051 + }, + { + "row": 3, + "col": 1, + "value": 2054 + }, + { + "row": 3, + "col": 2, + "value": 2063 + }, + { + "row": 3, + "col": 3, + "value": 2087 + }, + { + "row": 3, + "col": 4, + "value": 2165 + }, + { + "row": 3, + "col": 5, + "value": 2291 + }, + { + "row": 3, + "col": 6, + "value": 2188 + }, + { + "row": 3, + "col": 7, + "value": 2095 + }, + { + "row": 3, + "col": 8, + "value": 2065 + }, + { + "row": 3, + "col": 9, + "value": 2055 + }, + { + "row": 4, + "col": 0, + "value": 2050 + }, + { + "row": 4, + "col": 1, + "value": 2053 + }, + { + "row": 4, + "col": 2, + "value": 2059 + }, + { + "row": 4, + "col": 3, + "value": 2080 + }, + { + "row": 4, + "col": 4, + "value": 2175 + }, + { + "row": 4, + "col": 5, + "value": 2938 + }, + { + "row": 4, + "col": 6, + "value": 3241 + }, + { + "row": 4, + "col": 7, + "value": 2219 + }, + { + "row": 4, + "col": 8, + "value": 2087 + }, + { + "row": 4, + "col": 9, + "value": 2061 + }, + { + "row": 5, + "col": 0, + "value": 2051 + }, + { + "row": 5, + "col": 1, + "value": 2055 + }, + { + "row": 5, + "col": 2, + "value": 2066 + }, + { + "row": 5, + "col": 3, + "value": 2107 + }, + { + "row": 5, + "col": 4, + "value": 2365 + }, + { + "row": 5, + "col": 5, + "value": 3624 + }, + { + "row": 5, + "col": 6, + "value": 2501 + }, + { + "row": 5, + "col": 7, + "value": 2124 + }, + { + "row": 5, + "col": 8, + "value": 2070 + }, + { + "row": 5, + "col": 9, + "value": 2056 + }, + { + "row": 6, + "col": 0, + "value": 2050 + }, + { + "row": 6, + "col": 1, + "value": 2052 + }, + { + "row": 6, + "col": 2, + "value": 2057 + }, + { + "row": 6, + "col": 3, + "value": 2071 + }, + { + "row": 6, + "col": 4, + "value": 2114 + }, + { + "row": 6, + "col": 5, + "value": 2235 + }, + { + "row": 6, + "col": 6, + "value": 2259 + }, + { + "row": 6, + "col": 7, + "value": 2129 + }, + { + "row": 6, + "col": 8, + "value": 2076 + }, + { + "row": 6, + "col": 9, + "value": 2059 + } + ] + }, + { + "timestamp_ns": 13499807360, + "cursor_x_mm": 60.06666666666667, + "cursor_y_mm": 35.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2052 + }, + { + "row": 0, + "col": 3, + "value": 2055 + }, + { + "row": 0, + "col": 4, + "value": 2060 + }, + { + "row": 0, + "col": 5, + "value": 2063 + }, + { + "row": 0, + "col": 6, + "value": 2064 + }, + { + "row": 0, + "col": 7, + "value": 2060 + }, + { + "row": 0, + "col": 8, + "value": 2056 + }, + { + "row": 0, + "col": 9, + "value": 2052 + }, + { + "row": 1, + "col": 0, + "value": 2050 + }, + { + "row": 1, + "col": 1, + "value": 2052 + }, + { + "row": 1, + "col": 2, + "value": 2057 + }, + { + "row": 1, + "col": 3, + "value": 2066 + }, + { + "row": 1, + "col": 4, + "value": 2081 + }, + { + "row": 1, + "col": 5, + "value": 2091 + }, + { + "row": 1, + "col": 6, + "value": 2082 + }, + { + "row": 1, + "col": 7, + "value": 2067 + }, + { + "row": 1, + "col": 8, + "value": 2058 + }, + { + "row": 1, + "col": 9, + "value": 2053 + }, + { + "row": 2, + "col": 0, + "value": 2050 + }, + { + "row": 2, + "col": 1, + "value": 2052 + }, + { + "row": 2, + "col": 2, + "value": 2057 + }, + { + "row": 2, + "col": 3, + "value": 2070 + }, + { + "row": 2, + "col": 4, + "value": 2105 + }, + { + "row": 2, + "col": 5, + "value": 2184 + }, + { + "row": 2, + "col": 6, + "value": 2191 + }, + { + "row": 2, + "col": 7, + "value": 2110 + }, + { + "row": 2, + "col": 8, + "value": 2072 + }, + { + "row": 2, + "col": 9, + "value": 2058 + }, + { + "row": 3, + "col": 0, + "value": 2051 + }, + { + "row": 3, + "col": 1, + "value": 2055 + }, + { + "row": 3, + "col": 2, + "value": 2066 + }, + { + "row": 3, + "col": 3, + "value": 2106 + }, + { + "row": 3, + "col": 4, + "value": 2329 + }, + { + "row": 3, + "col": 5, + "value": 3124 + }, + { + "row": 3, + "col": 6, + "value": 2381 + }, + { + "row": 3, + "col": 7, + "value": 2114 + }, + { + "row": 3, + "col": 8, + "value": 2068 + }, + { + "row": 3, + "col": 9, + "value": 2056 + }, + { + "row": 4, + "col": 0, + "value": 2050 + }, + { + "row": 4, + "col": 1, + "value": 2053 + }, + { + "row": 4, + "col": 2, + "value": 2060 + }, + { + "row": 4, + "col": 3, + "value": 2082 + }, + { + "row": 4, + "col": 4, + "value": 2194 + }, + { + "row": 4, + "col": 5, + "value": 3254 + }, + { + "row": 4, + "col": 6, + "value": 3472 + }, + { + "row": 4, + "col": 7, + "value": 2221 + }, + { + "row": 4, + "col": 8, + "value": 2086 + }, + { + "row": 4, + "col": 9, + "value": 2061 + }, + { + "row": 5, + "col": 0, + "value": 2051 + }, + { + "row": 5, + "col": 1, + "value": 2055 + }, + { + "row": 5, + "col": 2, + "value": 2064 + }, + { + "row": 5, + "col": 3, + "value": 2094 + }, + { + "row": 5, + "col": 4, + "value": 2208 + }, + { + "row": 5, + "col": 5, + "value": 2427 + }, + { + "row": 5, + "col": 6, + "value": 2229 + }, + { + "row": 5, + "col": 7, + "value": 2099 + }, + { + "row": 5, + "col": 8, + "value": 2066 + }, + { + "row": 5, + "col": 9, + "value": 2055 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2051 + }, + { + "row": 6, + "col": 2, + "value": 2056 + }, + { + "row": 6, + "col": 3, + "value": 2065 + }, + { + "row": 6, + "col": 4, + "value": 2085 + }, + { + "row": 6, + "col": 5, + "value": 2116 + }, + { + "row": 6, + "col": 6, + "value": 2119 + }, + { + "row": 6, + "col": 7, + "value": 2088 + }, + { + "row": 6, + "col": 8, + "value": 2066 + }, + { + "row": 6, + "col": 9, + "value": 2056 + } + ] + }, + { + "timestamp_ns": 13657884759, + "cursor_x_mm": 58.86666666666667, + "cursor_y_mm": 25.933333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2051 + }, + { + "row": 0, + "col": 2, + "value": 2055 + }, + { + "row": 0, + "col": 3, + "value": 2063 + }, + { + "row": 0, + "col": 4, + "value": 2077 + }, + { + "row": 0, + "col": 5, + "value": 2093 + }, + { + "row": 0, + "col": 6, + "value": 2091 + }, + { + "row": 0, + "col": 7, + "value": 2074 + }, + { + "row": 0, + "col": 8, + "value": 2061 + }, + { + "row": 0, + "col": 9, + "value": 2054 + }, + { + "row": 1, + "col": 0, + "value": 2051 + }, + { + "row": 1, + "col": 1, + "value": 2055 + }, + { + "row": 1, + "col": 2, + "value": 2064 + }, + { + "row": 1, + "col": 3, + "value": 2091 + }, + { + "row": 1, + "col": 4, + "value": 2165 + }, + { + "row": 1, + "col": 5, + "value": 2235 + }, + { + "row": 1, + "col": 6, + "value": 2145 + }, + { + "row": 1, + "col": 7, + "value": 2083 + }, + { + "row": 1, + "col": 8, + "value": 2062 + }, + { + "row": 1, + "col": 9, + "value": 2054 + }, + { + "row": 2, + "col": 0, + "value": 2050 + }, + { + "row": 2, + "col": 1, + "value": 2053 + }, + { + "row": 2, + "col": 2, + "value": 2061 + }, + { + "row": 2, + "col": 3, + "value": 2086 + }, + { + "row": 2, + "col": 4, + "value": 2209 + }, + { + "row": 2, + "col": 5, + "value": 3019 + }, + { + "row": 2, + "col": 6, + "value": 2760 + }, + { + "row": 2, + "col": 7, + "value": 2164 + }, + { + "row": 2, + "col": 8, + "value": 2078 + }, + { + "row": 2, + "col": 9, + "value": 2059 + }, + { + "row": 3, + "col": 0, + "value": 2052 + }, + { + "row": 3, + "col": 1, + "value": 2057 + }, + { + "row": 3, + "col": 2, + "value": 2071 + }, + { + "row": 3, + "col": 3, + "value": 2128 + }, + { + "row": 3, + "col": 4, + "value": 2572 + }, + { + "row": 3, + "col": 5, + "value": 3889 + }, + { + "row": 3, + "col": 6, + "value": 2387 + }, + { + "row": 3, + "col": 7, + "value": 2108 + }, + { + "row": 3, + "col": 8, + "value": 2066 + }, + { + "row": 3, + "col": 9, + "value": 2055 + }, + { + "row": 4, + "col": 0, + "value": 2050 + }, + { + "row": 4, + "col": 1, + "value": 2053 + }, + { + "row": 4, + "col": 2, + "value": 2059 + }, + { + "row": 4, + "col": 3, + "value": 2078 + }, + { + "row": 4, + "col": 4, + "value": 2142 + }, + { + "row": 4, + "col": 5, + "value": 2324 + }, + { + "row": 4, + "col": 6, + "value": 2282 + }, + { + "row": 4, + "col": 7, + "value": 2122 + }, + { + "row": 4, + "col": 8, + "value": 2072 + }, + { + "row": 4, + "col": 9, + "value": 2058 + }, + { + "row": 5, + "col": 0, + "value": 2051 + }, + { + "row": 5, + "col": 1, + "value": 2054 + }, + { + "row": 5, + "col": 2, + "value": 2060 + }, + { + "row": 5, + "col": 3, + "value": 2074 + }, + { + "row": 5, + "col": 4, + "value": 2100 + }, + { + "row": 5, + "col": 5, + "value": 2116 + }, + { + "row": 5, + "col": 6, + "value": 2094 + }, + { + "row": 5, + "col": 7, + "value": 2070 + }, + { + "row": 5, + "col": 8, + "value": 2058 + }, + { + "row": 5, + "col": 9, + "value": 2053 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2051 + }, + { + "row": 6, + "col": 2, + "value": 2053 + }, + { + "row": 6, + "col": 3, + "value": 2058 + }, + { + "row": 6, + "col": 4, + "value": 2064 + }, + { + "row": 6, + "col": 5, + "value": 2070 + }, + { + "row": 6, + "col": 6, + "value": 2070 + }, + { + "row": 6, + "col": 7, + "value": 2063 + }, + { + "row": 6, + "col": 8, + "value": 2057 + }, + { + "row": 6, + "col": 9, + "value": 2053 + } + ] + }, + { + "timestamp_ns": 13816412084, + "cursor_x_mm": 59.266666666666666, + "cursor_y_mm": 17.266666666666666, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2053 + }, + { + "row": 0, + "col": 2, + "value": 2058 + }, + { + "row": 0, + "col": 3, + "value": 2074 + }, + { + "row": 0, + "col": 4, + "value": 2121 + }, + { + "row": 0, + "col": 5, + "value": 2228 + }, + { + "row": 0, + "col": 6, + "value": 2212 + }, + { + "row": 0, + "col": 7, + "value": 2110 + }, + { + "row": 0, + "col": 8, + "value": 2071 + }, + { + "row": 0, + "col": 9, + "value": 2057 + }, + { + "row": 1, + "col": 0, + "value": 2051 + }, + { + "row": 1, + "col": 1, + "value": 2056 + }, + { + "row": 1, + "col": 2, + "value": 2069 + }, + { + "row": 1, + "col": 3, + "value": 2120 + }, + { + "row": 1, + "col": 4, + "value": 2452 + }, + { + "row": 1, + "col": 5, + "value": 3420 + }, + { + "row": 1, + "col": 6, + "value": 2351 + }, + { + "row": 1, + "col": 7, + "value": 2107 + }, + { + "row": 1, + "col": 8, + "value": 2066 + }, + { + "row": 1, + "col": 9, + "value": 2055 + }, + { + "row": 2, + "col": 0, + "value": 2050 + }, + { + "row": 2, + "col": 1, + "value": 2053 + }, + { + "row": 2, + "col": 2, + "value": 2061 + }, + { + "row": 2, + "col": 3, + "value": 2087 + }, + { + "row": 2, + "col": 4, + "value": 2222 + }, + { + "row": 2, + "col": 5, + "value": 3361 + }, + { + "row": 2, + "col": 6, + "value": 3064 + }, + { + "row": 2, + "col": 7, + "value": 2182 + }, + { + "row": 2, + "col": 8, + "value": 2081 + }, + { + "row": 2, + "col": 9, + "value": 2060 + }, + { + "row": 3, + "col": 0, + "value": 2051 + }, + { + "row": 3, + "col": 1, + "value": 2055 + }, + { + "row": 3, + "col": 2, + "value": 2065 + }, + { + "row": 3, + "col": 3, + "value": 2097 + }, + { + "row": 3, + "col": 4, + "value": 2204 + }, + { + "row": 3, + "col": 5, + "value": 2338 + }, + { + "row": 3, + "col": 6, + "value": 2180 + }, + { + "row": 3, + "col": 7, + "value": 2089 + }, + { + "row": 3, + "col": 8, + "value": 2063 + }, + { + "row": 3, + "col": 9, + "value": 2054 + }, + { + "row": 4, + "col": 0, + "value": 2050 + }, + { + "row": 4, + "col": 1, + "value": 2052 + }, + { + "row": 4, + "col": 2, + "value": 2056 + }, + { + "row": 4, + "col": 3, + "value": 2065 + }, + { + "row": 4, + "col": 4, + "value": 2084 + }, + { + "row": 4, + "col": 5, + "value": 2108 + }, + { + "row": 4, + "col": 6, + "value": 2105 + }, + { + "row": 4, + "col": 7, + "value": 2080 + }, + { + "row": 4, + "col": 8, + "value": 2063 + }, + { + "row": 4, + "col": 9, + "value": 2055 + }, + { + "row": 5, + "col": 0, + "value": 2050 + }, + { + "row": 5, + "col": 1, + "value": 2052 + }, + { + "row": 5, + "col": 2, + "value": 2055 + }, + { + "row": 5, + "col": 3, + "value": 2060 + }, + { + "row": 5, + "col": 4, + "value": 2067 + }, + { + "row": 5, + "col": 5, + "value": 2070 + }, + { + "row": 5, + "col": 6, + "value": 2066 + }, + { + "row": 5, + "col": 7, + "value": 2059 + }, + { + "row": 5, + "col": 8, + "value": 2054 + }, + { + "row": 5, + "col": 9, + "value": 2051 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2050 + }, + { + "row": 6, + "col": 2, + "value": 2051 + }, + { + "row": 6, + "col": 3, + "value": 2053 + }, + { + "row": 6, + "col": 4, + "value": 2055 + }, + { + "row": 6, + "col": 5, + "value": 2057 + }, + { + "row": 6, + "col": 6, + "value": 2057 + }, + { + "row": 6, + "col": 7, + "value": 2055 + }, + { + "row": 6, + "col": 8, + "value": 2053 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 13959755511, + "cursor_x_mm": 59.666666666666664, + "cursor_y_mm": 9.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2053 + }, + { + "row": 0, + "col": 2, + "value": 2061 + }, + { + "row": 0, + "col": 3, + "value": 2083 + }, + { + "row": 0, + "col": 4, + "value": 2187 + }, + { + "row": 0, + "col": 5, + "value": 2753 + }, + { + "row": 0, + "col": 6, + "value": 2625 + }, + { + "row": 0, + "col": 7, + "value": 2158 + }, + { + "row": 0, + "col": 8, + "value": 2078 + }, + { + "row": 0, + "col": 9, + "value": 2059 + }, + { + "row": 1, + "col": 0, + "value": 2052 + }, + { + "row": 1, + "col": 1, + "value": 2056 + }, + { + "row": 1, + "col": 2, + "value": 2070 + }, + { + "row": 1, + "col": 3, + "value": 2127 + }, + { + "row": 1, + "col": 4, + "value": 2585 + }, + { + "row": 1, + "col": 5, + "value": 4058 + }, + { + "row": 1, + "col": 6, + "value": 2432 + }, + { + "row": 1, + "col": 7, + "value": 2112 + }, + { + "row": 1, + "col": 8, + "value": 2067 + }, + { + "row": 1, + "col": 9, + "value": 2055 + }, + { + "row": 2, + "col": 0, + "value": 2050 + }, + { + "row": 2, + "col": 1, + "value": 2053 + }, + { + "row": 2, + "col": 2, + "value": 2060 + }, + { + "row": 2, + "col": 3, + "value": 2079 + }, + { + "row": 2, + "col": 4, + "value": 2153 + }, + { + "row": 2, + "col": 5, + "value": 2411 + }, + { + "row": 2, + "col": 6, + "value": 2363 + }, + { + "row": 2, + "col": 7, + "value": 2134 + }, + { + "row": 2, + "col": 8, + "value": 2075 + }, + { + "row": 2, + "col": 9, + "value": 2058 + }, + { + "row": 3, + "col": 0, + "value": 2051 + }, + { + "row": 3, + "col": 1, + "value": 2054 + }, + { + "row": 3, + "col": 2, + "value": 2061 + }, + { + "row": 3, + "col": 3, + "value": 2077 + }, + { + "row": 3, + "col": 4, + "value": 2109 + }, + { + "row": 3, + "col": 5, + "value": 2132 + }, + { + "row": 3, + "col": 6, + "value": 2104 + }, + { + "row": 3, + "col": 7, + "value": 2074 + }, + { + "row": 3, + "col": 8, + "value": 2059 + }, + { + "row": 3, + "col": 9, + "value": 2053 + }, + { + "row": 4, + "col": 0, + "value": 2049 + }, + { + "row": 4, + "col": 1, + "value": 2051 + }, + { + "row": 4, + "col": 2, + "value": 2054 + }, + { + "row": 4, + "col": 3, + "value": 2059 + }, + { + "row": 4, + "col": 4, + "value": 2067 + }, + { + "row": 4, + "col": 5, + "value": 2074 + }, + { + "row": 4, + "col": 6, + "value": 2073 + }, + { + "row": 4, + "col": 7, + "value": 2065 + }, + { + "row": 4, + "col": 8, + "value": 2058 + }, + { + "row": 4, + "col": 9, + "value": 2053 + }, + { + "row": 5, + "col": 0, + "value": 2049 + }, + { + "row": 5, + "col": 1, + "value": 2050 + }, + { + "row": 5, + "col": 2, + "value": 2052 + }, + { + "row": 5, + "col": 3, + "value": 2055 + }, + { + "row": 5, + "col": 4, + "value": 2058 + }, + { + "row": 5, + "col": 5, + "value": 2059 + }, + { + "row": 5, + "col": 6, + "value": 2058 + }, + { + "row": 5, + "col": 7, + "value": 2055 + }, + { + "row": 5, + "col": 8, + "value": 2052 + }, + { + "row": 5, + "col": 9, + "value": 2050 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2051 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2053 + }, + { + "row": 6, + "col": 6, + "value": 2053 + }, + { + "row": 6, + "col": 7, + "value": 2052 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2050 + } + ] + }, + { + "timestamp_ns": 14118940685, + "cursor_x_mm": 61.13333333333333, + "cursor_y_mm": 4.466666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2050 + }, + { + "row": 0, + "col": 1, + "value": 2053 + }, + { + "row": 0, + "col": 2, + "value": 2060 + }, + { + "row": 0, + "col": 3, + "value": 2081 + }, + { + "row": 0, + "col": 4, + "value": 2191 + }, + { + "row": 0, + "col": 5, + "value": 3292 + }, + { + "row": 0, + "col": 6, + "value": 3661 + }, + { + "row": 0, + "col": 7, + "value": 2236 + }, + { + "row": 0, + "col": 8, + "value": 2088 + }, + { + "row": 0, + "col": 9, + "value": 2061 + }, + { + "row": 1, + "col": 0, + "value": 2051 + }, + { + "row": 1, + "col": 1, + "value": 2055 + }, + { + "row": 1, + "col": 2, + "value": 2065 + }, + { + "row": 1, + "col": 3, + "value": 2100 + }, + { + "row": 1, + "col": 4, + "value": 2268 + }, + { + "row": 1, + "col": 5, + "value": 2769 + }, + { + "row": 1, + "col": 6, + "value": 2326 + }, + { + "row": 1, + "col": 7, + "value": 2111 + }, + { + "row": 1, + "col": 8, + "value": 2068 + }, + { + "row": 1, + "col": 9, + "value": 2056 + }, + { + "row": 2, + "col": 0, + "value": 2050 + }, + { + "row": 2, + "col": 1, + "value": 2052 + }, + { + "row": 2, + "col": 2, + "value": 2056 + }, + { + "row": 2, + "col": 3, + "value": 2067 + }, + { + "row": 2, + "col": 4, + "value": 2095 + }, + { + "row": 2, + "col": 5, + "value": 2150 + }, + { + "row": 2, + "col": 6, + "value": 2157 + }, + { + "row": 2, + "col": 7, + "value": 2102 + }, + { + "row": 2, + "col": 8, + "value": 2070 + }, + { + "row": 2, + "col": 9, + "value": 2057 + }, + { + "row": 3, + "col": 0, + "value": 2050 + }, + { + "row": 3, + "col": 1, + "value": 2052 + }, + { + "row": 3, + "col": 2, + "value": 2056 + }, + { + "row": 3, + "col": 3, + "value": 2064 + }, + { + "row": 3, + "col": 4, + "value": 2075 + }, + { + "row": 3, + "col": 5, + "value": 2083 + }, + { + "row": 3, + "col": 6, + "value": 2077 + }, + { + "row": 3, + "col": 7, + "value": 2065 + }, + { + "row": 3, + "col": 8, + "value": 2057 + }, + { + "row": 3, + "col": 9, + "value": 2052 + }, + { + "row": 4, + "col": 0, + "value": 2049 + }, + { + "row": 4, + "col": 1, + "value": 2050 + }, + { + "row": 4, + "col": 2, + "value": 2052 + }, + { + "row": 4, + "col": 3, + "value": 2054 + }, + { + "row": 4, + "col": 4, + "value": 2058 + }, + { + "row": 4, + "col": 5, + "value": 2061 + }, + { + "row": 4, + "col": 6, + "value": 2061 + }, + { + "row": 4, + "col": 7, + "value": 2058 + }, + { + "row": 4, + "col": 8, + "value": 2055 + }, + { + "row": 4, + "col": 9, + "value": 2052 + }, + { + "row": 5, + "col": 0, + "value": 2049 + }, + { + "row": 5, + "col": 1, + "value": 2049 + }, + { + "row": 5, + "col": 2, + "value": 2051 + }, + { + "row": 5, + "col": 3, + "value": 2052 + }, + { + "row": 5, + "col": 4, + "value": 2054 + }, + { + "row": 5, + "col": 5, + "value": 2054 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2052 + }, + { + "row": 5, + "col": 8, + "value": 2051 + }, + { + "row": 5, + "col": 9, + "value": 2050 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2049 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2051 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 14277074965, + "cursor_x_mm": 64.73333333333333, + "cursor_y_mm": 2.466666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2052 + }, + { + "row": 0, + "col": 2, + "value": 2056 + }, + { + "row": 0, + "col": 3, + "value": 2070 + }, + { + "row": 0, + "col": 4, + "value": 2125 + }, + { + "row": 0, + "col": 5, + "value": 2552 + }, + { + "row": 0, + "col": 6, + "value": 3977 + }, + { + "row": 0, + "col": 7, + "value": 2422 + }, + { + "row": 0, + "col": 8, + "value": 2112 + }, + { + "row": 0, + "col": 9, + "value": 2067 + }, + { + "row": 1, + "col": 0, + "value": 2050 + }, + { + "row": 1, + "col": 1, + "value": 2053 + }, + { + "row": 1, + "col": 2, + "value": 2059 + }, + { + "row": 1, + "col": 3, + "value": 2078 + }, + { + "row": 1, + "col": 4, + "value": 2143 + }, + { + "row": 1, + "col": 5, + "value": 2346 + }, + { + "row": 1, + "col": 6, + "value": 2314 + }, + { + "row": 1, + "col": 7, + "value": 2128 + }, + { + "row": 1, + "col": 8, + "value": 2074 + }, + { + "row": 1, + "col": 9, + "value": 2058 + }, + { + "row": 2, + "col": 0, + "value": 2049 + }, + { + "row": 2, + "col": 1, + "value": 2051 + }, + { + "row": 2, + "col": 2, + "value": 2054 + }, + { + "row": 2, + "col": 3, + "value": 2060 + }, + { + "row": 2, + "col": 4, + "value": 2075 + }, + { + "row": 2, + "col": 5, + "value": 2102 + }, + { + "row": 2, + "col": 6, + "value": 2121 + }, + { + "row": 2, + "col": 7, + "value": 2098 + }, + { + "row": 2, + "col": 8, + "value": 2072 + }, + { + "row": 2, + "col": 9, + "value": 2059 + }, + { + "row": 3, + "col": 0, + "value": 2049 + }, + { + "row": 3, + "col": 1, + "value": 2051 + }, + { + "row": 3, + "col": 2, + "value": 2053 + }, + { + "row": 3, + "col": 3, + "value": 2058 + }, + { + "row": 3, + "col": 4, + "value": 2065 + }, + { + "row": 3, + "col": 5, + "value": 2071 + }, + { + "row": 3, + "col": 6, + "value": 2071 + }, + { + "row": 3, + "col": 7, + "value": 2064 + }, + { + "row": 3, + "col": 8, + "value": 2057 + }, + { + "row": 3, + "col": 9, + "value": 2053 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2050 + }, + { + "row": 4, + "col": 3, + "value": 2052 + }, + { + "row": 4, + "col": 4, + "value": 2055 + }, + { + "row": 4, + "col": 5, + "value": 2057 + }, + { + "row": 4, + "col": 6, + "value": 2058 + }, + { + "row": 4, + "col": 7, + "value": 2057 + }, + { + "row": 4, + "col": 8, + "value": 2054 + }, + { + "row": 4, + "col": 9, + "value": 2052 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2049 + }, + { + "row": 5, + "col": 2, + "value": 2050 + }, + { + "row": 5, + "col": 3, + "value": 2051 + }, + { + "row": 5, + "col": 4, + "value": 2052 + }, + { + "row": 5, + "col": 5, + "value": 2053 + }, + { + "row": 5, + "col": 6, + "value": 2053 + }, + { + "row": 5, + "col": 7, + "value": 2052 + }, + { + "row": 5, + "col": 8, + "value": 2051 + }, + { + "row": 5, + "col": 9, + "value": 2050 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2049 + } + ] + }, + { + "timestamp_ns": 14435443382, + "cursor_x_mm": 66.06666666666666, + "cursor_y_mm": 9.666666666666668, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2051 + }, + { + "row": 0, + "col": 2, + "value": 2055 + }, + { + "row": 0, + "col": 3, + "value": 2067 + }, + { + "row": 0, + "col": 4, + "value": 2109 + }, + { + "row": 0, + "col": 5, + "value": 2394 + }, + { + "row": 0, + "col": 6, + "value": 3911 + }, + { + "row": 0, + "col": 7, + "value": 2569 + }, + { + "row": 0, + "col": 8, + "value": 2128 + }, + { + "row": 0, + "col": 9, + "value": 2071 + }, + { + "row": 1, + "col": 0, + "value": 2050 + }, + { + "row": 1, + "col": 1, + "value": 2053 + }, + { + "row": 1, + "col": 2, + "value": 2059 + }, + { + "row": 1, + "col": 3, + "value": 2078 + }, + { + "row": 1, + "col": 4, + "value": 2164 + }, + { + "row": 1, + "col": 5, + "value": 2755 + }, + { + "row": 1, + "col": 6, + "value": 2990 + }, + { + "row": 1, + "col": 7, + "value": 2206 + }, + { + "row": 1, + "col": 8, + "value": 2086 + }, + { + "row": 1, + "col": 9, + "value": 2061 + }, + { + "row": 2, + "col": 0, + "value": 2049 + }, + { + "row": 2, + "col": 1, + "value": 2051 + }, + { + "row": 2, + "col": 2, + "value": 2054 + }, + { + "row": 2, + "col": 3, + "value": 2062 + }, + { + "row": 2, + "col": 4, + "value": 2083 + }, + { + "row": 2, + "col": 5, + "value": 2144 + }, + { + "row": 2, + "col": 6, + "value": 2231 + }, + { + "row": 2, + "col": 7, + "value": 2163 + }, + { + "row": 2, + "col": 8, + "value": 2090 + }, + { + "row": 2, + "col": 9, + "value": 2064 + }, + { + "row": 3, + "col": 0, + "value": 2049 + }, + { + "row": 3, + "col": 1, + "value": 2051 + }, + { + "row": 3, + "col": 2, + "value": 2054 + }, + { + "row": 3, + "col": 3, + "value": 2061 + }, + { + "row": 3, + "col": 4, + "value": 2074 + }, + { + "row": 3, + "col": 5, + "value": 2091 + }, + { + "row": 3, + "col": 6, + "value": 2093 + }, + { + "row": 3, + "col": 7, + "value": 2077 + }, + { + "row": 3, + "col": 8, + "value": 2063 + }, + { + "row": 3, + "col": 9, + "value": 2055 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2051 + }, + { + "row": 4, + "col": 3, + "value": 2053 + }, + { + "row": 4, + "col": 4, + "value": 2058 + }, + { + "row": 4, + "col": 5, + "value": 2062 + }, + { + "row": 4, + "col": 6, + "value": 2065 + }, + { + "row": 4, + "col": 7, + "value": 2063 + }, + { + "row": 4, + "col": 8, + "value": 2058 + }, + { + "row": 4, + "col": 9, + "value": 2054 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2049 + }, + { + "row": 5, + "col": 2, + "value": 2050 + }, + { + "row": 5, + "col": 3, + "value": 2052 + }, + { + "row": 5, + "col": 4, + "value": 2054 + }, + { + "row": 5, + "col": 5, + "value": 2055 + }, + { + "row": 5, + "col": 6, + "value": 2056 + }, + { + "row": 5, + "col": 7, + "value": 2054 + }, + { + "row": 5, + "col": 8, + "value": 2052 + }, + { + "row": 5, + "col": 9, + "value": 2051 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2049 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2052 + }, + { + "row": 6, + "col": 7, + "value": 2051 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2050 + } + ] + }, + { + "timestamp_ns": 14579520820, + "cursor_x_mm": 66.2, + "cursor_y_mm": 16.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2051 + }, + { + "row": 0, + "col": 2, + "value": 2054 + }, + { + "row": 0, + "col": 3, + "value": 2064 + }, + { + "row": 0, + "col": 4, + "value": 2092 + }, + { + "row": 0, + "col": 5, + "value": 2209 + }, + { + "row": 0, + "col": 6, + "value": 2493 + }, + { + "row": 0, + "col": 7, + "value": 2270 + }, + { + "row": 0, + "col": 8, + "value": 2107 + }, + { + "row": 0, + "col": 9, + "value": 2068 + }, + { + "row": 1, + "col": 0, + "value": 2050 + }, + { + "row": 1, + "col": 1, + "value": 2053 + }, + { + "row": 1, + "col": 2, + "value": 2059 + }, + { + "row": 1, + "col": 3, + "value": 2080 + }, + { + "row": 1, + "col": 4, + "value": 2178 + }, + { + "row": 1, + "col": 5, + "value": 3140 + }, + { + "row": 1, + "col": 6, + "value": 3714 + }, + { + "row": 1, + "col": 7, + "value": 2251 + }, + { + "row": 1, + "col": 8, + "value": 2090 + }, + { + "row": 1, + "col": 9, + "value": 2062 + }, + { + "row": 2, + "col": 0, + "value": 2049 + }, + { + "row": 2, + "col": 1, + "value": 2051 + }, + { + "row": 2, + "col": 2, + "value": 2055 + }, + { + "row": 2, + "col": 3, + "value": 2065 + }, + { + "row": 2, + "col": 4, + "value": 2099 + }, + { + "row": 2, + "col": 5, + "value": 2275 + }, + { + "row": 2, + "col": 6, + "value": 2935 + }, + { + "row": 2, + "col": 7, + "value": 2391 + }, + { + "row": 2, + "col": 8, + "value": 2118 + }, + { + "row": 2, + "col": 9, + "value": 2069 + }, + { + "row": 3, + "col": 0, + "value": 2050 + }, + { + "row": 3, + "col": 1, + "value": 2052 + }, + { + "row": 3, + "col": 2, + "value": 2056 + }, + { + "row": 3, + "col": 3, + "value": 2067 + }, + { + "row": 3, + "col": 4, + "value": 2097 + }, + { + "row": 3, + "col": 5, + "value": 2163 + }, + { + "row": 3, + "col": 6, + "value": 2178 + }, + { + "row": 3, + "col": 7, + "value": 2110 + }, + { + "row": 3, + "col": 8, + "value": 2072 + }, + { + "row": 3, + "col": 9, + "value": 2058 + }, + { + "row": 4, + "col": 0, + "value": 2049 + }, + { + "row": 4, + "col": 1, + "value": 2050 + }, + { + "row": 4, + "col": 2, + "value": 2052 + }, + { + "row": 4, + "col": 3, + "value": 2056 + }, + { + "row": 4, + "col": 4, + "value": 2064 + }, + { + "row": 4, + "col": 5, + "value": 2077 + }, + { + "row": 4, + "col": 6, + "value": 2087 + }, + { + "row": 4, + "col": 7, + "value": 2080 + }, + { + "row": 4, + "col": 8, + "value": 2067 + }, + { + "row": 4, + "col": 9, + "value": 2058 + }, + { + "row": 5, + "col": 0, + "value": 2049 + }, + { + "row": 5, + "col": 1, + "value": 2050 + }, + { + "row": 5, + "col": 2, + "value": 2052 + }, + { + "row": 5, + "col": 3, + "value": 2055 + }, + { + "row": 5, + "col": 4, + "value": 2058 + }, + { + "row": 5, + "col": 5, + "value": 2062 + }, + { + "row": 5, + "col": 6, + "value": 2063 + }, + { + "row": 5, + "col": 7, + "value": 2060 + }, + { + "row": 5, + "col": 8, + "value": 2055 + }, + { + "row": 5, + "col": 9, + "value": 2052 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2049 + }, + { + "row": 6, + "col": 3, + "value": 2051 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2054 + }, + { + "row": 6, + "col": 6, + "value": 2055 + }, + { + "row": 6, + "col": 7, + "value": 2054 + }, + { + "row": 6, + "col": 8, + "value": 2053 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 14738414304, + "cursor_x_mm": 66.33333333333334, + "cursor_y_mm": 22.733333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2053 + }, + { + "row": 0, + "col": 3, + "value": 2060 + }, + { + "row": 0, + "col": 4, + "value": 2077 + }, + { + "row": 0, + "col": 5, + "value": 2118 + }, + { + "row": 0, + "col": 6, + "value": 2169 + }, + { + "row": 0, + "col": 7, + "value": 2134 + }, + { + "row": 0, + "col": 8, + "value": 2085 + }, + { + "row": 0, + "col": 9, + "value": 2063 + }, + { + "row": 1, + "col": 0, + "value": 2050 + }, + { + "row": 1, + "col": 1, + "value": 2052 + }, + { + "row": 1, + "col": 2, + "value": 2058 + }, + { + "row": 1, + "col": 3, + "value": 2075 + }, + { + "row": 1, + "col": 4, + "value": 2143 + }, + { + "row": 1, + "col": 5, + "value": 2493 + }, + { + "row": 1, + "col": 6, + "value": 2666 + }, + { + "row": 1, + "col": 7, + "value": 2189 + }, + { + "row": 1, + "col": 8, + "value": 2085 + }, + { + "row": 1, + "col": 9, + "value": 2061 + }, + { + "row": 2, + "col": 0, + "value": 2049 + }, + { + "row": 2, + "col": 1, + "value": 2051 + }, + { + "row": 2, + "col": 2, + "value": 2055 + }, + { + "row": 2, + "col": 3, + "value": 2066 + }, + { + "row": 2, + "col": 4, + "value": 2107 + }, + { + "row": 2, + "col": 5, + "value": 2391 + }, + { + "row": 2, + "col": 6, + "value": 4072 + }, + { + "row": 2, + "col": 7, + "value": 2683 + }, + { + "row": 2, + "col": 8, + "value": 2136 + }, + { + "row": 2, + "col": 9, + "value": 2072 + }, + { + "row": 3, + "col": 0, + "value": 2050 + }, + { + "row": 3, + "col": 1, + "value": 2052 + }, + { + "row": 3, + "col": 2, + "value": 2058 + }, + { + "row": 3, + "col": 3, + "value": 2074 + }, + { + "row": 3, + "col": 4, + "value": 2134 + }, + { + "row": 3, + "col": 5, + "value": 2398 + }, + { + "row": 3, + "col": 6, + "value": 2514 + }, + { + "row": 3, + "col": 7, + "value": 2172 + }, + { + "row": 3, + "col": 8, + "value": 2083 + }, + { + "row": 3, + "col": 9, + "value": 2061 + }, + { + "row": 4, + "col": 0, + "value": 2049 + }, + { + "row": 4, + "col": 1, + "value": 2050 + }, + { + "row": 4, + "col": 2, + "value": 2053 + }, + { + "row": 4, + "col": 3, + "value": 2059 + }, + { + "row": 4, + "col": 4, + "value": 2074 + }, + { + "row": 4, + "col": 5, + "value": 2108 + }, + { + "row": 4, + "col": 6, + "value": 2145 + }, + { + "row": 4, + "col": 7, + "value": 2120 + }, + { + "row": 4, + "col": 8, + "value": 2081 + }, + { + "row": 4, + "col": 9, + "value": 2062 + }, + { + "row": 5, + "col": 0, + "value": 2049 + }, + { + "row": 5, + "col": 1, + "value": 2050 + }, + { + "row": 5, + "col": 2, + "value": 2053 + }, + { + "row": 5, + "col": 3, + "value": 2058 + }, + { + "row": 5, + "col": 4, + "value": 2066 + }, + { + "row": 5, + "col": 5, + "value": 2076 + }, + { + "row": 5, + "col": 6, + "value": 2077 + }, + { + "row": 5, + "col": 7, + "value": 2069 + }, + { + "row": 5, + "col": 8, + "value": 2060 + }, + { + "row": 5, + "col": 9, + "value": 2054 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2052 + }, + { + "row": 6, + "col": 4, + "value": 2055 + }, + { + "row": 6, + "col": 5, + "value": 2058 + }, + { + "row": 6, + "col": 6, + "value": 2060 + }, + { + "row": 6, + "col": 7, + "value": 2059 + }, + { + "row": 6, + "col": 8, + "value": 2056 + }, + { + "row": 6, + "col": 9, + "value": 2053 + } + ] + }, + { + "timestamp_ns": 14898900589, + "cursor_x_mm": 66.6, + "cursor_y_mm": 29.666666666666668, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2049 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2052 + }, + { + "row": 0, + "col": 3, + "value": 2056 + }, + { + "row": 0, + "col": 4, + "value": 2065 + }, + { + "row": 0, + "col": 5, + "value": 2080 + }, + { + "row": 0, + "col": 6, + "value": 2093 + }, + { + "row": 0, + "col": 7, + "value": 2086 + }, + { + "row": 0, + "col": 8, + "value": 2069 + }, + { + "row": 0, + "col": 9, + "value": 2059 + }, + { + "row": 1, + "col": 0, + "value": 2050 + }, + { + "row": 1, + "col": 1, + "value": 2052 + }, + { + "row": 1, + "col": 2, + "value": 2056 + }, + { + "row": 1, + "col": 3, + "value": 2068 + }, + { + "row": 1, + "col": 4, + "value": 2101 + }, + { + "row": 1, + "col": 5, + "value": 2183 + }, + { + "row": 1, + "col": 6, + "value": 2210 + }, + { + "row": 1, + "col": 7, + "value": 2121 + }, + { + "row": 1, + "col": 8, + "value": 2075 + }, + { + "row": 1, + "col": 9, + "value": 2059 + }, + { + "row": 2, + "col": 0, + "value": 2049 + }, + { + "row": 2, + "col": 1, + "value": 2051 + }, + { + "row": 2, + "col": 2, + "value": 2055 + }, + { + "row": 2, + "col": 3, + "value": 2065 + }, + { + "row": 2, + "col": 4, + "value": 2099 + }, + { + "row": 2, + "col": 5, + "value": 2287 + }, + { + "row": 2, + "col": 6, + "value": 3176 + }, + { + "row": 2, + "col": 7, + "value": 2480 + }, + { + "row": 2, + "col": 8, + "value": 2127 + }, + { + "row": 2, + "col": 9, + "value": 2071 + }, + { + "row": 3, + "col": 0, + "value": 2050 + }, + { + "row": 3, + "col": 1, + "value": 2052 + }, + { + "row": 3, + "col": 2, + "value": 2059 + }, + { + "row": 3, + "col": 3, + "value": 2078 + }, + { + "row": 3, + "col": 4, + "value": 2167 + }, + { + "row": 3, + "col": 5, + "value": 2972 + }, + { + "row": 3, + "col": 6, + "value": 3659 + }, + { + "row": 3, + "col": 7, + "value": 2260 + }, + { + "row": 3, + "col": 8, + "value": 2092 + }, + { + "row": 3, + "col": 9, + "value": 2063 + }, + { + "row": 4, + "col": 0, + "value": 2049 + }, + { + "row": 4, + "col": 1, + "value": 2051 + }, + { + "row": 4, + "col": 2, + "value": 2054 + }, + { + "row": 4, + "col": 3, + "value": 2062 + }, + { + "row": 4, + "col": 4, + "value": 2088 + }, + { + "row": 4, + "col": 5, + "value": 2180 + }, + { + "row": 4, + "col": 6, + "value": 2386 + }, + { + "row": 4, + "col": 7, + "value": 2243 + }, + { + "row": 4, + "col": 8, + "value": 2105 + }, + { + "row": 4, + "col": 9, + "value": 2068 + }, + { + "row": 5, + "col": 0, + "value": 2049 + }, + { + "row": 5, + "col": 1, + "value": 2051 + }, + { + "row": 5, + "col": 2, + "value": 2055 + }, + { + "row": 5, + "col": 3, + "value": 2063 + }, + { + "row": 5, + "col": 4, + "value": 2081 + }, + { + "row": 5, + "col": 5, + "value": 2110 + }, + { + "row": 5, + "col": 6, + "value": 2117 + }, + { + "row": 5, + "col": 7, + "value": 2089 + }, + { + "row": 5, + "col": 8, + "value": 2067 + }, + { + "row": 5, + "col": 9, + "value": 2057 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2051 + }, + { + "row": 6, + "col": 3, + "value": 2054 + }, + { + "row": 6, + "col": 4, + "value": 2060 + }, + { + "row": 6, + "col": 5, + "value": 2067 + }, + { + "row": 6, + "col": 6, + "value": 2072 + }, + { + "row": 6, + "col": 7, + "value": 2069 + }, + { + "row": 6, + "col": 8, + "value": 2062 + }, + { + "row": 6, + "col": 9, + "value": 2056 + } + ] + }, + { + "timestamp_ns": 15042026882, + "cursor_x_mm": 66.46666666666667, + "cursor_y_mm": 37.4, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2051 + }, + { + "row": 0, + "col": 3, + "value": 2054 + }, + { + "row": 0, + "col": 4, + "value": 2058 + }, + { + "row": 0, + "col": 5, + "value": 2064 + }, + { + "row": 0, + "col": 6, + "value": 2068 + }, + { + "row": 0, + "col": 7, + "value": 2066 + }, + { + "row": 0, + "col": 8, + "value": 2060 + }, + { + "row": 0, + "col": 9, + "value": 2055 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2051 + }, + { + "row": 1, + "col": 2, + "value": 2054 + }, + { + "row": 1, + "col": 3, + "value": 2061 + }, + { + "row": 1, + "col": 4, + "value": 2076 + }, + { + "row": 1, + "col": 5, + "value": 2097 + }, + { + "row": 1, + "col": 6, + "value": 2102 + }, + { + "row": 1, + "col": 7, + "value": 2082 + }, + { + "row": 1, + "col": 8, + "value": 2065 + }, + { + "row": 1, + "col": 9, + "value": 2056 + }, + { + "row": 2, + "col": 0, + "value": 2049 + }, + { + "row": 2, + "col": 1, + "value": 2051 + }, + { + "row": 2, + "col": 2, + "value": 2054 + }, + { + "row": 2, + "col": 3, + "value": 2062 + }, + { + "row": 2, + "col": 4, + "value": 2084 + }, + { + "row": 2, + "col": 5, + "value": 2156 + }, + { + "row": 2, + "col": 6, + "value": 2282 + }, + { + "row": 2, + "col": 7, + "value": 2194 + }, + { + "row": 2, + "col": 8, + "value": 2097 + }, + { + "row": 2, + "col": 9, + "value": 2066 + }, + { + "row": 3, + "col": 0, + "value": 2050 + }, + { + "row": 3, + "col": 1, + "value": 2052 + }, + { + "row": 3, + "col": 2, + "value": 2059 + }, + { + "row": 3, + "col": 3, + "value": 2077 + }, + { + "row": 3, + "col": 4, + "value": 2162 + }, + { + "row": 3, + "col": 5, + "value": 2828 + }, + { + "row": 3, + "col": 6, + "value": 3317 + }, + { + "row": 3, + "col": 7, + "value": 2237 + }, + { + "row": 3, + "col": 8, + "value": 2090 + }, + { + "row": 3, + "col": 9, + "value": 2062 + }, + { + "row": 4, + "col": 0, + "value": 2049 + }, + { + "row": 4, + "col": 1, + "value": 2051 + }, + { + "row": 4, + "col": 2, + "value": 2055 + }, + { + "row": 4, + "col": 3, + "value": 2065 + }, + { + "row": 4, + "col": 4, + "value": 2103 + }, + { + "row": 4, + "col": 5, + "value": 2332 + }, + { + "row": 4, + "col": 6, + "value": 3616 + }, + { + "row": 4, + "col": 7, + "value": 2569 + }, + { + "row": 4, + "col": 8, + "value": 2131 + }, + { + "row": 4, + "col": 9, + "value": 2071 + }, + { + "row": 5, + "col": 0, + "value": 2050 + }, + { + "row": 5, + "col": 1, + "value": 2052 + }, + { + "row": 5, + "col": 2, + "value": 2057 + }, + { + "row": 5, + "col": 3, + "value": 2070 + }, + { + "row": 5, + "col": 4, + "value": 2111 + }, + { + "row": 5, + "col": 5, + "value": 2230 + }, + { + "row": 5, + "col": 6, + "value": 2272 + }, + { + "row": 5, + "col": 7, + "value": 2135 + }, + { + "row": 5, + "col": 8, + "value": 2077 + }, + { + "row": 5, + "col": 9, + "value": 2059 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2050 + }, + { + "row": 6, + "col": 2, + "value": 2052 + }, + { + "row": 6, + "col": 3, + "value": 2057 + }, + { + "row": 6, + "col": 4, + "value": 2068 + }, + { + "row": 6, + "col": 5, + "value": 2087 + }, + { + "row": 6, + "col": 6, + "value": 2105 + }, + { + "row": 6, + "col": 7, + "value": 2094 + }, + { + "row": 6, + "col": 8, + "value": 2073 + }, + { + "row": 6, + "col": 9, + "value": 2060 + } + ] + }, + { + "timestamp_ns": 15187045840, + "cursor_x_mm": 66.86666666666667, + "cursor_y_mm": 46.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2053 + }, + { + "row": 0, + "col": 5, + "value": 2055 + }, + { + "row": 0, + "col": 6, + "value": 2056 + }, + { + "row": 0, + "col": 7, + "value": 2056 + }, + { + "row": 0, + "col": 8, + "value": 2054 + }, + { + "row": 0, + "col": 9, + "value": 2052 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2050 + }, + { + "row": 1, + "col": 2, + "value": 2052 + }, + { + "row": 1, + "col": 3, + "value": 2056 + }, + { + "row": 1, + "col": 4, + "value": 2061 + }, + { + "row": 1, + "col": 5, + "value": 2066 + }, + { + "row": 1, + "col": 6, + "value": 2067 + }, + { + "row": 1, + "col": 7, + "value": 2063 + }, + { + "row": 1, + "col": 8, + "value": 2057 + }, + { + "row": 1, + "col": 9, + "value": 2053 + }, + { + "row": 2, + "col": 0, + "value": 2049 + }, + { + "row": 2, + "col": 1, + "value": 2050 + }, + { + "row": 2, + "col": 2, + "value": 2052 + }, + { + "row": 2, + "col": 3, + "value": 2057 + }, + { + "row": 2, + "col": 4, + "value": 2067 + }, + { + "row": 2, + "col": 5, + "value": 2085 + }, + { + "row": 2, + "col": 6, + "value": 2101 + }, + { + "row": 2, + "col": 7, + "value": 2092 + }, + { + "row": 2, + "col": 8, + "value": 2072 + }, + { + "row": 2, + "col": 9, + "value": 2059 + }, + { + "row": 3, + "col": 0, + "value": 2050 + }, + { + "row": 3, + "col": 1, + "value": 2052 + }, + { + "row": 3, + "col": 2, + "value": 2057 + }, + { + "row": 3, + "col": 3, + "value": 2069 + }, + { + "row": 3, + "col": 4, + "value": 2107 + }, + { + "row": 3, + "col": 5, + "value": 2215 + }, + { + "row": 3, + "col": 6, + "value": 2255 + }, + { + "row": 3, + "col": 7, + "value": 2132 + }, + { + "row": 3, + "col": 8, + "value": 2077 + }, + { + "row": 3, + "col": 9, + "value": 2059 + }, + { + "row": 4, + "col": 0, + "value": 2049 + }, + { + "row": 4, + "col": 1, + "value": 2051 + }, + { + "row": 4, + "col": 2, + "value": 2055 + }, + { + "row": 4, + "col": 3, + "value": 2065 + }, + { + "row": 4, + "col": 4, + "value": 2101 + }, + { + "row": 4, + "col": 5, + "value": 2316 + }, + { + "row": 4, + "col": 6, + "value": 3498 + }, + { + "row": 4, + "col": 7, + "value": 2558 + }, + { + "row": 4, + "col": 8, + "value": 2131 + }, + { + "row": 4, + "col": 9, + "value": 2072 + }, + { + "row": 5, + "col": 0, + "value": 2050 + }, + { + "row": 5, + "col": 1, + "value": 2052 + }, + { + "row": 5, + "col": 2, + "value": 2059 + }, + { + "row": 5, + "col": 3, + "value": 2077 + }, + { + "row": 5, + "col": 4, + "value": 2162 + }, + { + "row": 5, + "col": 5, + "value": 2852 + }, + { + "row": 5, + "col": 6, + "value": 3429 + }, + { + "row": 5, + "col": 7, + "value": 2247 + }, + { + "row": 5, + "col": 8, + "value": 2091 + }, + { + "row": 5, + "col": 9, + "value": 2062 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2051 + }, + { + "row": 6, + "col": 2, + "value": 2054 + }, + { + "row": 6, + "col": 3, + "value": 2062 + }, + { + "row": 6, + "col": 4, + "value": 2085 + }, + { + "row": 6, + "col": 5, + "value": 2160 + }, + { + "row": 6, + "col": 6, + "value": 2304 + }, + { + "row": 6, + "col": 7, + "value": 2207 + }, + { + "row": 6, + "col": 8, + "value": 2100 + }, + { + "row": 6, + "col": 9, + "value": 2067 + } + ] + }, + { + "timestamp_ns": 15346439985, + "cursor_x_mm": 66.86666666666667, + "cursor_y_mm": 52.6, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2052 + }, + { + "row": 0, + "col": 6, + "value": 2053 + }, + { + "row": 0, + "col": 7, + "value": 2052 + }, + { + "row": 0, + "col": 8, + "value": 2052 + }, + { + "row": 0, + "col": 9, + "value": 2050 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2051 + }, + { + "row": 1, + "col": 3, + "value": 2053 + }, + { + "row": 1, + "col": 4, + "value": 2055 + }, + { + "row": 1, + "col": 5, + "value": 2058 + }, + { + "row": 1, + "col": 6, + "value": 2058 + }, + { + "row": 1, + "col": 7, + "value": 2056 + }, + { + "row": 1, + "col": 8, + "value": 2054 + }, + { + "row": 1, + "col": 9, + "value": 2051 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2049 + }, + { + "row": 2, + "col": 2, + "value": 2051 + }, + { + "row": 2, + "col": 3, + "value": 2054 + }, + { + "row": 2, + "col": 4, + "value": 2059 + }, + { + "row": 2, + "col": 5, + "value": 2067 + }, + { + "row": 2, + "col": 6, + "value": 2072 + }, + { + "row": 2, + "col": 7, + "value": 2069 + }, + { + "row": 2, + "col": 8, + "value": 2062 + }, + { + "row": 2, + "col": 9, + "value": 2056 + }, + { + "row": 3, + "col": 0, + "value": 2049 + }, + { + "row": 3, + "col": 1, + "value": 2051 + }, + { + "row": 3, + "col": 2, + "value": 2055 + }, + { + "row": 3, + "col": 3, + "value": 2063 + }, + { + "row": 3, + "col": 4, + "value": 2080 + }, + { + "row": 3, + "col": 5, + "value": 2110 + }, + { + "row": 3, + "col": 6, + "value": 2118 + }, + { + "row": 3, + "col": 7, + "value": 2090 + }, + { + "row": 3, + "col": 8, + "value": 2068 + }, + { + "row": 3, + "col": 9, + "value": 2057 + }, + { + "row": 4, + "col": 0, + "value": 2049 + }, + { + "row": 4, + "col": 1, + "value": 2051 + }, + { + "row": 4, + "col": 2, + "value": 2054 + }, + { + "row": 4, + "col": 3, + "value": 2062 + }, + { + "row": 4, + "col": 4, + "value": 2087 + }, + { + "row": 4, + "col": 5, + "value": 2177 + }, + { + "row": 4, + "col": 6, + "value": 2389 + }, + { + "row": 4, + "col": 7, + "value": 2251 + }, + { + "row": 4, + "col": 8, + "value": 2107 + }, + { + "row": 4, + "col": 9, + "value": 2068 + }, + { + "row": 5, + "col": 0, + "value": 2050 + }, + { + "row": 5, + "col": 1, + "value": 2052 + }, + { + "row": 5, + "col": 2, + "value": 2058 + }, + { + "row": 5, + "col": 3, + "value": 2077 + }, + { + "row": 5, + "col": 4, + "value": 2162 + }, + { + "row": 5, + "col": 5, + "value": 2926 + }, + { + "row": 5, + "col": 6, + "value": 3720 + }, + { + "row": 5, + "col": 7, + "value": 2272 + }, + { + "row": 5, + "col": 8, + "value": 2094 + }, + { + "row": 5, + "col": 9, + "value": 2063 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2051 + }, + { + "row": 6, + "col": 2, + "value": 2054 + }, + { + "row": 6, + "col": 3, + "value": 2064 + }, + { + "row": 6, + "col": 4, + "value": 2097 + }, + { + "row": 6, + "col": 5, + "value": 2274 + }, + { + "row": 6, + "col": 6, + "value": 3139 + }, + { + "row": 6, + "col": 7, + "value": 2497 + }, + { + "row": 6, + "col": 8, + "value": 2130 + }, + { + "row": 6, + "col": 9, + "value": 2072 + } + ] + }, + { + "timestamp_ns": 15505871584, + "cursor_x_mm": 69.0, + "cursor_y_mm": 58.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2050 + }, + { + "row": 1, + "col": 3, + "value": 2051 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2053 + }, + { + "row": 1, + "col": 6, + "value": 2054 + }, + { + "row": 1, + "col": 7, + "value": 2053 + }, + { + "row": 1, + "col": 8, + "value": 2052 + }, + { + "row": 1, + "col": 9, + "value": 2050 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2049 + }, + { + "row": 2, + "col": 2, + "value": 2050 + }, + { + "row": 2, + "col": 3, + "value": 2052 + }, + { + "row": 2, + "col": 4, + "value": 2055 + }, + { + "row": 2, + "col": 5, + "value": 2058 + }, + { + "row": 2, + "col": 6, + "value": 2061 + }, + { + "row": 2, + "col": 7, + "value": 2060 + }, + { + "row": 2, + "col": 8, + "value": 2057 + }, + { + "row": 2, + "col": 9, + "value": 2054 + }, + { + "row": 3, + "col": 0, + "value": 2049 + }, + { + "row": 3, + "col": 1, + "value": 2050 + }, + { + "row": 3, + "col": 2, + "value": 2053 + }, + { + "row": 3, + "col": 3, + "value": 2057 + }, + { + "row": 3, + "col": 4, + "value": 2065 + }, + { + "row": 3, + "col": 5, + "value": 2076 + }, + { + "row": 3, + "col": 6, + "value": 2080 + }, + { + "row": 3, + "col": 7, + "value": 2072 + }, + { + "row": 3, + "col": 8, + "value": 2062 + }, + { + "row": 3, + "col": 9, + "value": 2055 + }, + { + "row": 4, + "col": 0, + "value": 2049 + }, + { + "row": 4, + "col": 1, + "value": 2050 + }, + { + "row": 4, + "col": 2, + "value": 2053 + }, + { + "row": 4, + "col": 3, + "value": 2058 + }, + { + "row": 4, + "col": 4, + "value": 2071 + }, + { + "row": 4, + "col": 5, + "value": 2103 + }, + { + "row": 4, + "col": 6, + "value": 2149 + }, + { + "row": 4, + "col": 7, + "value": 2134 + }, + { + "row": 4, + "col": 8, + "value": 2088 + }, + { + "row": 4, + "col": 9, + "value": 2065 + }, + { + "row": 5, + "col": 0, + "value": 2049 + }, + { + "row": 5, + "col": 1, + "value": 2052 + }, + { + "row": 5, + "col": 2, + "value": 2057 + }, + { + "row": 5, + "col": 3, + "value": 2070 + }, + { + "row": 5, + "col": 4, + "value": 2118 + }, + { + "row": 5, + "col": 5, + "value": 2349 + }, + { + "row": 5, + "col": 6, + "value": 2633 + }, + { + "row": 5, + "col": 7, + "value": 2217 + }, + { + "row": 5, + "col": 8, + "value": 2091 + }, + { + "row": 5, + "col": 9, + "value": 2063 + }, + { + "row": 6, + "col": 0, + "value": 2049 + }, + { + "row": 6, + "col": 1, + "value": 2051 + }, + { + "row": 6, + "col": 2, + "value": 2054 + }, + { + "row": 6, + "col": 3, + "value": 2063 + }, + { + "row": 6, + "col": 4, + "value": 2095 + }, + { + "row": 6, + "col": 5, + "value": 2287 + }, + { + "row": 6, + "col": 6, + "value": 3912 + }, + { + "row": 6, + "col": 7, + "value": 3010 + }, + { + "row": 6, + "col": 8, + "value": 2164 + }, + { + "row": 6, + "col": 9, + "value": 2077 + } + ] + }, + { + "timestamp_ns": 15665039521, + "cursor_x_mm": 73.8, + "cursor_y_mm": 60.06666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2049 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2050 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2052 + }, + { + "row": 1, + "col": 6, + "value": 2052 + }, + { + "row": 1, + "col": 7, + "value": 2052 + }, + { + "row": 1, + "col": 8, + "value": 2052 + }, + { + "row": 1, + "col": 9, + "value": 2050 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2050 + }, + { + "row": 2, + "col": 4, + "value": 2052 + }, + { + "row": 2, + "col": 5, + "value": 2055 + }, + { + "row": 2, + "col": 6, + "value": 2057 + }, + { + "row": 2, + "col": 7, + "value": 2058 + }, + { + "row": 2, + "col": 8, + "value": 2056 + }, + { + "row": 2, + "col": 9, + "value": 2054 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2051 + }, + { + "row": 3, + "col": 3, + "value": 2053 + }, + { + "row": 3, + "col": 4, + "value": 2058 + }, + { + "row": 3, + "col": 5, + "value": 2065 + }, + { + "row": 3, + "col": 6, + "value": 2070 + }, + { + "row": 3, + "col": 7, + "value": 2069 + }, + { + "row": 3, + "col": 8, + "value": 2063 + }, + { + "row": 3, + "col": 9, + "value": 2056 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2051 + }, + { + "row": 4, + "col": 3, + "value": 2054 + }, + { + "row": 4, + "col": 4, + "value": 2060 + }, + { + "row": 4, + "col": 5, + "value": 2075 + }, + { + "row": 4, + "col": 6, + "value": 2101 + }, + { + "row": 4, + "col": 7, + "value": 2115 + }, + { + "row": 4, + "col": 8, + "value": 2093 + }, + { + "row": 4, + "col": 9, + "value": 2070 + }, + { + "row": 5, + "col": 0, + "value": 2049 + }, + { + "row": 5, + "col": 1, + "value": 2050 + }, + { + "row": 5, + "col": 2, + "value": 2053 + }, + { + "row": 5, + "col": 3, + "value": 2060 + }, + { + "row": 5, + "col": 4, + "value": 2079 + }, + { + "row": 5, + "col": 5, + "value": 2145 + }, + { + "row": 5, + "col": 6, + "value": 2326 + }, + { + "row": 5, + "col": 7, + "value": 2273 + }, + { + "row": 5, + "col": 8, + "value": 2118 + }, + { + "row": 5, + "col": 9, + "value": 2071 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2052 + }, + { + "row": 6, + "col": 3, + "value": 2057 + }, + { + "row": 6, + "col": 4, + "value": 2072 + }, + { + "row": 6, + "col": 5, + "value": 2132 + }, + { + "row": 6, + "col": 6, + "value": 2610 + }, + { + "row": 6, + "col": 7, + "value": 3858 + }, + { + "row": 6, + "col": 8, + "value": 2363 + }, + { + "row": 6, + "col": 9, + "value": 2105 + } + ] + }, + { + "timestamp_ns": 15839296369, + "cursor_x_mm": 75.8, + "cursor_y_mm": 54.46666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2051 + }, + { + "row": 0, + "col": 9, + "value": 2050 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2050 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2053 + }, + { + "row": 1, + "col": 6, + "value": 2054 + }, + { + "row": 1, + "col": 7, + "value": 2054 + }, + { + "row": 1, + "col": 8, + "value": 2053 + }, + { + "row": 1, + "col": 9, + "value": 2052 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2051 + }, + { + "row": 2, + "col": 4, + "value": 2053 + }, + { + "row": 2, + "col": 5, + "value": 2056 + }, + { + "row": 2, + "col": 6, + "value": 2060 + }, + { + "row": 2, + "col": 7, + "value": 2062 + }, + { + "row": 2, + "col": 8, + "value": 2061 + }, + { + "row": 2, + "col": 9, + "value": 2057 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2051 + }, + { + "row": 3, + "col": 3, + "value": 2054 + }, + { + "row": 3, + "col": 4, + "value": 2059 + }, + { + "row": 3, + "col": 5, + "value": 2070 + }, + { + "row": 3, + "col": 6, + "value": 2082 + }, + { + "row": 3, + "col": 7, + "value": 2083 + }, + { + "row": 3, + "col": 8, + "value": 2072 + }, + { + "row": 3, + "col": 9, + "value": 2061 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2050 + }, + { + "row": 4, + "col": 3, + "value": 2054 + }, + { + "row": 4, + "col": 4, + "value": 2061 + }, + { + "row": 4, + "col": 5, + "value": 2079 + }, + { + "row": 4, + "col": 6, + "value": 2124 + }, + { + "row": 4, + "col": 7, + "value": 2177 + }, + { + "row": 4, + "col": 8, + "value": 2136 + }, + { + "row": 4, + "col": 9, + "value": 2084 + }, + { + "row": 5, + "col": 0, + "value": 2049 + }, + { + "row": 5, + "col": 1, + "value": 2050 + }, + { + "row": 5, + "col": 2, + "value": 2052 + }, + { + "row": 5, + "col": 3, + "value": 2059 + }, + { + "row": 5, + "col": 4, + "value": 2077 + }, + { + "row": 5, + "col": 5, + "value": 2151 + }, + { + "row": 5, + "col": 6, + "value": 2552 + }, + { + "row": 5, + "col": 7, + "value": 2690 + }, + { + "row": 5, + "col": 8, + "value": 2185 + }, + { + "row": 5, + "col": 9, + "value": 2084 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2051 + }, + { + "row": 6, + "col": 3, + "value": 2055 + }, + { + "row": 6, + "col": 4, + "value": 2067 + }, + { + "row": 6, + "col": 5, + "value": 2110 + }, + { + "row": 6, + "col": 6, + "value": 2421 + }, + { + "row": 6, + "col": 7, + "value": 4076 + }, + { + "row": 6, + "col": 8, + "value": 2621 + }, + { + "row": 6, + "col": 9, + "value": 2130 + } + ] + }, + { + "timestamp_ns": 15996582126, + "cursor_x_mm": 74.86666666666666, + "cursor_y_mm": 45.666666666666664, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2053 + }, + { + "row": 0, + "col": 6, + "value": 2054 + }, + { + "row": 0, + "col": 7, + "value": 2055 + }, + { + "row": 0, + "col": 8, + "value": 2054 + }, + { + "row": 0, + "col": 9, + "value": 2053 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2050 + }, + { + "row": 1, + "col": 3, + "value": 2052 + }, + { + "row": 1, + "col": 4, + "value": 2055 + }, + { + "row": 1, + "col": 5, + "value": 2059 + }, + { + "row": 1, + "col": 6, + "value": 2062 + }, + { + "row": 1, + "col": 7, + "value": 2062 + }, + { + "row": 1, + "col": 8, + "value": 2059 + }, + { + "row": 1, + "col": 9, + "value": 2055 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2049 + }, + { + "row": 2, + "col": 2, + "value": 2050 + }, + { + "row": 2, + "col": 3, + "value": 2052 + }, + { + "row": 2, + "col": 4, + "value": 2057 + }, + { + "row": 2, + "col": 5, + "value": 2066 + }, + { + "row": 2, + "col": 6, + "value": 2079 + }, + { + "row": 2, + "col": 7, + "value": 2087 + }, + { + "row": 2, + "col": 8, + "value": 2078 + }, + { + "row": 2, + "col": 9, + "value": 2065 + }, + { + "row": 3, + "col": 0, + "value": 2049 + }, + { + "row": 3, + "col": 1, + "value": 2050 + }, + { + "row": 3, + "col": 2, + "value": 2052 + }, + { + "row": 3, + "col": 3, + "value": 2057 + }, + { + "row": 3, + "col": 4, + "value": 2070 + }, + { + "row": 3, + "col": 5, + "value": 2104 + }, + { + "row": 3, + "col": 6, + "value": 2171 + }, + { + "row": 3, + "col": 7, + "value": 2169 + }, + { + "row": 3, + "col": 8, + "value": 2102 + }, + { + "row": 3, + "col": 9, + "value": 2069 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2051 + }, + { + "row": 4, + "col": 3, + "value": 2056 + }, + { + "row": 4, + "col": 4, + "value": 2067 + }, + { + "row": 4, + "col": 5, + "value": 2109 + }, + { + "row": 4, + "col": 6, + "value": 2332 + }, + { + "row": 4, + "col": 7, + "value": 2947 + }, + { + "row": 4, + "col": 8, + "value": 2319 + }, + { + "row": 4, + "col": 9, + "value": 2107 + }, + { + "row": 5, + "col": 0, + "value": 2049 + }, + { + "row": 5, + "col": 1, + "value": 2050 + }, + { + "row": 5, + "col": 2, + "value": 2053 + }, + { + "row": 5, + "col": 3, + "value": 2061 + }, + { + "row": 5, + "col": 4, + "value": 2085 + }, + { + "row": 5, + "col": 5, + "value": 2214 + }, + { + "row": 5, + "col": 6, + "value": 3468 + }, + { + "row": 5, + "col": 7, + "value": 3402 + }, + { + "row": 5, + "col": 8, + "value": 2206 + }, + { + "row": 5, + "col": 9, + "value": 2084 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2051 + }, + { + "row": 6, + "col": 3, + "value": 2055 + }, + { + "row": 6, + "col": 4, + "value": 2066 + }, + { + "row": 6, + "col": 5, + "value": 2100 + }, + { + "row": 6, + "col": 6, + "value": 2242 + }, + { + "row": 6, + "col": 7, + "value": 2504 + }, + { + "row": 6, + "col": 8, + "value": 2235 + }, + { + "row": 6, + "col": 9, + "value": 2098 + } + ] + }, + { + "timestamp_ns": 16154559160, + "cursor_x_mm": 74.46666666666667, + "cursor_y_mm": 37.266666666666666, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2053 + }, + { + "row": 0, + "col": 5, + "value": 2056 + }, + { + "row": 0, + "col": 6, + "value": 2060 + }, + { + "row": 0, + "col": 7, + "value": 2062 + }, + { + "row": 0, + "col": 8, + "value": 2060 + }, + { + "row": 0, + "col": 9, + "value": 2056 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2051 + }, + { + "row": 1, + "col": 3, + "value": 2054 + }, + { + "row": 1, + "col": 4, + "value": 2060 + }, + { + "row": 1, + "col": 5, + "value": 2070 + }, + { + "row": 1, + "col": 6, + "value": 2081 + }, + { + "row": 1, + "col": 7, + "value": 2080 + }, + { + "row": 1, + "col": 8, + "value": 2069 + }, + { + "row": 1, + "col": 9, + "value": 2059 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2049 + }, + { + "row": 2, + "col": 2, + "value": 2051 + }, + { + "row": 2, + "col": 3, + "value": 2054 + }, + { + "row": 2, + "col": 4, + "value": 2062 + }, + { + "row": 2, + "col": 5, + "value": 2082 + }, + { + "row": 2, + "col": 6, + "value": 2128 + }, + { + "row": 2, + "col": 7, + "value": 2167 + }, + { + "row": 2, + "col": 8, + "value": 2121 + }, + { + "row": 2, + "col": 9, + "value": 2078 + }, + { + "row": 3, + "col": 0, + "value": 2049 + }, + { + "row": 3, + "col": 1, + "value": 2050 + }, + { + "row": 3, + "col": 2, + "value": 2053 + }, + { + "row": 3, + "col": 3, + "value": 2060 + }, + { + "row": 3, + "col": 4, + "value": 2081 + }, + { + "row": 3, + "col": 5, + "value": 2171 + }, + { + "row": 3, + "col": 6, + "value": 2598 + }, + { + "row": 3, + "col": 7, + "value": 2531 + }, + { + "row": 3, + "col": 8, + "value": 2153 + }, + { + "row": 3, + "col": 9, + "value": 2078 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2052 + }, + { + "row": 4, + "col": 3, + "value": 2056 + }, + { + "row": 4, + "col": 4, + "value": 2070 + }, + { + "row": 4, + "col": 5, + "value": 2126 + }, + { + "row": 4, + "col": 6, + "value": 2575 + }, + { + "row": 4, + "col": 7, + "value": 4092 + }, + { + "row": 4, + "col": 8, + "value": 2460 + }, + { + "row": 4, + "col": 9, + "value": 2114 + }, + { + "row": 5, + "col": 0, + "value": 2049 + }, + { + "row": 5, + "col": 1, + "value": 2050 + }, + { + "row": 5, + "col": 2, + "value": 2053 + }, + { + "row": 5, + "col": 3, + "value": 2060 + }, + { + "row": 5, + "col": 4, + "value": 2080 + }, + { + "row": 5, + "col": 5, + "value": 2161 + }, + { + "row": 5, + "col": 6, + "value": 2494 + }, + { + "row": 5, + "col": 7, + "value": 2445 + }, + { + "row": 5, + "col": 8, + "value": 2145 + }, + { + "row": 5, + "col": 9, + "value": 2076 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2051 + }, + { + "row": 6, + "col": 3, + "value": 2054 + }, + { + "row": 6, + "col": 4, + "value": 2061 + }, + { + "row": 6, + "col": 5, + "value": 2079 + }, + { + "row": 6, + "col": 6, + "value": 2118 + }, + { + "row": 6, + "col": 7, + "value": 2148 + }, + { + "row": 6, + "col": 8, + "value": 2113 + }, + { + "row": 6, + "col": 9, + "value": 2076 + } + ] + }, + { + "timestamp_ns": 16313035564, + "cursor_x_mm": 73.93333333333334, + "cursor_y_mm": 27.133333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2053 + }, + { + "row": 0, + "col": 4, + "value": 2058 + }, + { + "row": 0, + "col": 5, + "value": 2068 + }, + { + "row": 0, + "col": 6, + "value": 2082 + }, + { + "row": 0, + "col": 7, + "value": 2089 + }, + { + "row": 0, + "col": 8, + "value": 2079 + }, + { + "row": 0, + "col": 9, + "value": 2065 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2050 + }, + { + "row": 1, + "col": 2, + "value": 2053 + }, + { + "row": 1, + "col": 3, + "value": 2058 + }, + { + "row": 1, + "col": 4, + "value": 2073 + }, + { + "row": 1, + "col": 5, + "value": 2112 + }, + { + "row": 1, + "col": 6, + "value": 2189 + }, + { + "row": 1, + "col": 7, + "value": 2173 + }, + { + "row": 1, + "col": 8, + "value": 2100 + }, + { + "row": 1, + "col": 9, + "value": 2068 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2049 + }, + { + "row": 2, + "col": 2, + "value": 2052 + }, + { + "row": 2, + "col": 3, + "value": 2056 + }, + { + "row": 2, + "col": 4, + "value": 2069 + }, + { + "row": 2, + "col": 5, + "value": 2119 + }, + { + "row": 2, + "col": 6, + "value": 2407 + }, + { + "row": 2, + "col": 7, + "value": 3048 + }, + { + "row": 2, + "col": 8, + "value": 2294 + }, + { + "row": 2, + "col": 9, + "value": 2101 + }, + { + "row": 3, + "col": 0, + "value": 2049 + }, + { + "row": 3, + "col": 1, + "value": 2050 + }, + { + "row": 3, + "col": 2, + "value": 2054 + }, + { + "row": 3, + "col": 3, + "value": 2062 + }, + { + "row": 3, + "col": 4, + "value": 2089 + }, + { + "row": 3, + "col": 5, + "value": 2243 + }, + { + "row": 3, + "col": 6, + "value": 3636 + }, + { + "row": 3, + "col": 7, + "value": 3137 + }, + { + "row": 3, + "col": 8, + "value": 2180 + }, + { + "row": 3, + "col": 9, + "value": 2080 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2051 + }, + { + "row": 4, + "col": 3, + "value": 2056 + }, + { + "row": 4, + "col": 4, + "value": 2067 + }, + { + "row": 4, + "col": 5, + "value": 2104 + }, + { + "row": 4, + "col": 6, + "value": 2250 + }, + { + "row": 4, + "col": 7, + "value": 2446 + }, + { + "row": 4, + "col": 8, + "value": 2201 + }, + { + "row": 4, + "col": 9, + "value": 2092 + }, + { + "row": 5, + "col": 0, + "value": 2049 + }, + { + "row": 5, + "col": 1, + "value": 2050 + }, + { + "row": 5, + "col": 2, + "value": 2052 + }, + { + "row": 5, + "col": 3, + "value": 2057 + }, + { + "row": 5, + "col": 4, + "value": 2067 + }, + { + "row": 5, + "col": 5, + "value": 2091 + }, + { + "row": 5, + "col": 6, + "value": 2123 + }, + { + "row": 5, + "col": 7, + "value": 2117 + }, + { + "row": 5, + "col": 8, + "value": 2084 + }, + { + "row": 5, + "col": 9, + "value": 2064 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2052 + }, + { + "row": 6, + "col": 4, + "value": 2056 + }, + { + "row": 6, + "col": 5, + "value": 2062 + }, + { + "row": 6, + "col": 6, + "value": 2070 + }, + { + "row": 6, + "col": 7, + "value": 2074 + }, + { + "row": 6, + "col": 8, + "value": 2069 + }, + { + "row": 6, + "col": 9, + "value": 2061 + } + ] + }, + { + "timestamp_ns": 16455344364, + "cursor_x_mm": 73.26666666666667, + "cursor_y_mm": 17.4, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2051 + }, + { + "row": 0, + "col": 3, + "value": 2055 + }, + { + "row": 0, + "col": 4, + "value": 2065 + }, + { + "row": 0, + "col": 5, + "value": 2095 + }, + { + "row": 0, + "col": 6, + "value": 2181 + }, + { + "row": 0, + "col": 7, + "value": 2254 + }, + { + "row": 0, + "col": 8, + "value": 2147 + }, + { + "row": 0, + "col": 9, + "value": 2083 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2050 + }, + { + "row": 1, + "col": 2, + "value": 2054 + }, + { + "row": 1, + "col": 3, + "value": 2062 + }, + { + "row": 1, + "col": 4, + "value": 2089 + }, + { + "row": 1, + "col": 5, + "value": 2230 + }, + { + "row": 1, + "col": 6, + "value": 3186 + }, + { + "row": 1, + "col": 7, + "value": 2759 + }, + { + "row": 1, + "col": 8, + "value": 2159 + }, + { + "row": 1, + "col": 9, + "value": 2077 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2050 + }, + { + "row": 2, + "col": 2, + "value": 2052 + }, + { + "row": 2, + "col": 3, + "value": 2057 + }, + { + "row": 2, + "col": 4, + "value": 2072 + }, + { + "row": 2, + "col": 5, + "value": 2133 + }, + { + "row": 2, + "col": 6, + "value": 2603 + }, + { + "row": 2, + "col": 7, + "value": 3758 + }, + { + "row": 2, + "col": 8, + "value": 2345 + }, + { + "row": 2, + "col": 9, + "value": 2104 + }, + { + "row": 3, + "col": 0, + "value": 2049 + }, + { + "row": 3, + "col": 1, + "value": 2050 + }, + { + "row": 3, + "col": 2, + "value": 2053 + }, + { + "row": 3, + "col": 3, + "value": 2060 + }, + { + "row": 3, + "col": 4, + "value": 2078 + }, + { + "row": 3, + "col": 5, + "value": 2142 + }, + { + "row": 3, + "col": 6, + "value": 2303 + }, + { + "row": 3, + "col": 7, + "value": 2252 + }, + { + "row": 3, + "col": 8, + "value": 2114 + }, + { + "row": 3, + "col": 9, + "value": 2071 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2051 + }, + { + "row": 4, + "col": 3, + "value": 2054 + }, + { + "row": 4, + "col": 4, + "value": 2060 + }, + { + "row": 4, + "col": 5, + "value": 2074 + }, + { + "row": 4, + "col": 6, + "value": 2098 + }, + { + "row": 4, + "col": 7, + "value": 2110 + }, + { + "row": 4, + "col": 8, + "value": 2090 + }, + { + "row": 4, + "col": 9, + "value": 2069 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2049 + }, + { + "row": 5, + "col": 2, + "value": 2051 + }, + { + "row": 5, + "col": 3, + "value": 2053 + }, + { + "row": 5, + "col": 4, + "value": 2058 + }, + { + "row": 5, + "col": 5, + "value": 2064 + }, + { + "row": 5, + "col": 6, + "value": 2069 + }, + { + "row": 5, + "col": 7, + "value": 2068 + }, + { + "row": 5, + "col": 8, + "value": 2062 + }, + { + "row": 5, + "col": 9, + "value": 2056 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2049 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2054 + }, + { + "row": 6, + "col": 6, + "value": 2057 + }, + { + "row": 6, + "col": 7, + "value": 2057 + }, + { + "row": 6, + "col": 8, + "value": 2056 + }, + { + "row": 6, + "col": 9, + "value": 2054 + } + ] + }, + { + "timestamp_ns": 16614699422, + "cursor_x_mm": 72.33333333333333, + "cursor_y_mm": 10.6, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2052 + }, + { + "row": 0, + "col": 3, + "value": 2058 + }, + { + "row": 0, + "col": 4, + "value": 2073 + }, + { + "row": 0, + "col": 5, + "value": 2137 + }, + { + "row": 0, + "col": 6, + "value": 2524 + }, + { + "row": 0, + "col": 7, + "value": 2957 + }, + { + "row": 0, + "col": 8, + "value": 2234 + }, + { + "row": 0, + "col": 9, + "value": 2091 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2051 + }, + { + "row": 1, + "col": 2, + "value": 2054 + }, + { + "row": 1, + "col": 3, + "value": 2064 + }, + { + "row": 1, + "col": 4, + "value": 2099 + }, + { + "row": 1, + "col": 5, + "value": 2317 + }, + { + "row": 1, + "col": 6, + "value": 3912 + }, + { + "row": 1, + "col": 7, + "value": 2811 + }, + { + "row": 1, + "col": 8, + "value": 2149 + }, + { + "row": 1, + "col": 9, + "value": 2075 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2050 + }, + { + "row": 2, + "col": 2, + "value": 2052 + }, + { + "row": 2, + "col": 3, + "value": 2057 + }, + { + "row": 2, + "col": 4, + "value": 2070 + }, + { + "row": 2, + "col": 5, + "value": 2116 + }, + { + "row": 2, + "col": 6, + "value": 2293 + }, + { + "row": 2, + "col": 7, + "value": 2421 + }, + { + "row": 2, + "col": 8, + "value": 2172 + }, + { + "row": 2, + "col": 9, + "value": 2084 + }, + { + "row": 3, + "col": 0, + "value": 2049 + }, + { + "row": 3, + "col": 1, + "value": 2050 + }, + { + "row": 3, + "col": 2, + "value": 2053 + }, + { + "row": 3, + "col": 3, + "value": 2058 + }, + { + "row": 3, + "col": 4, + "value": 2070 + }, + { + "row": 3, + "col": 5, + "value": 2096 + }, + { + "row": 3, + "col": 6, + "value": 2126 + }, + { + "row": 3, + "col": 7, + "value": 2112 + }, + { + "row": 3, + "col": 8, + "value": 2080 + }, + { + "row": 3, + "col": 9, + "value": 2062 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2050 + }, + { + "row": 4, + "col": 3, + "value": 2052 + }, + { + "row": 4, + "col": 4, + "value": 2057 + }, + { + "row": 4, + "col": 5, + "value": 2063 + }, + { + "row": 4, + "col": 6, + "value": 2071 + }, + { + "row": 4, + "col": 7, + "value": 2073 + }, + { + "row": 4, + "col": 8, + "value": 2067 + }, + { + "row": 4, + "col": 9, + "value": 2059 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2049 + }, + { + "row": 5, + "col": 2, + "value": 2050 + }, + { + "row": 5, + "col": 3, + "value": 2052 + }, + { + "row": 5, + "col": 4, + "value": 2054 + }, + { + "row": 5, + "col": 5, + "value": 2057 + }, + { + "row": 5, + "col": 6, + "value": 2059 + }, + { + "row": 5, + "col": 7, + "value": 2058 + }, + { + "row": 5, + "col": 8, + "value": 2055 + }, + { + "row": 5, + "col": 9, + "value": 2053 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2049 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2051 + }, + { + "row": 6, + "col": 5, + "value": 2052 + }, + { + "row": 6, + "col": 6, + "value": 2053 + }, + { + "row": 6, + "col": 7, + "value": 2053 + }, + { + "row": 6, + "col": 8, + "value": 2052 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 16772950071, + "cursor_x_mm": 73.93333333333334, + "cursor_y_mm": 4.866666666666666, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2050 + }, + { + "row": 0, + "col": 2, + "value": 2052 + }, + { + "row": 0, + "col": 3, + "value": 2057 + }, + { + "row": 0, + "col": 4, + "value": 2072 + }, + { + "row": 0, + "col": 5, + "value": 2138 + }, + { + "row": 0, + "col": 6, + "value": 2707 + }, + { + "row": 0, + "col": 7, + "value": 4072 + }, + { + "row": 0, + "col": 8, + "value": 2383 + }, + { + "row": 0, + "col": 9, + "value": 2106 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2050 + }, + { + "row": 1, + "col": 2, + "value": 2053 + }, + { + "row": 1, + "col": 3, + "value": 2061 + }, + { + "row": 1, + "col": 4, + "value": 2085 + }, + { + "row": 1, + "col": 5, + "value": 2186 + }, + { + "row": 1, + "col": 6, + "value": 2624 + }, + { + "row": 1, + "col": 7, + "value": 2455 + }, + { + "row": 1, + "col": 8, + "value": 2138 + }, + { + "row": 1, + "col": 9, + "value": 2074 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2049 + }, + { + "row": 2, + "col": 2, + "value": 2051 + }, + { + "row": 2, + "col": 3, + "value": 2055 + }, + { + "row": 2, + "col": 4, + "value": 2063 + }, + { + "row": 2, + "col": 5, + "value": 2084 + }, + { + "row": 2, + "col": 6, + "value": 2130 + }, + { + "row": 2, + "col": 7, + "value": 2161 + }, + { + "row": 2, + "col": 8, + "value": 2114 + }, + { + "row": 2, + "col": 9, + "value": 2076 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2051 + }, + { + "row": 3, + "col": 3, + "value": 2055 + }, + { + "row": 3, + "col": 4, + "value": 2061 + }, + { + "row": 3, + "col": 5, + "value": 2071 + }, + { + "row": 3, + "col": 6, + "value": 2081 + }, + { + "row": 3, + "col": 7, + "value": 2079 + }, + { + "row": 3, + "col": 8, + "value": 2068 + }, + { + "row": 3, + "col": 9, + "value": 2059 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2051 + }, + { + "row": 4, + "col": 4, + "value": 2053 + }, + { + "row": 4, + "col": 5, + "value": 2057 + }, + { + "row": 4, + "col": 6, + "value": 2060 + }, + { + "row": 4, + "col": 7, + "value": 2061 + }, + { + "row": 4, + "col": 8, + "value": 2059 + }, + { + "row": 4, + "col": 9, + "value": 2056 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2049 + }, + { + "row": 5, + "col": 3, + "value": 2050 + }, + { + "row": 5, + "col": 4, + "value": 2052 + }, + { + "row": 5, + "col": 5, + "value": 2053 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2054 + }, + { + "row": 5, + "col": 8, + "value": 2053 + }, + { + "row": 5, + "col": 9, + "value": 2051 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2051 + }, + { + "row": 6, + "col": 7, + "value": 2051 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2050 + } + ] + }, + { + "timestamp_ns": 16928910050, + "cursor_x_mm": 76.86666666666666, + "cursor_y_mm": 4.466666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2051 + }, + { + "row": 0, + "col": 3, + "value": 2055 + }, + { + "row": 0, + "col": 4, + "value": 2067 + }, + { + "row": 0, + "col": 5, + "value": 2109 + }, + { + "row": 0, + "col": 6, + "value": 2413 + }, + { + "row": 0, + "col": 7, + "value": 4083 + }, + { + "row": 0, + "col": 8, + "value": 2646 + }, + { + "row": 0, + "col": 9, + "value": 2132 + }, + { + "row": 1, + "col": 0, + "value": 2049 + }, + { + "row": 1, + "col": 1, + "value": 2050 + }, + { + "row": 1, + "col": 2, + "value": 2052 + }, + { + "row": 1, + "col": 3, + "value": 2058 + }, + { + "row": 1, + "col": 4, + "value": 2075 + }, + { + "row": 1, + "col": 5, + "value": 2138 + }, + { + "row": 1, + "col": 6, + "value": 2418 + }, + { + "row": 1, + "col": 7, + "value": 2515 + }, + { + "row": 1, + "col": 8, + "value": 2169 + }, + { + "row": 1, + "col": 9, + "value": 2082 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2049 + }, + { + "row": 2, + "col": 2, + "value": 2050 + }, + { + "row": 2, + "col": 3, + "value": 2053 + }, + { + "row": 2, + "col": 4, + "value": 2060 + }, + { + "row": 2, + "col": 5, + "value": 2075 + }, + { + "row": 2, + "col": 6, + "value": 2110 + }, + { + "row": 2, + "col": 7, + "value": 2147 + }, + { + "row": 2, + "col": 8, + "value": 2120 + }, + { + "row": 2, + "col": 9, + "value": 2080 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2051 + }, + { + "row": 3, + "col": 3, + "value": 2053 + }, + { + "row": 3, + "col": 4, + "value": 2058 + }, + { + "row": 3, + "col": 5, + "value": 2067 + }, + { + "row": 3, + "col": 6, + "value": 2076 + }, + { + "row": 3, + "col": 7, + "value": 2078 + }, + { + "row": 3, + "col": 8, + "value": 2069 + }, + { + "row": 3, + "col": 9, + "value": 2060 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2050 + }, + { + "row": 4, + "col": 4, + "value": 2052 + }, + { + "row": 4, + "col": 5, + "value": 2055 + }, + { + "row": 4, + "col": 6, + "value": 2059 + }, + { + "row": 4, + "col": 7, + "value": 2060 + }, + { + "row": 4, + "col": 8, + "value": 2059 + }, + { + "row": 4, + "col": 9, + "value": 2056 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2049 + }, + { + "row": 5, + "col": 3, + "value": 2050 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2052 + }, + { + "row": 5, + "col": 6, + "value": 2053 + }, + { + "row": 5, + "col": 7, + "value": 2054 + }, + { + "row": 5, + "col": 8, + "value": 2053 + }, + { + "row": 5, + "col": 9, + "value": 2051 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2051 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2050 + } + ] + }, + { + "timestamp_ns": 17087387039, + "cursor_x_mm": 79.26666666666667, + "cursor_y_mm": 9.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2054 + }, + { + "row": 0, + "col": 4, + "value": 2062 + }, + { + "row": 0, + "col": 5, + "value": 2090 + }, + { + "row": 0, + "col": 6, + "value": 2246 + }, + { + "row": 0, + "col": 7, + "value": 3591 + }, + { + "row": 0, + "col": 8, + "value": 3038 + }, + { + "row": 0, + "col": 9, + "value": 2174 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2052 + }, + { + "row": 1, + "col": 3, + "value": 2057 + }, + { + "row": 1, + "col": 4, + "value": 2070 + }, + { + "row": 1, + "col": 5, + "value": 2123 + }, + { + "row": 1, + "col": 6, + "value": 2455 + }, + { + "row": 1, + "col": 7, + "value": 3200 + }, + { + "row": 1, + "col": 8, + "value": 2302 + }, + { + "row": 1, + "col": 9, + "value": 2101 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2049 + }, + { + "row": 2, + "col": 2, + "value": 2050 + }, + { + "row": 2, + "col": 3, + "value": 2053 + }, + { + "row": 2, + "col": 4, + "value": 2059 + }, + { + "row": 2, + "col": 5, + "value": 2074 + }, + { + "row": 2, + "col": 6, + "value": 2119 + }, + { + "row": 2, + "col": 7, + "value": 2208 + }, + { + "row": 2, + "col": 8, + "value": 2186 + }, + { + "row": 2, + "col": 9, + "value": 2103 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2050 + }, + { + "row": 3, + "col": 3, + "value": 2053 + }, + { + "row": 3, + "col": 4, + "value": 2058 + }, + { + "row": 3, + "col": 5, + "value": 2069 + }, + { + "row": 3, + "col": 6, + "value": 2085 + }, + { + "row": 3, + "col": 7, + "value": 2093 + }, + { + "row": 3, + "col": 8, + "value": 2081 + }, + { + "row": 3, + "col": 9, + "value": 2066 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2050 + }, + { + "row": 4, + "col": 4, + "value": 2053 + }, + { + "row": 4, + "col": 5, + "value": 2056 + }, + { + "row": 4, + "col": 6, + "value": 2061 + }, + { + "row": 4, + "col": 7, + "value": 2065 + }, + { + "row": 4, + "col": 8, + "value": 2064 + }, + { + "row": 4, + "col": 9, + "value": 2060 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2049 + }, + { + "row": 5, + "col": 3, + "value": 2050 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2053 + }, + { + "row": 5, + "col": 6, + "value": 2055 + }, + { + "row": 5, + "col": 7, + "value": 2055 + }, + { + "row": 5, + "col": 8, + "value": 2055 + }, + { + "row": 5, + "col": 9, + "value": 2053 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2051 + }, + { + "row": 6, + "col": 7, + "value": 2052 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 17228906951, + "cursor_x_mm": 79.8, + "cursor_y_mm": 17.53333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2049 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2053 + }, + { + "row": 0, + "col": 4, + "value": 2059 + }, + { + "row": 0, + "col": 5, + "value": 2077 + }, + { + "row": 0, + "col": 6, + "value": 2142 + }, + { + "row": 0, + "col": 7, + "value": 2366 + }, + { + "row": 0, + "col": 8, + "value": 2355 + }, + { + "row": 0, + "col": 9, + "value": 2137 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2051 + }, + { + "row": 1, + "col": 3, + "value": 2056 + }, + { + "row": 1, + "col": 4, + "value": 2069 + }, + { + "row": 1, + "col": 5, + "value": 2121 + }, + { + "row": 1, + "col": 6, + "value": 2514 + }, + { + "row": 1, + "col": 7, + "value": 4039 + }, + { + "row": 1, + "col": 8, + "value": 2474 + }, + { + "row": 1, + "col": 9, + "value": 2117 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2049 + }, + { + "row": 2, + "col": 2, + "value": 2050 + }, + { + "row": 2, + "col": 3, + "value": 2053 + }, + { + "row": 2, + "col": 4, + "value": 2060 + }, + { + "row": 2, + "col": 5, + "value": 2082 + }, + { + "row": 2, + "col": 6, + "value": 2179 + }, + { + "row": 2, + "col": 7, + "value": 2762 + }, + { + "row": 2, + "col": 8, + "value": 2722 + }, + { + "row": 2, + "col": 9, + "value": 2171 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2051 + }, + { + "row": 3, + "col": 3, + "value": 2054 + }, + { + "row": 3, + "col": 4, + "value": 2063 + }, + { + "row": 3, + "col": 5, + "value": 2084 + }, + { + "row": 3, + "col": 6, + "value": 2143 + }, + { + "row": 3, + "col": 7, + "value": 2203 + }, + { + "row": 3, + "col": 8, + "value": 2139 + }, + { + "row": 3, + "col": 9, + "value": 2083 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2051 + }, + { + "row": 4, + "col": 4, + "value": 2055 + }, + { + "row": 4, + "col": 5, + "value": 2061 + }, + { + "row": 4, + "col": 6, + "value": 2073 + }, + { + "row": 4, + "col": 7, + "value": 2087 + }, + { + "row": 4, + "col": 8, + "value": 2087 + }, + { + "row": 4, + "col": 9, + "value": 2073 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2049 + }, + { + "row": 5, + "col": 3, + "value": 2051 + }, + { + "row": 5, + "col": 4, + "value": 2054 + }, + { + "row": 5, + "col": 5, + "value": 2057 + }, + { + "row": 5, + "col": 6, + "value": 2062 + }, + { + "row": 5, + "col": 7, + "value": 2064 + }, + { + "row": 5, + "col": 8, + "value": 2062 + }, + { + "row": 5, + "col": 9, + "value": 2057 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2052 + }, + { + "row": 6, + "col": 6, + "value": 2054 + }, + { + "row": 6, + "col": 7, + "value": 2055 + }, + { + "row": 6, + "col": 8, + "value": 2055 + }, + { + "row": 6, + "col": 9, + "value": 2054 + } + ] + }, + { + "timestamp_ns": 17389317290, + "cursor_x_mm": 80.33333333333333, + "cursor_y_mm": 26.466666666666665, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2050 + }, + { + "row": 0, + "col": 3, + "value": 2052 + }, + { + "row": 0, + "col": 4, + "value": 2056 + }, + { + "row": 0, + "col": 5, + "value": 2065 + }, + { + "row": 0, + "col": 6, + "value": 2085 + }, + { + "row": 0, + "col": 7, + "value": 2114 + }, + { + "row": 0, + "col": 8, + "value": 2113 + }, + { + "row": 0, + "col": 9, + "value": 2084 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2051 + }, + { + "row": 1, + "col": 3, + "value": 2055 + }, + { + "row": 1, + "col": 4, + "value": 2065 + }, + { + "row": 1, + "col": 5, + "value": 2096 + }, + { + "row": 1, + "col": 6, + "value": 2210 + }, + { + "row": 1, + "col": 7, + "value": 2392 + }, + { + "row": 1, + "col": 8, + "value": 2207 + }, + { + "row": 1, + "col": 9, + "value": 2095 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2049 + }, + { + "row": 2, + "col": 2, + "value": 2050 + }, + { + "row": 2, + "col": 3, + "value": 2053 + }, + { + "row": 2, + "col": 4, + "value": 2061 + }, + { + "row": 2, + "col": 5, + "value": 2084 + }, + { + "row": 2, + "col": 6, + "value": 2207 + }, + { + "row": 2, + "col": 7, + "value": 3329 + }, + { + "row": 2, + "col": 8, + "value": 3299 + }, + { + "row": 2, + "col": 9, + "value": 2203 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2051 + }, + { + "row": 3, + "col": 3, + "value": 2056 + }, + { + "row": 3, + "col": 4, + "value": 2068 + }, + { + "row": 3, + "col": 5, + "value": 2112 + }, + { + "row": 3, + "col": 6, + "value": 2374 + }, + { + "row": 3, + "col": 7, + "value": 3236 + }, + { + "row": 3, + "col": 8, + "value": 2366 + }, + { + "row": 3, + "col": 9, + "value": 2111 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2050 + }, + { + "row": 4, + "col": 3, + "value": 2052 + }, + { + "row": 4, + "col": 4, + "value": 2058 + }, + { + "row": 4, + "col": 5, + "value": 2071 + }, + { + "row": 4, + "col": 6, + "value": 2111 + }, + { + "row": 4, + "col": 7, + "value": 2199 + }, + { + "row": 4, + "col": 8, + "value": 2198 + }, + { + "row": 4, + "col": 9, + "value": 2110 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2049 + }, + { + "row": 5, + "col": 2, + "value": 2050 + }, + { + "row": 5, + "col": 3, + "value": 2053 + }, + { + "row": 5, + "col": 4, + "value": 2058 + }, + { + "row": 5, + "col": 5, + "value": 2067 + }, + { + "row": 5, + "col": 6, + "value": 2083 + }, + { + "row": 5, + "col": 7, + "value": 2093 + }, + { + "row": 5, + "col": 8, + "value": 2083 + }, + { + "row": 5, + "col": 9, + "value": 2067 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2049 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2056 + }, + { + "row": 6, + "col": 6, + "value": 2060 + }, + { + "row": 6, + "col": 7, + "value": 2064 + }, + { + "row": 6, + "col": 8, + "value": 2064 + }, + { + "row": 6, + "col": 9, + "value": 2060 + } + ] + }, + { + "timestamp_ns": 17533501352, + "cursor_x_mm": 80.46666666666667, + "cursor_y_mm": 35.93333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2053 + }, + { + "row": 0, + "col": 5, + "value": 2057 + }, + { + "row": 0, + "col": 6, + "value": 2064 + }, + { + "row": 0, + "col": 7, + "value": 2071 + }, + { + "row": 0, + "col": 8, + "value": 2071 + }, + { + "row": 0, + "col": 9, + "value": 2065 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2050 + }, + { + "row": 1, + "col": 3, + "value": 2053 + }, + { + "row": 1, + "col": 4, + "value": 2059 + }, + { + "row": 1, + "col": 5, + "value": 2072 + }, + { + "row": 1, + "col": 6, + "value": 2097 + }, + { + "row": 1, + "col": 7, + "value": 2119 + }, + { + "row": 1, + "col": 8, + "value": 2102 + }, + { + "row": 1, + "col": 9, + "value": 2074 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2049 + }, + { + "row": 2, + "col": 2, + "value": 2050 + }, + { + "row": 2, + "col": 3, + "value": 2052 + }, + { + "row": 2, + "col": 4, + "value": 2058 + }, + { + "row": 2, + "col": 5, + "value": 2073 + }, + { + "row": 2, + "col": 6, + "value": 2126 + }, + { + "row": 2, + "col": 7, + "value": 2305 + }, + { + "row": 2, + "col": 8, + "value": 2339 + }, + { + "row": 2, + "col": 9, + "value": 2142 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2051 + }, + { + "row": 3, + "col": 3, + "value": 2055 + }, + { + "row": 3, + "col": 4, + "value": 2067 + }, + { + "row": 3, + "col": 5, + "value": 2111 + }, + { + "row": 3, + "col": 6, + "value": 2414 + }, + { + "row": 3, + "col": 7, + "value": 3955 + }, + { + "row": 3, + "col": 8, + "value": 2555 + }, + { + "row": 3, + "col": 9, + "value": 2126 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2050 + }, + { + "row": 4, + "col": 3, + "value": 2053 + }, + { + "row": 4, + "col": 4, + "value": 2059 + }, + { + "row": 4, + "col": 5, + "value": 2079 + }, + { + "row": 4, + "col": 6, + "value": 2166 + }, + { + "row": 4, + "col": 7, + "value": 2749 + }, + { + "row": 4, + "col": 8, + "value": 2923 + }, + { + "row": 4, + "col": 9, + "value": 2198 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2049 + }, + { + "row": 5, + "col": 2, + "value": 2051 + }, + { + "row": 5, + "col": 3, + "value": 2054 + }, + { + "row": 5, + "col": 4, + "value": 2062 + }, + { + "row": 5, + "col": 5, + "value": 2083 + }, + { + "row": 5, + "col": 6, + "value": 2143 + }, + { + "row": 5, + "col": 7, + "value": 2223 + }, + { + "row": 5, + "col": 8, + "value": 2157 + }, + { + "row": 5, + "col": 9, + "value": 2088 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2049 + }, + { + "row": 6, + "col": 3, + "value": 2051 + }, + { + "row": 6, + "col": 4, + "value": 2054 + }, + { + "row": 6, + "col": 5, + "value": 2061 + }, + { + "row": 6, + "col": 6, + "value": 2073 + }, + { + "row": 6, + "col": 7, + "value": 2090 + }, + { + "row": 6, + "col": 8, + "value": 2091 + }, + { + "row": 6, + "col": 9, + "value": 2076 + } + ] + }, + { + "timestamp_ns": 17690884672, + "cursor_x_mm": 80.46666666666667, + "cursor_y_mm": 42.46666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2053 + }, + { + "row": 0, + "col": 6, + "value": 2056 + }, + { + "row": 0, + "col": 7, + "value": 2058 + }, + { + "row": 0, + "col": 8, + "value": 2058 + }, + { + "row": 0, + "col": 9, + "value": 2056 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2050 + }, + { + "row": 1, + "col": 3, + "value": 2052 + }, + { + "row": 1, + "col": 4, + "value": 2055 + }, + { + "row": 1, + "col": 5, + "value": 2061 + }, + { + "row": 1, + "col": 6, + "value": 2069 + }, + { + "row": 1, + "col": 7, + "value": 2074 + }, + { + "row": 1, + "col": 8, + "value": 2070 + }, + { + "row": 1, + "col": 9, + "value": 2062 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2052 + }, + { + "row": 2, + "col": 4, + "value": 2056 + }, + { + "row": 2, + "col": 5, + "value": 2065 + }, + { + "row": 2, + "col": 6, + "value": 2086 + }, + { + "row": 2, + "col": 7, + "value": 2119 + }, + { + "row": 2, + "col": 8, + "value": 2121 + }, + { + "row": 2, + "col": 9, + "value": 2088 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2051 + }, + { + "row": 3, + "col": 3, + "value": 2055 + }, + { + "row": 3, + "col": 4, + "value": 2064 + }, + { + "row": 3, + "col": 5, + "value": 2095 + }, + { + "row": 3, + "col": 6, + "value": 2213 + }, + { + "row": 3, + "col": 7, + "value": 2446 + }, + { + "row": 3, + "col": 8, + "value": 2234 + }, + { + "row": 3, + "col": 9, + "value": 2100 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2050 + }, + { + "row": 4, + "col": 3, + "value": 2053 + }, + { + "row": 4, + "col": 4, + "value": 2060 + }, + { + "row": 4, + "col": 5, + "value": 2082 + }, + { + "row": 4, + "col": 6, + "value": 2195 + }, + { + "row": 4, + "col": 7, + "value": 3274 + }, + { + "row": 4, + "col": 8, + "value": 3496 + }, + { + "row": 4, + "col": 9, + "value": 2222 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2049 + }, + { + "row": 5, + "col": 2, + "value": 2051 + }, + { + "row": 5, + "col": 3, + "value": 2055 + }, + { + "row": 5, + "col": 4, + "value": 2066 + }, + { + "row": 5, + "col": 5, + "value": 2106 + }, + { + "row": 5, + "col": 6, + "value": 2322 + }, + { + "row": 5, + "col": 7, + "value": 3074 + }, + { + "row": 5, + "col": 8, + "value": 2372 + }, + { + "row": 5, + "col": 9, + "value": 2113 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2052 + }, + { + "row": 6, + "col": 4, + "value": 2057 + }, + { + "row": 6, + "col": 5, + "value": 2069 + }, + { + "row": 6, + "col": 6, + "value": 2104 + }, + { + "row": 6, + "col": 7, + "value": 2179 + }, + { + "row": 6, + "col": 8, + "value": 2186 + }, + { + "row": 6, + "col": 9, + "value": 2109 + } + ] + }, + { + "timestamp_ns": 17849863666, + "cursor_x_mm": 79.93333333333334, + "cursor_y_mm": 49.13333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2053 + }, + { + "row": 0, + "col": 7, + "value": 2054 + }, + { + "row": 0, + "col": 8, + "value": 2054 + }, + { + "row": 0, + "col": 9, + "value": 2053 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2051 + }, + { + "row": 1, + "col": 4, + "value": 2053 + }, + { + "row": 1, + "col": 5, + "value": 2056 + }, + { + "row": 1, + "col": 6, + "value": 2060 + }, + { + "row": 1, + "col": 7, + "value": 2061 + }, + { + "row": 1, + "col": 8, + "value": 2060 + }, + { + "row": 1, + "col": 9, + "value": 2056 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2051 + }, + { + "row": 2, + "col": 4, + "value": 2054 + }, + { + "row": 2, + "col": 5, + "value": 2060 + }, + { + "row": 2, + "col": 6, + "value": 2069 + }, + { + "row": 2, + "col": 7, + "value": 2080 + }, + { + "row": 2, + "col": 8, + "value": 2080 + }, + { + "row": 2, + "col": 9, + "value": 2069 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2051 + }, + { + "row": 3, + "col": 3, + "value": 2054 + }, + { + "row": 3, + "col": 4, + "value": 2061 + }, + { + "row": 3, + "col": 5, + "value": 2079 + }, + { + "row": 3, + "col": 6, + "value": 2122 + }, + { + "row": 3, + "col": 7, + "value": 2161 + }, + { + "row": 3, + "col": 8, + "value": 2121 + }, + { + "row": 3, + "col": 9, + "value": 2079 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2050 + }, + { + "row": 4, + "col": 3, + "value": 2053 + }, + { + "row": 4, + "col": 4, + "value": 2059 + }, + { + "row": 4, + "col": 5, + "value": 2079 + }, + { + "row": 4, + "col": 6, + "value": 2160 + }, + { + "row": 4, + "col": 7, + "value": 2541 + }, + { + "row": 4, + "col": 8, + "value": 2533 + }, + { + "row": 4, + "col": 9, + "value": 2158 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2049 + }, + { + "row": 5, + "col": 2, + "value": 2051 + }, + { + "row": 5, + "col": 3, + "value": 2056 + }, + { + "row": 5, + "col": 4, + "value": 2069 + }, + { + "row": 5, + "col": 5, + "value": 2120 + }, + { + "row": 5, + "col": 6, + "value": 2522 + }, + { + "row": 5, + "col": 7, + "value": 4094 + }, + { + "row": 5, + "col": 8, + "value": 2507 + }, + { + "row": 5, + "col": 9, + "value": 2119 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2053 + }, + { + "row": 6, + "col": 4, + "value": 2059 + }, + { + "row": 6, + "col": 5, + "value": 2079 + }, + { + "row": 6, + "col": 6, + "value": 2156 + }, + { + "row": 6, + "col": 7, + "value": 2496 + }, + { + "row": 6, + "col": 8, + "value": 2490 + }, + { + "row": 6, + "col": 9, + "value": 2154 + } + ] + }, + { + "timestamp_ns": 17994538060, + "cursor_x_mm": 79.93333333333334, + "cursor_y_mm": 54.6, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2052 + }, + { + "row": 0, + "col": 8, + "value": 2052 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2050 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2053 + }, + { + "row": 1, + "col": 6, + "value": 2055 + }, + { + "row": 1, + "col": 7, + "value": 2056 + }, + { + "row": 1, + "col": 8, + "value": 2055 + }, + { + "row": 1, + "col": 9, + "value": 2053 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2050 + }, + { + "row": 2, + "col": 4, + "value": 2052 + }, + { + "row": 2, + "col": 5, + "value": 2056 + }, + { + "row": 2, + "col": 6, + "value": 2061 + }, + { + "row": 2, + "col": 7, + "value": 2065 + }, + { + "row": 2, + "col": 8, + "value": 2065 + }, + { + "row": 2, + "col": 9, + "value": 2061 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2050 + }, + { + "row": 3, + "col": 3, + "value": 2053 + }, + { + "row": 3, + "col": 4, + "value": 2058 + }, + { + "row": 3, + "col": 5, + "value": 2068 + }, + { + "row": 3, + "col": 6, + "value": 2086 + }, + { + "row": 3, + "col": 7, + "value": 2097 + }, + { + "row": 3, + "col": 8, + "value": 2085 + }, + { + "row": 3, + "col": 9, + "value": 2068 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2049 + }, + { + "row": 4, + "col": 2, + "value": 2050 + }, + { + "row": 4, + "col": 3, + "value": 2052 + }, + { + "row": 4, + "col": 4, + "value": 2058 + }, + { + "row": 4, + "col": 5, + "value": 2072 + }, + { + "row": 4, + "col": 6, + "value": 2115 + }, + { + "row": 4, + "col": 7, + "value": 2216 + }, + { + "row": 4, + "col": 8, + "value": 2214 + }, + { + "row": 4, + "col": 9, + "value": 2114 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2049 + }, + { + "row": 5, + "col": 2, + "value": 2051 + }, + { + "row": 5, + "col": 3, + "value": 2056 + }, + { + "row": 5, + "col": 4, + "value": 2068 + }, + { + "row": 5, + "col": 5, + "value": 2113 + }, + { + "row": 5, + "col": 6, + "value": 2396 + }, + { + "row": 5, + "col": 7, + "value": 3393 + }, + { + "row": 5, + "col": 8, + "value": 2387 + }, + { + "row": 5, + "col": 9, + "value": 2112 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2049 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2053 + }, + { + "row": 6, + "col": 4, + "value": 2060 + }, + { + "row": 6, + "col": 5, + "value": 2084 + }, + { + "row": 6, + "col": 6, + "value": 2203 + }, + { + "row": 6, + "col": 7, + "value": 3248 + }, + { + "row": 6, + "col": 8, + "value": 3220 + }, + { + "row": 6, + "col": 9, + "value": 2200 + } + ] + }, + { + "timestamp_ns": 18152365922, + "cursor_x_mm": 84.2, + "cursor_y_mm": 58.333333333333336, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2051 + }, + { + "row": 0, + "col": 9, + "value": 2050 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2050 + }, + { + "row": 1, + "col": 5, + "value": 2052 + }, + { + "row": 1, + "col": 6, + "value": 2053 + }, + { + "row": 1, + "col": 7, + "value": 2054 + }, + { + "row": 1, + "col": 8, + "value": 2053 + }, + { + "row": 1, + "col": 9, + "value": 2052 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2049 + }, + { + "row": 2, + "col": 4, + "value": 2051 + }, + { + "row": 2, + "col": 5, + "value": 2053 + }, + { + "row": 2, + "col": 6, + "value": 2056 + }, + { + "row": 2, + "col": 7, + "value": 2059 + }, + { + "row": 2, + "col": 8, + "value": 2060 + }, + { + "row": 2, + "col": 9, + "value": 2058 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2051 + }, + { + "row": 3, + "col": 4, + "value": 2055 + }, + { + "row": 3, + "col": 5, + "value": 2061 + }, + { + "row": 3, + "col": 6, + "value": 2070 + }, + { + "row": 3, + "col": 7, + "value": 2078 + }, + { + "row": 3, + "col": 8, + "value": 2075 + }, + { + "row": 3, + "col": 9, + "value": 2065 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2051 + }, + { + "row": 4, + "col": 4, + "value": 2055 + }, + { + "row": 4, + "col": 5, + "value": 2063 + }, + { + "row": 4, + "col": 6, + "value": 2084 + }, + { + "row": 4, + "col": 7, + "value": 2125 + }, + { + "row": 4, + "col": 8, + "value": 2145 + }, + { + "row": 4, + "col": 9, + "value": 2104 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2049 + }, + { + "row": 5, + "col": 2, + "value": 2050 + }, + { + "row": 5, + "col": 3, + "value": 2054 + }, + { + "row": 5, + "col": 4, + "value": 2062 + }, + { + "row": 5, + "col": 5, + "value": 2087 + }, + { + "row": 5, + "col": 6, + "value": 2191 + }, + { + "row": 5, + "col": 7, + "value": 2557 + }, + { + "row": 5, + "col": 8, + "value": 2363 + }, + { + "row": 5, + "col": 9, + "value": 2124 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2050 + }, + { + "row": 6, + "col": 3, + "value": 2052 + }, + { + "row": 6, + "col": 4, + "value": 2058 + }, + { + "row": 6, + "col": 5, + "value": 2075 + }, + { + "row": 6, + "col": 6, + "value": 2150 + }, + { + "row": 6, + "col": 7, + "value": 2842 + }, + { + "row": 6, + "col": 8, + "value": 4010 + }, + { + "row": 6, + "col": 9, + "value": 2329 + } + ] + }, + { + "timestamp_ns": 18313396058, + "cursor_x_mm": 87.13333333333334, + "cursor_y_mm": 57.53333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2048 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2050 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2050 + }, + { + "row": 1, + "col": 5, + "value": 2051 + }, + { + "row": 1, + "col": 6, + "value": 2052 + }, + { + "row": 1, + "col": 7, + "value": 2053 + }, + { + "row": 1, + "col": 8, + "value": 2053 + }, + { + "row": 1, + "col": 9, + "value": 2052 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2049 + }, + { + "row": 2, + "col": 4, + "value": 2050 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2054 + }, + { + "row": 2, + "col": 7, + "value": 2057 + }, + { + "row": 2, + "col": 8, + "value": 2059 + }, + { + "row": 2, + "col": 9, + "value": 2058 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2050 + }, + { + "row": 3, + "col": 4, + "value": 2053 + }, + { + "row": 3, + "col": 5, + "value": 2057 + }, + { + "row": 3, + "col": 6, + "value": 2064 + }, + { + "row": 3, + "col": 7, + "value": 2072 + }, + { + "row": 3, + "col": 8, + "value": 2074 + }, + { + "row": 3, + "col": 9, + "value": 2067 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2050 + }, + { + "row": 4, + "col": 4, + "value": 2053 + }, + { + "row": 4, + "col": 5, + "value": 2058 + }, + { + "row": 4, + "col": 6, + "value": 2071 + }, + { + "row": 4, + "col": 7, + "value": 2099 + }, + { + "row": 4, + "col": 8, + "value": 2129 + }, + { + "row": 4, + "col": 9, + "value": 2112 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2050 + }, + { + "row": 5, + "col": 3, + "value": 2052 + }, + { + "row": 5, + "col": 4, + "value": 2057 + }, + { + "row": 5, + "col": 5, + "value": 2072 + }, + { + "row": 5, + "col": 6, + "value": 2123 + }, + { + "row": 5, + "col": 7, + "value": 2321 + }, + { + "row": 5, + "col": 8, + "value": 2425 + }, + { + "row": 5, + "col": 9, + "value": 2165 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2049 + }, + { + "row": 6, + "col": 3, + "value": 2051 + }, + { + "row": 6, + "col": 4, + "value": 2055 + }, + { + "row": 6, + "col": 5, + "value": 2065 + }, + { + "row": 6, + "col": 6, + "value": 2103 + }, + { + "row": 6, + "col": 7, + "value": 2355 + }, + { + "row": 6, + "col": 8, + "value": 3994 + }, + { + "row": 6, + "col": 9, + "value": 2720 + } + ] + }, + { + "timestamp_ns": 18472123813, + "cursor_x_mm": 88.46666666666667, + "cursor_y_mm": 49.13333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2052 + }, + { + "row": 0, + "col": 8, + "value": 2053 + }, + { + "row": 0, + "col": 9, + "value": 2053 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2053 + }, + { + "row": 1, + "col": 6, + "value": 2055 + }, + { + "row": 1, + "col": 7, + "value": 2058 + }, + { + "row": 1, + "col": 8, + "value": 2059 + }, + { + "row": 1, + "col": 9, + "value": 2057 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2049 + }, + { + "row": 2, + "col": 4, + "value": 2051 + }, + { + "row": 2, + "col": 5, + "value": 2054 + }, + { + "row": 2, + "col": 6, + "value": 2059 + }, + { + "row": 2, + "col": 7, + "value": 2066 + }, + { + "row": 2, + "col": 8, + "value": 2073 + }, + { + "row": 2, + "col": 9, + "value": 2071 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2051 + }, + { + "row": 3, + "col": 4, + "value": 2054 + }, + { + "row": 3, + "col": 5, + "value": 2061 + }, + { + "row": 3, + "col": 6, + "value": 2077 + }, + { + "row": 3, + "col": 7, + "value": 2108 + }, + { + "row": 3, + "col": 8, + "value": 2125 + }, + { + "row": 3, + "col": 9, + "value": 2097 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2050 + }, + { + "row": 4, + "col": 4, + "value": 2053 + }, + { + "row": 4, + "col": 5, + "value": 2060 + }, + { + "row": 4, + "col": 6, + "value": 2081 + }, + { + "row": 4, + "col": 7, + "value": 2158 + }, + { + "row": 4, + "col": 8, + "value": 2390 + }, + { + "row": 4, + "col": 9, + "value": 2308 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2050 + }, + { + "row": 5, + "col": 3, + "value": 2052 + }, + { + "row": 5, + "col": 4, + "value": 2057 + }, + { + "row": 5, + "col": 5, + "value": 2072 + }, + { + "row": 5, + "col": 6, + "value": 2137 + }, + { + "row": 5, + "col": 7, + "value": 2676 + }, + { + "row": 5, + "col": 8, + "value": 3973 + }, + { + "row": 5, + "col": 9, + "value": 2364 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2049 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2054 + }, + { + "row": 6, + "col": 5, + "value": 2062 + }, + { + "row": 6, + "col": 6, + "value": 2088 + }, + { + "row": 6, + "col": 7, + "value": 2213 + }, + { + "row": 6, + "col": 8, + "value": 2919 + }, + { + "row": 6, + "col": 9, + "value": 2609 + } + ] + }, + { + "timestamp_ns": 18631582259, + "cursor_x_mm": 87.53333333333333, + "cursor_y_mm": 41.13333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2054 + }, + { + "row": 0, + "col": 7, + "value": 2056 + }, + { + "row": 0, + "col": 8, + "value": 2058 + }, + { + "row": 0, + "col": 9, + "value": 2057 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2050 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2056 + }, + { + "row": 1, + "col": 6, + "value": 2062 + }, + { + "row": 1, + "col": 7, + "value": 2069 + }, + { + "row": 1, + "col": 8, + "value": 2072 + }, + { + "row": 1, + "col": 9, + "value": 2066 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2050 + }, + { + "row": 2, + "col": 4, + "value": 2052 + }, + { + "row": 2, + "col": 5, + "value": 2057 + }, + { + "row": 2, + "col": 6, + "value": 2068 + }, + { + "row": 2, + "col": 7, + "value": 2091 + }, + { + "row": 2, + "col": 8, + "value": 2118 + }, + { + "row": 2, + "col": 9, + "value": 2107 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2052 + }, + { + "row": 3, + "col": 4, + "value": 2056 + }, + { + "row": 3, + "col": 5, + "value": 2069 + }, + { + "row": 3, + "col": 6, + "value": 2110 + }, + { + "row": 3, + "col": 7, + "value": 2258 + }, + { + "row": 3, + "col": 8, + "value": 2374 + }, + { + "row": 3, + "col": 9, + "value": 2168 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2051 + }, + { + "row": 4, + "col": 4, + "value": 2054 + }, + { + "row": 4, + "col": 5, + "value": 2064 + }, + { + "row": 4, + "col": 6, + "value": 2096 + }, + { + "row": 4, + "col": 7, + "value": 2292 + }, + { + "row": 4, + "col": 8, + "value": 3777 + }, + { + "row": 4, + "col": 9, + "value": 2831 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2050 + }, + { + "row": 5, + "col": 3, + "value": 2052 + }, + { + "row": 5, + "col": 4, + "value": 2057 + }, + { + "row": 5, + "col": 5, + "value": 2073 + }, + { + "row": 5, + "col": 6, + "value": 2136 + }, + { + "row": 5, + "col": 7, + "value": 2547 + }, + { + "row": 5, + "col": 8, + "value": 3131 + }, + { + "row": 5, + "col": 9, + "value": 2258 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2049 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2053 + }, + { + "row": 6, + "col": 5, + "value": 2060 + }, + { + "row": 6, + "col": 6, + "value": 2077 + }, + { + "row": 6, + "col": 7, + "value": 2127 + }, + { + "row": 6, + "col": 8, + "value": 2216 + }, + { + "row": 6, + "col": 9, + "value": 2176 + } + ] + }, + { + "timestamp_ns": 18774184023, + "cursor_x_mm": 86.73333333333333, + "cursor_y_mm": 33.66666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2054 + }, + { + "row": 0, + "col": 6, + "value": 2058 + }, + { + "row": 0, + "col": 7, + "value": 2064 + }, + { + "row": 0, + "col": 8, + "value": 2067 + }, + { + "row": 0, + "col": 9, + "value": 2066 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2051 + }, + { + "row": 1, + "col": 4, + "value": 2054 + }, + { + "row": 1, + "col": 5, + "value": 2061 + }, + { + "row": 1, + "col": 6, + "value": 2075 + }, + { + "row": 1, + "col": 7, + "value": 2096 + }, + { + "row": 1, + "col": 8, + "value": 2101 + }, + { + "row": 1, + "col": 9, + "value": 2082 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2050 + }, + { + "row": 2, + "col": 4, + "value": 2054 + }, + { + "row": 2, + "col": 5, + "value": 2061 + }, + { + "row": 2, + "col": 6, + "value": 2082 + }, + { + "row": 2, + "col": 7, + "value": 2149 + }, + { + "row": 2, + "col": 8, + "value": 2274 + }, + { + "row": 2, + "col": 9, + "value": 2197 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2050 + }, + { + "row": 3, + "col": 3, + "value": 2052 + }, + { + "row": 3, + "col": 4, + "value": 2058 + }, + { + "row": 3, + "col": 5, + "value": 2076 + }, + { + "row": 3, + "col": 6, + "value": 2154 + }, + { + "row": 3, + "col": 7, + "value": 2756 + }, + { + "row": 3, + "col": 8, + "value": 3351 + }, + { + "row": 3, + "col": 9, + "value": 2250 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2051 + }, + { + "row": 4, + "col": 4, + "value": 2055 + }, + { + "row": 4, + "col": 5, + "value": 2065 + }, + { + "row": 4, + "col": 6, + "value": 2100 + }, + { + "row": 4, + "col": 7, + "value": 2313 + }, + { + "row": 4, + "col": 8, + "value": 3610 + }, + { + "row": 4, + "col": 9, + "value": 2623 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2050 + }, + { + "row": 5, + "col": 3, + "value": 2052 + }, + { + "row": 5, + "col": 4, + "value": 2057 + }, + { + "row": 5, + "col": 5, + "value": 2069 + }, + { + "row": 5, + "col": 6, + "value": 2109 + }, + { + "row": 5, + "col": 7, + "value": 2228 + }, + { + "row": 5, + "col": 8, + "value": 2283 + }, + { + "row": 5, + "col": 9, + "value": 2141 + }, + { + "row": 6, + "col": 0, + "value": 2048 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2049 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2057 + }, + { + "row": 6, + "col": 6, + "value": 2067 + }, + { + "row": 6, + "col": 7, + "value": 2087 + }, + { + "row": 6, + "col": 8, + "value": 2106 + }, + { + "row": 6, + "col": 9, + "value": 2096 + } + ] + }, + { + "timestamp_ns": 18915884540, + "cursor_x_mm": 85.26666666666667, + "cursor_y_mm": 26.2, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2052 + }, + { + "row": 0, + "col": 5, + "value": 2057 + }, + { + "row": 0, + "col": 6, + "value": 2067 + }, + { + "row": 0, + "col": 7, + "value": 2084 + }, + { + "row": 0, + "col": 8, + "value": 2096 + }, + { + "row": 0, + "col": 9, + "value": 2086 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2050 + }, + { + "row": 1, + "col": 3, + "value": 2052 + }, + { + "row": 1, + "col": 4, + "value": 2057 + }, + { + "row": 1, + "col": 5, + "value": 2070 + }, + { + "row": 1, + "col": 6, + "value": 2109 + }, + { + "row": 1, + "col": 7, + "value": 2205 + }, + { + "row": 1, + "col": 8, + "value": 2218 + }, + { + "row": 1, + "col": 9, + "value": 2118 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2051 + }, + { + "row": 2, + "col": 4, + "value": 2055 + }, + { + "row": 2, + "col": 5, + "value": 2066 + }, + { + "row": 2, + "col": 6, + "value": 2107 + }, + { + "row": 2, + "col": 7, + "value": 2347 + }, + { + "row": 2, + "col": 8, + "value": 3353 + }, + { + "row": 2, + "col": 9, + "value": 2434 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2050 + }, + { + "row": 3, + "col": 3, + "value": 2053 + }, + { + "row": 3, + "col": 4, + "value": 2060 + }, + { + "row": 3, + "col": 5, + "value": 2081 + }, + { + "row": 3, + "col": 6, + "value": 2185 + }, + { + "row": 3, + "col": 7, + "value": 3110 + }, + { + "row": 3, + "col": 8, + "value": 3390 + }, + { + "row": 3, + "col": 9, + "value": 2222 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2051 + }, + { + "row": 4, + "col": 4, + "value": 2054 + }, + { + "row": 4, + "col": 5, + "value": 2063 + }, + { + "row": 4, + "col": 6, + "value": 2090 + }, + { + "row": 4, + "col": 7, + "value": 2186 + }, + { + "row": 4, + "col": 8, + "value": 2355 + }, + { + "row": 4, + "col": 9, + "value": 2209 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2049 + }, + { + "row": 5, + "col": 3, + "value": 2051 + }, + { + "row": 5, + "col": 4, + "value": 2055 + }, + { + "row": 5, + "col": 5, + "value": 2063 + }, + { + "row": 5, + "col": 6, + "value": 2081 + }, + { + "row": 5, + "col": 7, + "value": 2108 + }, + { + "row": 5, + "col": 8, + "value": 2110 + }, + { + "row": 5, + "col": 9, + "value": 2085 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2051 + }, + { + "row": 6, + "col": 5, + "value": 2054 + }, + { + "row": 6, + "col": 6, + "value": 2060 + }, + { + "row": 6, + "col": 7, + "value": 2067 + }, + { + "row": 6, + "col": 8, + "value": 2071 + }, + { + "row": 6, + "col": 9, + "value": 2067 + } + ] + }, + { + "timestamp_ns": 19074904006, + "cursor_x_mm": 84.33333333333333, + "cursor_y_mm": 17.933333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2055 + }, + { + "row": 0, + "col": 5, + "value": 2064 + }, + { + "row": 0, + "col": 6, + "value": 2089 + }, + { + "row": 0, + "col": 7, + "value": 2162 + }, + { + "row": 0, + "col": 8, + "value": 2236 + }, + { + "row": 0, + "col": 9, + "value": 2149 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2050 + }, + { + "row": 1, + "col": 3, + "value": 2053 + }, + { + "row": 1, + "col": 4, + "value": 2061 + }, + { + "row": 1, + "col": 5, + "value": 2085 + }, + { + "row": 1, + "col": 6, + "value": 2200 + }, + { + "row": 1, + "col": 7, + "value": 2977 + }, + { + "row": 1, + "col": 8, + "value": 2802 + }, + { + "row": 1, + "col": 9, + "value": 2170 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2052 + }, + { + "row": 2, + "col": 4, + "value": 2056 + }, + { + "row": 2, + "col": 5, + "value": 2070 + }, + { + "row": 2, + "col": 6, + "value": 2124 + }, + { + "row": 2, + "col": 7, + "value": 2535 + }, + { + "row": 2, + "col": 8, + "value": 3903 + }, + { + "row": 2, + "col": 9, + "value": 2412 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2050 + }, + { + "row": 3, + "col": 3, + "value": 2053 + }, + { + "row": 3, + "col": 4, + "value": 2059 + }, + { + "row": 3, + "col": 5, + "value": 2077 + }, + { + "row": 3, + "col": 6, + "value": 2138 + }, + { + "row": 3, + "col": 7, + "value": 2317 + }, + { + "row": 3, + "col": 8, + "value": 2289 + }, + { + "row": 3, + "col": 9, + "value": 2124 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2050 + }, + { + "row": 4, + "col": 4, + "value": 2053 + }, + { + "row": 4, + "col": 5, + "value": 2060 + }, + { + "row": 4, + "col": 6, + "value": 2074 + }, + { + "row": 4, + "col": 7, + "value": 2099 + }, + { + "row": 4, + "col": 8, + "value": 2116 + }, + { + "row": 4, + "col": 9, + "value": 2095 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2049 + }, + { + "row": 5, + "col": 3, + "value": 2051 + }, + { + "row": 5, + "col": 4, + "value": 2053 + }, + { + "row": 5, + "col": 5, + "value": 2058 + }, + { + "row": 5, + "col": 6, + "value": 2064 + }, + { + "row": 5, + "col": 7, + "value": 2070 + }, + { + "row": 5, + "col": 8, + "value": 2070 + }, + { + "row": 5, + "col": 9, + "value": 2063 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2052 + }, + { + "row": 6, + "col": 6, + "value": 2054 + }, + { + "row": 6, + "col": 7, + "value": 2057 + }, + { + "row": 6, + "col": 8, + "value": 2058 + }, + { + "row": 6, + "col": 9, + "value": 2057 + } + ] + }, + { + "timestamp_ns": 19232204619, + "cursor_x_mm": 84.6, + "cursor_y_mm": 11.266666666666666, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2056 + }, + { + "row": 0, + "col": 5, + "value": 2068 + }, + { + "row": 0, + "col": 6, + "value": 2112 + }, + { + "row": 0, + "col": 7, + "value": 2344 + }, + { + "row": 0, + "col": 8, + "value": 2866 + }, + { + "row": 0, + "col": 9, + "value": 2285 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2050 + }, + { + "row": 1, + "col": 3, + "value": 2053 + }, + { + "row": 1, + "col": 4, + "value": 2061 + }, + { + "row": 1, + "col": 5, + "value": 2088 + }, + { + "row": 1, + "col": 6, + "value": 2232 + }, + { + "row": 1, + "col": 7, + "value": 3622 + }, + { + "row": 1, + "col": 8, + "value": 3290 + }, + { + "row": 1, + "col": 9, + "value": 2192 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2051 + }, + { + "row": 2, + "col": 4, + "value": 2056 + }, + { + "row": 2, + "col": 5, + "value": 2067 + }, + { + "row": 2, + "col": 6, + "value": 2105 + }, + { + "row": 2, + "col": 7, + "value": 2268 + }, + { + "row": 2, + "col": 8, + "value": 2543 + }, + { + "row": 2, + "col": 9, + "value": 2230 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2049 + }, + { + "row": 3, + "col": 2, + "value": 2050 + }, + { + "row": 3, + "col": 3, + "value": 2052 + }, + { + "row": 3, + "col": 4, + "value": 2057 + }, + { + "row": 3, + "col": 5, + "value": 2068 + }, + { + "row": 3, + "col": 6, + "value": 2093 + }, + { + "row": 3, + "col": 7, + "value": 2133 + }, + { + "row": 3, + "col": 8, + "value": 2128 + }, + { + "row": 3, + "col": 9, + "value": 2089 + }, + { + "row": 4, + "col": 0, + "value": 2048 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2050 + }, + { + "row": 4, + "col": 4, + "value": 2052 + }, + { + "row": 4, + "col": 5, + "value": 2056 + }, + { + "row": 4, + "col": 6, + "value": 2063 + }, + { + "row": 4, + "col": 7, + "value": 2072 + }, + { + "row": 4, + "col": 8, + "value": 2077 + }, + { + "row": 4, + "col": 9, + "value": 2071 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2049 + }, + { + "row": 5, + "col": 3, + "value": 2050 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2054 + }, + { + "row": 5, + "col": 6, + "value": 2057 + }, + { + "row": 5, + "col": 7, + "value": 2059 + }, + { + "row": 5, + "col": 8, + "value": 2059 + }, + { + "row": 5, + "col": 9, + "value": 2057 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2052 + }, + { + "row": 6, + "col": 7, + "value": 2053 + }, + { + "row": 6, + "col": 8, + "value": 2053 + }, + { + "row": 6, + "col": 9, + "value": 2053 + } + ] + }, + { + "timestamp_ns": 19374554770, + "cursor_x_mm": 85.13333333333334, + "cursor_y_mm": 5.266666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2056 + }, + { + "row": 0, + "col": 5, + "value": 2069 + }, + { + "row": 0, + "col": 6, + "value": 2119 + }, + { + "row": 0, + "col": 7, + "value": 2499 + }, + { + "row": 0, + "col": 8, + "value": 4059 + }, + { + "row": 0, + "col": 9, + "value": 2499 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2049 + }, + { + "row": 1, + "col": 2, + "value": 2050 + }, + { + "row": 1, + "col": 3, + "value": 2053 + }, + { + "row": 1, + "col": 4, + "value": 2060 + }, + { + "row": 1, + "col": 5, + "value": 2081 + }, + { + "row": 1, + "col": 6, + "value": 2173 + }, + { + "row": 1, + "col": 7, + "value": 2706 + }, + { + "row": 1, + "col": 8, + "value": 2706 + }, + { + "row": 1, + "col": 9, + "value": 2173 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2051 + }, + { + "row": 2, + "col": 4, + "value": 2054 + }, + { + "row": 2, + "col": 5, + "value": 2062 + }, + { + "row": 2, + "col": 6, + "value": 2083 + }, + { + "row": 2, + "col": 7, + "value": 2138 + }, + { + "row": 2, + "col": 8, + "value": 2195 + }, + { + "row": 2, + "col": 9, + "value": 2138 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2051 + }, + { + "row": 3, + "col": 4, + "value": 2054 + }, + { + "row": 3, + "col": 5, + "value": 2061 + }, + { + "row": 3, + "col": 6, + "value": 2072 + }, + { + "row": 3, + "col": 7, + "value": 2086 + }, + { + "row": 3, + "col": 8, + "value": 2086 + }, + { + "row": 3, + "col": 9, + "value": 2072 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2051 + }, + { + "row": 4, + "col": 5, + "value": 2053 + }, + { + "row": 4, + "col": 6, + "value": 2057 + }, + { + "row": 4, + "col": 7, + "value": 2061 + }, + { + "row": 4, + "col": 8, + "value": 2063 + }, + { + "row": 4, + "col": 9, + "value": 2061 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2052 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2055 + }, + { + "row": 5, + "col": 8, + "value": 2055 + }, + { + "row": 5, + "col": 9, + "value": 2054 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2051 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 19533354548, + "cursor_x_mm": 87.13333333333334, + "cursor_y_mm": 3.0, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2051 + }, + { + "row": 0, + "col": 4, + "value": 2055 + }, + { + "row": 0, + "col": 5, + "value": 2065 + }, + { + "row": 0, + "col": 6, + "value": 2103 + }, + { + "row": 0, + "col": 7, + "value": 2354 + }, + { + "row": 0, + "col": 8, + "value": 3986 + }, + { + "row": 0, + "col": 9, + "value": 2717 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2050 + }, + { + "row": 1, + "col": 3, + "value": 2052 + }, + { + "row": 1, + "col": 4, + "value": 2057 + }, + { + "row": 1, + "col": 5, + "value": 2072 + }, + { + "row": 1, + "col": 6, + "value": 2122 + }, + { + "row": 1, + "col": 7, + "value": 2316 + }, + { + "row": 1, + "col": 8, + "value": 2418 + }, + { + "row": 1, + "col": 9, + "value": 2164 + }, + { + "row": 2, + "col": 0, + "value": 2048 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2050 + }, + { + "row": 2, + "col": 4, + "value": 2053 + }, + { + "row": 2, + "col": 5, + "value": 2058 + }, + { + "row": 2, + "col": 6, + "value": 2071 + }, + { + "row": 2, + "col": 7, + "value": 2098 + }, + { + "row": 2, + "col": 8, + "value": 2128 + }, + { + "row": 2, + "col": 9, + "value": 2111 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2050 + }, + { + "row": 3, + "col": 4, + "value": 2053 + }, + { + "row": 3, + "col": 5, + "value": 2057 + }, + { + "row": 3, + "col": 6, + "value": 2064 + }, + { + "row": 3, + "col": 7, + "value": 2072 + }, + { + "row": 3, + "col": 8, + "value": 2074 + }, + { + "row": 3, + "col": 9, + "value": 2067 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2054 + }, + { + "row": 4, + "col": 7, + "value": 2057 + }, + { + "row": 4, + "col": 8, + "value": 2059 + }, + { + "row": 4, + "col": 9, + "value": 2058 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2051 + }, + { + "row": 5, + "col": 6, + "value": 2052 + }, + { + "row": 5, + "col": 7, + "value": 2053 + }, + { + "row": 5, + "col": 8, + "value": 2053 + }, + { + "row": 5, + "col": 9, + "value": 2052 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2048 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2050 + } + ] + }, + { + "timestamp_ns": 19691925845, + "cursor_x_mm": 89.13333333333334, + "cursor_y_mm": 4.333333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2048 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2054 + }, + { + "row": 0, + "col": 5, + "value": 2062 + }, + { + "row": 0, + "col": 6, + "value": 2091 + }, + { + "row": 0, + "col": 7, + "value": 2253 + }, + { + "row": 0, + "col": 8, + "value": 3717 + }, + { + "row": 0, + "col": 9, + "value": 3117 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2051 + }, + { + "row": 1, + "col": 4, + "value": 2056 + }, + { + "row": 1, + "col": 5, + "value": 2068 + }, + { + "row": 1, + "col": 6, + "value": 2107 + }, + { + "row": 1, + "col": 7, + "value": 2268 + }, + { + "row": 1, + "col": 8, + "value": 2480 + }, + { + "row": 1, + "col": 9, + "value": 2205 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2050 + }, + { + "row": 2, + "col": 4, + "value": 2052 + }, + { + "row": 2, + "col": 5, + "value": 2057 + }, + { + "row": 2, + "col": 6, + "value": 2068 + }, + { + "row": 2, + "col": 7, + "value": 2093 + }, + { + "row": 2, + "col": 8, + "value": 2128 + }, + { + "row": 2, + "col": 9, + "value": 2120 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2050 + }, + { + "row": 3, + "col": 4, + "value": 2052 + }, + { + "row": 3, + "col": 5, + "value": 2056 + }, + { + "row": 3, + "col": 6, + "value": 2063 + }, + { + "row": 3, + "col": 7, + "value": 2071 + }, + { + "row": 3, + "col": 8, + "value": 2075 + }, + { + "row": 3, + "col": 9, + "value": 2069 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2054 + }, + { + "row": 4, + "col": 7, + "value": 2057 + }, + { + "row": 4, + "col": 8, + "value": 2059 + }, + { + "row": 4, + "col": 9, + "value": 2059 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2049 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2052 + }, + { + "row": 5, + "col": 7, + "value": 2053 + }, + { + "row": 5, + "col": 8, + "value": 2053 + }, + { + "row": 5, + "col": 9, + "value": 2053 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2048 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2050 + } + ] + }, + { + "timestamp_ns": 19850842495, + "cursor_x_mm": 91.13333333333334, + "cursor_y_mm": 11.666666666666668, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2049 + }, + { + "row": 0, + "col": 3, + "value": 2050 + }, + { + "row": 0, + "col": 4, + "value": 2053 + }, + { + "row": 0, + "col": 5, + "value": 2059 + }, + { + "row": 0, + "col": 6, + "value": 2079 + }, + { + "row": 0, + "col": 7, + "value": 2170 + }, + { + "row": 0, + "col": 8, + "value": 2843 + }, + { + "row": 0, + "col": 9, + "value": 3100 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2051 + }, + { + "row": 1, + "col": 4, + "value": 2055 + }, + { + "row": 1, + "col": 5, + "value": 2067 + }, + { + "row": 1, + "col": 6, + "value": 2108 + }, + { + "row": 1, + "col": 7, + "value": 2384 + }, + { + "row": 1, + "col": 8, + "value": 3796 + }, + { + "row": 1, + "col": 9, + "value": 2535 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2050 + }, + { + "row": 2, + "col": 4, + "value": 2052 + }, + { + "row": 2, + "col": 5, + "value": 2058 + }, + { + "row": 2, + "col": 6, + "value": 2072 + }, + { + "row": 2, + "col": 7, + "value": 2119 + }, + { + "row": 2, + "col": 8, + "value": 2263 + }, + { + "row": 2, + "col": 9, + "value": 2293 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2050 + }, + { + "row": 3, + "col": 4, + "value": 2053 + }, + { + "row": 3, + "col": 5, + "value": 2058 + }, + { + "row": 3, + "col": 6, + "value": 2070 + }, + { + "row": 3, + "col": 7, + "value": 2092 + }, + { + "row": 3, + "col": 8, + "value": 2111 + }, + { + "row": 3, + "col": 9, + "value": 2096 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2053 + }, + { + "row": 4, + "col": 6, + "value": 2056 + }, + { + "row": 4, + "col": 7, + "value": 2062 + }, + { + "row": 4, + "col": 8, + "value": 2068 + }, + { + "row": 4, + "col": 9, + "value": 2069 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2052 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2056 + }, + { + "row": 5, + "col": 8, + "value": 2057 + }, + { + "row": 5, + "col": 9, + "value": 2056 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2051 + }, + { + "row": 6, + "col": 8, + "value": 2052 + }, + { + "row": 6, + "col": 9, + "value": 2052 + } + ] + }, + { + "timestamp_ns": 20008226445, + "cursor_x_mm": 91.93333333333334, + "cursor_y_mm": 24.2, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2056 + }, + { + "row": 0, + "col": 6, + "value": 2066 + }, + { + "row": 0, + "col": 7, + "value": 2092 + }, + { + "row": 0, + "col": 8, + "value": 2148 + }, + { + "row": 0, + "col": 9, + "value": 2166 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2051 + }, + { + "row": 1, + "col": 4, + "value": 2054 + }, + { + "row": 1, + "col": 5, + "value": 2064 + }, + { + "row": 1, + "col": 6, + "value": 2095 + }, + { + "row": 1, + "col": 7, + "value": 2243 + }, + { + "row": 1, + "col": 8, + "value": 2789 + }, + { + "row": 1, + "col": 9, + "value": 2383 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2049 + }, + { + "row": 2, + "col": 3, + "value": 2050 + }, + { + "row": 2, + "col": 4, + "value": 2052 + }, + { + "row": 2, + "col": 5, + "value": 2059 + }, + { + "row": 2, + "col": 6, + "value": 2078 + }, + { + "row": 2, + "col": 7, + "value": 2169 + }, + { + "row": 2, + "col": 8, + "value": 3060 + }, + { + "row": 2, + "col": 9, + "value": 3850 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2051 + }, + { + "row": 3, + "col": 4, + "value": 2054 + }, + { + "row": 3, + "col": 5, + "value": 2063 + }, + { + "row": 3, + "col": 6, + "value": 2091 + }, + { + "row": 3, + "col": 7, + "value": 2211 + }, + { + "row": 3, + "col": 8, + "value": 2561 + }, + { + "row": 3, + "col": 9, + "value": 2311 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2051 + }, + { + "row": 4, + "col": 5, + "value": 2055 + }, + { + "row": 4, + "col": 6, + "value": 2064 + }, + { + "row": 4, + "col": 7, + "value": 2086 + }, + { + "row": 4, + "col": 8, + "value": 2128 + }, + { + "row": 4, + "col": 9, + "value": 2139 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2050 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2055 + }, + { + "row": 5, + "col": 6, + "value": 2061 + }, + { + "row": 5, + "col": 7, + "value": 2071 + }, + { + "row": 5, + "col": 8, + "value": 2077 + }, + { + "row": 5, + "col": 9, + "value": 2074 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2053 + }, + { + "row": 6, + "col": 7, + "value": 2057 + }, + { + "row": 6, + "col": 8, + "value": 2059 + }, + { + "row": 6, + "col": 9, + "value": 2060 + } + ] + }, + { + "timestamp_ns": 20151945221, + "cursor_x_mm": 91.8, + "cursor_y_mm": 32.86666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2053 + }, + { + "row": 0, + "col": 6, + "value": 2058 + }, + { + "row": 0, + "col": 7, + "value": 2066 + }, + { + "row": 0, + "col": 8, + "value": 2075 + }, + { + "row": 0, + "col": 9, + "value": 2077 + }, + { + "row": 1, + "col": 0, + "value": 2048 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2050 + }, + { + "row": 1, + "col": 4, + "value": 2053 + }, + { + "row": 1, + "col": 5, + "value": 2059 + }, + { + "row": 1, + "col": 6, + "value": 2073 + }, + { + "row": 1, + "col": 7, + "value": 2105 + }, + { + "row": 1, + "col": 8, + "value": 2144 + }, + { + "row": 1, + "col": 9, + "value": 2123 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2050 + }, + { + "row": 2, + "col": 4, + "value": 2052 + }, + { + "row": 2, + "col": 5, + "value": 2057 + }, + { + "row": 2, + "col": 6, + "value": 2072 + }, + { + "row": 2, + "col": 7, + "value": 2127 + }, + { + "row": 2, + "col": 8, + "value": 2371 + }, + { + "row": 2, + "col": 9, + "value": 2533 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2051 + }, + { + "row": 3, + "col": 4, + "value": 2055 + }, + { + "row": 3, + "col": 5, + "value": 2065 + }, + { + "row": 3, + "col": 6, + "value": 2102 + }, + { + "row": 3, + "col": 7, + "value": 2349 + }, + { + "row": 3, + "col": 8, + "value": 4037 + }, + { + "row": 3, + "col": 9, + "value": 2780 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2050 + }, + { + "row": 4, + "col": 4, + "value": 2052 + }, + { + "row": 4, + "col": 5, + "value": 2058 + }, + { + "row": 4, + "col": 6, + "value": 2074 + }, + { + "row": 4, + "col": 7, + "value": 2135 + }, + { + "row": 4, + "col": 8, + "value": 2458 + }, + { + "row": 4, + "col": 9, + "value": 2706 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2049 + }, + { + "row": 5, + "col": 3, + "value": 2050 + }, + { + "row": 5, + "col": 4, + "value": 2053 + }, + { + "row": 5, + "col": 5, + "value": 2059 + }, + { + "row": 5, + "col": 6, + "value": 2075 + }, + { + "row": 5, + "col": 7, + "value": 2115 + }, + { + "row": 5, + "col": 8, + "value": 2168 + }, + { + "row": 5, + "col": 9, + "value": 2138 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2053 + }, + { + "row": 6, + "col": 6, + "value": 2058 + }, + { + "row": 6, + "col": 7, + "value": 2068 + }, + { + "row": 6, + "col": 8, + "value": 2080 + }, + { + "row": 6, + "col": 9, + "value": 2083 + } + ] + }, + { + "timestamp_ns": 20310877410, + "cursor_x_mm": 91.26666666666667, + "cursor_y_mm": 41.93333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2054 + }, + { + "row": 0, + "col": 7, + "value": 2057 + }, + { + "row": 0, + "col": 8, + "value": 2060 + }, + { + "row": 0, + "col": 9, + "value": 2060 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2050 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2055 + }, + { + "row": 1, + "col": 6, + "value": 2062 + }, + { + "row": 1, + "col": 7, + "value": 2072 + }, + { + "row": 1, + "col": 8, + "value": 2079 + }, + { + "row": 1, + "col": 9, + "value": 2074 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2049 + }, + { + "row": 2, + "col": 4, + "value": 2051 + }, + { + "row": 2, + "col": 5, + "value": 2056 + }, + { + "row": 2, + "col": 6, + "value": 2065 + }, + { + "row": 2, + "col": 7, + "value": 2089 + }, + { + "row": 2, + "col": 8, + "value": 2133 + }, + { + "row": 2, + "col": 9, + "value": 2144 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2051 + }, + { + "row": 3, + "col": 4, + "value": 2054 + }, + { + "row": 3, + "col": 5, + "value": 2064 + }, + { + "row": 3, + "col": 6, + "value": 2094 + }, + { + "row": 3, + "col": 7, + "value": 2225 + }, + { + "row": 3, + "col": 8, + "value": 2612 + }, + { + "row": 3, + "col": 9, + "value": 2316 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2049 + }, + { + "row": 4, + "col": 3, + "value": 2050 + }, + { + "row": 4, + "col": 4, + "value": 2053 + }, + { + "row": 4, + "col": 5, + "value": 2059 + }, + { + "row": 4, + "col": 6, + "value": 2079 + }, + { + "row": 4, + "col": 7, + "value": 2175 + }, + { + "row": 4, + "col": 8, + "value": 3130 + }, + { + "row": 4, + "col": 9, + "value": 3811 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2049 + }, + { + "row": 5, + "col": 3, + "value": 2051 + }, + { + "row": 5, + "col": 4, + "value": 2055 + }, + { + "row": 5, + "col": 5, + "value": 2064 + }, + { + "row": 5, + "col": 6, + "value": 2096 + }, + { + "row": 5, + "col": 7, + "value": 2244 + }, + { + "row": 5, + "col": 8, + "value": 2737 + }, + { + "row": 5, + "col": 9, + "value": 2352 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2056 + }, + { + "row": 6, + "col": 6, + "value": 2066 + }, + { + "row": 6, + "col": 7, + "value": 2092 + }, + { + "row": 6, + "col": 8, + "value": 2144 + }, + { + "row": 6, + "col": 9, + "value": 2158 + } + ] + }, + { + "timestamp_ns": 20453727838, + "cursor_x_mm": 91.93333333333334, + "cursor_y_mm": 49.53333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2051 + }, + { + "row": 0, + "col": 7, + "value": 2053 + }, + { + "row": 0, + "col": 8, + "value": 2054 + }, + { + "row": 0, + "col": 9, + "value": 2054 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2050 + }, + { + "row": 1, + "col": 5, + "value": 2052 + }, + { + "row": 1, + "col": 6, + "value": 2055 + }, + { + "row": 1, + "col": 7, + "value": 2059 + }, + { + "row": 1, + "col": 8, + "value": 2061 + }, + { + "row": 1, + "col": 9, + "value": 2060 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2049 + }, + { + "row": 2, + "col": 4, + "value": 2050 + }, + { + "row": 2, + "col": 5, + "value": 2053 + }, + { + "row": 2, + "col": 6, + "value": 2058 + }, + { + "row": 2, + "col": 7, + "value": 2067 + }, + { + "row": 2, + "col": 8, + "value": 2078 + }, + { + "row": 2, + "col": 9, + "value": 2081 + }, + { + "row": 3, + "col": 0, + "value": 2048 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2050 + }, + { + "row": 3, + "col": 4, + "value": 2053 + }, + { + "row": 3, + "col": 5, + "value": 2059 + }, + { + "row": 3, + "col": 6, + "value": 2075 + }, + { + "row": 3, + "col": 7, + "value": 2112 + }, + { + "row": 3, + "col": 8, + "value": 2162 + }, + { + "row": 3, + "col": 9, + "value": 2134 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2050 + }, + { + "row": 4, + "col": 4, + "value": 2052 + }, + { + "row": 4, + "col": 5, + "value": 2058 + }, + { + "row": 4, + "col": 6, + "value": 2073 + }, + { + "row": 4, + "col": 7, + "value": 2133 + }, + { + "row": 4, + "col": 8, + "value": 2436 + }, + { + "row": 4, + "col": 9, + "value": 2661 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2049 + }, + { + "row": 5, + "col": 3, + "value": 2051 + }, + { + "row": 5, + "col": 4, + "value": 2055 + }, + { + "row": 5, + "col": 5, + "value": 2065 + }, + { + "row": 5, + "col": 6, + "value": 2102 + }, + { + "row": 5, + "col": 7, + "value": 2350 + }, + { + "row": 5, + "col": 8, + "value": 4043 + }, + { + "row": 5, + "col": 9, + "value": 2784 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2057 + }, + { + "row": 6, + "col": 6, + "value": 2073 + }, + { + "row": 6, + "col": 7, + "value": 2129 + }, + { + "row": 6, + "col": 8, + "value": 2389 + }, + { + "row": 6, + "col": 9, + "value": 2568 + } + ] + }, + { + "timestamp_ns": 20610708272, + "cursor_x_mm": 92.33333333333333, + "cursor_y_mm": 55.666666666666664, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2048 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2051 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2049 + }, + { + "row": 1, + "col": 5, + "value": 2051 + }, + { + "row": 1, + "col": 6, + "value": 2052 + }, + { + "row": 1, + "col": 7, + "value": 2054 + }, + { + "row": 1, + "col": 8, + "value": 2055 + }, + { + "row": 1, + "col": 9, + "value": 2054 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2049 + }, + { + "row": 2, + "col": 4, + "value": 2050 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2054 + }, + { + "row": 2, + "col": 7, + "value": 2058 + }, + { + "row": 2, + "col": 8, + "value": 2062 + }, + { + "row": 2, + "col": 9, + "value": 2063 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2050 + }, + { + "row": 3, + "col": 4, + "value": 2052 + }, + { + "row": 3, + "col": 5, + "value": 2056 + }, + { + "row": 3, + "col": 6, + "value": 2064 + }, + { + "row": 3, + "col": 7, + "value": 2076 + }, + { + "row": 3, + "col": 8, + "value": 2088 + }, + { + "row": 3, + "col": 9, + "value": 2082 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2051 + }, + { + "row": 4, + "col": 5, + "value": 2056 + }, + { + "row": 4, + "col": 6, + "value": 2066 + }, + { + "row": 4, + "col": 7, + "value": 2094 + }, + { + "row": 4, + "col": 8, + "value": 2160 + }, + { + "row": 4, + "col": 9, + "value": 2187 + }, + { + "row": 5, + "col": 0, + "value": 2048 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2049 + }, + { + "row": 5, + "col": 3, + "value": 2051 + }, + { + "row": 5, + "col": 4, + "value": 2054 + }, + { + "row": 5, + "col": 5, + "value": 2064 + }, + { + "row": 5, + "col": 6, + "value": 2094 + }, + { + "row": 5, + "col": 7, + "value": 2249 + }, + { + "row": 5, + "col": 8, + "value": 2939 + }, + { + "row": 5, + "col": 9, + "value": 2458 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2049 + }, + { + "row": 6, + "col": 3, + "value": 2050 + }, + { + "row": 6, + "col": 4, + "value": 2052 + }, + { + "row": 6, + "col": 5, + "value": 2058 + }, + { + "row": 6, + "col": 6, + "value": 2076 + }, + { + "row": 6, + "col": 7, + "value": 2160 + }, + { + "row": 6, + "col": 8, + "value": 2939 + }, + { + "row": 6, + "col": 9, + "value": 3857 + } + ] + }, + { + "timestamp_ns": 20784008704, + "cursor_x_mm": 97.53333333333333, + "cursor_y_mm": 57.266666666666666, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2047 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2048 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2047 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2048 + }, + { + "row": 1, + "col": 4, + "value": 2049 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2051 + }, + { + "row": 1, + "col": 7, + "value": 2052 + }, + { + "row": 1, + "col": 8, + "value": 2054 + }, + { + "row": 1, + "col": 9, + "value": 2054 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2049 + }, + { + "row": 2, + "col": 5, + "value": 2050 + }, + { + "row": 2, + "col": 6, + "value": 2052 + }, + { + "row": 2, + "col": 7, + "value": 2055 + }, + { + "row": 2, + "col": 8, + "value": 2058 + }, + { + "row": 2, + "col": 9, + "value": 2061 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2050 + }, + { + "row": 3, + "col": 5, + "value": 2053 + }, + { + "row": 3, + "col": 6, + "value": 2058 + }, + { + "row": 3, + "col": 7, + "value": 2066 + }, + { + "row": 3, + "col": 8, + "value": 2076 + }, + { + "row": 3, + "col": 9, + "value": 2079 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2053 + }, + { + "row": 4, + "col": 6, + "value": 2059 + }, + { + "row": 4, + "col": 7, + "value": 2073 + }, + { + "row": 4, + "col": 8, + "value": 2107 + }, + { + "row": 4, + "col": 9, + "value": 2149 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2050 + }, + { + "row": 5, + "col": 4, + "value": 2052 + }, + { + "row": 5, + "col": 5, + "value": 2057 + }, + { + "row": 5, + "col": 6, + "value": 2072 + }, + { + "row": 5, + "col": 7, + "value": 2127 + }, + { + "row": 5, + "col": 8, + "value": 2384 + }, + { + "row": 5, + "col": 9, + "value": 2583 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2051 + }, + { + "row": 6, + "col": 5, + "value": 2055 + }, + { + "row": 6, + "col": 6, + "value": 2065 + }, + { + "row": 6, + "col": 7, + "value": 2101 + }, + { + "row": 6, + "col": 8, + "value": 2338 + }, + { + "row": 6, + "col": 9, + "value": 4028 + } + ] + }, + { + "timestamp_ns": 20927012039, + "cursor_x_mm": 99.4, + "cursor_y_mm": 54.46666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2047 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2048 + }, + { + "row": 0, + "col": 5, + "value": 2048 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2050 + }, + { + "row": 0, + "col": 8, + "value": 2051 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2047 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2048 + }, + { + "row": 1, + "col": 4, + "value": 2049 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2051 + }, + { + "row": 1, + "col": 7, + "value": 2052 + }, + { + "row": 1, + "col": 8, + "value": 2054 + }, + { + "row": 1, + "col": 9, + "value": 2054 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2049 + }, + { + "row": 2, + "col": 5, + "value": 2050 + }, + { + "row": 2, + "col": 6, + "value": 2052 + }, + { + "row": 2, + "col": 7, + "value": 2055 + }, + { + "row": 2, + "col": 8, + "value": 2059 + }, + { + "row": 2, + "col": 9, + "value": 2062 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2050 + }, + { + "row": 3, + "col": 5, + "value": 2052 + }, + { + "row": 3, + "col": 6, + "value": 2057 + }, + { + "row": 3, + "col": 7, + "value": 2065 + }, + { + "row": 3, + "col": 8, + "value": 2077 + }, + { + "row": 3, + "col": 9, + "value": 2084 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2057 + }, + { + "row": 4, + "col": 7, + "value": 2070 + }, + { + "row": 4, + "col": 8, + "value": 2102 + }, + { + "row": 4, + "col": 9, + "value": 2160 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2056 + }, + { + "row": 5, + "col": 6, + "value": 2068 + }, + { + "row": 5, + "col": 7, + "value": 2110 + }, + { + "row": 5, + "col": 8, + "value": 2329 + }, + { + "row": 5, + "col": 9, + "value": 2811 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2048 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2053 + }, + { + "row": 6, + "col": 6, + "value": 2061 + }, + { + "row": 6, + "col": 7, + "value": 2087 + }, + { + "row": 6, + "col": 8, + "value": 2231 + }, + { + "row": 6, + "col": 9, + "value": 3621 + } + ] + }, + { + "timestamp_ns": 21086078658, + "cursor_x_mm": 99.4, + "cursor_y_mm": 45.13333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2047 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2048 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2052 + }, + { + "row": 0, + "col": 8, + "value": 2053 + }, + { + "row": 0, + "col": 9, + "value": 2055 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2047 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2048 + }, + { + "row": 1, + "col": 4, + "value": 2049 + }, + { + "row": 1, + "col": 5, + "value": 2051 + }, + { + "row": 1, + "col": 6, + "value": 2053 + }, + { + "row": 1, + "col": 7, + "value": 2057 + }, + { + "row": 1, + "col": 8, + "value": 2061 + }, + { + "row": 1, + "col": 9, + "value": 2063 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2049 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2054 + }, + { + "row": 2, + "col": 7, + "value": 2061 + }, + { + "row": 2, + "col": 8, + "value": 2072 + }, + { + "row": 2, + "col": 9, + "value": 2085 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2051 + }, + { + "row": 3, + "col": 5, + "value": 2054 + }, + { + "row": 3, + "col": 6, + "value": 2062 + }, + { + "row": 3, + "col": 7, + "value": 2084 + }, + { + "row": 3, + "col": 8, + "value": 2138 + }, + { + "row": 3, + "col": 9, + "value": 2187 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2053 + }, + { + "row": 4, + "col": 6, + "value": 2060 + }, + { + "row": 4, + "col": 7, + "value": 2082 + }, + { + "row": 4, + "col": 8, + "value": 2179 + }, + { + "row": 4, + "col": 9, + "value": 2708 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2056 + }, + { + "row": 5, + "col": 6, + "value": 2070 + }, + { + "row": 5, + "col": 7, + "value": 2124 + }, + { + "row": 5, + "col": 8, + "value": 2555 + }, + { + "row": 5, + "col": 9, + "value": 4071 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2053 + }, + { + "row": 6, + "col": 6, + "value": 2059 + }, + { + "row": 6, + "col": 7, + "value": 2078 + }, + { + "row": 6, + "col": 8, + "value": 2150 + }, + { + "row": 6, + "col": 9, + "value": 2414 + } + ] + }, + { + "timestamp_ns": 21245961655, + "cursor_x_mm": 98.06666666666666, + "cursor_y_mm": 31.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2053 + }, + { + "row": 0, + "col": 7, + "value": 2057 + }, + { + "row": 0, + "col": 8, + "value": 2063 + }, + { + "row": 0, + "col": 9, + "value": 2068 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2054 + }, + { + "row": 1, + "col": 6, + "value": 2060 + }, + { + "row": 1, + "col": 7, + "value": 2073 + }, + { + "row": 1, + "col": 8, + "value": 2094 + }, + { + "row": 1, + "col": 9, + "value": 2105 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2049 + }, + { + "row": 2, + "col": 4, + "value": 2050 + }, + { + "row": 2, + "col": 5, + "value": 2053 + }, + { + "row": 2, + "col": 6, + "value": 2060 + }, + { + "row": 2, + "col": 7, + "value": 2078 + }, + { + "row": 2, + "col": 8, + "value": 2136 + }, + { + "row": 2, + "col": 9, + "value": 2271 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2050 + }, + { + "row": 3, + "col": 4, + "value": 2052 + }, + { + "row": 3, + "col": 5, + "value": 2057 + }, + { + "row": 3, + "col": 6, + "value": 2072 + }, + { + "row": 3, + "col": 7, + "value": 2132 + }, + { + "row": 3, + "col": 8, + "value": 2574 + }, + { + "row": 3, + "col": 9, + "value": 3600 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2054 + }, + { + "row": 4, + "col": 6, + "value": 2062 + }, + { + "row": 4, + "col": 7, + "value": 2090 + }, + { + "row": 4, + "col": 8, + "value": 2240 + }, + { + "row": 4, + "col": 9, + "value": 3337 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2056 + }, + { + "row": 5, + "col": 6, + "value": 2066 + }, + { + "row": 5, + "col": 7, + "value": 2098 + }, + { + "row": 5, + "col": 8, + "value": 2196 + }, + { + "row": 5, + "col": 9, + "value": 2284 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2052 + }, + { + "row": 6, + "col": 6, + "value": 2056 + }, + { + "row": 6, + "col": 7, + "value": 2065 + }, + { + "row": 6, + "col": 8, + "value": 2082 + }, + { + "row": 6, + "col": 9, + "value": 2102 + } + ] + }, + { + "timestamp_ns": 21406852481, + "cursor_x_mm": 95.66666666666667, + "cursor_y_mm": 21.533333333333335, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2053 + }, + { + "row": 0, + "col": 6, + "value": 2059 + }, + { + "row": 0, + "col": 7, + "value": 2074 + }, + { + "row": 0, + "col": 8, + "value": 2104 + }, + { + "row": 0, + "col": 9, + "value": 2132 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2050 + }, + { + "row": 1, + "col": 4, + "value": 2052 + }, + { + "row": 1, + "col": 5, + "value": 2058 + }, + { + "row": 1, + "col": 6, + "value": 2075 + }, + { + "row": 1, + "col": 7, + "value": 2135 + }, + { + "row": 1, + "col": 8, + "value": 2364 + }, + { + "row": 1, + "col": 9, + "value": 2407 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2049 + }, + { + "row": 2, + "col": 4, + "value": 2051 + }, + { + "row": 2, + "col": 5, + "value": 2055 + }, + { + "row": 2, + "col": 6, + "value": 2067 + }, + { + "row": 2, + "col": 7, + "value": 2112 + }, + { + "row": 2, + "col": 8, + "value": 2438 + }, + { + "row": 2, + "col": 9, + "value": 4058 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2049 + }, + { + "row": 3, + "col": 3, + "value": 2050 + }, + { + "row": 3, + "col": 4, + "value": 2053 + }, + { + "row": 3, + "col": 5, + "value": 2059 + }, + { + "row": 3, + "col": 6, + "value": 2078 + }, + { + "row": 3, + "col": 7, + "value": 2160 + }, + { + "row": 3, + "col": 8, + "value": 2632 + }, + { + "row": 3, + "col": 9, + "value": 2750 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2048 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2051 + }, + { + "row": 4, + "col": 5, + "value": 2054 + }, + { + "row": 4, + "col": 6, + "value": 2061 + }, + { + "row": 4, + "col": 7, + "value": 2081 + }, + { + "row": 4, + "col": 8, + "value": 2131 + }, + { + "row": 4, + "col": 9, + "value": 2192 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2054 + }, + { + "row": 5, + "col": 6, + "value": 2060 + }, + { + "row": 5, + "col": 7, + "value": 2071 + }, + { + "row": 5, + "col": 8, + "value": 2085 + }, + { + "row": 5, + "col": 9, + "value": 2086 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2053 + }, + { + "row": 6, + "col": 7, + "value": 2057 + }, + { + "row": 6, + "col": 8, + "value": 2061 + }, + { + "row": 6, + "col": 9, + "value": 2063 + } + ] + }, + { + "timestamp_ns": 21581869841, + "cursor_x_mm": 95.53333333333333, + "cursor_y_mm": 12.333333333333332, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2055 + }, + { + "row": 0, + "col": 6, + "value": 2065 + }, + { + "row": 0, + "col": 7, + "value": 2099 + }, + { + "row": 0, + "col": 8, + "value": 2260 + }, + { + "row": 0, + "col": 9, + "value": 2704 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2050 + }, + { + "row": 1, + "col": 4, + "value": 2053 + }, + { + "row": 1, + "col": 5, + "value": 2060 + }, + { + "row": 1, + "col": 6, + "value": 2082 + }, + { + "row": 1, + "col": 7, + "value": 2193 + }, + { + "row": 1, + "col": 8, + "value": 3315 + }, + { + "row": 1, + "col": 9, + "value": 3653 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2049 + }, + { + "row": 2, + "col": 4, + "value": 2051 + }, + { + "row": 2, + "col": 5, + "value": 2055 + }, + { + "row": 2, + "col": 6, + "value": 2065 + }, + { + "row": 2, + "col": 7, + "value": 2099 + }, + { + "row": 2, + "col": 8, + "value": 2253 + }, + { + "row": 2, + "col": 9, + "value": 2665 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2050 + }, + { + "row": 3, + "col": 4, + "value": 2052 + }, + { + "row": 3, + "col": 5, + "value": 2056 + }, + { + "row": 3, + "col": 6, + "value": 2067 + }, + { + "row": 3, + "col": 7, + "value": 2093 + }, + { + "row": 3, + "col": 8, + "value": 2140 + }, + { + "row": 3, + "col": 9, + "value": 2146 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2056 + }, + { + "row": 4, + "col": 7, + "value": 2063 + }, + { + "row": 4, + "col": 8, + "value": 2073 + }, + { + "row": 4, + "col": 9, + "value": 2080 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2051 + }, + { + "row": 5, + "col": 6, + "value": 2054 + }, + { + "row": 5, + "col": 7, + "value": 2057 + }, + { + "row": 5, + "col": 8, + "value": 2060 + }, + { + "row": 5, + "col": 9, + "value": 2061 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2051 + }, + { + "row": 6, + "col": 7, + "value": 2052 + }, + { + "row": 6, + "col": 8, + "value": 2053 + }, + { + "row": 6, + "col": 9, + "value": 2054 + } + ] + }, + { + "timestamp_ns": 21739071298, + "cursor_x_mm": 95.8, + "cursor_y_mm": 5.666666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2051 + }, + { + "row": 0, + "col": 5, + "value": 2055 + }, + { + "row": 0, + "col": 6, + "value": 2067 + }, + { + "row": 0, + "col": 7, + "value": 2112 + }, + { + "row": 0, + "col": 8, + "value": 2436 + }, + { + "row": 0, + "col": 9, + "value": 4051 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2049 + }, + { + "row": 1, + "col": 3, + "value": 2050 + }, + { + "row": 1, + "col": 4, + "value": 2053 + }, + { + "row": 1, + "col": 5, + "value": 2059 + }, + { + "row": 1, + "col": 6, + "value": 2078 + }, + { + "row": 1, + "col": 7, + "value": 2161 + }, + { + "row": 1, + "col": 8, + "value": 2645 + }, + { + "row": 1, + "col": 9, + "value": 2767 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2048 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2049 + }, + { + "row": 2, + "col": 4, + "value": 2051 + }, + { + "row": 2, + "col": 5, + "value": 2054 + }, + { + "row": 2, + "col": 6, + "value": 2061 + }, + { + "row": 2, + "col": 7, + "value": 2081 + }, + { + "row": 2, + "col": 8, + "value": 2133 + }, + { + "row": 2, + "col": 9, + "value": 2195 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2051 + }, + { + "row": 3, + "col": 5, + "value": 2054 + }, + { + "row": 3, + "col": 6, + "value": 2060 + }, + { + "row": 3, + "col": 7, + "value": 2071 + }, + { + "row": 3, + "col": 8, + "value": 2085 + }, + { + "row": 3, + "col": 9, + "value": 2086 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2048 + }, + { + "row": 4, + "col": 4, + "value": 2049 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2053 + }, + { + "row": 4, + "col": 7, + "value": 2057 + }, + { + "row": 4, + "col": 8, + "value": 2061 + }, + { + "row": 4, + "col": 9, + "value": 2063 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2047 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2048 + }, + { + "row": 5, + "col": 4, + "value": 2049 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2052 + }, + { + "row": 5, + "col": 7, + "value": 2053 + }, + { + "row": 5, + "col": 8, + "value": 2055 + }, + { + "row": 5, + "col": 9, + "value": 2055 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2047 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2048 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 21914965325, + "cursor_x_mm": 99.66666666666667, + "cursor_y_mm": 3.533333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2048 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2054 + }, + { + "row": 0, + "col": 6, + "value": 2062 + }, + { + "row": 0, + "col": 7, + "value": 2091 + }, + { + "row": 0, + "col": 8, + "value": 2255 + }, + { + "row": 0, + "col": 9, + "value": 3748 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2056 + }, + { + "row": 1, + "col": 6, + "value": 2068 + }, + { + "row": 1, + "col": 7, + "value": 2109 + }, + { + "row": 1, + "col": 8, + "value": 2282 + }, + { + "row": 1, + "col": 9, + "value": 2521 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2049 + }, + { + "row": 2, + "col": 4, + "value": 2050 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2057 + }, + { + "row": 2, + "col": 7, + "value": 2069 + }, + { + "row": 2, + "col": 8, + "value": 2095 + }, + { + "row": 2, + "col": 9, + "value": 2133 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2050 + }, + { + "row": 3, + "col": 5, + "value": 2052 + }, + { + "row": 3, + "col": 6, + "value": 2056 + }, + { + "row": 3, + "col": 7, + "value": 2063 + }, + { + "row": 3, + "col": 8, + "value": 2072 + }, + { + "row": 3, + "col": 9, + "value": 2076 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2048 + }, + { + "row": 4, + "col": 4, + "value": 2049 + }, + { + "row": 4, + "col": 5, + "value": 2050 + }, + { + "row": 4, + "col": 6, + "value": 2052 + }, + { + "row": 4, + "col": 7, + "value": 2054 + }, + { + "row": 4, + "col": 8, + "value": 2057 + }, + { + "row": 4, + "col": 9, + "value": 2059 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2047 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2048 + }, + { + "row": 5, + "col": 4, + "value": 2049 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2051 + }, + { + "row": 5, + "col": 7, + "value": 2052 + }, + { + "row": 5, + "col": 8, + "value": 2053 + }, + { + "row": 5, + "col": 9, + "value": 2053 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2047 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2048 + }, + { + "row": 6, + "col": 5, + "value": 2048 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2051 + } + ] + }, + { + "timestamp_ns": 22073312762, + "cursor_x_mm": 101.13333333333334, + "cursor_y_mm": 4.866666666666666, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2049 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2053 + }, + { + "row": 0, + "col": 6, + "value": 2059 + }, + { + "row": 0, + "col": 7, + "value": 2080 + }, + { + "row": 0, + "col": 8, + "value": 2183 + }, + { + "row": 0, + "col": 9, + "value": 3195 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2055 + }, + { + "row": 1, + "col": 6, + "value": 2064 + }, + { + "row": 1, + "col": 7, + "value": 2094 + }, + { + "row": 1, + "col": 8, + "value": 2216 + }, + { + "row": 1, + "col": 9, + "value": 2510 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2049 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2056 + }, + { + "row": 2, + "col": 7, + "value": 2065 + }, + { + "row": 2, + "col": 8, + "value": 2087 + }, + { + "row": 2, + "col": 9, + "value": 2124 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2047 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2050 + }, + { + "row": 3, + "col": 5, + "value": 2052 + }, + { + "row": 3, + "col": 6, + "value": 2055 + }, + { + "row": 3, + "col": 7, + "value": 2061 + }, + { + "row": 3, + "col": 8, + "value": 2070 + }, + { + "row": 3, + "col": 9, + "value": 2076 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2048 + }, + { + "row": 4, + "col": 4, + "value": 2049 + }, + { + "row": 4, + "col": 5, + "value": 2050 + }, + { + "row": 4, + "col": 6, + "value": 2051 + }, + { + "row": 4, + "col": 7, + "value": 2053 + }, + { + "row": 4, + "col": 8, + "value": 2056 + }, + { + "row": 4, + "col": 9, + "value": 2059 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2047 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2048 + }, + { + "row": 5, + "col": 4, + "value": 2048 + }, + { + "row": 5, + "col": 5, + "value": 2049 + }, + { + "row": 5, + "col": 6, + "value": 2050 + }, + { + "row": 5, + "col": 7, + "value": 2052 + }, + { + "row": 5, + "col": 8, + "value": 2053 + }, + { + "row": 5, + "col": 9, + "value": 2053 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2047 + }, + { + "row": 6, + "col": 3, + "value": 2047 + }, + { + "row": 6, + "col": 4, + "value": 2048 + }, + { + "row": 6, + "col": 5, + "value": 2048 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2049 + }, + { + "row": 6, + "col": 8, + "value": 2050 + }, + { + "row": 6, + "col": 9, + "value": 2050 + } + ] + }, + { + "timestamp_ns": 22216721981, + "cursor_x_mm": 102.06666666666666, + "cursor_y_mm": 11.533333333333333, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2052 + }, + { + "row": 0, + "col": 6, + "value": 2058 + }, + { + "row": 0, + "col": 7, + "value": 2075 + }, + { + "row": 0, + "col": 8, + "value": 2148 + }, + { + "row": 0, + "col": 9, + "value": 2671 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2055 + }, + { + "row": 1, + "col": 6, + "value": 2064 + }, + { + "row": 1, + "col": 7, + "value": 2100 + }, + { + "row": 1, + "col": 8, + "value": 2313 + }, + { + "row": 1, + "col": 9, + "value": 3724 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2050 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2057 + }, + { + "row": 2, + "col": 7, + "value": 2070 + }, + { + "row": 2, + "col": 8, + "value": 2111 + }, + { + "row": 2, + "col": 9, + "value": 2245 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2047 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2050 + }, + { + "row": 3, + "col": 5, + "value": 2052 + }, + { + "row": 3, + "col": 6, + "value": 2057 + }, + { + "row": 3, + "col": 7, + "value": 2068 + }, + { + "row": 3, + "col": 8, + "value": 2089 + }, + { + "row": 3, + "col": 9, + "value": 2111 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2048 + }, + { + "row": 4, + "col": 4, + "value": 2049 + }, + { + "row": 4, + "col": 5, + "value": 2050 + }, + { + "row": 4, + "col": 6, + "value": 2052 + }, + { + "row": 4, + "col": 7, + "value": 2056 + }, + { + "row": 4, + "col": 8, + "value": 2062 + }, + { + "row": 4, + "col": 9, + "value": 2068 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2047 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2048 + }, + { + "row": 5, + "col": 4, + "value": 2049 + }, + { + "row": 5, + "col": 5, + "value": 2050 + }, + { + "row": 5, + "col": 6, + "value": 2051 + }, + { + "row": 5, + "col": 7, + "value": 2054 + }, + { + "row": 5, + "col": 8, + "value": 2056 + }, + { + "row": 5, + "col": 9, + "value": 2057 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2047 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2048 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2049 + }, + { + "row": 6, + "col": 7, + "value": 2050 + }, + { + "row": 6, + "col": 8, + "value": 2051 + }, + { + "row": 6, + "col": 9, + "value": 2052 + } + ] + }, + { + "timestamp_ns": 22389719455, + "cursor_x_mm": 102.33333333333333, + "cursor_y_mm": 17.933333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2050 + }, + { + "row": 0, + "col": 5, + "value": 2052 + }, + { + "row": 0, + "col": 6, + "value": 2057 + }, + { + "row": 0, + "col": 7, + "value": 2069 + }, + { + "row": 0, + "col": 8, + "value": 2109 + }, + { + "row": 0, + "col": 9, + "value": 2244 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2054 + }, + { + "row": 1, + "col": 6, + "value": 2064 + }, + { + "row": 1, + "col": 7, + "value": 2098 + }, + { + "row": 1, + "col": 8, + "value": 2301 + }, + { + "row": 1, + "col": 9, + "value": 3714 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2050 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2058 + }, + { + "row": 2, + "col": 7, + "value": 2074 + }, + { + "row": 2, + "col": 8, + "value": 2143 + }, + { + "row": 2, + "col": 9, + "value": 2630 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2050 + }, + { + "row": 3, + "col": 5, + "value": 2053 + }, + { + "row": 3, + "col": 6, + "value": 2060 + }, + { + "row": 3, + "col": 7, + "value": 2079 + }, + { + "row": 3, + "col": 8, + "value": 2136 + }, + { + "row": 3, + "col": 9, + "value": 2240 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2048 + }, + { + "row": 4, + "col": 4, + "value": 2049 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2054 + }, + { + "row": 4, + "col": 7, + "value": 2060 + }, + { + "row": 4, + "col": 8, + "value": 2072 + }, + { + "row": 4, + "col": 9, + "value": 2091 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2047 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2048 + }, + { + "row": 5, + "col": 4, + "value": 2049 + }, + { + "row": 5, + "col": 5, + "value": 2051 + }, + { + "row": 5, + "col": 6, + "value": 2053 + }, + { + "row": 5, + "col": 7, + "value": 2057 + }, + { + "row": 5, + "col": 8, + "value": 2062 + }, + { + "row": 5, + "col": 9, + "value": 2066 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2047 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2048 + }, + { + "row": 6, + "col": 5, + "value": 2049 + }, + { + "row": 6, + "col": 6, + "value": 2050 + }, + { + "row": 6, + "col": 7, + "value": 2052 + }, + { + "row": 6, + "col": 8, + "value": 2054 + }, + { + "row": 6, + "col": 9, + "value": 2056 + } + ] + }, + { + "timestamp_ns": 22547958755, + "cursor_x_mm": 102.33333333333333, + "cursor_y_mm": 24.733333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2051 + }, + { + "row": 0, + "col": 6, + "value": 2055 + }, + { + "row": 0, + "col": 7, + "value": 2063 + }, + { + "row": 0, + "col": 8, + "value": 2083 + }, + { + "row": 0, + "col": 9, + "value": 2118 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2051 + }, + { + "row": 1, + "col": 5, + "value": 2054 + }, + { + "row": 1, + "col": 6, + "value": 2062 + }, + { + "row": 1, + "col": 7, + "value": 2087 + }, + { + "row": 1, + "col": 8, + "value": 2188 + }, + { + "row": 1, + "col": 9, + "value": 2476 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2050 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2058 + }, + { + "row": 2, + "col": 7, + "value": 2076 + }, + { + "row": 2, + "col": 8, + "value": 2158 + }, + { + "row": 2, + "col": 9, + "value": 2922 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2051 + }, + { + "row": 3, + "col": 5, + "value": 2054 + }, + { + "row": 3, + "col": 6, + "value": 2063 + }, + { + "row": 3, + "col": 7, + "value": 2093 + }, + { + "row": 3, + "col": 8, + "value": 2240 + }, + { + "row": 3, + "col": 9, + "value": 2889 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2048 + }, + { + "row": 4, + "col": 4, + "value": 2049 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2056 + }, + { + "row": 4, + "col": 7, + "value": 2066 + }, + { + "row": 4, + "col": 8, + "value": 2093 + }, + { + "row": 4, + "col": 9, + "value": 2156 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2047 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2052 + }, + { + "row": 5, + "col": 6, + "value": 2056 + }, + { + "row": 5, + "col": 7, + "value": 2063 + }, + { + "row": 5, + "col": 8, + "value": 2076 + }, + { + "row": 5, + "col": 9, + "value": 2086 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2051 + }, + { + "row": 6, + "col": 7, + "value": 2054 + }, + { + "row": 6, + "col": 8, + "value": 2058 + }, + { + "row": 6, + "col": 9, + "value": 2062 + } + ] + }, + { + "timestamp_ns": 22707437936, + "cursor_x_mm": 101.93333333333334, + "cursor_y_mm": 31.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2053 + }, + { + "row": 0, + "col": 7, + "value": 2059 + }, + { + "row": 0, + "col": 8, + "value": 2069 + }, + { + "row": 0, + "col": 9, + "value": 2083 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2048 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2050 + }, + { + "row": 1, + "col": 5, + "value": 2053 + }, + { + "row": 1, + "col": 6, + "value": 2059 + }, + { + "row": 1, + "col": 7, + "value": 2076 + }, + { + "row": 1, + "col": 8, + "value": 2120 + }, + { + "row": 1, + "col": 9, + "value": 2190 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2050 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2057 + }, + { + "row": 2, + "col": 7, + "value": 2073 + }, + { + "row": 2, + "col": 8, + "value": 2134 + }, + { + "row": 2, + "col": 9, + "value": 2494 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2051 + }, + { + "row": 3, + "col": 5, + "value": 2054 + }, + { + "row": 3, + "col": 6, + "value": 2064 + }, + { + "row": 3, + "col": 7, + "value": 2098 + }, + { + "row": 3, + "col": 8, + "value": 2312 + }, + { + "row": 3, + "col": 9, + "value": 3923 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2048 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2057 + }, + { + "row": 4, + "col": 7, + "value": 2070 + }, + { + "row": 4, + "col": 8, + "value": 2116 + }, + { + "row": 4, + "col": 9, + "value": 2301 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2053 + }, + { + "row": 5, + "col": 6, + "value": 2058 + }, + { + "row": 5, + "col": 7, + "value": 2070 + }, + { + "row": 5, + "col": 8, + "value": 2097 + }, + { + "row": 5, + "col": 9, + "value": 2129 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2050 + }, + { + "row": 6, + "col": 6, + "value": 2052 + }, + { + "row": 6, + "col": 7, + "value": 2057 + }, + { + "row": 6, + "col": 8, + "value": 2064 + }, + { + "row": 6, + "col": 9, + "value": 2072 + } + ] + }, + { + "timestamp_ns": 22865640943, + "cursor_x_mm": 101.53333333333333, + "cursor_y_mm": 40.6, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2048 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2049 + }, + { + "row": 0, + "col": 5, + "value": 2050 + }, + { + "row": 0, + "col": 6, + "value": 2052 + }, + { + "row": 0, + "col": 7, + "value": 2054 + }, + { + "row": 0, + "col": 8, + "value": 2058 + }, + { + "row": 0, + "col": 9, + "value": 2062 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2047 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2049 + }, + { + "row": 1, + "col": 4, + "value": 2050 + }, + { + "row": 1, + "col": 5, + "value": 2052 + }, + { + "row": 1, + "col": 6, + "value": 2056 + }, + { + "row": 1, + "col": 7, + "value": 2064 + }, + { + "row": 1, + "col": 8, + "value": 2077 + }, + { + "row": 1, + "col": 9, + "value": 2087 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2049 + }, + { + "row": 2, + "col": 5, + "value": 2052 + }, + { + "row": 2, + "col": 6, + "value": 2056 + }, + { + "row": 2, + "col": 7, + "value": 2067 + }, + { + "row": 2, + "col": 8, + "value": 2096 + }, + { + "row": 2, + "col": 9, + "value": 2162 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2051 + }, + { + "row": 3, + "col": 5, + "value": 2055 + }, + { + "row": 3, + "col": 6, + "value": 2064 + }, + { + "row": 3, + "col": 7, + "value": 2097 + }, + { + "row": 3, + "col": 8, + "value": 2265 + }, + { + "row": 3, + "col": 9, + "value": 2942 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2059 + }, + { + "row": 4, + "col": 7, + "value": 2078 + }, + { + "row": 4, + "col": 8, + "value": 2171 + }, + { + "row": 4, + "col": 9, + "value": 3058 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2054 + }, + { + "row": 5, + "col": 6, + "value": 2063 + }, + { + "row": 5, + "col": 7, + "value": 2090 + }, + { + "row": 5, + "col": 8, + "value": 2200 + }, + { + "row": 5, + "col": 9, + "value": 2479 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2049 + }, + { + "row": 6, + "col": 5, + "value": 2051 + }, + { + "row": 6, + "col": 6, + "value": 2055 + }, + { + "row": 6, + "col": 7, + "value": 2064 + }, + { + "row": 6, + "col": 8, + "value": 2084 + }, + { + "row": 6, + "col": 9, + "value": 2120 + } + ] + }, + { + "timestamp_ns": 23008245889, + "cursor_x_mm": 101.53333333333333, + "cursor_y_mm": 46.733333333333334, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2047 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2048 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2050 + }, + { + "row": 0, + "col": 7, + "value": 2052 + }, + { + "row": 0, + "col": 8, + "value": 2054 + }, + { + "row": 0, + "col": 9, + "value": 2055 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2047 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2048 + }, + { + "row": 1, + "col": 4, + "value": 2049 + }, + { + "row": 1, + "col": 5, + "value": 2051 + }, + { + "row": 1, + "col": 6, + "value": 2053 + }, + { + "row": 1, + "col": 7, + "value": 2057 + }, + { + "row": 1, + "col": 8, + "value": 2062 + }, + { + "row": 1, + "col": 9, + "value": 2065 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2049 + }, + { + "row": 2, + "col": 5, + "value": 2051 + }, + { + "row": 2, + "col": 6, + "value": 2054 + }, + { + "row": 2, + "col": 7, + "value": 2060 + }, + { + "row": 2, + "col": 8, + "value": 2073 + }, + { + "row": 2, + "col": 9, + "value": 2090 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2050 + }, + { + "row": 3, + "col": 5, + "value": 2054 + }, + { + "row": 3, + "col": 6, + "value": 2061 + }, + { + "row": 3, + "col": 7, + "value": 2081 + }, + { + "row": 3, + "col": 8, + "value": 2140 + }, + { + "row": 3, + "col": 9, + "value": 2233 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2049 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2058 + }, + { + "row": 4, + "col": 7, + "value": 2076 + }, + { + "row": 4, + "col": 8, + "value": 2154 + }, + { + "row": 4, + "col": 9, + "value": 2694 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2055 + }, + { + "row": 5, + "col": 6, + "value": 2065 + }, + { + "row": 5, + "col": 7, + "value": 2104 + }, + { + "row": 5, + "col": 8, + "value": 2351 + }, + { + "row": 5, + "col": 9, + "value": 3855 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2052 + }, + { + "row": 6, + "col": 6, + "value": 2057 + }, + { + "row": 6, + "col": 7, + "value": 2071 + }, + { + "row": 6, + "col": 8, + "value": 2117 + }, + { + "row": 6, + "col": 9, + "value": 2271 + } + ] + }, + { + "timestamp_ns": 23168827918, + "cursor_x_mm": 101.8, + "cursor_y_mm": 52.86666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2047 + }, + { + "row": 0, + "col": 3, + "value": 2048 + }, + { + "row": 0, + "col": 4, + "value": 2048 + }, + { + "row": 0, + "col": 5, + "value": 2049 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2051 + }, + { + "row": 0, + "col": 8, + "value": 2052 + }, + { + "row": 0, + "col": 9, + "value": 2053 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2047 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2048 + }, + { + "row": 1, + "col": 4, + "value": 2049 + }, + { + "row": 1, + "col": 5, + "value": 2050 + }, + { + "row": 1, + "col": 6, + "value": 2052 + }, + { + "row": 1, + "col": 7, + "value": 2054 + }, + { + "row": 1, + "col": 8, + "value": 2057 + }, + { + "row": 1, + "col": 9, + "value": 2058 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2048 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2049 + }, + { + "row": 2, + "col": 5, + "value": 2050 + }, + { + "row": 2, + "col": 6, + "value": 2052 + }, + { + "row": 2, + "col": 7, + "value": 2056 + }, + { + "row": 2, + "col": 8, + "value": 2063 + }, + { + "row": 2, + "col": 9, + "value": 2070 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2048 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2049 + }, + { + "row": 3, + "col": 4, + "value": 2050 + }, + { + "row": 3, + "col": 5, + "value": 2053 + }, + { + "row": 3, + "col": 6, + "value": 2058 + }, + { + "row": 3, + "col": 7, + "value": 2070 + }, + { + "row": 3, + "col": 8, + "value": 2094 + }, + { + "row": 3, + "col": 9, + "value": 2119 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2048 + }, + { + "row": 4, + "col": 4, + "value": 2050 + }, + { + "row": 4, + "col": 5, + "value": 2052 + }, + { + "row": 4, + "col": 6, + "value": 2057 + }, + { + "row": 4, + "col": 7, + "value": 2071 + }, + { + "row": 4, + "col": 8, + "value": 2117 + }, + { + "row": 4, + "col": 9, + "value": 2278 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2055 + }, + { + "row": 5, + "col": 6, + "value": 2065 + }, + { + "row": 5, + "col": 7, + "value": 2102 + }, + { + "row": 5, + "col": 8, + "value": 2340 + }, + { + "row": 5, + "col": 9, + "value": 3883 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2049 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2052 + }, + { + "row": 6, + "col": 6, + "value": 2058 + }, + { + "row": 6, + "col": 7, + "value": 2075 + }, + { + "row": 6, + "col": 8, + "value": 2148 + }, + { + "row": 6, + "col": 9, + "value": 2632 + } + ] + }, + { + "timestamp_ns": 23342012453, + "cursor_x_mm": 102.33333333333333, + "cursor_y_mm": 58.06666666666667, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2047 + }, + { + "row": 0, + "col": 3, + "value": 2047 + }, + { + "row": 0, + "col": 4, + "value": 2048 + }, + { + "row": 0, + "col": 5, + "value": 2048 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2051 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2047 + }, + { + "row": 1, + "col": 2, + "value": 2048 + }, + { + "row": 1, + "col": 3, + "value": 2048 + }, + { + "row": 1, + "col": 4, + "value": 2048 + }, + { + "row": 1, + "col": 5, + "value": 2049 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2052 + }, + { + "row": 1, + "col": 8, + "value": 2053 + }, + { + "row": 1, + "col": 9, + "value": 2054 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2047 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2048 + }, + { + "row": 2, + "col": 5, + "value": 2049 + }, + { + "row": 2, + "col": 6, + "value": 2051 + }, + { + "row": 2, + "col": 7, + "value": 2053 + }, + { + "row": 2, + "col": 8, + "value": 2057 + }, + { + "row": 2, + "col": 9, + "value": 2060 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2047 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2048 + }, + { + "row": 3, + "col": 4, + "value": 2050 + }, + { + "row": 3, + "col": 5, + "value": 2051 + }, + { + "row": 3, + "col": 6, + "value": 2055 + }, + { + "row": 3, + "col": 7, + "value": 2061 + }, + { + "row": 3, + "col": 8, + "value": 2071 + }, + { + "row": 3, + "col": 9, + "value": 2079 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2048 + }, + { + "row": 4, + "col": 4, + "value": 2049 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2055 + }, + { + "row": 4, + "col": 7, + "value": 2064 + }, + { + "row": 4, + "col": 8, + "value": 2085 + }, + { + "row": 4, + "col": 9, + "value": 2129 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2051 + }, + { + "row": 5, + "col": 5, + "value": 2054 + }, + { + "row": 5, + "col": 6, + "value": 2062 + }, + { + "row": 5, + "col": 7, + "value": 2089 + }, + { + "row": 5, + "col": 8, + "value": 2202 + }, + { + "row": 5, + "col": 9, + "value": 2586 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2052 + }, + { + "row": 6, + "col": 6, + "value": 2058 + }, + { + "row": 6, + "col": 7, + "value": 2076 + }, + { + "row": 6, + "col": 8, + "value": 2157 + }, + { + "row": 6, + "col": 9, + "value": 2922 + } + ] + }, + { + "timestamp_ns": 23453075967, + "cursor_x_mm": 102.6, + "cursor_y_mm": 59.8, + "sensors": [ + { + "row": 0, + "col": 0, + "value": 2047 + }, + { + "row": 0, + "col": 1, + "value": 2047 + }, + { + "row": 0, + "col": 2, + "value": 2047 + }, + { + "row": 0, + "col": 3, + "value": 2047 + }, + { + "row": 0, + "col": 4, + "value": 2048 + }, + { + "row": 0, + "col": 5, + "value": 2048 + }, + { + "row": 0, + "col": 6, + "value": 2049 + }, + { + "row": 0, + "col": 7, + "value": 2049 + }, + { + "row": 0, + "col": 8, + "value": 2050 + }, + { + "row": 0, + "col": 9, + "value": 2050 + }, + { + "row": 1, + "col": 0, + "value": 2047 + }, + { + "row": 1, + "col": 1, + "value": 2047 + }, + { + "row": 1, + "col": 2, + "value": 2047 + }, + { + "row": 1, + "col": 3, + "value": 2048 + }, + { + "row": 1, + "col": 4, + "value": 2048 + }, + { + "row": 1, + "col": 5, + "value": 2049 + }, + { + "row": 1, + "col": 6, + "value": 2050 + }, + { + "row": 1, + "col": 7, + "value": 2051 + }, + { + "row": 1, + "col": 8, + "value": 2052 + }, + { + "row": 1, + "col": 9, + "value": 2053 + }, + { + "row": 2, + "col": 0, + "value": 2047 + }, + { + "row": 2, + "col": 1, + "value": 2047 + }, + { + "row": 2, + "col": 2, + "value": 2047 + }, + { + "row": 2, + "col": 3, + "value": 2048 + }, + { + "row": 2, + "col": 4, + "value": 2048 + }, + { + "row": 2, + "col": 5, + "value": 2049 + }, + { + "row": 2, + "col": 6, + "value": 2051 + }, + { + "row": 2, + "col": 7, + "value": 2053 + }, + { + "row": 2, + "col": 8, + "value": 2055 + }, + { + "row": 2, + "col": 9, + "value": 2058 + }, + { + "row": 3, + "col": 0, + "value": 2047 + }, + { + "row": 3, + "col": 1, + "value": 2047 + }, + { + "row": 3, + "col": 2, + "value": 2048 + }, + { + "row": 3, + "col": 3, + "value": 2048 + }, + { + "row": 3, + "col": 4, + "value": 2049 + }, + { + "row": 3, + "col": 5, + "value": 2051 + }, + { + "row": 3, + "col": 6, + "value": 2054 + }, + { + "row": 3, + "col": 7, + "value": 2059 + }, + { + "row": 3, + "col": 8, + "value": 2067 + }, + { + "row": 3, + "col": 9, + "value": 2073 + }, + { + "row": 4, + "col": 0, + "value": 2047 + }, + { + "row": 4, + "col": 1, + "value": 2047 + }, + { + "row": 4, + "col": 2, + "value": 2048 + }, + { + "row": 4, + "col": 3, + "value": 2048 + }, + { + "row": 4, + "col": 4, + "value": 2049 + }, + { + "row": 4, + "col": 5, + "value": 2051 + }, + { + "row": 4, + "col": 6, + "value": 2054 + }, + { + "row": 4, + "col": 7, + "value": 2062 + }, + { + "row": 4, + "col": 8, + "value": 2079 + }, + { + "row": 4, + "col": 9, + "value": 2110 + }, + { + "row": 5, + "col": 0, + "value": 2047 + }, + { + "row": 5, + "col": 1, + "value": 2048 + }, + { + "row": 5, + "col": 2, + "value": 2048 + }, + { + "row": 5, + "col": 3, + "value": 2049 + }, + { + "row": 5, + "col": 4, + "value": 2050 + }, + { + "row": 5, + "col": 5, + "value": 2054 + }, + { + "row": 5, + "col": 6, + "value": 2061 + }, + { + "row": 5, + "col": 7, + "value": 2084 + }, + { + "row": 5, + "col": 8, + "value": 2169 + }, + { + "row": 5, + "col": 9, + "value": 2398 + }, + { + "row": 6, + "col": 0, + "value": 2047 + }, + { + "row": 6, + "col": 1, + "value": 2047 + }, + { + "row": 6, + "col": 2, + "value": 2048 + }, + { + "row": 6, + "col": 3, + "value": 2048 + }, + { + "row": 6, + "col": 4, + "value": 2050 + }, + { + "row": 6, + "col": 5, + "value": 2052 + }, + { + "row": 6, + "col": 6, + "value": 2058 + }, + { + "row": 6, + "col": 7, + "value": 2075 + }, + { + "row": 6, + "col": 8, + "value": 2150 + }, + { + "row": 6, + "col": 9, + "value": 2808 + } + ] + } + ] +} \ No newline at end of file diff --git a/positioning/analyzer/grid.py b/positioning/analyzer/grid.py new file mode 100644 index 0000000..c74004c --- /dev/null +++ b/positioning/analyzer/grid.py @@ -0,0 +1,232 @@ +"""Grid classes for sensor layouts.""" + +import math +from abc import ABC, abstractmethod +from typing import Tuple, Dict, Optional, Type, List + + +class Sensor: + """Represents a single Hall effect sensor with position and reading.""" + + def __init__(self, row: int = 0, col: int = 0, x_mm: float = 0, y_mm: float = 0): + self.row = row + self.col = col + self.x = x_mm + self.y = y_mm + self.value = 0.0 + + def distance_to(self, x: float, y: float) -> float: + """Calculate Euclidean distance to a point.""" + dx = self.x - x + dy = self.y - y + return math.sqrt(dx * dx + dy * dy) + + +class BaseGrid(ABC): + """Base class for all grid types.""" + + def __init__(self, metadata: dict): + """Initialize base grid attributes.""" + self.metadata = metadata + self.actual_cursor_position: Optional[Tuple[float, float]] = None + self.sensors: List[Sensor] = [] + + @property + @abstractmethod + def grid_type_name(self) -> str: + """Return the grid type identifier used in JSON metadata.""" + pass + + @property + @abstractmethod + def display_name(self) -> str: + """Return the display name of the grid type.""" + pass + + @property + def description(self) -> str: + """Return a description of the grid type (optional).""" + return "" + + @abstractmethod + def _build_grid(self): + """Build the grid of sensors.""" + pass + + @abstractmethod + def update_data(self, data: dict): + """Update sensor values from data point.""" + pass + + @abstractmethod + def describe(self): + """Print grid information.""" + pass + + +class GridRegistry: + """Registry for automatic grid type discovery.""" + + _grids: Dict[str, Type[BaseGrid]] = {} + + @classmethod + def register(cls, grid_type_name: str): + """Decorator to register a grid class. + + Args: + grid_type_name: The grid type identifier (from JSON metadata) + """ + + def decorator(grid_class: Type[BaseGrid]): + if not issubclass(grid_class, BaseGrid): + raise TypeError(f"{grid_class} must inherit from BaseGrid") + cls._grids[grid_type_name] = grid_class + return grid_class + + return decorator + + @classmethod + def get_grid_class(cls, grid_type_name: str) -> Type[BaseGrid]: + """Get grid class by type name.""" + if grid_type_name not in cls._grids: + raise ValueError(f"Unknown grid type: {grid_type_name}") + return cls._grids[grid_type_name] + + @classmethod + def get_all_grids(cls) -> Dict[str, Type[BaseGrid]]: + """Get all registered grid types.""" + return dict(cls._grids) + + @classmethod + def list_types(cls) -> List[str]: + """List all registered grid type names.""" + return list(cls._grids.keys()) + + @classmethod + def create_grid(cls, metadata: dict) -> BaseGrid: + """Factory method to create appropriate grid from metadata.""" + grid_type = metadata.get("grid_type") + if not grid_type: + raise ValueError("Missing 'grid_type' in metadata") + + grid_class = cls.get_grid_class(grid_type) + return grid_class(metadata) + + +@GridRegistry.register("hexagonal") +class HexagonalGrid(BaseGrid): + """Hexagonal sensor grid layout with offset rows.""" + """ + Example: + ( )( )( )( )( )( )( )( )( )( ) + ( )( )( )( )( )( )( )( )( )( ) + ( )( )( )( )( )( )( )( )( )( ) + ( )( )( )( )( )( )( )( )( )( ) + ( )( )( )( )( )( )( )( )( )( ) + ( )( )( )( )( )( )( )( )( )( ) + ( )( )( )( )( )( )( )( )( )( ) + """ + + @property + def grid_type_name(self) -> str: + return "hexagonal" + + @property + def display_name(self) -> str: + return "Hexagonal Grid" + + @property + def description(self) -> str: + return "Hexagonal layout with alternating row offsets" + + def __init__(self, metadata: dict): + super().__init__(metadata) + self.rows = metadata["grid_rows"] + self.cols = metadata["grid_cols"] + self.spacing = metadata["sensor_spacing_mm"] + + self._build_grid() + self.sensor_map: Dict[Tuple[int, int], Sensor] = { + (s.row, s.col): s for s in self.sensors + } + + def get_sensor(self, row: int, col: int) -> Optional[Sensor]: + """Get sensor at specific row and column.""" + return self.sensor_map.get((row, col)) + + def _build_grid(self): + """Build the hexagonal grid of sensors.""" + self.sensors = [] + + for row in range(self.rows): + for col in range(self.cols): + sensor_radius = self.spacing / 2 + + # Hexagonal layout: even rows are offset + if row % 2 == 0: + sensor_x = sensor_radius + self.spacing * col + else: + sensor_x = self.spacing * (col + 1) + + sensor_y = sensor_radius + row * self.spacing * (math.sqrt(3) / 2) + + sensor = Sensor(row, col, sensor_x, sensor_y) + self.sensors.append(sensor) + + def update_data(self, data: dict): + """Update sensor values from data point.""" + self.actual_cursor_position = (data["cursor_x_mm"], data["cursor_y_mm"]) + + for sensor_data in data["sensors"]: + sensor_row = sensor_data["row"] + sensor_col = sensor_data["col"] + + sensor = self.get_sensor(sensor_row, sensor_col) + if sensor: + sensor.value = sensor_data["value"] + + def describe(self): + """Print grid information.""" + grid_type = self.metadata["grid_type"] + grid_size = f"{self.metadata['grid_rows']}x{self.metadata['grid_cols']}" + spacing = self.metadata["sensor_spacing_mm"] + print(f"Grid data: grid_type={grid_type} | {grid_size} | spacing: {spacing}mm") + + +@GridRegistry.register("square") +class SquareGrid(BaseGrid): + """Square sensor grid layout (not yet implemented).""" + """ + Example: + ( )( )( )( )( )( )( )( )( )( ) + ( )( )( )( )( )( )( )( )( )( ) + ( )( )( )( )( )( )( )( )( )( ) + ( )( )( )( )( )( )( )( )( )( ) + ( )( )( )( )( )( )( )( )( )( ) + ( )( )( )( )( )( )( )( )( )( ) + ( )( )( )( )( )( )( )( )( )( ) + """ + + @property + def grid_type_name(self) -> str: + return "square" + + @property + def display_name(self) -> str: + return "Square Grid" + + @property + def description(self) -> str: + return "Square/rectangular layout (not yet implemented)" + + def __init__(self, metadata: dict): + raise NotImplementedError("SquareGrid is not yet implemented") + + def _build_grid(self): + raise NotImplementedError("SquareGrid is not yet implemented") + + def update_data(self, data: dict): + raise NotImplementedError("SquareGrid is not yet implemented") + + def describe(self): + raise NotImplementedError("SquareGrid is not yet implemented") diff --git a/positioning/analyzer/report.py b/positioning/analyzer/report.py new file mode 100644 index 0000000..fed4151 --- /dev/null +++ b/positioning/analyzer/report.py @@ -0,0 +1,275 @@ +"""Analysis reporting and metrics.""" + +import math +from dataclasses import dataclass +from typing import List, Optional + +import numpy as np +from prettytable import PrettyTable + + +@dataclass +class AccuracySummary: + """Summary of algorithm accuracy metrics.""" + + n: int + total_points: int + + mae: float + median: float + rms: float + p90: float + p95: float + p99: float + min_error: float + max_error: float + + mean_bias_x: float + mean_bias_y: float + rms_x: float + rms_y: float + + failure_rate: float # Percentage above threshold + score: float # Overall algorithm score (0-100) + + METRIC_MAP = { + "n": ("N", lambda s: s.n), + "mae": ("MAE", lambda s: f"{s.mae:.2f}"), + "median": ("Median (P50)", lambda s: f"{s.median:.2f}"), + "rms": ("RMS", lambda s: f"{s.rms:.2f}"), + "p90": ("P90", lambda s: f"{s.p90:.2f}"), + "p95": ("P95", lambda s: f"{s.p95:.2f}"), + "p99": ("P99", lambda s: f"{s.p99:.2f}"), + "max": ("Max", lambda s: f"{s.max_error:.2f}"), + "fail": ("Fail%", lambda s: f"{s.failure_rate:.1f}%"), + "bias_x": ("BiasX", lambda s: f"{s.mean_bias_x:.2f}"), + "bias_y": ("BiasY", lambda s: f"{s.mean_bias_y:.2f}"), + "score": ("Score", lambda s: f"{s.score:.1f}"), + } + + def as_row( + self, name: str = "", dataset: str = "", metrics: Optional[List[str]] = None + ) -> List: + """Convert summary to a table row.""" + if metrics is None: + metrics = ["n", "mae", "median", "rms", "p95", "max", "fail", "score"] + + row = [name, dataset] + for metric in metrics: + _, getter = self.METRIC_MAP[metric] + row.append(getter(self)) + return row + + +class AnalysisReport: + """Report for algorithm performance analysis.""" + + def __init__( + self, + algorithm_name: str, + dataset_path: str, + estimations: List[dict], + data_points: List[dict], + failure_threshold: float = 0.15, + ): + """Initialize analysis report. + + Args: + algorithm_name: Name of the algorithm + dataset_path: Path to the dataset + estimations: List of estimation results with error_distance, error_x, error_y + data_points: Original data points + failure_threshold: Threshold in mm for considering an estimation failed + """ + self.dataset_path = dataset_path + self.algorithm_name = algorithm_name + self.estimations = estimations + self.data_points = data_points + self.failure_threshold = failure_threshold + + def calculate_score( + self, + mae: float, + rms: float, + p95: float, + failure_rate: float, + bias_x: float, + bias_y: float, + ) -> float: + """Calculate overall algorithm score (0-100). + + Scoring formula: + - Lower MAE, RMS, P95 is better (inverse relationship) + - Lower failure rate is better + - Lower absolute bias is better + - Score of 100 = perfect (0 error) + - Score of 0 = very poor performance + + Args: + mae: Mean absolute error + rms: Root mean square error + p95: 95th percentile error + failure_rate: Percentage of failed estimations + bias_x: Mean bias in X direction + bias_y: Mean bias in Y direction + + Returns: + Score from 0 to 100 + """ + # Reference values for normalization (adjust based on your domain) + # These represent "acceptable" performance thresholds + # Updated to match new stricter acceptance criteria + reference_mae = 0.35 # mm (yellow threshold) + reference_rms = 0.5 # mm + reference_p95 = 0.7 # mm (orange/red boundary) + reference_bias = 0.15 # mm (green threshold) + + # Component scores (each 0-1, higher is better) + mae_score = max(0, 1 - mae / (2 * reference_mae)) + rms_score = max(0, 1 - rms / (2 * reference_rms)) + p95_score = max(0, 1 - p95 / (2 * reference_p95)) + failure_score = max(0, 1 - failure_rate / 100.0) + + # Bias penalty (combined X and Y) + total_bias = math.sqrt(bias_x**2 + bias_y**2) + bias_score = max(0, 1 - total_bias / (2 * reference_bias)) + + # Weighted combination + weights = { + "mae": 0.30, # 30% - Most important metric + "rms": 0.25, # 25% - Penalizes outliers + "p95": 0.20, # 20% - Worst case performance + "failure": 0.15, # 15% - Reliability + "bias": 0.10, # 10% - Systematic error + } + + weighted_score = ( + weights["mae"] * mae_score + + weights["rms"] * rms_score + + weights["p95"] * p95_score + + weights["failure"] * failure_score + + weights["bias"] * bias_score + ) + + # Convert to 0-100 scale + return weighted_score * 100.0 + + def summarize(self) -> Optional[AccuracySummary]: + """Calculate accuracy summary metrics.""" + if not self.estimations: + return None + + distances = np.array([est["error_distance"] for est in self.estimations]) + errors_x = np.array([est["error_x"] for est in self.estimations]) + errors_y = np.array([est["error_y"] for est in self.estimations]) + + mae = np.mean(distances) + median = np.median(distances) + rms = math.sqrt(np.mean(distances**2)) + + p90 = np.percentile(distances, 90) + p95 = np.percentile(distances, 95) + p99 = np.percentile(distances, 99) + + min_error = float(np.min(distances)) + max_error = float(np.max(distances)) + mean_bias_x = float(np.mean(errors_x)) + mean_bias_y = float(np.mean(errors_y)) + + rms_x = math.sqrt(np.mean(errors_x**2)) + rms_y = math.sqrt(np.mean(errors_y**2)) + + failures = np.sum(distances > self.failure_threshold) + failure_rate = 100.0 * failures / len(distances) + + # Calculate overall score + score = self.calculate_score( + float(mae), + float(rms), + float(p95), + float(failure_rate), + mean_bias_x, + mean_bias_y, + ) + + return AccuracySummary( + n=len(distances), + total_points=len(self.data_points), + mae=float(mae), + median=float(median), + rms=float(rms), + p90=float(p90), + p95=float(p95), + p99=float(p99), + min_error=min_error, + max_error=max_error, + mean_bias_x=mean_bias_x, + mean_bias_y=mean_bias_y, + rms_x=float(rms_x), + rms_y=float(rms_y), + failure_rate=float(failure_rate), + score=float(score), + ) + + @staticmethod + def print_metric_help(): + """Print explanation of metrics.""" + print("\nMetric guide:") + print("N → Number of samples.") + print("MAE → Average position error. Lower is better.") + print("Median → Typical error (robust to outliers).") + print("RMS → Penalizes large errors strongly.") + print("P95 → 95% of errors are below this value.") + print("P99 → Worst realistic case.") + print("Max → Absolute worst case.") + print("Fail% → % of points above failure threshold.") + print("BiasX/Y → Systematic shift on axis (should be ~0).") + print("Score → Overall quality score (0-100, higher is better).") + print("") + print("Good signs:") + print("• Median ≈ MAE") + print("• RMS slightly above MAE") + print("• P95 not >> MAE") + print("• Bias near 0") + print("• Low Fail%") + print("• High Score (>70)") + print("") + + +def print_comparison_table( + reports: List[AnalysisReport], metrics: Optional[List[str]] = None +): + """Print comparison table for multiple algorithm reports.""" + if metrics is None: + metrics = [ + "n", + "mae", + "rms", + "median", + "p90", + "p95", + "p99", + "max", + "bias_x", + "bias_y", + "fail", + "score", + ] + + table = PrettyTable() + + headers = ["Algorithm", "Data"] + for metric in metrics: + header_name, _ = AccuracySummary.METRIC_MAP[metric] + headers.append(header_name) + + table.field_names = headers + + for report in reports: + summary = report.summarize() + if summary: + table.add_row( + summary.as_row(report.algorithm_name, report.dataset_path, metrics) + ) + + print(table) diff --git a/positioning/analyzer/requirements.txt b/positioning/analyzer/requirements.txt new file mode 100644 index 0000000..d254a12 --- /dev/null +++ b/positioning/analyzer/requirements.txt @@ -0,0 +1,3 @@ +numpy +prettytable +pygame diff --git a/positioning/analyzer/utils.py b/positioning/analyzer/utils.py new file mode 100644 index 0000000..977b038 --- /dev/null +++ b/positioning/analyzer/utils.py @@ -0,0 +1,22 @@ +"""Utility module - re-exports for backward compatibility. + +This module re-exports classes from the new modular structure. +Direct imports from grid.py, report.py, and base_algorithm.py are preferred. +""" + +from grid import Sensor, HexagonalGrid, SquareGrid, BaseGrid, GridRegistry +from report import AccuracySummary, AnalysisReport, print_comparison_table +from base_algorithm import PositionAlgorithm, AlgorithmRegistry + +__all__ = [ + "Sensor", + "HexagonalGrid", + "SquareGrid", + "BaseGrid", + "GridRegistry", + "AccuracySummary", + "AnalysisReport", + "print_comparison_table", + "PositionAlgorithm", + "AlgorithmRegistry", +] diff --git a/positioning/analyzer/visualizer.py b/positioning/analyzer/visualizer.py new file mode 100644 index 0000000..7d4be50 --- /dev/null +++ b/positioning/analyzer/visualizer.py @@ -0,0 +1,1259 @@ +"""Visual debugging tool for position estimation algorithms using Pygame. + +Controls: + Dropdowns Select dataset, algorithm, point + Arrow Keys/A/D Navigate points + Right-drag Pan grid view + Mouse wheel Zoom grid + H Toggle heatmap + R Reset view + Drag dividers Resize panels + ESC Exit +""" + +import pygame +import math +import json +from typing import List, Tuple, Optional, Dict +from pathlib import Path + +from grid import HexagonalGrid +from base_algorithm import AlgorithmRegistry +import algorithms # Import to trigger algorithm registration + + +# ═══════════════════════════════════════════════════════════════════════ +# COLORS & CONSTANTS +# ═══════════════════════════════════════════════════════════════════════ + + +class Color: + """Color constants for visualization (dark theme).""" + + BACKGROUND = (20, 20, 30) + PANEL = (28, 30, 42) + PANEL_HDR = (38, 40, 56) + BORDER = (55, 58, 75) + DIVIDER = (65, 68, 88) + DIV_HOVER = (95, 100, 135) + SENSOR_OUTLINE = (100, 100, 120) + TEXT = (190, 195, 210) + TEXT_DIM = (115, 120, 138) + TEXT_BRIGHT = (235, 238, 250) + ACCENT = (0, 185, 255) + ACCENT2 = (255, 85, 195) + GRID_RECT = (255, 255, 0) + ACTUAL_POS = (0, 255, 0) # Green + ESTIMATED_POS = (0, 255, 255) # Cyan + ERROR_LINE = (255, 50, 50) # Red + BTN_BG = (48, 50, 65) + BTN_HOVER = (62, 66, 88) + BTN_ACTIVE = (65, 115, 185) + BTN_TEXT = (210, 215, 225) + DROPDOWN_BG = (40, 40, 60) + # Heatmap colors: green/yellow/orange/red for error thresholds + HEATMAP_GREEN = (0, 255, 0) # <0.15mm - good + HEATMAP_YELLOW = (255, 255, 0) # 0.15-0.35mm - acceptable + HEATMAP_ORANGE = (255, 165, 0) # 0.35-0.7mm - too big + HEATMAP_RED = (255, 0, 0) # >0.7mm - terrible + + # Color map for magnetic field intensity + COLORMAP_LOW = (50, 50, 150) + COLORMAP_MID = (0, 200, 0) + COLORMAP_HIGH = (255, 0, 0) + + +FPS = 60 +INIT_WIDTH = 1400 +INIT_HEIGHT = 800 + + +def interpolate_color( + value: float, max_value: float, midpoint: float +) -> Tuple[int, int, int]: + """Interpolate RGB color based on sensor value.""" + value = max(0, min(max_value, value)) + + if value <= midpoint: + normalized = 0.0 + else: + normalized = (value - midpoint) / (max_value - midpoint) + + if normalized < 0.5: + t = normalized * 2 + c1, c2 = Color.COLORMAP_LOW, Color.COLORMAP_MID + else: + t = (normalized - 0.5) * 2 + c1, c2 = Color.COLORMAP_MID, Color.COLORMAP_HIGH + + r = int(c1[0] + (c2[0] - c1[0]) * t) + g = int(c1[1] + (c2[1] - c1[1]) * t) + b = int(c1[2] + (c2[2] - c1[2]) * t) + + return (r, g, b) + + +# ═══════════════════════════════════════════════════════════════════════ +# WIDGETS +# ═══════════════════════════════════════════════════════════════════════ + + +class Button: + """Simple button widget.""" + + def __init__( + self, rect: pygame.Rect, text: str, font: pygame.font.Font, callback=None + ): + self.rect = rect + self.text = text + self.font = font + self.callback = callback + self.hovered = False + + def draw(self, surface: pygame.Surface): + """Draw the button.""" + bg = Color.BTN_HOVER if self.hovered else Color.BTN_BG + + pygame.draw.rect(surface, bg, self.rect, border_radius=4) + pygame.draw.rect(surface, Color.BORDER, self.rect, 1, border_radius=4) + + text_surf = self.font.render(self.text, True, Color.BTN_TEXT) + text_rect = text_surf.get_rect(center=self.rect.center) + surface.blit(text_surf, text_rect) + + def handle_event(self, event: pygame.event.Event) -> bool: + """Handle mouse events. Returns True if clicked.""" + if event.type == pygame.MOUSEMOTION: + self.hovered = self.rect.collidepoint(event.pos) + elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: + if self.rect.collidepoint(event.pos): + if self.callback: + self.callback() + return True + return False + + +class Dropdown: + """Simple dropdown menu widget with scroll support.""" + + def __init__( + self, + rect: pygame.Rect, + options: List[str], + font: pygame.font.Font, + on_select=None, + ): + self.rect = rect + self.options = options + self.font = font + self.on_select = on_select + self.selected_idx = 0 + self.expanded = False + self.hovered = False + self.hover_idx = -1 + self.scroll_offset = 0 # Scroll position in items + self.max_visible_items = 10 # Maximum items visible at once + + @property + def selected_option(self) -> str: + """Get currently selected option.""" + if 0 <= self.selected_idx < len(self.options): + return self.options[self.selected_idx] + return "" + + def set_options(self, options: List[str], selected_idx: int = 0): + """Update options list.""" + self.options = options + self.selected_idx = max(0, min(selected_idx, len(options) - 1)) + self.expanded = False + self.scroll_offset = 0 + + def draw_button(self, surface: pygame.Surface): + """Draw just the dropdown button (not the expanded menu).""" + # Main button + bg = Color.BTN_HOVER if self.hovered else Color.DROPDOWN_BG + pygame.draw.rect(surface, bg, self.rect, border_radius=4) + pygame.draw.rect(surface, Color.BORDER, self.rect, 1, border_radius=4) + + # Selected text + text = self.selected_option + text_surf = self.font.render(text, True, Color.TEXT) + text_rect = text_surf.get_rect(midleft=(self.rect.x + 8, self.rect.centery)) + # Clip text if too long + if text_rect.width > self.rect.width - 30: + text_surf = self.font.render(text[:20] + "...", True, Color.TEXT) + text_rect = text_surf.get_rect(midleft=(self.rect.x + 8, self.rect.centery)) + surface.blit(text_surf, text_rect) + + # Arrow indicator + arrow = "▼" if not self.expanded else "▲" + arrow_surf = self.font.render(arrow, True, Color.TEXT_DIM) + arrow_rect = arrow_surf.get_rect( + midright=(self.rect.right - 8, self.rect.centery) + ) + surface.blit(arrow_surf, arrow_rect) + + def draw_menu(self, surface: pygame.Surface): + """Draw the expanded menu as an overlay (call after everything else).""" + if not self.expanded: + return + + # Calculate visible items + visible_items = min(len(self.options), self.max_visible_items) + menu_h = visible_items * 28 + 8 + menu_rect = pygame.Rect( + self.rect.x, self.rect.bottom + 2, self.rect.width, menu_h + ) + pygame.draw.rect(surface, Color.DROPDOWN_BG, menu_rect, border_radius=4) + pygame.draw.rect(surface, Color.BORDER, menu_rect, 1, border_radius=4) + + # Draw visible items with scroll offset + y = menu_rect.y + 4 + end_idx = min(self.scroll_offset + visible_items, len(self.options)) + for idx in range(self.scroll_offset, end_idx): + option = self.options[idx] + item_rect = pygame.Rect(menu_rect.x + 2, y, menu_rect.width - 4, 24) + + if idx == self.hover_idx: + pygame.draw.rect(surface, Color.BTN_HOVER, item_rect, border_radius=2) + elif idx == self.selected_idx: + pygame.draw.rect(surface, Color.BTN_ACTIVE, item_rect, border_radius=2) + + opt_surf = self.font.render(option, True, Color.TEXT) + opt_rect = opt_surf.get_rect(midleft=(item_rect.x + 6, item_rect.centery)) + surface.blit(opt_surf, opt_rect) + + y += 28 + + # Draw scroll indicator if needed + if len(self.options) > self.max_visible_items: + # Scrollbar background + scrollbar_x = menu_rect.right - 8 + scrollbar_y = menu_rect.y + 4 + scrollbar_h = menu_rect.height - 8 + pygame.draw.rect( + surface, + Color.BORDER, + pygame.Rect(scrollbar_x, scrollbar_y, 4, scrollbar_h), + border_radius=2, + ) + + # Scrollbar thumb + thumb_ratio = visible_items / len(self.options) + thumb_h = max(20, int(scrollbar_h * thumb_ratio)) + scroll_ratio = self.scroll_offset / max( + 1, len(self.options) - visible_items + ) + thumb_y = scrollbar_y + int((scrollbar_h - thumb_h) * scroll_ratio) + pygame.draw.rect( + surface, + Color.ACCENT, + pygame.Rect(scrollbar_x, thumb_y, 4, thumb_h), + border_radius=2, + ) + + def draw(self, surface: pygame.Surface): + """Draw the dropdown (button + menu if expanded).""" + self.draw_button(surface) + self.draw_menu(surface) + + def handle_event(self, event: pygame.event.Event) -> bool: + """Handle mouse events. Returns True if selection changed.""" + if event.type == pygame.MOUSEMOTION: + self.hovered = self.rect.collidepoint(event.pos) + + if self.expanded: + visible_items = min(len(self.options), self.max_visible_items) + menu_h = visible_items * 28 + 8 + menu_rect = pygame.Rect( + self.rect.x, self.rect.bottom + 2, self.rect.width, menu_h + ) + if menu_rect.collidepoint(event.pos): + rel_y = event.pos[1] - menu_rect.y - 4 + visible_idx = rel_y // 28 + self.hover_idx = self.scroll_offset + visible_idx + # Clamp to valid range + if self.hover_idx >= len(self.options): + self.hover_idx = -1 + else: + self.hover_idx = -1 + + elif event.type == pygame.MOUSEBUTTONDOWN: + if event.button == 1: # Left click + if self.rect.collidepoint(event.pos): + self.expanded = not self.expanded + return False + elif self.expanded: + visible_items = min(len(self.options), self.max_visible_items) + menu_h = visible_items * 28 + 8 + menu_rect = pygame.Rect( + self.rect.x, self.rect.bottom + 2, self.rect.width, menu_h + ) + if menu_rect.collidepoint(event.pos): + rel_y = event.pos[1] - menu_rect.y - 4 + visible_idx = rel_y // 28 + idx = self.scroll_offset + visible_idx + if 0 <= idx < len(self.options): + self.selected_idx = idx + self.expanded = False + if self.on_select: + self.on_select(self.selected_option, idx) + return True + else: + self.expanded = False + + elif event.button == 4: # Mouse wheel up + if self.expanded: + visible_items = min(len(self.options), self.max_visible_items) + menu_h = visible_items * 28 + 8 + menu_rect = pygame.Rect( + self.rect.x, self.rect.bottom + 2, self.rect.width, menu_h + ) + if menu_rect.collidepoint(event.pos): + self.scroll_offset = max(0, self.scroll_offset - 1) + return True # Event consumed + + elif event.button == 5: # Mouse wheel down + if self.expanded: + visible_items = min(len(self.options), self.max_visible_items) + menu_h = visible_items * 28 + 8 + menu_rect = pygame.Rect( + self.rect.x, self.rect.bottom + 2, self.rect.width, menu_h + ) + if menu_rect.collidepoint(event.pos): + max_scroll = max(0, len(self.options) - visible_items) + self.scroll_offset = min(max_scroll, self.scroll_offset + 1) + return True # Event consumed + + return False + + +class Divider: + """Divider for resizing panels.""" + + def __init__(self, orient: str): + self.orient = orient # 'h' or 'v' + self.dragging = False + self.hovered = False + + def hit_rect(self, x: int, y: int, length: int, thickness: int = 6) -> pygame.Rect: + """Get hit rectangle for the divider.""" + if self.orient == "h": + return pygame.Rect(x, y - thickness // 2, length, thickness) + return pygame.Rect(x - thickness // 2, y, thickness, length) + + +# ═══════════════════════════════════════════════════════════════════════ +# VISUALIZER +# ═══════════════════════════════════════════════════════════════════════ + + +class HexagonalGridVisualizer: + """Visualizer for HexagonalGrid with Pygame.""" + + def __init__(self, width: int = INIT_WIDTH, height: int = INIT_HEIGHT): + """Initialize the visualizer.""" + pygame.init() + + # Set caption before creating window + pygame.display.set_caption("Position Algorithm Visualizer") + + self.sw = width + self.sh = height + self.screen = pygame.display.set_mode((width, height), pygame.RESIZABLE) + + # Render background immediately to prevent flash + self.screen.fill(Color.BACKGROUND) + pygame.display.flip() + + self.clock = pygame.time.Clock() + self._last_size = (width, height) + + # Fonts + self.font_small = pygame.font.SysFont("Consolas", 14) + self.font_medium = pygame.font.SysFont("Consolas", 16) + self.font_large = pygame.font.SysFont("Consolas", 20, bold=True) + + # State + self.datasets: List[str] = [] + self.current_dataset_idx: int = 0 + self.current_algorithm_idx: int = 0 + self.current_point_idx: int = 0 + self.show_heatmap: bool = True # Enabled by default for visual-debug mode + + # Data + self.grid: Optional[HexagonalGrid] = None + self.data: Optional[dict] = None + self.estimations: List[Dict] = [] + self.adc_max_value: int = 4095 + self.adc_midpoint: int = 2047 + + # Pan & Zoom + self.zoom = 1.0 + self.pan_x = 0.0 + self.pan_y = 0.0 + self.panning = False + self.pan_start = (0, 0) + self.pan_start_offset = (0.0, 0.0) + + # Layout - use split ratios like test_chad.py + self.v_split = 0.75 # Not used in simple layout + self.h_split = 0.70 # Top panel takes 70% of height (excluding bottom panel) + self.top_panel_height = 80 + self.bottom_panel_height = 150 + + # Dividers + self.div_h = Divider("h") # Top divider + self.div_bottom = Divider("h") # Bottom divider + + # UI widgets + self.dataset_dropdown = Dropdown( + pygame.Rect(0, 0, 250, 30), + ["No datasets"], + self.font_small, + self._on_dataset_select, + ) + self.algorithm_dropdown = Dropdown( + pygame.Rect(0, 0, 250, 30), + ["No algorithms"], + self.font_small, + self._on_algorithm_select, + ) + self.point_dropdown = Dropdown( + pygame.Rect(0, 0, 150, 30), + ["No points"], + self.font_small, + self._on_point_select, + ) + self.heatmap_button = Button( + pygame.Rect(0, 0, 140, 30), + "Toggle Heatmap", + self.font_small, + self._toggle_heatmap, + ) + + self._layout() + + self.running = True + + def _layout(self): + """Calculate layout rectangles.""" + # Simple fixed layout + self.viz_area = pygame.Rect( + 0, + self.top_panel_height, + self.sw, + self.sh - self.top_panel_height - self.bottom_panel_height, + ) + + # Position widgets + dropdown_y = 30 + x_pos = 20 + + self.dataset_dropdown.rect = pygame.Rect(x_pos, dropdown_y, 250, 30) + x_pos += 260 + + self.algorithm_dropdown.rect = pygame.Rect(x_pos, dropdown_y, 250, 30) + x_pos += 260 + + self.point_dropdown.rect = pygame.Rect(x_pos, dropdown_y, 150, 30) + x_pos += 160 + + self.heatmap_button.rect = pygame.Rect(x_pos, dropdown_y, 140, 30) + + def _divider_rects(self) -> Tuple[pygame.Rect, pygame.Rect]: + """Get divider hit rectangles.""" + top_div = self.div_h.hit_rect(0, self.top_panel_height, self.sw) + bottom_div = self.div_bottom.hit_rect( + 0, self.sh - self.bottom_panel_height, self.sw + ) + return top_div, bottom_div + + def _on_dataset_select(self, text: str, idx: int): + """Handle dataset selection.""" + self.load_dataset(idx) + + def _on_algorithm_select(self, text: str, idx: int): + """Handle algorithm selection.""" + self.current_algorithm_idx = idx + self._update_estimations() + + def _on_point_select(self, text: str, idx: int): + """Handle point selection.""" + self.current_point_idx = idx + + def _toggle_heatmap(self): + """Toggle heatmap visibility.""" + self.show_heatmap = not self.show_heatmap + + def load_datasets(self, dataset_paths: List[str]): + """Load datasets for visualization.""" + self.datasets = dataset_paths + + if not self.datasets: + return + + # Update dataset dropdown + dataset_names = [Path(p).name for p in dataset_paths] + self.dataset_dropdown.set_options(dataset_names, 0) + + # Update algorithm dropdown + algorithms = list(AlgorithmRegistry.get_all_algorithms().keys()) + if algorithms: + self.algorithm_dropdown.set_options(algorithms, 0) + + # Load first dataset + self.load_dataset(0) + + def load_dataset(self, idx: int): + """Load a specific dataset.""" + if not self.datasets or idx < 0 or idx >= len(self.datasets): + return + + self.current_dataset_idx = idx + dataset_path = self.datasets[idx] + + with open(dataset_path, "r", encoding="utf-8") as f: + self.data = json.load(f) + + metadata = self.data["metadata"] + self.grid = HexagonalGrid(metadata) + + # Get ADC precision + adc_bits = metadata.get("adc_precision_in_bits", 12) + self.adc_max_value = (1 << adc_bits) - 1 + self.adc_midpoint = self.adc_max_value // 2 + + # Update point dropdown + num_points = len(self.data["data_points"]) + point_options = [f"Point {i + 1}" for i in range(num_points)] + self.point_dropdown.set_options(point_options, 0) + + # Reset view + self.current_point_idx = 0 + self._reset_view() + self._update_estimations() + + def _update_estimations(self): + """Calculate estimations for current algorithm.""" + if not self.grid or not self.data: + return + + algorithms = list(AlgorithmRegistry.get_all_algorithms().items()) + if not algorithms: + return + + if self.current_algorithm_idx >= len(algorithms): + self.current_algorithm_idx = 0 + + algo_name, algo_instance = algorithms[self.current_algorithm_idx] + + self.estimations = [] + for point in self.data["data_points"]: + self.grid.update_data(point) + actual_x, actual_y = self.grid.actual_cursor_position + + try: + estimated_x, estimated_y = algo_instance(self.grid) + error_x = actual_x - estimated_x + error_y = actual_y - estimated_y + error_distance = math.sqrt(error_x**2 + error_y**2) + + self.estimations.append( + { + "actual": (actual_x, actual_y), + "estimated": (estimated_x, estimated_y), + "error_distance": error_distance, + "error_x": error_x, + "error_y": error_y, + } + ) + except Exception as e: + self.estimations.append( + { + "actual": (actual_x, actual_y), + "estimated": (actual_x, actual_y), + "error_distance": 0, + "error_x": 0, + "error_y": 0, + "error": str(e), + } + ) + + def _reset_view(self): + """Reset pan and zoom to fit grid.""" + self.zoom = 1.0 + self.pan_x = 0.0 + self.pan_y = 0.0 + + def _grid_transform(self) -> Tuple[float, float, float, float, float]: + """Calculate grid transformation parameters.""" + if not self.grid: + return 1.0, self.viz_area.centerx, self.viz_area.centery, 0.0, 0.0 + + # Find grid bounds + min_x = min(s.x for s in self.grid.sensors) + max_x = max(s.x for s in self.grid.sensors) + min_y = min(s.y for s in self.grid.sensors) + max_y = max(s.y for s in self.grid.sensors) + + # Add padding + padding = self.grid.spacing if hasattr(self.grid, "spacing") else 10 + grid_width = (max_x - min_x) + padding * 2 + grid_height = (max_y - min_y) + padding * 2 + + if grid_width <= 0 or grid_height <= 0: + return 1.0, self.viz_area.centerx, self.viz_area.centery, 0.0, 0.0 + + # Calculate base scale + scale_x = (self.viz_area.width - 60) / grid_width + scale_y = (self.viz_area.height - 60) / grid_height + base_scale = min(scale_x, scale_y) + + # Grid center + center_x = (min_x + max_x) / 2 + center_y = (min_y + max_y) / 2 + + return ( + base_scale, + self.viz_area.centerx, + self.viz_area.centery, + center_x, + center_y, + ) + + def mm_to_screen(self, mx: float, my: float) -> Tuple[int, int]: + """Convert world coordinates (mm) to screen coordinates (pixels).""" + base_scale, cx, cy, gcx, gcy = self._grid_transform() + eff_scale = base_scale * self.zoom + screen_x = cx + (mx - gcx + self.pan_x) * eff_scale + screen_y = cy + (my - gcy + self.pan_y) * eff_scale + return (int(screen_x), int(screen_y)) + + def screen_to_mm(self, sx: int, sy: int) -> Tuple[float, float]: + """Convert screen coordinates to world coordinates.""" + base_scale, cx, cy, gcx, gcy = self._grid_transform() + eff_scale = base_scale * self.zoom + if eff_scale == 0: + return (0.0, 0.0) + world_x = (sx - cx) / eff_scale + gcx - self.pan_x + world_y = (sy - cy) / eff_scale + gcy - self.pan_y + return (world_x, world_y) + + def navigate_to_point(self, new_idx: int): + """Navigate to a specific point.""" + if not self.data or "data_points" not in self.data: + return + + num_points = len(self.data["data_points"]) + if num_points == 0: + return + + new_idx = max(0, min(new_idx, num_points - 1)) + + if new_idx != self.current_point_idx: + self.current_point_idx = new_idx + self.point_dropdown.selected_idx = new_idx + + def draw_grid_boundary(self): + """Draw boundary around the sensor grid.""" + if not self.grid or not self.data: + return + + # Get all sensor screen positions + positions = [self.mm_to_screen(s.x, s.y) for s in self.grid.sensors] + xs = [p[0] for p in positions] + ys = [p[1] for p in positions] + + # Calculate sensor radius in screen space + base_scale, _, _, _, _ = self._grid_transform() + eff_scale = base_scale * self.zoom + spacing = self.grid.spacing if hasattr(self.grid, "spacing") else 10 + sensor_radius_screen = max(3, int(spacing / 2 * eff_scale)) + + # Find bounds with sensor radius + min_x = min(xs) - sensor_radius_screen + max_x = max(xs) + sensor_radius_screen + min_y = min(ys) - sensor_radius_screen + max_y = max(ys) + sensor_radius_screen + + rect = pygame.Rect(min_x, min_y, max_x - min_x, max_y - min_y) + pygame.draw.rect(self.screen, Color.GRID_RECT, rect, 3) + + def draw_sensors(self): + """Draw all sensors as circles.""" + if not self.grid or not self.data: + return + + # Update grid with current point data + if self.current_point_idx < len(self.data["data_points"]): + point = self.data["data_points"][self.current_point_idx] + self.grid.update_data(point) + + base_scale, _, _, _, _ = self._grid_transform() + eff_scale = base_scale * self.zoom + spacing = self.grid.spacing if hasattr(self.grid, "spacing") else 10 + # Sensor radius is exactly spacing/2 so sensors touch each other + sensor_radius = max(3, int(spacing / 2 * eff_scale)) + + for sensor in self.grid.sensors: + screen_x, screen_y = self.mm_to_screen(sensor.x, sensor.y) + + # Skip if outside visible area + if not self.viz_area.collidepoint(screen_x, screen_y): + continue + + # Color based on value + color = interpolate_color( + sensor.value, self.adc_max_value, self.adc_midpoint + ) + + pygame.draw.circle(self.screen, color, (screen_x, screen_y), sensor_radius) + pygame.draw.circle( + self.screen, + Color.SENSOR_OUTLINE, + (screen_x, screen_y), + sensor_radius, + 1, + ) + + # Draw sensor value if large enough + if sensor.value > self.adc_midpoint and sensor_radius > 10: + value_text = self.font_small.render( + f"{int(sensor.value)}", True, Color.TEXT + ) + text_rect = value_text.get_rect(center=(screen_x, screen_y)) + self.screen.blit(value_text, text_rect) + + def draw_positions(self): + """Draw actual and estimated positions.""" + if not self.estimations or self.current_point_idx >= len(self.estimations): + return + + estimation = self.estimations[self.current_point_idx] + actual_x, actual_y = estimation["actual"] + estimated_x, estimated_y = estimation["estimated"] + + actual_screen = self.mm_to_screen(actual_x, actual_y) + estimated_screen = self.mm_to_screen(estimated_x, estimated_y) + + # Draw error line + pygame.draw.line( + self.screen, Color.ERROR_LINE, actual_screen, estimated_screen, 3 + ) + + # Draw actual position (green circle with cross) + pygame.draw.circle(self.screen, Color.ACTUAL_POS, actual_screen, 10, 3) + pygame.draw.line( + self.screen, + Color.ACTUAL_POS, + (actual_screen[0] - 12, actual_screen[1]), + (actual_screen[0] + 12, actual_screen[1]), + 3, + ) + pygame.draw.line( + self.screen, + Color.ACTUAL_POS, + (actual_screen[0], actual_screen[1] - 12), + (actual_screen[0], actual_screen[1] + 12), + 3, + ) + + # Draw estimated position (cyan circle with X) + pygame.draw.circle(self.screen, Color.ESTIMATED_POS, estimated_screen, 10, 3) + pygame.draw.line( + self.screen, + Color.ESTIMATED_POS, + (estimated_screen[0] - 8, estimated_screen[1] - 8), + (estimated_screen[0] + 8, estimated_screen[1] + 8), + 3, + ) + pygame.draw.line( + self.screen, + Color.ESTIMATED_POS, + (estimated_screen[0] - 8, estimated_screen[1] + 8), + (estimated_screen[0] + 8, estimated_screen[1] - 8), + 3, + ) + + def draw_heatmap_overlay(self): + """Draw heatmap showing all data points with error coloring. + + Color thresholds: + - Green: <0.15mm (good) + - Yellow: 0.15-0.35mm (acceptable) + - Orange: 0.35-0.7mm (too big) + - Red: >0.7mm (terrible) + """ + if not self.show_heatmap or not self.estimations: + return + + for idx, estimation in enumerate(self.estimations): + actual_x, actual_y = estimation["actual"] + error_dist = estimation["error_distance"] + + # Color based on error thresholds + if error_dist < 0.15: + # Green - good + color = Color.HEATMAP_GREEN + elif error_dist < 0.35: + # Interpolate green to yellow + t = (error_dist - 0.15) / (0.35 - 0.15) + r = int( + Color.HEATMAP_GREEN[0] + + (Color.HEATMAP_YELLOW[0] - Color.HEATMAP_GREEN[0]) * t + ) + g = int( + Color.HEATMAP_GREEN[1] + + (Color.HEATMAP_YELLOW[1] - Color.HEATMAP_GREEN[1]) * t + ) + b = int( + Color.HEATMAP_GREEN[2] + + (Color.HEATMAP_YELLOW[2] - Color.HEATMAP_GREEN[2]) * t + ) + color = (r, g, b) + elif error_dist < 0.7: + # Interpolate yellow to orange to red + if error_dist < 0.525: # Mid-point between 0.35 and 0.7 + # Yellow to orange + t = (error_dist - 0.35) / (0.525 - 0.35) + r = int( + Color.HEATMAP_YELLOW[0] + + (Color.HEATMAP_ORANGE[0] - Color.HEATMAP_YELLOW[0]) * t + ) + g = int( + Color.HEATMAP_YELLOW[1] + + (Color.HEATMAP_ORANGE[1] - Color.HEATMAP_YELLOW[1]) * t + ) + b = int( + Color.HEATMAP_YELLOW[2] + + (Color.HEATMAP_ORANGE[2] - Color.HEATMAP_YELLOW[2]) * t + ) + else: + # Orange to red + t = (error_dist - 0.525) / (0.7 - 0.525) + r = int( + Color.HEATMAP_ORANGE[0] + + (Color.HEATMAP_RED[0] - Color.HEATMAP_ORANGE[0]) * t + ) + g = int( + Color.HEATMAP_ORANGE[1] + + (Color.HEATMAP_RED[1] - Color.HEATMAP_ORANGE[1]) * t + ) + b = int( + Color.HEATMAP_ORANGE[2] + + (Color.HEATMAP_RED[2] - Color.HEATMAP_ORANGE[2]) * t + ) + color = (r, g, b) + else: + # Red - terrible + color = Color.HEATMAP_RED + + pos = self.mm_to_screen(actual_x, actual_y) + + # Highlight current point + radius = 8 if idx == self.current_point_idx else 6 + outline_width = 2 if idx == self.current_point_idx else 1 + + pygame.draw.circle(self.screen, color, pos, radius) + pygame.draw.circle(self.screen, Color.TEXT, pos, radius, outline_width) + + def find_heatmap_point_at_pos(self, screen_pos: Tuple[int, int]) -> Optional[int]: + """Find heatmap point index at given screen position.""" + if not self.show_heatmap or not self.estimations: + return None + + click_threshold = 10 # pixels + closest_idx = None + closest_dist = float("inf") + + for idx, estimation in enumerate(self.estimations): + actual_x, actual_y = estimation["actual"] + pos = self.mm_to_screen(actual_x, actual_y) + + dx = pos[0] - screen_pos[0] + dy = pos[1] - screen_pos[1] + dist = math.sqrt(dx * dx + dy * dy) + + if dist < click_threshold and dist < closest_dist: + closest_dist = dist + closest_idx = idx + + return closest_idx + + def draw_top_panel(self): + """Draw top panel with controls.""" + panel_rect = pygame.Rect(0, 0, self.sw, self.top_panel_height) + pygame.draw.rect(self.screen, Color.PANEL, panel_rect) + pygame.draw.rect(self.screen, Color.BORDER, panel_rect, 2) + + # Labels above dropdowns + label_y = 10 + labels = ["Dataset:", "Algorithm:", "Point:"] + x_positions = [20, 280, 540] + + for label, x in zip(labels, x_positions): + text = self.font_small.render(label, True, Color.TEXT_DIM) + self.screen.blit(text, (x, label_y)) + + # Draw widgets (buttons only - expanded menus drawn later as overlay) + self.dataset_dropdown.draw_button(self.screen) + self.algorithm_dropdown.draw_button(self.screen) + self.point_dropdown.draw_button(self.screen) + self.heatmap_button.draw(self.screen) + + def draw_bottom_panel(self): + """Draw bottom info panel.""" + if not self.data or not self.estimations: + return + + panel_y = self.sh - self.bottom_panel_height + panel_rect = pygame.Rect(0, panel_y, self.sw, self.bottom_panel_height) + pygame.draw.rect(self.screen, Color.PANEL, panel_rect) + pygame.draw.rect(self.screen, Color.BORDER, panel_rect, 2) + + # Current point info + if self.current_point_idx < len(self.estimations): + estimation = self.estimations[self.current_point_idx] + actual_x, actual_y = estimation["actual"] + estimated_x, estimated_y = estimation["estimated"] + error_dist = estimation["error_distance"] + error_x = estimation["error_x"] + error_y = estimation["error_y"] + + info_y = panel_y + 15 + lines = [ + f"Actual Position: ({actual_x:7.2f}, {actual_y:7.2f}) mm", + f"Estimated Position: ({estimated_x:7.2f}, {estimated_y:7.2f}) mm", + f"Error: Δx={error_x:+7.2f}mm Δy={error_y:+7.2f}mm Distance={error_dist:7.2f}mm", + ] + + for i, line in enumerate(lines): + text = self.font_medium.render(line, True, Color.TEXT) + self.screen.blit(text, (20, info_y + i * 25)) + + # Legend + legend_x = self.sw - 280 + legend_y = panel_y + 20 + + # Green circle (actual) + pygame.draw.circle(self.screen, Color.ACTUAL_POS, (legend_x, legend_y), 8, 2) + pygame.draw.line( + self.screen, + Color.ACTUAL_POS, + (legend_x - 10, legend_y), + (legend_x + 10, legend_y), + 2, + ) + pygame.draw.line( + self.screen, + Color.ACTUAL_POS, + (legend_x, legend_y - 10), + (legend_x, legend_y + 10), + 2, + ) + text = self.font_small.render("= Actual Position", True, Color.TEXT) + self.screen.blit(text, (legend_x + 15, legend_y - 8)) + + # Cyan X (estimated) + legend_y += 30 + pygame.draw.circle(self.screen, Color.ESTIMATED_POS, (legend_x, legend_y), 8, 2) + pygame.draw.line( + self.screen, + Color.ESTIMATED_POS, + (legend_x - 6, legend_y - 6), + (legend_x + 6, legend_y + 6), + 2, + ) + pygame.draw.line( + self.screen, + Color.ESTIMATED_POS, + (legend_x - 6, legend_y + 6), + (legend_x + 6, legend_y - 6), + 2, + ) + text = self.font_small.render("= Estimated Position", True, Color.TEXT) + self.screen.blit(text, (legend_x + 15, legend_y - 8)) + + # Red line (error) + legend_y += 30 + pygame.draw.line( + self.screen, + Color.ERROR_LINE, + (legend_x - 10, legend_y), + (legend_x + 10, legend_y), + 3, + ) + text = self.font_small.render("= Position Error", True, Color.TEXT) + self.screen.blit(text, (legend_x + 15, legend_y - 8)) + + # Controls help + help_y = panel_y + 100 + help_parts = [ + "Controls:", + "Arrow/A/D=Navigate", + "Right-Drag=Pan", + "Wheel=Zoom", + "H=Heatmap", + "R=Reset", + "Drag dividers=Resize", + "ESC=Exit", + ] + help_text = " | ".join(help_parts) + text = self.font_small.render(help_text, True, Color.TEXT_DIM) + self.screen.blit(text, (20, help_y)) + + # Zoom info + zoom_text = f"Zoom: {self.zoom:.2f}x" + text = self.font_small.render(zoom_text, True, Color.TEXT_DIM) + self.screen.blit(text, (self.sw - 120, help_y)) + + def draw_dividers(self): + """Draw dividers between panels.""" + top_div, bottom_div = self._divider_rects() + + # Top divider + color = ( + Color.DIV_HOVER + if (self.div_h.hovered or self.div_h.dragging) + else Color.DIVIDER + ) + pygame.draw.rect(self.screen, color, top_div) + + # Bottom divider + color = ( + Color.DIV_HOVER + if (self.div_bottom.hovered or self.div_bottom.dragging) + else Color.DIVIDER + ) + pygame.draw.rect(self.screen, color, bottom_div) + + def draw_dropdown_overlays(self): + """Draw expanded dropdown menus as overlays on top of everything.""" + # Draw in order so later dropdowns can overlap earlier ones if needed + self.dataset_dropdown.draw_menu(self.screen) + self.algorithm_dropdown.draw_menu(self.screen) + self.point_dropdown.draw_menu(self.screen) + + def draw(self): + """Draw everything.""" + self.screen.fill(Color.BACKGROUND) + + # Draw visualization area + pygame.draw.rect(self.screen, (35, 35, 45), self.viz_area) + + if self.grid: + # Clip to viz area + self.screen.set_clip(self.viz_area) + self.draw_grid_boundary() + self.draw_sensors() + + if self.show_heatmap: + self.draw_heatmap_overlay() + + self.draw_positions() + self.screen.set_clip(None) + + # Draw panels on top + self.draw_top_panel() + self.draw_bottom_panel() + self.draw_dividers() + + # Draw dropdown menus last as overlays (so they don't affect layout) + self.draw_dropdown_overlays() + + pygame.display.flip() + + def handle_events(self): + """Handle all events.""" + for event in pygame.event.get(): + if event.type == pygame.QUIT: + self.running = False + + elif event.type == pygame.VIDEORESIZE: + # NEVER call set_mode() here - use the surface we got + surf = pygame.display.get_surface() + if surf is not None: + self.screen = surf + nw, nh = surf.get_size() + else: + nw, nh = event.w, event.h + + if (nw, nh) != self._last_size: + self.sw, self.sh = nw, nh + self._last_size = (nw, nh) + self._layout() + + elif event.type == pygame.MOUSEBUTTONDOWN: + # Check dividers first + top_div, bottom_div = self._divider_rects() + mx, my = event.pos + + if event.button == 1: + if top_div.collidepoint(mx, my): + self.div_h.dragging = True + continue + elif bottom_div.collidepoint(mx, my): + self.div_bottom.dragging = True + continue + + # Handle UI widgets + if self.dataset_dropdown.handle_event(event): + continue + if self.algorithm_dropdown.handle_event(event): + continue + if self.point_dropdown.handle_event(event): + continue + if self.heatmap_button.handle_event(event): + continue + + # Handle grid interactions + if self.viz_area.collidepoint(event.pos): + if event.button == 1: # Left click + heatmap_idx = self.find_heatmap_point_at_pos(event.pos) + if heatmap_idx is not None: + self.navigate_to_point(heatmap_idx) + elif self.data: + self.navigate_to_point(self.current_point_idx + 1) + elif event.button == 3: # Right click - start panning + self.panning = True + self.pan_start = event.pos + self.pan_start_offset = (self.pan_x, self.pan_y) + + elif event.type == pygame.MOUSEBUTTONUP: + if event.button == 1: + self.div_h.dragging = False + self.div_bottom.dragging = False + elif event.button == 3: # Right click release + self.panning = False + + elif event.type == pygame.MOUSEMOTION: + mx, my = event.pos + + # Update divider hover states + top_div, bottom_div = self._divider_rects() + self.div_h.hovered = top_div.collidepoint(mx, my) + self.div_bottom.hovered = bottom_div.collidepoint(mx, my) + + # Handle divider dragging + if self.div_h.dragging: + self.top_panel_height = max( + 60, min(my, self.sh - self.bottom_panel_height - 100) + ) + self._layout() + elif self.div_bottom.dragging: + self.bottom_panel_height = max( + 100, min(self.sh - my, self.sh - self.top_panel_height - 100) + ) + self._layout() + + # Handle UI hovers + self.dataset_dropdown.handle_event(event) + self.algorithm_dropdown.handle_event(event) + self.point_dropdown.handle_event(event) + self.heatmap_button.handle_event(event) + + # Handle panning + if self.panning: + base_scale, _, _, _, _ = self._grid_transform() + eff_scale = base_scale * self.zoom + if eff_scale > 0: + dx = event.pos[0] - self.pan_start[0] + dy = event.pos[1] - self.pan_start[1] + self.pan_x = self.pan_start_offset[0] + dx / eff_scale + self.pan_y = self.pan_start_offset[1] + dy / eff_scale + + # Update cursor + if ( + self.div_h.hovered + or self.div_h.dragging + or self.div_bottom.hovered + or self.div_bottom.dragging + ): + pygame.mouse.set_cursor(pygame.SYSTEM_CURSOR_SIZENS) + elif self.panning: + pygame.mouse.set_cursor(pygame.SYSTEM_CURSOR_HAND) + else: + pygame.mouse.set_cursor(pygame.SYSTEM_CURSOR_ARROW) + + elif event.type == pygame.MOUSEWHEEL: + mouse_pos = pygame.mouse.get_pos() + + # Check if any dropdown is expanded and mouse is over it + dropdown_handled = False + for dropdown in [ + self.dataset_dropdown, + self.algorithm_dropdown, + self.point_dropdown, + ]: + if dropdown.expanded: + visible_items = min( + len(dropdown.options), dropdown.max_visible_items + ) + menu_h = visible_items * 28 + 8 + menu_rect = pygame.Rect( + dropdown.rect.x, + dropdown.rect.bottom + 2, + dropdown.rect.width, + menu_h, + ) + if menu_rect.collidepoint(mouse_pos): + # Scroll the dropdown + if event.y > 0: # Scroll up + dropdown.scroll_offset = max( + 0, dropdown.scroll_offset - 1 + ) + else: # Scroll down + max_scroll = max( + 0, len(dropdown.options) - visible_items + ) + dropdown.scroll_offset = min( + max_scroll, dropdown.scroll_offset + 1 + ) + dropdown_handled = True + break + + # Only handle zoom if dropdown didn't consume the event + if not dropdown_handled and self.viz_area.collidepoint(mouse_pos): + old_world = self.screen_to_mm(mouse_pos[0], mouse_pos[1]) + + # Zoom + factor = 1.15 if event.y > 0 else 1 / 1.15 + self.zoom = max(0.1, min(30, self.zoom * factor)) + + # Adjust pan to keep mouse position fixed + new_world = self.screen_to_mm(mouse_pos[0], mouse_pos[1]) + self.pan_x += new_world[0] - old_world[0] + self.pan_y += new_world[1] - old_world[1] + + elif event.type == pygame.KEYDOWN: + if event.key == pygame.K_LEFT or event.key == pygame.K_a: + self.navigate_to_point(self.current_point_idx - 1) + elif event.key == pygame.K_RIGHT or event.key == pygame.K_d: + self.navigate_to_point(self.current_point_idx + 1) + elif event.key == pygame.K_h: + self.show_heatmap = not self.show_heatmap + elif event.key == pygame.K_r: + self._reset_view() + elif event.key == pygame.K_ESCAPE: + self.running = False + + def run(self): + """Main visualization loop.""" + while self.running: + self.handle_events() + self.draw() + self.clock.tick(FPS) + + pygame.quit() + + +def start_visualizer(dataset_paths: List[str]): + """Start the visualization tool. + + Args: + dataset_paths: List of paths to JSON dataset files + """ + visualizer = HexagonalGridVisualizer() + visualizer.load_datasets(dataset_paths) + visualizer.run() diff --git a/positioning/irl_collector/README.md b/positioning/irl_collector/README.md new file mode 100644 index 0000000..1dd53ce --- /dev/null +++ b/positioning/irl_collector/README.md @@ -0,0 +1,2 @@ +TODO plotter/3d printer to collect IRL data in common analyzer JSON format + diff --git a/positioning/simulator/README.md b/positioning/simulator/README.md new file mode 100644 index 0000000..0b8f2d0 --- /dev/null +++ b/positioning/simulator/README.md @@ -0,0 +1 @@ +TODO magnetic field simulator that collects data in common analyzer JSON format