{"record":{"id":"badb676cfe086237","repo":"ruvnet/RuView","slug":"atheros-csi-format-parsing-is-not-yet-implemented","errorCode":null,"errorMessage":"Atheros CSI format parsing is not yet implemented. The Atheros CSI Tool outputs a binary format that requires a dedicated parser. To collect real CSI data from Atheros-based routers, you must implement the binary format parser following the Atheros CSI Tool specification. See docs/hardware-setup.md for supported hardware and data formats.","messagePattern":"Atheros CSI format parsing is not yet implemented\\. The Atheros CSI Tool outputs a binary format that requires a dedicated parser\\. To collect real CSI data from Atheros-based routers, you must implement the binary format parser following the Atheros CSI Tool specification\\. See docs/hardware-setup\\.md for supported hardware and data formats\\.","errorType":"exception","errorClass":"CSIExtractionError","httpStatus":null,"severity":"error","filePath":"archive/v1/src/hardware/csi_extractor.py","lineNumber":412,"sourceCode":"        \n        # Handle different router formats\n        data_str = raw_data.decode('utf-8')\n        \n        if data_str.startswith('ATHEROS_CSI:'):\n            return self._parse_atheros_format(raw_data)\n        else:\n            raise CSIParseError(\"Unknown router CSI format\")\n    \n    def _parse_atheros_format(self, raw_data: bytes) -> CSIData:\n        \"\"\"Parse Atheros CSI format.\n\n        Raises:\n            CSIExtractionError: Always, because Atheros CSI parsing requires\n                the Atheros CSI Tool binary format parser which has not been\n                implemented yet. Use the ESP32 parser or contribute an\n                Atheros implementation.\n        \"\"\"\n        raise CSIExtractionError(\n            \"Atheros CSI format parsing is not yet implemented. \"\n            \"The Atheros CSI Tool outputs a binary format that requires a dedicated parser. \"\n            \"To collect real CSI data from Atheros-based routers, you must implement \"\n            \"the binary format parser following the Atheros CSI Tool specification. \"\n            \"See docs/hardware-setup.md for supported hardware and data formats.\"\n        )\n\n\nclass CSIExtractor:\n    \"\"\"Main CSI data extractor supporting multiple hardware types.\"\"\"\n    \n    def __init__(self, config: Dict[str, Any], logger: Optional[logging.Logger] = None):\n        \"\"\"Initialize CSI extractor.\n        \n        Args:\n            config: Configuration dictionary\n            logger: Optional logger instance\n            ","sourceCodeStart":394,"sourceCodeEnd":430,"githubUrl":"https://github.com/ruvnet/RuView/blob/4685618388a5e49fad5b3005806f3bdd6a7c25c3/archive/v1/src/hardware/csi_extractor.py#L394-L430","documentation":"_parse_atheros_format raises CSIExtractionError unconditionally: even valid 'ATHEROS_CSI:' input cannot be parsed, because the Atheros CSI Tool binary format parser was never implemented in the Python reference pipeline. The class docstring states it refuses to return placeholder data by design, and the message directs to docs/hardware-setup.md for supported formats.","triggerScenarios":"Any RouterCSIParser.parse call whose input starts with 'ATHEROS_CSI:' — i.e. every attempt to use Atheros hardware with archive/v1. The error is deterministic, not data-dependent.","commonSituations":"Teams provisioning Atheros routers before checking the supported-hardware matrix; integrations assuming hardware_type='router' works for any Wi-Fi router; porting an older Atheros-based setup to this pipeline.","solutions":["Use the ESP32 path (hardware_type='esp32') — the supported collection route in archive/v1","If Atheros hardware is mandatory, implement the binary format parser per the Atheros CSI Tool specification (the docstring invites contributions)","Check docs/hardware-setup.md for supported hardware and data formats before choosing capture hardware"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"# Route around the unimplemented path before parsing:\nif hardware_type == 'router':\n    logger.error('Atheros CSI parsing is not implemented in archive/v1; '\n                 'use hardware_type=\"esp32\" — see docs/hardware-setup.md')\n    raise CSIExtractionError('Atheros CSI format parsing is not yet implemented')","typeGuard":null,"tryCatchPattern":"try:\n    data = router_parser.parse(raw)\nexcept CSIExtractionError as e:\n    if 'Atheros' in str(e):\n        logger.error('Atheros capture unsupported; falling back to ESP32 source')\n        switch_to_esp32_source()  # requires ESP32 nodes provisioned\n    else:\n        raise","preventionTips":["Check docs/hardware-setup.md for the supported-hardware matrix before provisioning capture devices","Treat 'ATHEROS_CSI:' input as unsupported by design: no retry or data tweak will make it parse","Plan an ESP32-based capture path as the supported fallback when router hardware is Atheros"],"tags":["atheros","router","not-implemented","hardware"],"backgroundTag":null,"analyzedSha":"4685618388a5e49fad5b3005806f3bdd6a7c25c3","analyzedAt":"2026-08-16T06:09:40.886Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}