diagnostics_ok/decoders/js8_decoder/decoders/js8_test.wav?t=1779903516844n);"
},
{
"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.