JS8Lab Step 65

Status

FERTIG / BEREIT

State: diagnostics_ok
Detail: Diagnose fertig
Diagnose läuft: nein Server läuft: ja
Letzte Manifest-Auswertung: ok
Version: step66-source-varicode-frame-unpack-probe
Root: /decoders/js8_decoder
WAV: /decoders/js8_test.wav

Links

/api/status frisch /api/report frisch /logs/ frisch Diagnose-Startlog frisch Lab latest.log frisch Report JSON frisch
Cache-Buster dieses Abrufs: ?t=1779903516844

Bundles

js8_decoder_lab_real_run_20260527T110128Z.zip 5270021 B
js8_decoder_lab_real_run_20260527T104133Z.zip 4699383 B
js8_decoder_lab_full_audit_20260527T100315Z.zip 4129065 B
js8_decoder_lab_full_audit_20260527T084305Z.zip 4007964 B
js8_decoder_lab_real_run_20260527T082046Z.zip 4028163 B
js8_decoder_lab_real_run_20260527T080216Z.zip 3541087 B
js8_decoder_lab_real_run_20260527T073615Z.zip 3065595 B
js8_decoder_lab_real_run_20260527T072638Z.zip 2615145 B
js8_decoder_lab_real_run_20260527T070658Z.zip 2232505 B
js8_decoder_lab_real_run_20260527T064500Z.zip 1771764 B
js8_decoder_lab_real_run_20260527T062127Z.zip 1595958 B
js8_decoder_lab_real_run_20260527T055654Z.zip 1408988 B

Latest log tail

n);"
            },
            {
              "line": 112,
              "text": "    static QVector<bool> strToBits(QString const &bitvec);"
            }
          ]
        }
      },
      {
        "name": "JSC::decompress",
        "path": "JS8_JSC/JSC.cpp",
        "line": 127,
        "context": {
          "start_line": 122,
          "end_line": 132,
          "lines": [
            {
              "line": 122,
              "text": " * @brief Decompresses the given bit vector into a string."
            },
            {
              "line": 123,
              "text": " *"
            },
            {
              "line": 124,
              "text": " * @param bitvec"
            },
            {
              "line": 125,
              "text": " * @return QString"
            },
            {
              "line": 126,
              "text": " */"
            },
            {
              "line": 127,
              "text": "QString JSC::decompress(Codeword const &bitvec) {"
            },
            {
              "line": 128,
              "text": "    const quint32 b = 4;"
            },
            {
              "line": 129,
              "text": "    const quint32 s = 7;"
            },
            {
              "line": 130,
              "text": "    const quint32 c = pow(2, b) - s;"
            },
            {
              "line": 131,
              "text": ""
            },
            {
              "line": 132,
              "text": "    QStringList out;"
            }
          ]
        }
      }
    ]
  },
  "source_contract": {
    "message174_alphabet": "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-+",
    "alphabet72": "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-+/?.",
    "frame_types": {
      "0": "FrameHeartbeat",
      "1": "FrameCompound",
      "2": "FrameCompoundDirected",
      "3": "FrameDirected",
      "4": "FrameData",
      "5": "FrameData",
      "6": "FrameDataCompressed",
      "7": "FrameDataCompressed"
    },
    "implemented_rx_unpack": [
      "unpack72bits",
      "frame_type",
      "directed",
      "heartbeat",
      "compound",
      "callsign",
      "grid",
      "legacy_huff_data_probe"
    ],
    "not_yet_ported": [
      "JSC::decompress full compressed text",
      "multi-frame buffer assembly",
      "WebFTR live integration"
    ]
  },
  "input_decode_count": 2,
  "frame_probe_count": 2,
  "webftr_display_count": 0,
  "hidden_candidate_count": 2,
  "frame_type_counts": {
    "FrameHeartbeat": 1,
    "FrameDirected": 1
  },
  "webftr_rx_rows": [],
  "candidate_rows": [
    {
      "id": "js8-frame66-bf1ce62fdb4a",
      "source_decode_id": "js8-msg174-2b7db8e6",
      "mode": "JS8",
      "text": "001XqOA2iDZ0",
      "valid_message174_crc12": true,
      "crc12_distance": 0,
      "received_crc12": 2920,
      "computed_crc12": 2920,
      "source": {
        "source_file": "/decoders/js8_decoder/logs/20260527T150600Z_source_exact_map_probe_output.json",
        "json_path": "$.best_candidate.candidate_bits",
        "source_kind": "generic_bit_list",
        "row_index": 237,
        "map_name": "raw",
        "map_source": null
      },
      "frame_probe": {
        "message_text_12chars": "001XqOA2iDZ0",
        "length": 12,
        "source_alphabet72_compatible": true,
        "ok": true,
        "unpack72": {
          "value": 107552465662168,
          "value_hex": "0x000061d18282b0d8",
          "rem": 192,
          "top3": 0,
          "top2": 0,
          "first_16_bits": "0000000000000000"
        },
        "frame_type": "FrameHeartbeat",
        "frame_type_bits": 0,
        "displayable_after_frame_unpack": false,
        "frame_fields": {
          "packed_type": 0,
          "callsign": "004REY/0V4",
          "packed_callsign": 52515852374,
          "packed_num": 6936,
          "bits3": 0,
          "valid_callsign_hint": true,
          "kind": "heartbeat_or_cq",
          "is_cq_alt": false,
          "grid": "OJ16",
          "message_token": "HB",
          "valid_grid_hint": true
        },
        "plausibility": {
          "score": 6,
          "reasons": [
            "valid_heartbeat_callsign",
            "valid_heartbeat_grid"
          ]
        },
        "frame_display_candidate": true,
        "display_guard_reason": "step66_annotation_only_pending_jsc_or_multiframe_text_confirmation",
        "candidate_class": "source_varicode_frame_candidate_guarded",
        "display_text_hint": "HB 004REY/0V4 OJ16"
      },
      "show_in_rx_list": false,
      "display_text": "HB 004REY/0V4 OJ16",
      "candidate_class": "source_varicode_frame_candidate_guarded",
      "sort_index": 0
    },
    {
      "id": "js8-frame66-66ab29ded46c",
      "source_decode_id": "js8-msg174-369b0507",
      "mode": "JS8",
      "text": "Q0VsKWqfJ96x",
      "valid_message174_crc12": true,
      "crc12_distance": 0,
      "received_crc12": 980,
      "computed_crc12": 980,
      "source": {
        "source_file": "/decoders/js8_decoder/logs/20260527T150600Z_source_exact_map_probe_output.json",
        "json_path": "$.top_llr_row_exports[6].hard_bits",
        "source_kind": "generic_bit_list",
        "row_index": 82,
        "map_name": "raw",
        "map_source": null
      },
      "frame_probe": {
        "message_text_12chars": "Q0VsKWqfJ96x",
        "length": 12,
        "source_alphabet72_compatible": true,
        "ok": true,
        "unpack72": {
          "value": 7496230937050041489,
          "value_hex": "0x6807f6520d294c91",
          "rem": 187,
          "top3": 3,
          "top2": 1,
          "first_16_bits": "0110100000000111"
        },
        "frame_type": "FrameDirected",
        "frame_type_bits": 3,
        "displayable_after_frame_unpack": false,
        "frame_fields": {
          "from": "9I2TZR/P",
          "to": "0Z0PMP",
          "cmd_id": 17,
          "cmd": " INFO",
          "extra": 59,
          "extra_value": {
            "kind": "number",
            "value": 28
          },
          "portable_from": true,
          "portable_to": false,
          "valid_from_hint": true,
          "valid_to_hint": true
        },
        "plausibility": {
          "score": 10,
          "reasons": [
            "valid_directed_from",
            "valid_directed_to",
            "directed_command"
          ]
        },
        "frame_display_candidate": true,
        "display_guard_reason": "step66_annotation_only_pending_jsc_or_multiframe_text_confirmation",
        "candidate_class": "source_varicode_frame_candidate_guarded",
        "display_text_hint": "9I2TZR/P 0Z0PMP INFO 28"
      },
      "show_in_rx_list": false,
      "display_text": "9I2TZR/P 0Z0PMP INFO 28",
      "candidate_class": "source_varicode_frame_candidate_guarded",
      "sort_index": 1
    }
  ],
  "suppressed_candidates": [
    {
      "id": "js8-frame66-bf1ce62fdb4a",
      "source_decode_id": "js8-msg174-2b7db8e6",
      "mode": "JS8",
      "text": "001XqOA2iDZ0",
      "valid_message174_crc12": true,
      "crc12_distance": 0,
      "received_crc12": 2920,
      "computed_crc12": 2920,
      "source": {
        "source_file": "/decoders/js8_decoder/logs/20260527T150600Z_source_exact_map_probe_output.json",
        "json_path": "$.best_candidate.candidate_bits",
        "source_kind": "generic_bit_list",
        "row_index": 237,
        "map_name": "raw",
        "map_source": null
      },
      "frame_probe": {
        "message_text_12chars": "001XqOA2iDZ0",
        "length": 12,
        "source_alphabet72_compatible": true,
        "ok": true,
        "unpack72": {
          "value": 107552465662168,
          "value_hex": "0x000061d18282b0d8",
          "rem": 192,
          "top3": 0,
          "top2": 0,
          "first_16_bits": "0000000000000000"
        },
        "frame_type": "FrameHeartbeat",
        "frame_type_bits": 0,
        "displayable_after_frame_unpack": false,
        "frame_fields": {
          "packed_type": 0,
          "callsign": "004REY/0V4",
          "packed_callsign": 52515852374,
          "packed_num": 6936,
          "bits3": 0,
          "valid_callsign_hint": true,
          "kind": "heartbeat_or_cq",
          "is_cq_alt": false,
          "grid": "OJ16",
          "message_token": "HB",
          "valid_grid_hint": true
        },
        "plausibility": {
          "score": 6,
          "reasons": [
            "valid_heartbeat_callsign",
            "valid_heartbeat_grid"
          ]
        },
        "frame_display_candidate": true,
        "display_guard_reason": "step66_annotation_only_pending_jsc_or_multiframe_text_confirmation",
        "candidate_class": "source_varicode_frame_candidate_guarded",
        "display_text_hint": "HB 004REY/0V4 OJ16"
      },
      "show_in_rx_list": false,
      "display_text": "HB 004REY/0V4 OJ16",
      "candidate_class": "source_varicode_frame_candidate_guarded",
      "sort_index": 0
    },
    {
      "id": "js8-frame66-66ab29ded46c",
      "source_decode_id": "js8-msg174-369b0507",
      "mode": "JS8",
      "text": "Q0VsKWqfJ96x",
      "valid_message174_crc12": true,
      "crc12_distance": 0,
      "received_crc12": 980,
      "computed_crc12": 980,
      "source": {
        "source_file": "/decoders/js8_decoder/logs/20260527T150600Z_source_exact_map_probe_output.json",
        "json_path": "$.top_llr_row_exports[6].hard_bits",
        "source_kind": "generic_bit_list",
        "row_index": 82,
        "map_name": "raw",
        "map_source": null
      },
      "frame_probe": {
        "message_text_12chars": "Q0VsKWqfJ96x",
        "length": 12,
        "source_alphabet72_compatible": true,
        "ok": true,
        "unpack72": {
          "value": 7496230937050041489,
          "value_hex": "0x6807f6520d294c91",
          "rem": 187,
          "top3": 3,
          "top2": 1,
          "first_16_bits": "0110100000000111"
        },
        "frame_type": "FrameDirected",
        "frame_type_bits": 3,
        "displayable_after_frame_unpack": false,
        "frame_fields": {
          "from": "9I2TZR/P",
          "to": "0Z0PMP",
          "cmd_id": 17,
          "cmd": " INFO",
          "extra": 59,
          "extra_value": {
            "kind": "number",
            "value": 28
          },
          "portable_from": true,
          "portable_to": false,
          "valid_from_hint": true,
          "valid_to_hint": true
        },
        "plausibility": {
          "score": 10,
          "reasons": [
            "valid_directed_from",
            "valid_directed_to",
            "directed_command"
          ]
        },
        "frame_display_candidate": true,
        "display_guard_reason": "step66_annotation_only_pending_jsc_or_multiframe_text_confirmation",
        "candidate_class": "source_varicode_frame_candidate_guarded",
        "display_text_hint": "9I2TZR/P 0Z0PMP INFO 28"
      },
      "show_in_rx_list": false,
      "display_text": "9I2TZR/P 0Z0PMP INFO 28",
      "candidate_class": "source_varicode_frame_candidate_guarded",
      "sort_index": 1
    }
  ],
  "verdict": "source_varicode_frames_classified_but_not_displayable",
  "warnings": [
    "Step66 is still RX-only diagnostics. It classifies message174 text as JS8 Varicode frame families but does not start JS8Call GUI/Qt.",
    "Rows remain hidden unless callsign/grid/command/text plausibility survives source-style frame unpacking.",
    "Compressed Data frames still require a later JSC::decompress port before real JS8 chat text can be displayed."
  ],
  "next_action": "If frame types look plausible but hidden, port JSC::decompress and multi-frame assembly next; if a display row appears, wire webftr_rx_rows into the JS8 RX UI contract."
}

[webftr-js8-lab] OK
[webftr-js8-lab] log file: /decoders/js8_decoder/logs/20260527T173043Z_source-varicode-frame-unpack-probe.log
[webftr-js8-lab] manifest: /decoders/js8_decoder/logs/20260527T173043Z_source-varicode-frame-unpack-probe_manifest.json

Auto-Refresh alle 5 Sekunden mit frischem ?t=.... RX-only: kein TX, kein PTT, kein Tune, kein Send.