{ "components": [ { "component": "PipelineFlowView", "id": "1a80b2d1-2db7-4a58-8f9b-9bc882671ff0", "layout": { "cols": 12, "order": 0, "rows": 1, "x": 0, "y": 0 }, "props": { "connections": [ { "from": "69bd3deeff031ee6e72c0a9d-1776345526320", "to": "69bd3deeff031ee6e72c0aa0-1776345543621" }, { "from": "69bd3deeff031ee6e72c0aa0-1776345543621", "to": "69bd3deeff031ee6e72c0a9b-1776345577288" }, { "from": "69bd3deeff031ee6e72c0a9b-1776345577288", "to": "69bd3deeff031ee6e72c0a9f-1776345584342" }, { "from": "69bd3deeff031ee6e72c0aa1-1776345548184", "to": "69bd3deeff031ee6e72c0aa2-1776345597091" }, { "from": "69bd3deeff031ee6e72c0aa1-1776345548184", "to": "69bd3deeff031ee6e72c0aa2-1776345597091" }, { "from": "69bd3deeff031ee6e72c0aa1-1776345548184", "to": "69bd3deeff031ee6e72c0aa2-1776345597091" }, { "from": "69bd3deeff031ee6e72c0aa1-1776345548184", "to": "69bd3deeff031ee6e72c0aa2-1776345597091" }, { "from": "69bd3deeff031ee6e72c0aa1-1776345548184", "to": "69bd3deeff031ee6e72c0aa2-1776345597091" }, { "from": "69bd3deeff031ee6e72c0a9f-1776345584342", "to": "69bd3deeff031ee6e72c0a9c-1776345675756" }, { "from": "69bd3deeff031ee6e72c0a9c-1776345675756", "to": "69bd3deeff031ee6e72c0aa2-1776345597091" }, { "from": "69bd3deeff031ee6e72c0aa2-1776345597091", "to": "69d80d08aabdb365e3b84e14-1776361788176" }, { "from": "69bd3deeff031ee6e72c0a9d-1776345526320", "to": "69bd3deeff031ee6e72c0aa1-1776345548184" } ], "operators": [ { "className": "PlutoSourceOp", "id": "69bd3deeff031ee6e72c0a9d-1776345526320", "name": "pluto_source", "type": "source" }, { "className": "PreprocessorOp", "id": "69bd3deeff031ee6e72c0aa0-1776345543621", "name": "preprocessor", "type": "preprocessing" }, { "className": "SpectrogramOp", "id": "69bd3deeff031ee6e72c0aa1-1776345548184", "name": "spectrogram", "type": "preprocessing" }, { "className": "InferenceOp", "id": "69bd3deeff031ee6e72c0a9b-1776345577288", "name": "inference_builtin", "type": "inference" }, { "className": "PostprocessorOp", "id": "69bd3deeff031ee6e72c0a9f-1776345584342", "name": "postprocessor", "type": "postprocessing" }, { "className": "ModelMapperOp", "id": "69bd3deeff031ee6e72c0a9c-1776345675756", "name": "model_mapper", "type": "postprocessing" }, { "className": "SpectrogramDashboardOp", "id": "69bd3deeff031ee6e72c0aa2-1776345597091", "name": "spectrogram_dashboard", "type": "sink" }, { "className": "PlutoTXOp", "id": "69d80d08aabdb365e3b84e14-1776361788176", "name": "PlutoTXOp", "type": "sink" } ] } }, { "component": "RadioSourcePanel", "id": "234b5c0b-aee0-471f-a1ed-0e42a9f66f33", "layout": { "cols": 7, "h": 6, "order": 1, "rows": 6, "w": 7, "x": 0, "y": 1 }, "props": { "config": { "agentId": "", "bandwidth": 2000000, "centerFreq": 99900000, "deviceArgs": "", "deviceIndex": null, "frequency": null, "gain": null, "numSamples": 4096, "sampleRate": 2500000, "uri": "192.168.3.1", "waveform": "" }, "description": "PlutoSDR RX source operator. Acquires raw IQ samples from an Analog Devices PlutoSDR (AD9361) via libiio and emits them as shared complex vectors.", "deviceType": "pluto", "operatorId": "69bd3deeff031ee6e72c0a9d-1776345526320", "operatorName": "pluto_source" } }, { "component": "ComposerOpPanel", "id": "605200c5-04f8-4f33-8137-9e8cb22b7eb0", "layout": { "cols": 5, "h": 1, "order": 4, "rows": 1, "w": 5, "x": 7, "y": 1 }, "props": { "blockType": "inference", "className": "InferenceOp", "description": "Built-in Holoscan InferenceOp. Runs ONNX Runtime or TensorRT inference on GXF tensor entities.", "details": "Models: model.onnx", "title": "inference_builtin" } }, { "component": "OnnxInferenceMonitor", "id": "b8012843-af9b-4693-8708-45dc53717b99", "layout": { "cols": 5, "h": 1, "order": 4, "rows": 1, "w": 5, "x": 7, "y": 3 }, "props": { "operatorName": "inference_builtin" } }, { "component": "BackendInferenceOutput", "id": "22e268ce-57a4-47e6-a875-c0e94b3b5964", "layout": { "cols": 5, "h": 1, "order": 5, "rows": 1, "w": 5, "x": 7, "y": 2 }, "props": { "historyLen": 24, "labels": [ "Bleedover", "Collisions", "Parallel", "Birdies", "CTNB", "LFM", "None", "Jamming" ], "topK": 5 } }, { "component": "SinkPanel", "id": "eb78a5c5-f4d5-49ec-bd2a-9cbbe88bbe78", "layout": { "cols": 5, "h": 1, "order": 5, "rows": 1, "w": 5, "x": 7, "y": 4 }, "props": { "connectionConfig": { "attenuation": 0, "bandwidth": 2000000, "centerFreq": 2415500000, "sampleRate": 2500000, "uri": "192.168.3.1" }, "description": "Transmits IQ samples through an ADALM-Pluto SDR via libiio.", "inputs": null, "operatorId": "69d80d08aabdb365e3b84e14-1776361788176", "operatorName": "PlutoTXOp", "showConnectionConfig": true, "showDenseMetrics": true, "showInputPorts": true, "sinkType": "transmit" } } ], "config": { "inference": { "interval": 1, "iq_pop_timeout_sec": 0.25, "knownDevices": [ "Bleedover", "Collisions", "Parallel", "Birdies", "CTNB", "LFM", "None", "Jamming" ], "outputClasses": 8 }, "radio": { "agentId": "", "bandwidth": 2000000, "centerFreq": 99900000, "deviceArgs": "", "deviceIndex": null, "frequency": null, "gain": null, "numSamples": 4096, "sampleRate": 2500000, "uri": "192.168.3.1", "waveform": "" } }, "dataSource": { "agent_id": "", "params": { "bandwidth": 2000000, "buffer_size": 4096, "center_frequency": 99900000, "device": "pluto", "gain": 40, "identifier": "192.168.3.1", "sample_rate": 2500000 }, "type": "agent" }, "description": "Screens application generated from Application Composer", "models": [ { "format": "onnx", "oid": "dbc3c7514a99bece0c2b2b30b7c3de0e43144a6ad909a1d479a91a679f824837", "path": "models/model.onnx", "repo": "qoherent/RIA_Example" } ], "name": "applications-example-application-json", "screensRuntime": { "flows": [ { "downstream": "69bd3deeff031ee6e72c0aa0-1776345543621", "upstream": "69bd3deeff031ee6e72c0a9d-1776345526320" }, { "downstream": "69bd3deeff031ee6e72c0a9b-1776345577288", "upstream": "69bd3deeff031ee6e72c0aa0-1776345543621" }, { "downstream": "69bd3deeff031ee6e72c0a9f-1776345584342", "upstream": "69bd3deeff031ee6e72c0a9b-1776345577288" }, { "downstream": "69bd3deeff031ee6e72c0aa2-1776345597091", "upstream": "69bd3deeff031ee6e72c0aa1-1776345548184" }, { "downstream": "69bd3deeff031ee6e72c0aa2-1776345597091", "upstream": "69bd3deeff031ee6e72c0aa1-1776345548184" }, { "downstream": "69bd3deeff031ee6e72c0aa2-1776345597091", "upstream": "69bd3deeff031ee6e72c0aa1-1776345548184" }, { "downstream": "69bd3deeff031ee6e72c0aa2-1776345597091", "upstream": "69bd3deeff031ee6e72c0aa1-1776345548184" }, { "downstream": "69bd3deeff031ee6e72c0aa2-1776345597091", "upstream": "69bd3deeff031ee6e72c0aa1-1776345548184" }, { "downstream": "69bd3deeff031ee6e72c0a9c-1776345675756", "upstream": "69bd3deeff031ee6e72c0a9f-1776345584342" }, { "downstream": "69bd3deeff031ee6e72c0aa2-1776345597091", "upstream": "69bd3deeff031ee6e72c0a9c-1776345675756" }, { "downstream": "69d80d08aabdb365e3b84e14-1776361788176", "upstream": "69bd3deeff031ee6e72c0aa2-1776345597091" }, { "downstream": "69bd3deeff031ee6e72c0aa1-1776345548184", "upstream": "69bd3deeff031ee6e72c0a9d-1776345526320" } ], "inference_order": [ { "class_name": "InferenceOp", "model_paths": [ "model.onnx" ], "op_id": "69bd3deeff031ee6e72c0a9b-1776345577288" } ], "ops": [ { "class_name": "PlutoSourceOp", "id": "69bd3deeff031ee6e72c0a9d-1776345526320", "name": "pluto_source", "specs": [ { "default": "192.168.3.1", "key": "ip_addr" }, { "default": 2, "key": "bandwidth_mhz" }, { "default": 2.5, "key": "sample_rate_mhz" }, { "default": 0.0999, "key": "lo_frequency_ghz" }, { "default": 20, "key": "rx_gain_db" }, { "default": 0, "key": "rf_port" }, { "default": 4096, "key": "buffer_size" }, { "default": 10, "key": "poll_rate_ms" } ], "type": "source" }, { "class_name": "PreprocessorOp", "id": "69bd3deeff031ee6e72c0aa0-1776345543621", "name": "preprocessor", "specs": [ { "default": "pool_resource", "key": "allocator" }, { "default": "input", "key": "in_tensor_name" } ], "type": "preprocessing" }, { "class_name": "SpectrogramOp", "id": "69bd3deeff031ee6e72c0aa1-1776345548184", "name": "spectrogram", "specs": [ { "default": 2048, "key": "fft_size" }, { "default": 256, "key": "history_depth" }, { "default": 2048, "key": "hop_size" }, { "default": -80, "key": "db_min" }, { "default": 0, "key": "db_max" }, { "default": 0.000488281, "key": "input_scale" } ], "type": "preprocessing" }, { "class_name": "InferenceOp", "id": "69bd3deeff031ee6e72c0a9b-1776345577288", "name": "inference_builtin", "specs": [ { "default": "onnxrt", "key": "backend" }, { "default": "model.onnx", "key": "model_path_map" }, { "default": "input", "key": "pre_processor_map" }, { "default": "output", "key": "inference_map" }, { "default": false, "key": "input_on_cuda" }, { "default": false, "key": "output_on_cuda" }, { "default": false, "key": "transmit_on_cuda" }, { "default": "pool_resource", "key": "allocator" } ], "type": "inference" }, { "class_name": "PostprocessorOp", "id": "69bd3deeff031ee6e72c0a9f-1776345584342", "name": "postprocessor", "specs": [ { "default": "output", "key": "out_tensor_name" } ], "type": "postprocessing" }, { "class_name": "SpectrogramDashboardOp", "id": "69bd3deeff031ee6e72c0aa2-1776345597091", "name": "spectrogram_dashboard", "specs": [ { "default": 8080, "key": "websocket_port" }, { "default": "workspace/app/web", "key": "web_root_path" }, { "default": 30, "key": "update_rate_hz" } ], "type": "sink" }, { "class_name": "ModelMapperOp", "id": "69bd3deeff031ee6e72c0a9c-1776345675756", "name": "model_mapper", "specs": [ { "default": "[\"Bleedover\", \"Collisions\", \"Parallel\", \"Birdies\", \"CTNB\", \"LFM\", \"None\", \"Jamming\"]", "key": "labels" } ], "type": "postprocessing" }, { "class_name": "PlutoTXOp", "id": "69d80d08aabdb365e3b84e14-1776361788176", "name": "PlutoTXOp", "specs": [ { "default": "192.168.3.1", "key": "uri" }, { "default": 2500000, "key": "sample_rate" }, { "default": "2415500000", "key": "center_freq" }, { "default": 2000000, "key": "bandwidth" }, { "default": "0", "key": "attenuation" } ], "type": "sink" } ], "version": 1 }, "version": "1.0.0" }