-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.json
More file actions
1968 lines (1968 loc) · 456 KB
/
index.json
File metadata and controls
1968 lines (1968 loc) · 456 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
[
{
"uri": "https://redhawksdr.github.io/",
"title": "Home",
"tags": [],
"description": "",
"content": " Description REDHAWK is a software-defined radio (SDR) framework designed to support the development, deployment, and management of real-time software radio applications. To support the design and development of software applications, REDHAWK provides tools that allow development and testing of software modules called \u0026ldquo;Components\u0026rdquo; and composition of Components into \u0026ldquo;Waveform Applications\u0026rdquo; that can be seamlessly deployed on a single computer or multiple network-enabled computers.\nThe REDHAWK integrated development environment (IDE) provides tools to support development of REDHAWK software. The development and deployment of REDHAWK Applications are aided by graphical editors and drag-and-drop Waveform construction. The IDE allows users to interact with and control multiple running REDHAWK instances and applications.\nRecent Announcements Release of REDHAWK 2.3.2 (February 2023) Release of REDHAWK 2.2.10 (February 2023) Release of REDHAWK 3.0.1 (September 2022) License REDHAWK is licensed under a combination of the GNU Lesser General Public License (LGPL), the Eclipse Public License (EPL), the Apache (v.2.0) License, the Python Software Foundation (PSF) license agreement, Mozilla Public License (v.1.1), and the GNU General Public License (GPL). For more information, refer to the LICENSE file in the respective repositories. REDHAWK documentation is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. REDHAWK documentation is built with Hugo which is licensed under the Apache License 2.0 and uses the Hugo DocDock Theme, licensed under the MIT License.\nCopyright This work is protected by Copyright. For updated copyright information, refer to the Copyright file.\n"
},
{
"uri": "https://redhawksdr.github.io/release-notes/2.0-lts/release-notes-2.0.8/",
"title": "REDHAWK Release Notes - 2.0.8",
"tags": [],
"description": "",
"content": " The effort in REDHAWK 2.0.8 focused on:\n Core Framework\n Preventing sb.DataSink from adding an empty timestamp when it receives EOS in an empty packet. Adding inline header comments documenting C++ BulkIO input stream, output stream, and data block APIs. Fixing improperly scoped locks in Core Framework control. Implementing several C++ fixes to allow REDHAWK to compile on newer compilers. Correcting default property kinds in the DTD and XSD so they are no longer out of sync with the behavior of the Core Framework and the ICD. Adding new behavior to the C++ input stream API: It is now possible to \u0026ldquo;peek\u0026rdquo; into data sets that have reached EOS by setting consume to 0 when using read or tryread. Patching omniORBpy to prevent possible segfaults in multithreaded code. Correcting behavior so readonly property kind properties for Devices and Services can now be modified during deployment using Device Configuration Descriptor (dcd.xml) file. IDE\n Resolving issue so when launching Waveforms containing references to mistyped properties, the IDE displays all the properties including the property that had a mis-matched override in the SAD file. Removing old code generation templates for REDHAWK 1.8 from the IDE. Old IDE diagrams for Waveforms and Nodes from pre-2.0.0 were also removed. Adding M2Eclipse to the REDHAWK IDE, which provides tooling to work with Maven-based projects such as the REDHAWK Enterprise Integration assets. Documentation\n Adding documentation to the REDHAWK Manual regarding naming elements in structures such that element names can be reused across different structures. Adding documentation explaining how to use the Allocation Manager. REDHAWK Enterprise Integration\n Enhancing the REDHAWK Enterprise Integration Demo GUI by adding support for Raster and Line plots from time- or fft-based data using Sigplot, using JTransforms with REDHAWK Websocket to perform FFT, cleaning up the Demo GUI, and updating screenshots and documentation to include new FFT and Raster functionality in the GUI. Adding a helper method to dynamically connect two Components; Improving methods used to set REDHAWK Properties; and Adding AllocationFactory to ease users’ ability to generate allocations. Adding functionality in REDHAWK REST and Websocket to support JAAS-based method level access. Fixes The following IDE and Core Framework fixes were completed in REDHAWK 2.0.8.\nRelease notes for Core Assets are available on Github (https://github.com/RedhawkSDR/) in each Core Asset repository.\nCore Framework Fixes The following Core Framework bug fixes were completed in REDHAWK 2.0.8.\n Persona and programmable device pattern code generators compile correctly. C++ components using the RH_LogEventAppender threw an exception during shutdown when the event service was terminated before the component. Properties set as \u0026ldquo;commandline\u0026rdquo; are appropriately overridden on deployment. Removed traceback messages from qtbrowse. sb.DataSink no longer stores invalid timestamps. Assembly controller properties can be renamed (and overridden) at the Application level. Fixed improperly scoped locks in Core Framework control. Fixed several C++ constructs that do not compile on newer versions of gcc. To maintain backwards compatibility, updated the XSD/DTD default value for kind and configurationkind from \u0026ldquo;property\u0026rdquo; to \u0026ldquo;configure\u0026rdquo;. Listing registrants for an unknown event channel returns an empty list. Readonly property kind properties for Devices and Services can now be modified during deployment using Device Configuration Descriptor (dcd.xml) file. Special Resolutions The following previously reported Known Issues have been closed in REDHAWK 2.0.8 with the following resolutions:\n Won’t Fix Unit test for Devices in 1.8.X returns Component object - This issue is not present in REDHAWK 2.0+ series. Struct_from_props fails during allocate_capacity in python device - This behavior is not an error. Fixed By Other Issue GPP Valgrind Results - Fixed by improvements made to the GPP during development in the REDHAWK 2.0 series. Cannot Reproduce –enableOctave test failed on codegen test test_02_EvaluateUnitTests [Component: octaveTest0] IDE Fixes The following IDE bug fixes were completed in REDHAWK 2.0.8.\n An error is now displayed when attempting code generation with an unsupported template type. Fixed an issue to ensure that only appropriate menu items to the current selection are displayed in context menus. In the Port Monitor View, corrected the display of data rates for low-rate data streams. The Launch Waveform wizard search capability now assumes a leading wildcard character. Double-quote entries for property string values are now always treated as empty strings. In the PRF editor, the Remove Value button is now correctly enabled. Resolved errors when adding and removing Devices and Services using the Devices tab in the Node editor. Resolved title text discrepancies in the Properties View. The context menu for a Domain Manager no longer shows \u0026ldquo;Connect\u0026rdquo; if the Domain Manager is already connected. Fixed issue to ensure that simple properties that are not of type \u0026ldquo;property\u0026rdquo; cannot be assigned the command-line attribute. In the Properties tab of the SAD editor, the members of properties belonging to the assembly controller no longer display an external ID. Corrected a code issue internal to the IDE during the code generation process. When attempting to perform a \u0026ldquo;Display SRI\u0026rdquo; action on a Tuner with no applicable Ports, an error message is now displayed. Displaying SRI for a FrontEnd tuner no longer prevents other IDEs from also displaying the SRI. Ensured that when plotting SDDS ports, a conneciton ID can be specified. This also corrects issues with plotting for SDDS Ports on FEI multi-out Devices. Improved error handling when a query of a resource’s Properties returns unexpected results. Corrected an issue where values could not be added to a struct sequence in the Properties tab of the SAD editor. Deleting a resource in the Target SDR now closes any associated open editors. Limited refreshes of underline Port model objects. Corrected an NPE that occurred when using the Redhawk Import wizard for a shared library project. Ensured that deleting a Component instantiation only cleans up the hosting Component placement if there are no remaining sibling instantiations. Removed shared libraries from the Property browser. Deleting an aggregate Device removed references from associated compositepartofdevice tags. When adding Ports using the Port tab in the SPD editor, an NPE is no longer logged. When launching a Domain Manager with a name that is duplicated in another running Domain, the IDE now always shows an error. Resolved ClassCastException when launching Waveforms containing references to mistyped properties. Corrected an issue where the IDE could hang or become sluggish while using the CORBA Name Browser view. Corrected the default property kind in the DTD schema for PRF files. The IDE now allows configuring ’property’ kind properties that have the ’commandline’ attribute set. The IDE now passes the initial value of ’property’ kind properties to initializeProperties() when resources are launched in the Sandbox. In the Properties tab of the SAD editor, overriding the values of properties is no longer allowed when it does not make sense (for example, allocation properties). Negative numbers are no longer allowed in values for complex unsigned properties. Parsing of complex boolean properties was also corrected. Added the Logging Configuration Plugin appendix to the help and corrected the link to the List of Acronyms appendix. Corrected an error that occurred when the value of a simpleref inside a structref in a SAD file did not make sense for the referenced property type. Resources now report an error if they receive a non-sequence value for a simple sequence property. Fixed incorrect validation message for structs containing a sequence with no values while also containing a simple with a default value. Corrected an NPE that occurred when saving a SAD or DCD file with no name. When installing IDL projects with sudo privileges, the permissions are set on the installed artifacts such that they are visible to non-root users on the system. Added the Eclipse p2 director application to the REDHAWK Explorer product. Resources now show errors associated with any of their properties. An internal IDE model was corrected to prevent a compilation error. Fixed issue to ensure Data List is not enabled for unsupported Ports. Fixed issue to ensure that Play Port is not enabled for unsupported Ports. Fixed issue to ensure that Snapshot is not enabled for unsupported Ports. Fixed issue to ensure that the profile for a running Domain Manager, Waveform, or Device manager cannot be edited. Fixed issue to ensure that the Domain Waveform associated with a local Waveform cannot be edited. Fixed issue to ensure that the exec params for a launched resource in the Sandbox cannot be edited. Fixed issue to ensure that the implementation ID for a launched resource in the Sandbox cannot be edited. After listening to an event channel, the IDE now correctly releases all internal resources. Event channels can now be listened to from the CORBA Name Browser view. Fixed issue to correct an NPE so it does not occur while interacting with the CORBA Name Browser view. Text on the IDE splash screen is now correctly displayed and not truncated. Special Resolutions The following previously reported Known Issues have been closed in REDHAWK 2.0.8 with the following resolutions:\n Cannot Reproduce Generate button temporarily disabled on SPD editor - Cannot Reproduce SAD editor properties tab allows setting external IDs on struct / struct seq members - Cannot Reproduce Documentation Improvements/Fixes The following documentation new features/improvements/fixes were completed in REDHAWK 2.0.8.\n Updated the REDHAWK SCA and ICD documents to describe duplicate Device and DeviceManager registration behavior. Fixed display of level 5 headings. Added Octave information to installation information in the REDHAWK Manual. Added a note about avoiding reserved names in the REDHAWK IDL Project section of the REDHAWK Manual. Corrected incorrect reference of redhawk-connect-name with redhawk-connection-name in the REDHAWK REST section of the REDHAWK Enterprise Integration User Guide. Fixed trivial grammar issue in Logging Configuration Plugin Appendix. Added REDHAWK Jaxrs Security Filter chapter to REDHAWK Enterprise Integration User Guide to explain how to configure role-based access to individual REST endpoints. REDHAWK Enterprise Integration documentation to explain how to configure Jetty w/ Jacorb. Added required naming conventions to the REDHAWK Manual. Added space after REDHAWK graphic on REDHAWK Overview title page. Removed Additional Documentation section from Download page. Corrected dashes in the sample code in the Setting Up the REDHAWK Repository section of the REDHAWK Manual. "
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.amfmpmbasebanddemod.readme/",
"title": "rh.AmFmPmBasebandDemod",
"tags": [],
"description": "",
"content": " REDHAWK rh.AmFmPmBasebandDemod Description Contains the source and build script for the REDHAWK rh.AmFmPmBasebandDemod component. This component performs angle demodulation on complex baseband input signals.\nInstallation This asset requires the rh.dsp shared library. This shared library must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT run, build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.amfmpmbasebanddemod.readme/",
"title": "rh.AmFmPmBasebandDemod",
"tags": [],
"description": "",
"content": " REDHAWK rh.AmFmPmBasebandDemod Description Contains the source and build script for the REDHAWK rh.AmFmPmBasebandDemod component. This component performs angle demodulation on complex baseband input signals.\nInstallation This asset requires the rh.dsp shared library. This shared library must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT run, build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.amfmpmbasebanddemod.readme/",
"title": "rh.AmFmPmBasebandDemod",
"tags": [],
"description": "",
"content": " REDHAWK rh.AmFmPmBasebandDemod Description Contains the source and build script for the REDHAWK rh.AmFmPmBasebandDemod component. This component performs angle demodulation on complex baseband input signals.\nInstallation This asset requires the rh.dsp shared library. This shared library must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT run, build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.arbitraryrateresampler.readme/",
"title": "rh.ArbitraryRateResampler",
"tags": [],
"description": "",
"content": " REDHAWK rh.ArbitraryRateResampler Description Contains the source and build script for the REDHAWK rh.ArbitraryRateResampler component. This component resamples a data stream at output rates which are not limited to integer multiples of the input sampling rate. This component can increase or decrease the sample rate. No anti-aliasing filtering is included, so users must use this component with caution when decreasing the sampling rate to avoid aliasing or pre-filter themselves in an upstream component if required.\nInstallation This asset requires the rh.dsp shared library, which must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.arbitraryrateresampler.readme/",
"title": "rh.ArbitraryRateResampler",
"tags": [],
"description": "",
"content": " REDHAWK rh.ArbitraryRateResampler Description Contains the source and build script for the REDHAWK rh.ArbitraryRateResampler component. This component resamples a data stream at output rates which are not limited to integer multiples of the input sampling rate. This component can increase or decrease the sample rate. No anti-aliasing filtering is included, so users must use this component with caution when decreasing the sampling rate to avoid aliasing or pre-filter themselves in an upstream component if required.\nInstallation This asset requires the rh.dsp shared library, which must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.arbitraryrateresampler.readme/",
"title": "rh.ArbitraryRateResampler",
"tags": [],
"description": "",
"content": " REDHAWK rh.ArbitraryRateResampler Description Contains the source and build script for the REDHAWK rh.ArbitraryRateResampler component. This component resamples a data stream at output rates which are not limited to integer multiples of the input sampling rate. This component can increase or decrease the sample rate. No anti-aliasing filtering is included, so users must use this component with caution when decreasing the sampling rate to avoid aliasing or pre-filter themselves in an upstream component if required.\nInstallation This asset requires the rh.dsp shared library, which must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.dataconverter.readme/",
"title": "rh.DataConverter",
"tags": [],
"description": "",
"content": " REDHAWK rh.DataConverter Description The rh.DataConverter component is used to convert between BulkIO data types in REDHAWK. With proper configuration, the rh.DataConverter component can convert between any of the following data types; Char, Octet, Unsigned Short, Short, Float and Double. The rh.DataConverter component is also capable of converting real data into complex data, and similarly complex data to real data.\nInstallation This asset requires the rh.fftlib shared library. This shared library must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nUsage To use the rh.DataConverter component, connect an input port to the desired input data stream that matches the input data type. Connect the output to the output port of the desired output type. Only one input port can be active at a time, but the data can be converted to multiple output types at the same time. If scaling is desired, fixed point output scaling can be enabled by the scaleOutput boolean. For floating point scaling or normalization, use the floatingPointRange and normalize_floating_point properties. The rh.DataConverter can also do real to complex and complex to real transformations. The output type (real/complex/passthrough) is controlled with the outputType property. If a transform is required, the properties controlling that transform are specified in the transformProperties property.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.dataconverter.readme/",
"title": "rh.DataConverter",
"tags": [],
"description": "",
"content": " REDHAWK rh.DataConverter Description The rh.DataConverter component is used to convert between BulkIO data types in REDHAWK. With proper configuration, the rh.DataConverter component can convert between any of the following data types; Char, Octet, Unsigned Short, Short, Float and Double. The rh.DataConverter component is also capable of converting real data into complex data, and similarly complex data to real data.\nInstallation This asset requires the rh.fftlib shared library. This shared library must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nUsage To use the rh.DataConverter component, connect an input port to the desired input data stream that matches the input data type. Connect the output to the output port of the desired output type. Only one input port can be active at a time, but the data can be converted to multiple output types at the same time. If scaling is desired, fixed point output scaling can be enabled by the scaleOutput boolean. For floating point scaling or normalization, use the floatingPointRange and normalize_floating_point properties. The rh.DataConverter can also do real to complex and complex to real transformations. The output type (real/complex/passthrough) is controlled with the outputType property. If a transform is required, the properties controlling that transform are specified in the transformProperties property.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.dataconverter.readme/",
"title": "rh.DataConverter",
"tags": [],
"description": "",
"content": " REDHAWK rh.DataConverter Description The rh.DataConverter component is used to convert between BulkIO data types in REDHAWK. With proper configuration, the rh.DataConverter component can convert between any of the following data types; Char, Octet, Unsigned Short, Short, Float and Double. The rh.DataConverter component is also capable of converting real data into complex data, and similarly complex data to real data.\nInstallation This asset requires the rh.fftlib shared library. This shared library must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nUsage To use the rh.DataConverter component, connect an input port to the desired input data stream that matches the input data type. Connect the output to the output port of the desired output type. Only one input port can be active at a time, but the data can be converted to multiple output types at the same time. If scaling is desired, fixed point output scaling can be enabled by the scaleOutput boolean. For floating point scaling or normalization, use the floatingPointRange and normalize_floating_point properties. The rh.DataConverter can also do real to complex and complex to real transformations. The output type (real/complex/passthrough) is controlled with the outputType property. If a transform is required, the properties controlling that transform are specified in the transformProperties property.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/waveforms/rh.fm_rbds_demo.readme/",
"title": "rh.FM_RBDS_demo",
"tags": [],
"description": "",
"content": " REDHAWK FM_RBDS_demo Description Contains the source and build script for the REDHAWK FM_RBDS_demo waveform. This waveform processes the RBDS digitial message present in broadcast FM radio signals. This waveform tunes and filters the signal, performs a BPSK demodulation, then decodes the RBDS data.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/waveforms/rh.fm_rbds_demo.readme/",
"title": "rh.FM_RBDS_demo",
"tags": [],
"description": "",
"content": " REDHAWK FM_RBDS_demo Description Contains the source and build script for the REDHAWK FM_RBDS_demo waveform. This waveform processes the RBDS digitial message present in broadcast FM radio signals. This waveform tunes and filters the signal, performs a BPSK demodulation, then decodes the RBDS data.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/waveforms/rh.fm_rbds_demo.readme/",
"title": "rh.FM_RBDS_demo",
"tags": [],
"description": "",
"content": " REDHAWK FM_RBDS_demo Description Contains the source and build script for the REDHAWK FM_RBDS_demo waveform. This waveform processes the RBDS digitial message present in broadcast FM radio signals. This waveform tunes and filters the signal, performs a BPSK demodulation, then decodes the RBDS data.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/waveforms/rh.fm_mono_demo.readme/",
"title": "rh.FM_mono_demo",
"tags": [],
"description": "",
"content": " REDHAWK FM_mono_demo Description Contains the source and build script for the REDHAWK FM_mono_demo waveform. This waveform processes the mono audio channel of broadcast FM Radio.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/waveforms/rh.fm_mono_demo.readme/",
"title": "rh.FM_mono_demo",
"tags": [],
"description": "",
"content": " REDHAWK FM_mono_demo Description Contains the source and build script for the REDHAWK FM_mono_demo waveform. This waveform processes the mono audio channel of broadcast FM Radio.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/waveforms/rh.fm_mono_demo.readme/",
"title": "rh.FM_mono_demo",
"tags": [],
"description": "",
"content": " REDHAWK FM_mono_demo Description Contains the source and build script for the REDHAWK FM_mono_demo waveform. This waveform processes the mono audio channel of broadcast FM Radio.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.filereader.readme/",
"title": "rh.FileReader",
"tags": [],
"description": "",
"content": " REDHAWK rh.FileReader Description Contains the source and build script for the REDHAWK rh.FileReader component. The rh.FileReader component reads data from a file on the SCA or local file system, and streams the data out a BulkIO output port.\nInstallation This asset requires the rh.blueFileLib and rh.RedhawkDevUtils shared libraries. These shared libraries must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nUsage To use rh.FileReader, configure the source_uri property with the path to the file (or directory of files) to be read. Configure the file_format property with the value appropriate for the input file(s). For files that do not contain a header with sample rate and/or frequency information, configure the sample_rate property with the sample rate and center_frequency with the center frequency of the data. Connect an output port of the appropriate type to the intended consumer of the data stream. To begin playback, configure the playback_state property to PLAY and ensure the component has been started.\nThe BLUEFILE and WAV options for the file_format property rely on the file header for the full description of the data to be read. Each other option fully describes the data to be read, and most options have up to four components:\n Mode: SCALAR (Real) or COMPLEX Atom size: 8 (Char/Octet), 16 (Short), 32 (Long/Float), or 64 (Double) Data type: Unsigned integer, Signed integer, Floating-point Byte Order: Big or Little Endian All possible file_format property values are listed in the table below.\n Label Value Mode Atom Size Data Type Byte Order BLUE/PLATINUM FILE BLUEFILE Header defined Header defined Header defined Header defined WAV WAV Scalar Header defined Header defined Little Endian XML XML Scalar 8 Char (Signed Integer) N/A SCALAR OCTET (8o) OCTET Scalar 8 Unsigned Integer N/A SCALAR CHAR (8t) CHAR Scalar 8 Signed Integer N/A SCALAR USHORT Little Endian (16or) USHORT_LITTLE_ENDIAN Scalar 16 Unsigned Integer Little Endian SCALAR USHORT Big Endian (16o) USHORT_BIG_ENDIAN Scalar 16 Unsigned Integer Big Endian SCALAR SHORT Little Endian(16tr) SHORT_LITTLE_ENDIAN Scalar 16 Signed Integer Little Endian SCALAR SHORT Big Endian (16t) SHORT_BIG_ENDIAN Scalar 16 Signed Integer Big Endian SCALAR ULONG Little Endian(32or) ULONG_LITTLE_ENDIAN Scalar 32 Unsigned Integer Little Endian SCALAR ULONG Big Endian (32o) ULONG_BIG_ENDIAN Scalar 32 Unsigned Integer Big Endian SCALAR LONG Little Endian (32tr) LONG_LITTLE_ENDIAN Scalar 32 Signed Integer Little Endian SCALAR LONG Big Endian (32t) LONG_BIG_ENDIAN Scalar 32 Signed Integer Big Endian SCALAR FLOAT Little Endian(32fr) FLOAT_LITTLE_ENDIAN Scalar 32 Floating-point Little Endian SCALAR FLOAT Big Endian (32f) FLOAT_BIG_ENDIAN Scalar 32 Floating-point Big Endian SCALAR DOUBLE Little Endian (64fr) DOUBLE_LITTLE_ENDIAN Scalar 64 Floating-point Little Endian SCALAR DOUBLE Big Endian (64f) DOUBLE_BIG_ENDIAN Scalar 64 Floating-point Big Endian COMPLEX OCTET (8o) COMPLEX_OCTET Complex 8 Unsigned Integer N/A COMPLEX CHAR (8t) COMPLEX_CHAR Complex 8 Signed Integer N/A COMPLEX USHORT Little Endian (16or) COMPLEX_USHORT_LITTLE_ENDIAN Complex 16 Unsigned Integer Little Endian COMPLEX USHORT Big Endian (16o) COMPLEX_USHORT_BIG_ENDIAN Complex 16 Unsigned Integer Big Endian COMPLEX SHORT Little Endian(16tr) COMPLEX_SHORT_LITTLE_ENDIAN Complex 16 Signed Integer Little Endian COMPLEX SHORT Big Endian (16t) COMPLEX_SHORT_BIG_ENDIAN Complex 16 Signed Integer Big Endian COMPLEX ULONG Little Endian(32or) COMPLEX_ULONG_LITTLE_ENDIAN Complex 32 Unsigned Integer Little Endian COMPLEX ULONG Big Endian (32o) COMPLEX_ULONG_BIG_ENDIAN Complex 32 Unsigned Integer Big Endian COMPLEX LONG Little Endian (32tr) COMPLEX_LONG_LITTLE_ENDIAN Complex 32 Signed Integer Little Endian COMPLEX LONG Big Endian (32t) COMPLEX_LONG_BIG_ENDIAN Complex 32 Signed Integer Big Endian COMPLEX FLOAT Little Endian(32fr) COMPLEX_FLOAT_LITTLE_ENDIAN Complex 32 Floating-point Little Endian COMPLEX FLOAT Big Endian (32f) COMPLEX_FLOAT_BIG_ENDIAN Complex 32 Floating-point Big Endian COMPLEX DOUBLE Little Endian (64fr) COMPLEX_DOUBLE_LITTLE_ENDIAN Complex 64 Floating-point Little Endian COMPLEX DOUBLE Big Endian (64f) COMPLEX_DOUBLE_BIG_ENDIAN Complex 64 Floating-point Big Endian The desired output byte order is specified using the output_bulkio_byte_order property, which defaults to host byte order. If the byte order of the input file is different than that of the desired output byte order, byte swapping will occur.\nThe advanced_properties, default_timestamp, and default_sri struct properties, as well as the default_sri_keywords struct sequence property are available to support more complicated use cases. Each of the features available are documented in the description of each property when viewing the Properties Descriptor XML file (FileReader.prf.xml).\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.filereader.readme/",
"title": "rh.FileReader",
"tags": [],
"description": "",
"content": " REDHAWK rh.FileReader Description Contains the source and build script for the REDHAWK rh.FileReader component. The rh.FileReader component reads data from a file on the SCA or local file system, and streams the data out a BulkIO output port.\nInstallation This asset requires the rh.blueFileLib and rh.RedhawkDevUtils shared libraries. These shared libraries must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nUsage To use rh.FileReader, configure the source_uri property with the path to the file (or directory of files) to be read. Configure the file_format property with the value appropriate for the input file(s). For files that do not contain a header with sample rate and/or frequency information, configure the sample_rate property with the sample rate and center_frequency with the center frequency of the data. Connect an output port of the appropriate type to the intended consumer of the data stream. To begin playback, configure the playback_state property to PLAY and ensure the component has been started.\nThe BLUEFILE and WAV options for the file_format property rely on the file header for the full description of the data to be read. Each other option fully describes the data to be read, and most options have up to four components:\n Mode: SCALAR (Real) or COMPLEX Atom size: 8 (Char/Octet), 16 (Short), 32 (Long/Float), or 64 (Double) Data type: Unsigned integer, Signed integer, Floating-point Byte Order: Big or Little Endian All possible file_format property values are listed in the table below.\n Label Value Mode Atom Size Data Type Byte Order BLUE/PLATINUM FILE BLUEFILE Header defined Header defined Header defined Header defined WAV WAV Scalar Header defined Header defined Little Endian XML XML Scalar 8 Char (Signed Integer) N/A SCALAR OCTET (8o) OCTET Scalar 8 Unsigned Integer N/A SCALAR CHAR (8t) CHAR Scalar 8 Signed Integer N/A SCALAR USHORT Little Endian (16or) USHORT_LITTLE_ENDIAN Scalar 16 Unsigned Integer Little Endian SCALAR USHORT Big Endian (16o) USHORT_BIG_ENDIAN Scalar 16 Unsigned Integer Big Endian SCALAR SHORT Little Endian(16tr) SHORT_LITTLE_ENDIAN Scalar 16 Signed Integer Little Endian SCALAR SHORT Big Endian (16t) SHORT_BIG_ENDIAN Scalar 16 Signed Integer Big Endian SCALAR ULONG Little Endian(32or) ULONG_LITTLE_ENDIAN Scalar 32 Unsigned Integer Little Endian SCALAR ULONG Big Endian (32o) ULONG_BIG_ENDIAN Scalar 32 Unsigned Integer Big Endian SCALAR LONG Little Endian (32tr) LONG_LITTLE_ENDIAN Scalar 32 Signed Integer Little Endian SCALAR LONG Big Endian (32t) LONG_BIG_ENDIAN Scalar 32 Signed Integer Big Endian SCALAR FLOAT Little Endian(32fr) FLOAT_LITTLE_ENDIAN Scalar 32 Floating-point Little Endian SCALAR FLOAT Big Endian (32f) FLOAT_BIG_ENDIAN Scalar 32 Floating-point Big Endian SCALAR DOUBLE Little Endian (64fr) DOUBLE_LITTLE_ENDIAN Scalar 64 Floating-point Little Endian SCALAR DOUBLE Big Endian (64f) DOUBLE_BIG_ENDIAN Scalar 64 Floating-point Big Endian COMPLEX OCTET (8o) COMPLEX_OCTET Complex 8 Unsigned Integer N/A COMPLEX CHAR (8t) COMPLEX_CHAR Complex 8 Signed Integer N/A COMPLEX USHORT Little Endian (16or) COMPLEX_USHORT_LITTLE_ENDIAN Complex 16 Unsigned Integer Little Endian COMPLEX USHORT Big Endian (16o) COMPLEX_USHORT_BIG_ENDIAN Complex 16 Unsigned Integer Big Endian COMPLEX SHORT Little Endian(16tr) COMPLEX_SHORT_LITTLE_ENDIAN Complex 16 Signed Integer Little Endian COMPLEX SHORT Big Endian (16t) COMPLEX_SHORT_BIG_ENDIAN Complex 16 Signed Integer Big Endian COMPLEX ULONG Little Endian(32or) COMPLEX_ULONG_LITTLE_ENDIAN Complex 32 Unsigned Integer Little Endian COMPLEX ULONG Big Endian (32o) COMPLEX_ULONG_BIG_ENDIAN Complex 32 Unsigned Integer Big Endian COMPLEX LONG Little Endian (32tr) COMPLEX_LONG_LITTLE_ENDIAN Complex 32 Signed Integer Little Endian COMPLEX LONG Big Endian (32t) COMPLEX_LONG_BIG_ENDIAN Complex 32 Signed Integer Big Endian COMPLEX FLOAT Little Endian(32fr) COMPLEX_FLOAT_LITTLE_ENDIAN Complex 32 Floating-point Little Endian COMPLEX FLOAT Big Endian (32f) COMPLEX_FLOAT_BIG_ENDIAN Complex 32 Floating-point Big Endian COMPLEX DOUBLE Little Endian (64fr) COMPLEX_DOUBLE_LITTLE_ENDIAN Complex 64 Floating-point Little Endian COMPLEX DOUBLE Big Endian (64f) COMPLEX_DOUBLE_BIG_ENDIAN Complex 64 Floating-point Big Endian The desired output byte order is specified using the output_bulkio_byte_order property, which defaults to host byte order. If the byte order of the input file is different than that of the desired output byte order, byte swapping will occur.\nThe advanced_properties, default_timestamp, and default_sri struct properties, as well as the default_sri_keywords struct sequence property are available to support more complicated use cases. Each of the features available are documented in the description of each property when viewing the Properties Descriptor XML file (FileReader.prf.xml).\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.filereader.readme/",
"title": "rh.FileReader",
"tags": [],
"description": "",
"content": " REDHAWK rh.FileReader Description Contains the source and build script for the REDHAWK rh.FileReader component. The rh.FileReader component reads data from a file on the SCA or local file system, and streams the data out a BulkIO output port.\nInstallation This asset requires the rh.blueFileLib and rh.RedhawkDevUtils shared libraries. These shared libraries must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nUsage To use rh.FileReader, configure the source_uri property with the path to the file (or directory of files) to be read. Configure the file_format property with the value appropriate for the input file(s). For files that do not contain a header with sample rate and/or frequency information, configure the sample_rate property with the sample rate and center_frequency with the center frequency of the data. Connect an output port of the appropriate type to the intended consumer of the data stream. To begin playback, configure the playback_state property to PLAY and ensure the component has been started.\nThe BLUEFILE and WAV options for the file_format property rely on the file header for the full description of the data to be read. Each other option fully describes the data to be read, and most options have up to four components:\n Mode: SCALAR (Real) or COMPLEX Atom size: 8 (Char/Octet), 16 (Short), 32 (Long/Float), or 64 (Double) Data type: Unsigned integer, Signed integer, Floating-point Byte Order: Big or Little Endian All possible file_format property values are listed in the table below.\n Label Value Mode Atom Size Data Type Byte Order BLUE/PLATINUM FILE BLUEFILE Header defined Header defined Header defined Header defined WAV WAV Scalar Header defined Header defined Little Endian XML XML Scalar 8 Char (Signed Integer) N/A SCALAR OCTET (8o) OCTET Scalar 8 Unsigned Integer N/A SCALAR CHAR (8t) CHAR Scalar 8 Signed Integer N/A SCALAR USHORT Little Endian (16or) USHORT_LITTLE_ENDIAN Scalar 16 Unsigned Integer Little Endian SCALAR USHORT Big Endian (16o) USHORT_BIG_ENDIAN Scalar 16 Unsigned Integer Big Endian SCALAR SHORT Little Endian(16tr) SHORT_LITTLE_ENDIAN Scalar 16 Signed Integer Little Endian SCALAR SHORT Big Endian (16t) SHORT_BIG_ENDIAN Scalar 16 Signed Integer Big Endian SCALAR ULONG Little Endian(32or) ULONG_LITTLE_ENDIAN Scalar 32 Unsigned Integer Little Endian SCALAR ULONG Big Endian (32o) ULONG_BIG_ENDIAN Scalar 32 Unsigned Integer Big Endian SCALAR LONG Little Endian (32tr) LONG_LITTLE_ENDIAN Scalar 32 Signed Integer Little Endian SCALAR LONG Big Endian (32t) LONG_BIG_ENDIAN Scalar 32 Signed Integer Big Endian SCALAR FLOAT Little Endian(32fr) FLOAT_LITTLE_ENDIAN Scalar 32 Floating-point Little Endian SCALAR FLOAT Big Endian (32f) FLOAT_BIG_ENDIAN Scalar 32 Floating-point Big Endian SCALAR DOUBLE Little Endian (64fr) DOUBLE_LITTLE_ENDIAN Scalar 64 Floating-point Little Endian SCALAR DOUBLE Big Endian (64f) DOUBLE_BIG_ENDIAN Scalar 64 Floating-point Big Endian COMPLEX OCTET (8o) COMPLEX_OCTET Complex 8 Unsigned Integer N/A COMPLEX CHAR (8t) COMPLEX_CHAR Complex 8 Signed Integer N/A COMPLEX USHORT Little Endian (16or) COMPLEX_USHORT_LITTLE_ENDIAN Complex 16 Unsigned Integer Little Endian COMPLEX USHORT Big Endian (16o) COMPLEX_USHORT_BIG_ENDIAN Complex 16 Unsigned Integer Big Endian COMPLEX SHORT Little Endian(16tr) COMPLEX_SHORT_LITTLE_ENDIAN Complex 16 Signed Integer Little Endian COMPLEX SHORT Big Endian (16t) COMPLEX_SHORT_BIG_ENDIAN Complex 16 Signed Integer Big Endian COMPLEX ULONG Little Endian(32or) COMPLEX_ULONG_LITTLE_ENDIAN Complex 32 Unsigned Integer Little Endian COMPLEX ULONG Big Endian (32o) COMPLEX_ULONG_BIG_ENDIAN Complex 32 Unsigned Integer Big Endian COMPLEX LONG Little Endian (32tr) COMPLEX_LONG_LITTLE_ENDIAN Complex 32 Signed Integer Little Endian COMPLEX LONG Big Endian (32t) COMPLEX_LONG_BIG_ENDIAN Complex 32 Signed Integer Big Endian COMPLEX FLOAT Little Endian(32fr) COMPLEX_FLOAT_LITTLE_ENDIAN Complex 32 Floating-point Little Endian COMPLEX FLOAT Big Endian (32f) COMPLEX_FLOAT_BIG_ENDIAN Complex 32 Floating-point Big Endian COMPLEX DOUBLE Little Endian (64fr) COMPLEX_DOUBLE_LITTLE_ENDIAN Complex 64 Floating-point Little Endian COMPLEX DOUBLE Big Endian (64f) COMPLEX_DOUBLE_BIG_ENDIAN Complex 64 Floating-point Big Endian The desired output byte order is specified using the output_bulkio_byte_order property, which defaults to host byte order. If the byte order of the input file is different than that of the desired output byte order, byte swapping will occur.\nThe advanced_properties, default_timestamp, and default_sri struct properties, as well as the default_sri_keywords struct sequence property are available to support more complicated use cases. Each of the features available are documented in the description of each property when viewing the Properties Descriptor XML file (FileReader.prf.xml).\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.filewriter.readme/",
"title": "rh.FileWriter",
"tags": [],
"description": "",
"content": " REDHAWK rh.FileWriter Description Contains the source and build script for the REDHAWK rh.FileWriter component. The rh.FileWriter component receives streaming data from the BulkIO provides (input) ports and writes the data to a file on the SCA or local file system.\nInstallation This asset requires the rh.blueFileLib and rh.RedhawkDevUtils shared libraries. These shared libraries must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nUsage To use rh.FileWriter, connect an input port to the desired input data stream that matches the input data type. Configure the destination_uri property with the path to the file to be written, and optionally, the destination_uri_suffix, if a suffix is desired. Select the desired format for the output file using the file_format property. Ensure the recording_enabled property is set to true, which is the default value.\nThere are several keywords that can be used to insert stream- or data-specific information into the file name. Any SRI Keyword name with percent symbols (%) on either side will be replaced with the value of the SRI Keyword. Other pre-defined keywords for string replacement are listed below:\n Keyword string Description %STREAMID% Stream ID %TIMESTAMP% Timestamp of the first sample of the file %TIMESTAMP_NO_FRACT% Timestamp without fractional component %SYSTEM_TIMESTAMP% System time %SYSTEM_TIMESTAMP_NO_FRACT% System time without fractional component %COMP_NS_NAME% Naming service name %EXTENSION% \u0026ldquo;bluefile\u0026rdquo; or \u0026ldquo;raw\u0026rdquo; based on file_format prop %MODE% \u0026ldquo;real\u0026rdquo; for Scalar or \u0026ldquo;cplx\u0026rdquo; for Complex %SR% The sample rate in Hz %DT% The data type and format (described below) %COL_RF% COL_RF SRI Keyword %CHAN_RF% CHAN_RF SRI Keyword %COLRF_HZ% Integer COL_RF keyword followed by \u0026ldquo;Hz\u0026rdquo; %CHANRF_HZ% Integer CHAN_RF keyword followed by \u0026ldquo;Hz\u0026rdquo; %CF_HZ% Integer CHAN_RF (or COL_RF) followed by \u0026ldquo;Hz\u0026rdquo; By default, the data is written to the file without byte swapping and the byte order is assumed to be host byte order. Use the input_bulkio_byte_order and swap_bytes properties to alter this behavior as desired. The byte order of the host is provided by the host_byte_order property.\nThe data format tag (%DT%) is based on the BulkIO input port and the byte order of the data being written. The byte order is determined using the input_bulkio_byte_order and swap_bytes properties.\n Data Format Tag Input Data/Port Type Byte Order Written to File 8t Char or XML input Big or Little Endian 8o Octet input Big or Little Endian 16t Short input Big Endian 16tr Short input Little Endian 16o Unsigned Short input Big Endian 16or Unsigned Short input Little Endian 32f 32-bit Float input Big Endian 32fr 32-bit Float input Little Endian 64f 64-bit Double input Big Endian 64fr 64-bit Double input Little Endian The advanced_properties struct property and the recording_timer struct sequence property are available to support more complicated use cases. Each of the features available are documented in the description of each property when viewing the Properties Descriptor XML file (FileWriter.prf.xml).\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.filewriter.readme/",
"title": "rh.FileWriter",
"tags": [],
"description": "",
"content": " REDHAWK rh.FileWriter Description Contains the source and build script for the REDHAWK rh.FileWriter component. The rh.FileWriter component receives streaming data from the BulkIO provides (input) ports and writes the data to a file on the SCA or local file system.\nInstallation This asset requires the rh.blueFileLib and rh.RedhawkDevUtils shared libraries. These shared libraries must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nUsage To use rh.FileWriter, connect an input port to the desired input data stream that matches the input data type. Configure the destination_uri property with the path to the file to be written, and optionally, the destination_uri_suffix, if a suffix is desired. Select the desired format for the output file using the file_format property. Ensure the recording_enabled property is set to true, which is the default value.\nThere are several keywords that can be used to insert stream- or data-specific information into the file name. Any SRI Keyword name with percent symbols (%) on either side will be replaced with the value of the SRI Keyword. Other pre-defined keywords for string replacement are listed below:\n Keyword string Description %STREAMID% Stream ID %TIMESTAMP% Timestamp of the first sample of the file %TIMESTAMP_NO_FRACT% Timestamp without fractional component %SYSTEM_TIMESTAMP% System time %SYSTEM_TIMESTAMP_NO_FRACT% System time without fractional component %COMP_NS_NAME% Naming service name %EXTENSION% \u0026ldquo;bluefile\u0026rdquo; or \u0026ldquo;raw\u0026rdquo; based on file_format prop %MODE% \u0026ldquo;real\u0026rdquo; for Scalar or \u0026ldquo;cplx\u0026rdquo; for Complex %SR% The sample rate in Hz %DT% The data type and format (described below) %COL_RF% COL_RF SRI Keyword %CHAN_RF% CHAN_RF SRI Keyword %COLRF_HZ% Integer COL_RF keyword followed by \u0026ldquo;Hz\u0026rdquo; %CHANRF_HZ% Integer CHAN_RF keyword followed by \u0026ldquo;Hz\u0026rdquo; %CF_HZ% Integer CHAN_RF (or COL_RF) followed by \u0026ldquo;Hz\u0026rdquo; By default, the data is written to the file without byte swapping and the byte order is assumed to be host byte order. Use the input_bulkio_byte_order and swap_bytes properties to alter this behavior as desired. The byte order of the host is provided by the host_byte_order property.\nThe data format tag (%DT%) is based on the BulkIO input port and the byte order of the data being written. The byte order is determined using the input_bulkio_byte_order and swap_bytes properties.\n Data Format Tag Input Data/Port Type Byte Order Written to File 8t Char or XML input Big or Little Endian 8o Octet input Big or Little Endian 16t Short input Big Endian 16tr Short input Little Endian 16o Unsigned Short input Big Endian 16or Unsigned Short input Little Endian 32f 32-bit Float input Big Endian 32fr 32-bit Float input Little Endian 64f 64-bit Double input Big Endian 64fr 64-bit Double input Little Endian The advanced_properties struct property and the recording_timer struct sequence property are available to support more complicated use cases. Each of the features available are documented in the description of each property when viewing the Properties Descriptor XML file (FileWriter.prf.xml).\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.filewriter.readme/",
"title": "rh.FileWriter",
"tags": [],
"description": "",
"content": " REDHAWK rh.FileWriter Description Contains the source and build script for the REDHAWK rh.FileWriter component. The rh.FileWriter component receives streaming data from the BulkIO provides (input) ports and writes the data to a file on the SCA or local file system.\nInstallation This asset requires the rh.blueFileLib and rh.RedhawkDevUtils shared libraries. These shared libraries must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nUsage To use rh.FileWriter, connect an input port to the desired input data stream that matches the input data type. Configure the destination_uri property with the path to the file to be written, and optionally, the destination_uri_suffix, if a suffix is desired. Select the desired format for the output file using the file_format property. Ensure the recording_enabled property is set to true, which is the default value.\nThere are several keywords that can be used to insert stream- or data-specific information into the file name. Any SRI Keyword name with percent symbols (%) on either side will be replaced with the value of the SRI Keyword. Other pre-defined keywords for string replacement are listed below:\n Keyword string Description %STREAMID% Stream ID %TIMESTAMP% Timestamp of the first sample of the file %TIMESTAMP_NO_FRACT% Timestamp without fractional component %SYSTEM_TIMESTAMP% System time %SYSTEM_TIMESTAMP_NO_FRACT% System time without fractional component %COMP_NS_NAME% Naming service name %EXTENSION% \u0026ldquo;bluefile\u0026rdquo; or \u0026ldquo;raw\u0026rdquo; based on file_format prop %MODE% \u0026ldquo;real\u0026rdquo; for Scalar or \u0026ldquo;cplx\u0026rdquo; for Complex %SR% The sample rate in Hz %DT% The data type and format (described below) %COL_RF% COL_RF SRI Keyword %CHAN_RF% CHAN_RF SRI Keyword %COLRF_HZ% Integer COL_RF keyword followed by \u0026ldquo;Hz\u0026rdquo; %CHANRF_HZ% Integer CHAN_RF keyword followed by \u0026ldquo;Hz\u0026rdquo; %CF_HZ% Integer CHAN_RF (or COL_RF) followed by \u0026ldquo;Hz\u0026rdquo; By default, the data is written to the file without byte swapping and the byte order is assumed to be host byte order. Use the input_bulkio_byte_order and swap_bytes properties to alter this behavior as desired. The byte order of the host is provided by the host_byte_order property.\nThe data format tag (%DT%) is based on the BulkIO input port and the byte order of the data being written. The byte order is determined using the input_bulkio_byte_order and swap_bytes properties.\n Data Format Tag Input Data/Port Type Byte Order Written to File 8t Char or XML input Big or Little Endian 8o Octet input Big or Little Endian 16t Short input Big Endian 16tr Short input Little Endian 16o Unsigned Short input Big Endian 16or Unsigned Short input Little Endian 32f 32-bit Float input Big Endian 32fr 32-bit Float input Little Endian 64f 64-bit Double input Big Endian 64fr 64-bit Double input Little Endian The advanced_properties struct property and the recording_timer struct sequence property are available to support more complicated use cases. Each of the features available are documented in the description of each property when viewing the Properties Descriptor XML file (FileWriter.prf.xml).\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/devices/rh.fmrdssimulator.readme/",
"title": "rh.FmRdsSimulator",
"tags": [],
"description": "",
"content": " REDHAWK rh.FmRdsSimulator Description Contains the source and build script for the REDHAWK rh.FmRdsSimulator device. This device is designed to be used in conjunction with the libRfSimulators library. Using the simulator library, this FRONTEND Interfaces compliant REDHAWK device will generate FM modulated mono or stereo audio with RDS encoded PI (Call Sign), PS (Short Text), and RT (Full Text) data.\nAdditional documentation is available within the libRfSimulators README.\nInstallation This asset requires the libRfSimulators shared library, which must be installed in order to build and run this asset. To build and run from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\nNotes The Simulator creates a processing thread for each station within the currently visible 2.28 Mhz bandwidth (even if bandwidth is set smaller). Since each of these threads is resampling a wav file, FM modulating, encoding RDS, and upsampling to 2.28 Msps a non-trivial amount of CPU is used.\nFEI Compliance Test Results See the FEI Compliance Results document.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/devices/rh.fmrdssimulator.readme/",
"title": "rh.FmRdsSimulator",
"tags": [],
"description": "",
"content": " REDHAWK rh.FmRdsSimulator Description Contains the source and build script for the REDHAWK rh.FmRdsSimulator device. This device is designed to be used in conjunction with the libRfSimulators library. Using the simulator library, this FRONTEND Interfaces compliant REDHAWK device will generate FM modulated mono or stereo audio with RDS encoded PI (Call Sign), PS (Short Text), and RT (Full Text) data.\nAdditional documentation is available within the libRfSimulators README.\nInstallation This asset requires the libRfSimulators shared library, which must be installed in order to build and run this asset. To build and run from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\nNotes The Simulator creates a processing thread for each station within the currently visible 2.28 Mhz bandwidth (even if bandwidth is set smaller). Since each of these threads is resampling a wav file, FM modulating, encoding RDS, and upsampling to 2.28 Msps a non-trivial amount of CPU is used.\nFEI Compliance Test Results See the FEI Compliance Results document.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/devices/rh.fmrdssimulator.readme/",
"title": "rh.FmRdsSimulator",
"tags": [],
"description": "",
"content": " REDHAWK rh.FmRdsSimulator Description Contains the source and build script for the REDHAWK rh.FmRdsSimulator device. This device is designed to be used in conjunction with the libRfSimulators library. Using the simulator library, this FRONTEND Interfaces compliant REDHAWK device will generate FM modulated mono or stereo audio with RDS encoded PI (Call Sign), PS (Short Text), and RT (Full Text) data.\nAdditional documentation is available within the libRfSimulators README.\nInstallation This asset requires the libRfSimulators shared library, which must be installed in order to build and run this asset. To build and run from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\nNotes The Simulator creates a processing thread for each station within the currently visible 2.28 Mhz bandwidth (even if bandwidth is set smaller). Since each of these threads is resampling a wav file, FM modulating, encoding RDS, and upsampling to 2.28 Msps a non-trivial amount of CPU is used.\nFEI Compliance Test Results See the FEI Compliance Results document.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.hardlimit.readme/",
"title": "rh.HardLimit",
"tags": [],
"description": "",
"content": " REDHAWK rh.HardLimit Description Contains the source and build script for the REDHAWK rh.HardLimit component. This component thresholds data so that all data is between the upper and lower limit as specified by the properties.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.hardlimit.readme/",
"title": "rh.HardLimit",
"tags": [],
"description": "",
"content": " REDHAWK rh.HardLimit Description Contains the source and build script for the REDHAWK rh.HardLimit component. This component thresholds data so that all data is between the upper and lower limit as specified by the properties.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.hardlimit.readme/",
"title": "rh.HardLimit",
"tags": [],
"description": "",
"content": " REDHAWK rh.HardLimit Description Contains the source and build script for the REDHAWK rh.HardLimit component. This component thresholds data so that all data is between the upper and lower limit as specified by the properties.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/devices/rh.msdd.readme/",
"title": "rh.MSDD",
"tags": [],
"description": "",
"content": " REDHAWK rh.MSDD Description Contains the source and build script for the REDHAWK rh.MSDD device. This device is a FRONTEND Interfaces compliant device for the Midwest Microwave MSDD-3000\u0026frasl;6000 receiver.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nTroubleshooting The msdd_configuration property is used to setup the basic network connectivity between the MSDD hardware and the REDHAWK device. In this struct property, the IP and port of the MSDD must be setup in order the software to connect.\nFEI Compliance Test Results See the FEI Compliance Results document.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/devices/rh.msdd.readme/",
"title": "rh.MSDD",
"tags": [],
"description": "",
"content": " REDHAWK rh.MSDD ## Table of Contents\n Description Properties Installation Troubleshooting Description The REDHAWK rh.MSDD device is a FRONTEND 2.0 Interfaces (FEI) compliant device for the Midwest Microwave MSDD-3000/6000/0660 series receiver. The rh.MSDD device is written in the Python programming language and communicates with receiver using the host\u0026rsquo;s network interface. The rh.MSDD properties described below determine the connection and tuner output configuration the MSDD radio. The command formats and descriptions are documented in the MSDD API document from Midwest Microwave Systems.\nThe rh.MSDD device is meant to be configured a single RF flow. This is controlled using the \u0026lsquo;msdd::receiver_id\u0026rsquo; property at device startup. This property will be referenced to filter out the MSDD tuner modules from the specified RCV module instance. For single channel MSDD radios this value will be the default to RCV:1. All WBDDC and NBDDC tuner modules from this RCV module instance will configured as Frontend tuner devices. For dual Channel MSDD radios, you can use the rh.MSDD device to process a single RF flow (i.e. \u0026lsquo;RCV:1\u0026rsquo;) on the radio. If you want to process both RCV modules on a dual channel radio you will need to use the rh.MSDD_Controller device.\nThe rh.MSDD will communicate to the MSDD radio using the msdd property structure at device start up. The following properties are used during start up to configure the MSDD radio.\n msdd : Communications context and Board module\u0026rsquo;s (BRD) reference clock time_of_day : Time of Day (TOD) module configuration block_tuner_output, tuner_output : Configure OUTPUT Modules (OUT) assigned to WBDDC and NBDDC hardware tuners block_psd_output : Configure OUTPUT Modules (OUT) assigned to FFT modules (FFT) of controlling allocations. Once the rh.MSDD device has completed initialization, the following run time properties will affect tuner allocations, tuner gain and PSD calculations.\n frontend_tuner_allocation : FEI allocation request structure frontend_listener_allocation : FEI listener allocation request structure advanced : Controls how hardware tuners respond to FEI allocation requests. Sets threshold values that are monitored to determine if the MSDD radio is in BUSY state. Enables FFT channels for controlling allocations. gain_configuration : Defined gain settings that can be assigned during an tuner allocations for RCV, WBDDC, and MBDDC modules. psd_configuration : FFT module settings applied to a controlling allocation when FFT channels are enabled (advanced.enable_fft_channels) The following run time properties describe the state of the MSDD radio and the frontend tuner devices associated with the MSDD tuner module hardware.\n frontend_tuner_status : FEI tuner status structure (readonly) describes the current state of each tuner being managed by rh.MSDD connectionTable : Maps connection identifiers to stream identifiers, use to filter out messages to specific connections msdd_status : Provides the current state of the MSDD radio (readonly) Properties NAME TYPE ACCESS DESCRIPTION device_kind string readonly kind of device, FRONTEND::TUNER for FEI 2.0 device_model string readonly Information from the console identity command. (MSDD CON IDN?) frontend_group_id string readwrite Group id for FEI group allocation requests msdd structure readwrite MSDD connection and board setup information time_of_day structure readwrite MSDD Time of Day (TOD) module configuration advanced structure readwrite Advanced controls to configure MSDD tuner types, and threshold states to control device usage state tuner_output structureseq readonly Output stream configuration from MSDD digital tuners. block_tuner_output structureseq readonly Output stream configuration for blocks of MSDD digital tuners block_psd_output structureseq readonly Output stream configuration for blocks FFT channels assigned to tuners. psd_configuration structure readwrite FFT module (FFT) parameters used to configure a FFT channel for controlling allocations. gain_configuration structure readwrite Gain settings (GAI) for each MSDD tuner type (RCV,WBDDC,NBDDC) msdd_status structure readonly MSDD status information FRONTEND::tuner_status structureseq readonly Frontend tuner status information for each MSDD tuner. FRONTEND::listener_allocation structure writeonly FRONTEND tuner listener allocation structure, consult REDHAWK manual for details FRONTEND::tuner_allocation structure writeonly FRONTEND tuner allocation structure, consult REDHAWK manual for details msdd The msdd structure defines the connection, reference clock, and receiver_identifier properties for the MSDD device.\n NAME TYPE DESCRIPTION msdd::ip_address string IP address of the MSDD in dot notation (MSDD CON IPP). Default is 127.0.0.1 msdd::port string Port number the MSDD listens on, default value is 23, (MSDD CON IPP) msdd::time_out double Time out to wait if MSDD does not respond to a command request, default value is 0.2. msdd::clock_ref short Configures the external reference. INTERNAL reference clock (0), EXTERNAL 10Mhz reference signal (10) (MSDD BRD EXR) msdd::receiver_id string Filter WBDDC and NBDDC channels from this receiver source (RCV:1) time_of_day The time_of_day structure controls the configuration of the MSDD Time of Day module (TOD). The state of the Time of Day module is reported in the msdd_status structure.\n NAME TYPE DESCRIPTION time_of_day::mode string Time source (TOD MOD): SIM - simulated, ONE PPS - one pulse per second, IRIG - IRIGB timing source, NAV - Navigation timing source (requires external module), TFN - Time frequency navigation timing source (requires external module). Default is SIM. time_of_day::reference_adjust short Adjust internal reference adjustment in ns/sec drift (TOD RFA). Default is 0. time_of_day::reference_track short Tracking mode for the reference signal (TOD RTK): OFF (0), CALIBRATE (1), TRACK (2). Default is 0. time_of_day::toy short (TOD TOY), Time of year offset for IRIGB source, 24 hour offset (0), Direct from signal (1). Default is 0. time_of_day::tracking_interval double Time between host and radio time status checks. Default is 0 (turn off check) advanced The advanced structured property defines a mapping of MSDD tuner modules to FRONTEND tuner types, defines thresholds to control device busy state, enables/disables FFT channels, and controls the use of SWDDC channels for NBDDC modues to provide additional decimation.\n NAME TYPE DESCRIPTION advanced::rcvr_mode short Maps MSDD RCV module to FEI tuner types: Not allocatable (0), RX Only (8). Default is 0. advanced::wb_ddc_mode short Maps MSDD WBDDC module to FEI tuner types: Not allocatable (0), RX_DIGITIZER_CHANNELIZER Only (2), RX_DIGITIZER Only (4), RX_DIGITIZER or RX_DIGITIZER_CHANNELIZER (6). Default is 6. advanced::hw_ddc_mode short Maps MSDD NBDDC module to FEI tuner types: Not allocatable (0), DDC only (1), RX_DIGITIZER Only (4), RX_DIGITIZER or DDC (5). Default is 5. advanced::enable_fft_channels boolean True: Link a FFT channel to each NBDDC tuner\u0026rsquo;s output for PSD output. Only controlling allocations will be assigned a FFT channel, False : Disable FTT channels and linking. Default is False. advanced::max_cpu_load float Maximum allowable cpu load on the MSDD receiver. A device\u0026rsquo;s BUSY state is enabled if the load (MSDD CON CPL?) exceeds the threshold. Default is 95.0. advanced::max_nic_percentage float Maximum network utilization (as a percentage 0.0 to 100.0) that enables a device BUSY state. The MSDD NET BRT command defines the bit rate for a network interface. The total bit output rate is calculated for each enabled output module (i.e. tuner output). If this value exceeds the stated network utilization limit, a BUSY state is enabled. During all tuner allocations, this limit is checked to ensure the limit is not exceeded. Default is 90.0. advanced::minimum_connected_nic_rate float Validates the MSDD radio\u0026rsquo;s network interface supports the specified minimum data rate. Controls if the rh.MSDD should connect to the MSDD radio. Default is 1000 Mbps. tuner_output The tuner_output sequence contains the tuner_output_definition structure that defines the stream output configuration from a specific MSDD digital tuner. If tuner_output and block_tuner_output values are defined, the tuner_output properties override the block_tuner_output information for a specific tuner.\n NAME TYPE DESCRIPTION tuner_output::tuner_number short Index of MSDD tuner in sequence of frontend_tuner_status structures (0 based) tuner_output::enabled boolean Controls output module\u0026rsquo;s enable state for the assigned tuner. (OUT ENB). Default is True. tuner_output::protocol string Controls output packet format (OUT POL). UDP_SDDS : SDDS packet format, UDP_SDDSX - SDDSX packet format, UDP_SDDSA - SDDSA packet format, UDP_RAW - Raw packet format, UDP_VITA49 - VITA49 Data packet format. Default is UDP_SDDS. tuner_output::interface short Network interface to publish data (0 based). Default 0. tuner_output::ip_address string Destination IP address (OUT IPP) tuner_output::port short Destination IP port (OUT IPP ). Default is 8800 tuner_output::vlan_enable boolean Enable VLAN tagging (OUT VLANEN). Default is True. tuner_output::vlan short VLAN ID for 802.1q packets (OUT VLANTCI). Default is -1. tuner_output::timestamp_offset short Offset applied in 1ns increments (OUT TSOFS). Default is 0. tuner_output::endianess short BIG_ENDIAN (0). LITTLE ENDIAN (1) (OUT END). Default is LITTLE_ENDIAN. tuner_output::mfp_flush long Packet flush control bit mask (OUT MFP). Default is all bits enabled. block_tuner_output The block_tuner_output sequence contains the block_tuner_output_definition structure that defines the stream output configuration for a block of MSDD tuners. See tuner_output property for precedence of stream output configuration settings.\n NAME TYPE DESCRIPTION block_tuner_output::tuner_number_start short Starting tuner number for block block_tuner_output::tuner_number_stop short Ending tuner number of block block_tuner_output::enabled boolean Controls output module\u0026rsquo;s enable state for the assigned tuner. (OUT ENB). Default is True. block_tuner_output::protocol string Controls output packet format (OUT POL). UDP_SDDS : SDDS packet format, UDP_SDDSX - SDDSX packet format, UDP_SDDSA - SDDSA packet format, UDP_RAW - Raw packet format, UDP_VITA49 - VITA49 Data packet format. Default is UDP_SDDS. block_tuner_output::interface short Network interface to publish data (0 based). Default 0. block_tuner_output::ip_address string Destination IP address (OUT IPP) block_tuner_output::port short Destination IP port (OUT IPP ). Default is 8800 block_tuner_output::vlan_enable boolean Enable VLAN tagging (OUT VLANEN). Default is True. block_tuner_output::vlan short VLAN ID for 802.1q packets (OUT VLANTCI). Default is -1. block_tuner_output::timestamp_offset short Offset applied in 1ns increments (OUT TSOFS). Default is 0. block_tuner_output::endianess short BIG_ENDIAN (0). LITTLE ENDIAN (1) (OUT END). Default is LITTLE_ENDIAN. block_tuner_output::mfp_flush long Packet flush control bit mask (OUT MFP). Default is all bits enabled. block_psd_output The block_psd_output sequence contains the block_psd_output_definition that defines the output stream configuration for a block of MSDD FFT channels.\n NAME TYPE DESCRIPTION block_psd_output::fft_channel_start short Starting FFT channel of block (0 based) block_psd_output::fft_channel_stop short Ending FFT channel of block block_psd_output::enabled boolean Controls output module\u0026rsquo;s enable state for the assigned tuner. (OUT ENB). Default is True. block_psd_output::protocol string Controls output packet format (OUT POL). UDP_SDDS : SDDS packet format, UDP_SDDSX - SDDSX packet format, UDP_SDDSA - SDDSA packet format, UDP_RAW - Raw packet format, UDP_VITA49 - VITA49 Data packet format. Default is UDP_SDDS. block_psd_output::interface short Network interface to publish data (0 based). Default 0. block_psd_output::ip_address string Destination IP address (OUT IPP) block_psd_output::port short Destination IP port (OUT IPP ). Default is 8800 block_psd_output::vlan_enable boolean Enable VLAN tagging (OUT VLANEN). Default is True. block_psd_output::vlan short VLAN ID for 802.1q packets (OUT VLANTCI). Default is -1. block_psd_output::timestamp_offset short Offset applied in 1ns increments (OUT TSOFS). Default is 0. block_psd_output::endianess short BIG_ENDIAN (0). LITTLE ENDIAN (1) (OUT END). Default is LITTLE_ENDIAN. block_psd_output::mfp_flush long Packet flush control bit mask (OUT MFP). Default is all bits enabled. psd_configuration The psd_configuration structure defines the FFT module settings. These settings are applied to the FFT module when controlling allocation is requested and advanced.enable_fft_channels is True.\n NAME TYPE DESCRIPTION psd_configuration::fft_size double Number of FFT bins (FFT PNT) psd_configuration::time_average double Number of averages based on time in seconds. (FFT AVG) psd_configuration::time_between_ffts double Time between FFT operations on a tuner channel. (FFT RAT) psd_configuration::output_bin_size double The number of FFT bins to output (FFT BIN) psd_configuration::window_type enum Windows to apply to each FFT. HANNING, HAMMING, BLACKMAN, RECT (FFT WND) psd_configuration::peak_mode enum Peak mode setting: INST, PEAK, BOTH (FFT PMD) gain_configuration The gain_configuration structure controls the gain setting for each MSDD tuner module type.\n NAME TYPE DESCRIPTION gain_configuration::rcvr_gain float Gain setting in db for MSDD RCV modules gain_configuration::wb_ddc_gain float Gain setting in db for MSDD WBDDC modules gain_configuration::hw_ddc_gain float Gain setting in db for MSDD NBDDC modules msdd_status The msdd_status structure defines the set of readonly properties that define the state of the MSDD receiver. This structure is updated after initialization, allocation requests and deallocation requests.\n NAME TYPE DESCRIPTION msdd_status::connected boolean True if connected to MSDD receiver msdd_status::receiver_identifier string Receiver identifier for filtering MSDD tuner modules. msdd_status::ip_address string IP Address assigned to radio msdd_status::port string Port number assigned to radio msdd_status::model string Model name from CON CFG? MODEL msdd_status::control_host string IP Address number from CON IPP? msdd_status::control_host_port string Port number from CON IPP? msdd_status::serial string Serical number from CON CFG? SERIAL msdd_status::software_part_number string Part number from CON IDN? msdd_status::rf_board_type string Value from CON CFG? RF_BRD_TYPE msdd_status::fpga_type string Value from CON CFG? FPGA_TYPE msdd_status::dsp_type string Value from CON CFG? DSP_BRD_TYPE msdd_status::minimum_frequency_hz string Value from CON CFG? MIN_FREQ msdd_status::maximum_frequency_hz string Value from CON CFG? MAX_FREQ msdd_status::dsp_reference_frequency_hz string Value CON CFG? DSP_REF msdd_status::adc_clock_frequency_hz string Value from CON CFG? ADC_CLK msdd_status::num_if_ports string Value from CON CFG? IF_PORTS msdd_status::num_eth_ports string Value from CON CFG? ETHR_PORTS msdd_status::cpu_type string Value from CON CFG? CPU_TYPE msdd_status::cpu_rate string Value from CON CFG? CPU_FREQ msdd_status::cpu_load string Value from CON CPL? msdd_status::pps_termination string Value from CON CFG? 1PPS_TERM msdd_status::pps_voltage string Value from CON CFG? 1PPS_VOLTAGE msdd_status::number_wb_ddc_channels string Value from CON CFG? FPGA_WBDDC_CHANNELS msdd_status::number_nb_ddc_channels string Value from CON CFG? FPGA_NBDDC_CHANNELS msdd_status::filename_app string Value from CON CFG? FILE_NAME_APP msdd_status::filename_fpga string Value from CON CFG? FILE_NAME_FPGA msdd_status::filename_batch string Value from CON CFG? FILE_NAME_BATCH msdd_status::filename_boot string Value from CON CFG? FILE_NAME_BOOT msdd_status::filename_loader string Value from CON CFG? FILE_NAME_LOADER msdd_status::filename_config string Value from CON CFG? FILE_NAME_CONFIG msdd_status::tod_module string Value from TOD MOD? msdd_status::tod_available_module string Value from TOD MODL? msdd_status::tod_meter_list string Value from TOD MTR? msdd_status::tod_reference_adjust string Value from MSDD TOD RFA? msdd_status::tod_track_mode_state string Value from MSDD TOD RTK? msdd_status::tod_bit_state string Value from MSDD TOD BIT? msdd_status::tod_toy string Value from MSDD TOY? msdd_status::tod_host_delta double Variance between host\u0026rsquo;s time of day and MSDD clock msdd_status::ntp_running bool If the host system is running NTP service for clock synchronization. FRONTEND::tuner_status The FRONTEND::tuner_status structure defines the FRONTEND tuner status properties for each defined tuner. The standard tuner status properties are defined in the REDHAWK documentation. This table describes the additional properties defined for each MSDD tuner.\n NAME TYPE DESCRIPTION FRONTEND::tuner_status::output_format string SDDS data format, fixed to CI (16bit IQ) FRONTEND::tuner_status::output_multicast string Destination IP address of data packets, (MSDD OUT IPP?) FRONTEND::tuner_status::output_port long Destination port of data packets, (OUT IPP?) FRONTEND::tuner_status::output_vlan long VLAN number if VLAN is enabled, (OUT VLANTCI?) FRONTEND::tuner_status::msdd_channel_type string RX, WBDDC, NBDDC, SWDDC FRONTEND::tuner_status::msdd_installation_name_csv string List of MSDD modules assigned to this tuner FRONTEND::tuner_status::msdd_registration_name_csv string List of MSDD registration names assigned to this tuner FRONTEND::tuner_status::bits_per_sample short Number of bits per data sample. FRONTNED::tuner_status::adc_meter_value string Meter value from MSDD RCV AMD? FRONTEND::tuner_status::rcvr_gain float Value from RCV GAI? FRONTEND::tuner_status::ddc_gain float Value from WBDDC/NBDDC GAI? FRONTEND::tuner_status::allocated boolean True if tuner is allocated, False otherwise FRONTEND::tuner_status::input_sample_rate double Value from OUT ISR? FRONTEND::tuner_status::output_channel string MSDD output module assigned to this tuner FRONTEND::tuner_status::output_enabled boolean True if output is enabled, False otherwise FRONTEND::tuner_status::output_vlan_enabled boolean True if vlan tagging is enabled, OUT VLANEN? FRONTEND::tuner_status::output_flow string MSDD module chain feeding this output module FRONTEND::tuner_status::output_timestamp_offset string Value from OUT TSOFS?) FRONTEND::tuner_status::endianess short Value from OUT END? FRONTEND::tuner_status::output_mfp_flush long Value from OUT MFP? FRONTEND::tuner_status::psd_fft_size double Value from FFT PNT? FRONTEND::tuner_status::psd_averages double Value from FFT AVG? FRONTEND::tuner_status::psd_time_between_ffts double Value from FFT RAT? FRONTEND::tuner_status::psd_output_bin_size double Value from FFT BIN? FRONTEND::tuner_status::psd_window_type string Value from FFT WND? FRONTEND::tuner_status::psd_peak_mode string Value from FFT PMD? Installation The following procedure explains how to install rh.MSDD from source. rh.MSDD is one of the REDHAWK Basic Devices. For information about how to install the REDHAWK Basic Devices from RPMs, refer to the REDHAWK Manual.\n Ensure OSSIEHOME and SDRROOT are both set. $ source /etc/profile.d/redhawk.sh $ source /etc/profile.d/redhawk-sdrroot.sh To build and install rh.MSDD, enter the following commands from the root directory of the assets repository: $ cd $(find . -name MSDD) $ ./build.sh install Troubleshooting The msdd property is used to setup the network connectivity between the MSDD hardware and host computer running the REDHAWK rh.MSDD device. Set the msdd::ip_address and msdd::port properties for the MSDD receiver you are connecting.\nBesides the number of available tuners, the rh.MSDD device will monitor the radio\u0026rsquo;s CPU percent load metrics to determine if the device\u0026rsquo;s usage state. The If the value from the CPL command exceeds the advanced::max_cpu_load the device will be put into a BUSY state. This state is evaluated before and after each tuner allocation/deallocation request.\nThe rh.MSDD device will track the output bit rate from the MSDD\u0026rsquo;s radios network interface. Before each tuner allocation request, the expected output rate will be determine from the current allocations and the new request. If the new requests exceeds the \u0026lsquo;advanced::max_nic_percentage` for the interface the allocation will fail.\nIt has been observed from testing with various FPGA loads on different MSDD hardware, that allocations of WBDDC and NBDDC modules will cause a delay in processing commands. When this occurrs, the rh.MSDD device will perform a limited retry sequence when processing commands. These events will generate detailed stdout logging messages that are not controllable through normal logging configuration. The net affect would be failed tuner allocation requests and enabled BUSY states, due to invalid response messaging. When these events are observed, there are two methods to diagnose messaging to and from the radio. You can enable the logging port traffic on the radio with the following command:\nnc -u \u0026lt;ip addres of radio\u0026gt; 24 This will trigger the LOG module on the radio to report the sequence of messages the radio receives and transmits. Along with this information you can use the linux tcpdump utility to track the same actvity on the host:\nsudo tcpdump -i \u0026lt;host nic connected to radio\u0026gt; port \u0026lt;port number observed from LOG output\u0026gt; This should allow you to determine if the radio is responding with the proper messages to the host computer.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/devices/rh.msdd_controller.readme/",
"title": "rh.MSDD_Controller",
"tags": [],
"description": "",
"content": " REDHAWK rh.MSDD_Controller ## Table of Contents\n Description Properties Installation Troubleshooting Description The REDHAWK rh.MSDD_Controller is the AggregateDevice parent for each child receiver channel (CompositeMSDD) of the source MSDD radio. The CompositeMSDD is a specialized version of the the rh.MSDD device. The MSDD_Controller implements the life-cycle methods that will be used in FEI 3.0 to define parent/child relationships. A proper FEI 3.0 design would have one MSDD_Controller (parent) and N WBDDC modules (child/parent) for M NBDDC modules (child). The design choice to reuse the existing rh.MSDD device to manage 1 WBDDC Module and M NBDDC modules, was based on reduce maintenance and missing FEI 3.0 API methods to manage allocations. To assist with the deployment process, the rh.MSDD_Contrtoller has links to the rh.MSDD source directories for proper installation and access the rh.MSDD's software profile during deployment.\nThe MSDD_Controller established a connection to the source MSDD radio defined by the msdd property. The MSDD_Controller performs an initial configuration of the radio and tuner discovery (RCV,WBDDC,NBDDC) using the MSDDRadio object. This MSDDRadio object will be shared by all child devices (CompositeMSDD) to synchronize access to the radio.\nThe MSDD_Controller manages the life-cycle and initialization of each child device (CompositeMSDD). The following sequence is performed during deployment and initialization of each child device: 1. Create required exec parameters, launch a new thread of execution and start the new child device in this thread. 1. Assign the MSDDRadio object, receiver identifier, shared properties, and context properties to the child device. 1. Call postConstructor method on the child device.\nFor each RCV module (RCV) on the source MSDD radio, the MSDD_Controller will assign the RCV:X identifier using the CompositeMSDD::setSignalFlow method. In the CompositeMSDD::postConstructor method, the CompositeMSDD will filter WBDDC and NBDDCS modules that are linked to the specified receiver identifier.\nTo establish the initial CompositeMSDD device configuration, rh.MSDD_Controller's property set contains both shared properties (psd_configuration, gain_configuration, advanced) common to all child instances, and context properties (tuner_output, block_tuner_output, block_psd_output) sourced by the receiver identifier. After the child device is launched, the MSDD_Controller will assign all the shared and context properties to each child.\nAfter all CompositeMSDD devices are launched and configured, the MSDD_Controller is only responsible for monitoring the time of day settings and periodically updating it\u0026rsquo;s msdd_status property. The CompositeMSDD device will manage it\u0026rsquo;s own allocations, as well as psd and gain configuration changes.\nThe rh.MSDD_Controller will communicate to the MSDD radio using the msdd property structure at device start up. The following properties are used during start up to configure the MSDD radio.\n msdd : Communications context and Board module\u0026rsquo;s (BRD) reference clock time_of_day : Time of Day (TOD) module configuration Properties NAME TYPE ACCESS DESCRIPTION device_kind string readonly kind of device, MSDD_Controller device_model string readonly Information from the console identity command. (MSDD CON IDN?) msdd structure readwrite MSDD connection and board setup information time_of_day structure readwrite MSDD Time of Day (TOD) module configuration advanced structure readwrite Advanced controls to configure MSDD tuner types, and threshold states to control device usage state psd_configuration structure readwrite FFT module (FFT) parameters used to configure a FFT channel for controlling allocations. gain_configuration structure readwrite Gain settings (GAI) for each MSDD tuner type (RCV,WBDDC,NBDDC) msdd_status structure readonly MSDD status information tuner_output structureseq readonly Output stream configuration from MSDD digital tuners. block_tuner_output structureseq readonly Output stream configuration for blocks of MSDD digital tuners block_psd_output structureseq readonly Output stream configuration for blocks FFT channels assigned to tuners. msdd The msdd structure defines the connection, reference clock, and receiver_identifier properties for the MSDD device.\n NAME TYPE DESCRIPTION msdd::ip_address string IP address of the MSDD in dot notation (MSDD CON IPP). Default is 127.0.0.1 msdd::port string Port number the MSDD listens on, default value is 23, (MSDD CON IPP) msdd::time_out double Time out to wait if MSDD does not respond to a command request, default value is 0.2. msdd::clock_ref short Configures the external reference. INTERNAL reference clock (0), EXTERNAL 10Mhz reference signal (10) (MSDD BRD EXR) msdd::receiver_id string Filter WBDDC and NBDDC channels from this receiver source (RCV:1) time_of_day The time_of_day structure controls the configuration of the MSDD Time of Day module (TOD). The state of the Time of Day module is reported in the msdd_status structure.\n NAME TYPE DESCRIPTION time_of_day::mode string Time source (TOD MOD): SIM - simulated, ONE PPS - one pulse per second, IRIG - IRIGB timing source, NAV - Navigation timing source (requires external module), TFN - Time frequency navigation timing source (requires external module). Default is SIM. time_of_day::reference_adjust short Adjust internal reference adjustment in ns/sec drift (TOD RFA). Default is 0. time_of_day::reference_track short Tracking mode for the reference signal (TOD RTK): OFF (0), CALIBRATE (1), TRACK (2). Default is 0. time_of_day::toy short (TOD TOY), Time of year offset for IRIGB source, 24 hour offset (0), Direct from signal (1). Default is 0. advanced The advanced structured property defines a mapping of MSDD tuner modules to FRONTEND tuner types, defines thresholds to control device busy state, enables/disables FFT channels, and controls the use of SWDDC channels for NBDDC modues to provide additional decimation.\n NAME TYPE DESCRIPTION advanced::rcvr_mode short Maps MSDD RCV module to FEI tuner types: Not allocatable (0), RX Only (8). Default is 0. advanced::wb_ddc_mode short Maps MSDD WBDDC module to FEI tuner types: Not allocatable (0), RX_DIGITIZER_CHANNELIZER Only (2), RX_DIGITIZER Only (4), RX_DIGITIZER or RX_DIGITIZER_CHANNELIZER (6). Default is 6. advanced::hw_ddc_mode short Maps MSDD NBDDC module to FEI tuner types: Not allocatable (0), DDC only (1), RX_DIGITIZER Only (4), RX_DIGITIZER or DDC (5). Default is 5. advanced::enable_inline_swddc boolean True : Assigns a SWDDC module to each NBDDC for additional decimation. Default is False. advanced::enable_fft_channels boolean True: Link a FFT channel to each NBDDC tuner\u0026rsquo;s output for PSD output. Only controlling allocations will be assigned a FFT channel, False : Disable FTT channels and linking. Default is False. advanced::max_cpu_load float Maximum allowable cpu load on the MSDD receiver. A device\u0026rsquo;s BUSY state is enabled if the load (MSDD CON CPL?) exceeds the threshold. Default is 95.0. advanced::max_nic_percentage float Maximum network utilization (as a percentage 0.0 to 100.0) that enables a device BUSY state. The MSDD NET BRT command defines the bit rate for a network interface. The total bit output rate is calculated for each enabled output module (i.e. tuner output). If this value exceeds the stated network utilization limit, a BUSY state is enabled. During all tuner allocations, this limit is checked to ensure the limit is not exceeded. Default is 90.0. advanced::minimum_connected_nic_rate float Validates the MSDD radio\u0026rsquo;s network interface supports the specified minimum data rate. Controls if the rh.MSDD should connect to the MSDD radio. Default is 1000 Mbps. psd_configuration The psd_configuration structure defines the FFT module settings. These settings are applied to the FFT module when controlling allocation is requested and advanced.enable_fft_channels is True.\n NAME TYPE DESCRIPTION psd_configuration::fft_size double Number of FFT bins (FFT PNT) psd_configuration::time_average double Number of averages based on time in seconds. (FFT AVG) psd_configuration::time_between_ffts double Time between FFT operations on a tuner channel. (FFT RAT) psd_configuration::output_bin_size double The number of FFT bins to output (FFT BIN) psd_configuration::window_type enum Windows to apply to each FFT. HANNING, HAMMING, BLACKMAN, RECT (FFT WND) psd_configuration::peak_mode enum Peak mode setting: INST, PEAK, BOTH (FFT PMD) gain_configuration The gain_configuration structure controls the gain setting for each MSDD tuner module type.\n NAME TYPE DESCRIPTION gain_configuration::rcvr_gain float Gain setting in db for MSDD RCV modules gain_configuration::wb_ddc_gain float Gain setting in db for MSDD WBDDC modules gain_configuration::hw_ddc_gain float Gain setting in db for MSDD NBDDC modules gain_configuration::sw_ddc_gain float Gain setting in db for MSDD SWDDC modules msdd_status The msdd_status structure defines the set of readonly properties that define the state of the MSDD receiver. This structure is updated after initialization, allocation requests and deallocation requests.\n NAME TYPE DESCRIPTION msdd_status::connected boolean True if connected to MSDD receiver msdd_status::receiver_identifier string Receiver identifier for filtering MSDD tuner modules. msdd_status::ip_address string IP Address assigned to radio msdd_status::port string Port number assigned to radio. msdd_status::control_host string IP Address from CON IPP? msdd_status::control_host_port string Port number from CON IPP? msdd_status::model string Model name from CON CFG? MODEL msdd_status::serial string Serical number from CON CFG? SERIAL msdd_status::software_part_number string Part number from CON IDN? msdd_status::rf_board_type string Value from CON CFG? RF_BRD_TYPE msdd_status::fpga_type string Value from CON CFG? FPGA_TYPE msdd_status::dsp_type string Value from CON CFG? DSP_BRD_TYPE msdd_status::minimum_frequency_hz string Value from CON CFG? MIN_FREQ msdd_status::maximum_frequency_hz string Value from CON CFG? MAX_FREQ msdd_status::dsp_reference_frequency_hz string Value CON CFG? DSP_REF msdd_status::adc_clock_frequency_hz string Value from CON CFG? ADC_CLK msdd_status::num_if_ports string Value from CON CFG? IF_PORTS msdd_status::num_eth_ports string Value from CON CFG? ETHR_PORTS msdd_status::cpu_type string Value from CON CFG? CPU_TYPE msdd_status::cpu_rate string Value from CON CFG? CPU_FREQ msdd_status::cpu_load string Value from CON CPL? msdd_status::pps_termination string Value from CON CFG? 1PPS_TERM msdd_status::pps_voltage string Value from CON CFG? 1PPS_VOLTAGE msdd_status::number_wb_ddc_channels string Value from CON CFG? FPGA_WBDDC_CHANNELS msdd_status::number_nb_ddc_channels string Value from CON CFG? FPGA_NBDDC_CHANNELS msdd_status::filename_app string Value from CON CFG? FILE_NAME_APP msdd_status::filename_fpga string Value from CON CFG? FILE_NAME_FPGA msdd_status::filename_batch string Value from CON CFG? FILE_NAME_BATCH msdd_status::filename_boot string Value from CON CFG? FILE_NAME_BOOT msdd_status::filename_loader string Value from CON CFG? FILE_NAME_LOADER msdd_status::filename_config string Value from CON CFG? FILE_NAME_CONFIG msdd_status::tod_module string Value from TOD MOD? msdd_status::tod_available_module string Value from TOD MODL? msdd_status::tod_meter_list string Value from TOD MTR? msdd_status::tod_reference_adjust string Value from MSDD TOD RFA? msdd_status::tod_track_mode_state string Value from MSDD TOD RTK? msdd_status::tod_bit_state string Value from MSDD TOD BIT? msdd_status::tod_toy string Value from MSDD TOY? msdd_status::tod_host_delta double Variance between host\u0026rsquo;s time of day and MSDD clock msdd_status::ntp_running bool If the host system is running NTP service for clock synchronization. tuner_output The tuner_output sequence contains the tuner_output_definition structure that defines the stream output configuration from a specific MSDD digital tuner module. Output definitions are filtered on receiver_identifier and passed to the appropriate CompositeMSDD child device.\n NAME TYPE DESCRIPTION tuner_output::receiver_identifier string MSDD RCV module linked to the digitial tuner. Default RCV:1. tuner_output::tuner_number short Index of MSDD tuner in sequence of frontend_tuner_status structures (0 based) tuner_output::enabled boolean Controls output module\u0026rsquo;s enable state for the assigned tuner. (OUT ENB). Default is True. tuner_output::protocol string Controls output packet format (OUT POL). UDP_SDDS : SDDS packet format, UDP_SDDSX - SDDSX packet format, UDP_SDDSA - SDDSA packet format, UDP_RAW - Raw packet format, UDP_VITA49 - VITA49 Data packet format. Default is UDP_SDDS. tuner_output::interface short Network interface to publish data (0 based). Default 0. tuner_output::ip_address string Destination IP address (OUT IPP) tuner_output::port short Destination IP port (OUT IPP ). Default is 8800 tuner_output::vlan_enable boolean Enable VLAN tagging (OUT VLANEN). Default is True. tuner_output::vlan short VLAN ID for 802.1q packets (OUT VLANTCI). Default is -1. tuner_output::timestamp_offset short Offset applied in 1ns increments (OUT TSOFS). Default is 0. tuner_output::endianess short BIG_ENDIAN (0). LITTLE ENDIAN (1) (OUT END). Default is LITTLE_ENDIAN. tuner_output::mfp_flush long Packet flush control bit mask (OUT MFP). Default is all bits enabled. block_tuner_output The block_tuner_output sequence contains the block_tuner_output_definition structure that defines the stream output configuration for a block of MSDD digital tuner modules. Output definitions are filtered on receiver_identifier and passed to the appropriate CompositeMSDD child device.\n NAME TYPE DESCRIPTION block_tuner_output::receiver_identifier string MSDD RCV module linked to the digitial tuner. Default RCV:1. block_tuner_output::tuner_number_start short Starting tuner number for block block_tuner_output::tuner_number_stop short Ending tuner number of block block_tuner_output::enabled boolean Controls output module\u0026rsquo;s enable state for the assigned tuner. (OUT ENB). Default is True. block_tuner_output::protocol string Controls output packet format (OUT POL). UDP_SDDS : SDDS packet format, UDP_SDDSX - SDDSX packet format, UDP_SDDSA - SDDSA packet format, UDP_RAW - Raw packet format, UDP_VITA49 - VITA49 Data packet format. Default is UDP_SDDS. block_tuner_output::interface short Network interface to publish data (0 based). Default 0. block_tuner_output::ip_address string Destination IP address (OUT IPP) block_tuner_output::port short Destination IP port (OUT IPP ). Default is 8800 block_tuner_output::vlan_enable boolean Enable VLAN tagging (OUT VLANEN). Default is True. block_tuner_output::vlan short VLAN ID for 802.1q packets (OUT VLANTCI). Default is -1. block_tuner_output::timestamp_offset short Offset applied in 1ns increments (OUT TSOFS). Default is 0. block_tuner_output::endianess short BIG_ENDIAN (0). LITTLE ENDIAN (1) (OUT END). Default is LITTLE_ENDIAN. block_tuner_output::mfp_flush long Packet flush control bit mask (OUT MFP). Default is all bits enabled. block_psd_output The block_psd_output sequence contains the block_psd_output_definition that defines the output stream configuration for a block of MSDD FFT channels. Output definitions are filtered on receiver_identifier and passed to the appropriate CompositeMSDD child device.\n NAME TYPE DESCRIPTION block_psd_output::receiver_identifier string MSDD RCV module linked to the FFT module. Default RCV:1. block_psd_output::fft_channel_start short Starting FFT channel of block (0 based) block_psd_output::fft_channel_stop short Ending FFT channel of block block_psd_output::enabled boolean Controls output module\u0026rsquo;s enable state for the assigned tuner. (OUT ENB). Default is True. block_psd_output::protocol string Controls output packet format (OUT POL). UDP_SDDS : SDDS packet format, UDP_SDDSX - SDDSX packet format, UDP_SDDSA - SDDSA packet format, UDP_RAW - Raw packet format, UDP_VITA49 - VITA49 Data packet format. Default is UDP_SDDS. block_psd_output::interface short Network interface to publish data (0 based). Default 0. block_psd_output::ip_address string Destination IP address (OUT IPP) block_psd_output::port short Destination IP port (OUT IPP ). Default is 8800 block_psd_output::vlan_enable boolean Enable VLAN tagging (OUT VLANEN). Default is True. block_psd_output::vlan short VLAN ID for 802.1q packets (OUT VLANTCI). Default is -1. block_psd_output::timestamp_offset short Offset applied in 1ns increments (OUT TSOFS). Default is 0. block_psd_output::endianess short BIG_ENDIAN (0). LITTLE ENDIAN (1) (OUT END). Default is LITTLE_ENDIAN. block_psd_output::mfp_flush long Packet flush control bit mask (OUT MFP). Default is all bits enabled. Installation The following procedure explains how to install rh.MSDD_Controller from source. For information about RPM installation, refer to the REDHAWK Manual.\n Ensure OSSIEHOME and SDRROOT are both set. $ source /etc/profile.d/redhawk.sh $ source /etc/profile.d/redhawk-sdrroot.sh To build and install rh.MSDD_Controller, enter the following commands from the root directory of the assets repository: $ ./build.sh install The installation of the rh.MSDD_Contoller will also install the rh.MSDD into the install location. This is required to satisfy the source code linkage between the parent\u0026rsquo;s python code and the child device.\nTroubleshooting To resolve issues with core framework bases class the following lines are required in the MSDD_Controller_base.py. If you regen this device, added back the from fix_cf_import * line\n# Source: MSDD_Controller.spd.xml from ossie.cf import CF from ossie.cf import CF__POA from ossie.utils import uuid # require to fix framework base class issues when setting properties from fix_cf import * The msdd property is used to setup the network connectivity between the MSDD hardware and host computer running the rh.MSDD_Controller device. Set the msdd::ip_address and msdd::port properties for the MSDD receiver you are connecting.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.rbdsdecoder.readme/",
"title": "rh.RBDSDecoder",
"tags": [],
"description": "",
"content": " REDHAWK rh.RBDSDecoder Description Contains the source and build script for the REDHAWK rh.RBDSDecoder component. This component decodes RBDS data from broadcast FM using the RBDS Standard Specification.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.rbdsdecoder.readme/",
"title": "rh.RBDSDecoder",
"tags": [],
"description": "",
"content": " REDHAWK rh.RBDSDecoder Description Contains the source and build script for the REDHAWK rh.RBDSDecoder component. This component decodes RBDS data from broadcast FM using the RBDS Standard Specification.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.rbdsdecoder.readme/",
"title": "rh.RBDSDecoder",
"tags": [],
"description": "",
"content": " REDHAWK rh.RBDSDecoder Description Contains the source and build script for the REDHAWK rh.RBDSDecoder component. This component decodes RBDS data from broadcast FM using the RBDS Standard Specification.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/devices/rh.rtl2832u.readme/",
"title": "rh.RTL2832U",
"tags": [],
"description": "",
"content": " REDHAWK rh.RTL2832U Description Contains the source and build script for the REDHAWK rh.RTL2832U device. Realtek RTL2832U usb dongle device using librtlsdr. Supports various tuners, including Elonics E4000, Rafael Micro R820T and R828D, Fitipower FC0012 and FC0013, and FCI FC2580.\nDependencies This device depends on the RTL SDR library, version 0.5.2.\nInstallation This asset requires the librtlsdr library. This must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\nUsage Prior to launching this device, the LD_LIBRARY_PATH may need to be updated to include the librtlsdr library (i.e. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib).\nThere is currently a bug where the RTL interface may not work when the device debug level is set at \u0026lsquo;DEBUG\u0026rsquo; or \u0026lsquo;TRACE\u0026rsquo;. If issues occur and your debug level is at \u0026lsquo;DEBUG\u0026rsquo; or \u0026lsquo;TRACE\u0026rsquo;, try and set the debug level as \u0026lsquo;INFO\u0026rsquo;.\nFEI Compliance Test Results See the FEI Compliance Results document.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/devices/rh.rtl2832u.readme/",
"title": "rh.RTL2832U",
"tags": [],
"description": "",
"content": " REDHAWK rh.RTL2832U Description Contains the source and build script for the REDHAWK rh.RTL2832U device. Realtek RTL2832U usb dongle device using librtlsdr. Supports various tuners, including Elonics E4000, Rafael Micro R820T and R828D, Fitipower FC0012 and FC0013, and FCI FC2580.\nDependencies This device depends on the RTL SDR library, version 0.5.2.\nInstallation This asset requires the librtlsdr library. This must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\nUsage Prior to launching this device, the LD_LIBRARY_PATH may need to be updated to include the librtlsdr library (i.e. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib).\nThere is currently a bug where the RTL interface may not work when the device debug level is set at \u0026lsquo;DEBUG\u0026rsquo; or \u0026lsquo;TRACE\u0026rsquo;. If issues occur and your debug level is at \u0026lsquo;DEBUG\u0026rsquo; or \u0026lsquo;TRACE\u0026rsquo;, try and set the debug level as \u0026lsquo;INFO\u0026rsquo;.\nFEI Compliance Test Results See the FEI Compliance Results document.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/libraries/rh.redhawkdevutils.readme/",
"title": "rh.RedhawkDevUtils",
"tags": [],
"description": "",
"content": " REDHAWK rh.RedhawkDevUtils Description Contains the source and build script for the REDHAWK rh.RedhawkDevUtils shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/libraries/rh.redhawkdevutils.readme/",
"title": "rh.RedhawkDevUtils",
"tags": [],
"description": "",
"content": " REDHAWK rh.RedhawkDevUtils Description Contains the source and build script for the REDHAWK rh.RedhawkDevUtils shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/libraries/rh.redhawkdevutils.readme/",
"title": "rh.RedhawkDevUtils",
"tags": [],
"description": "",
"content": " REDHAWK rh.RedhawkDevUtils Description Contains the source and build script for the REDHAWK rh.RedhawkDevUtils shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.siggen.readme/",
"title": "rh.SigGen",
"tags": [],
"description": "",
"content": " REDHAWK rh.SigGen Description Contains the source and build script for the REDHAWK rh.SigGen component, a signal generator that creates different output signals based on its configuration. It contains an implementation in each of the supported languages (Python, C++, Java) as an example of a component with multiple implementations.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.siggen.readme/",
"title": "rh.SigGen",
"tags": [],
"description": "",
"content": " REDHAWK rh.SigGen Description Contains the source and build script for the REDHAWK rh.SigGen component, a signal generator that creates different output signals based on its configuration. It contains an implementation in each of the supported languages (Python, C++, Java) as an example of a component with multiple implementations.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.siggen.readme/",
"title": "rh.SigGen",
"tags": [],
"description": "",
"content": " REDHAWK rh.SigGen Description Contains the source and build script for the REDHAWK rh.SigGen component, a signal generator that creates different output signals based on its configuration. It contains implementations in C++ and Python, as an example of a component with multiple implementations.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.sinksdds.readme/",
"title": "rh.SinkSDDS",
"tags": [],
"description": "",
"content": " REDHAWK rh.SinkSDDS Table of Contents Description Installation Design Properties SRI Keywords Known Issues Description The rh.SinkSDDS component takes in a single BulkIO stream on one of the three input ports and serves a single SDDS stream over the provided multicast or unicast address. The component is currently limited to a single stream. The component performs a BulkIO attach call on any existing connections at start and calls attach on any dynamically made connections during runtime. BulkIO SRI is used to set the SDDS header information unless overridden via properties, and the SRI is passed across the SDDS BulkIO connection to any downstream components. See the Properties section for information on overriding SDDS header values and the SRI Keywords section for information on KEYWORDs created.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nDesign The code is divided into two main classes, the component class and the templated BulkIOToSDDS processor class. The component class contains three instances of the processor class, one for each port type: float, short, and octet.\nThe component class is responsible for the following actions:\n Stream listeners - The component class registers new stream listeners and removes stream listeners for each port so that it can provide the appropriate processor with the new stream. It is also the only entity aware of all three BulkIO to SDDS processors so it ensures that only a single stream is active when new streams come in. Property callbacks - Using the setPropertyConfigureImpl API, the component class intercepts the REDHAWK configure call for the struct properties and ensures that the component is not running when trying to set these properties. New Connection Listener - When a new dynamic connection is made after the component is already running, the SRI and BulkIO Attach calls need to be made. The component class informs the processor classes of new dynamic connections so this may occur. Socket creation - The component class is responsible for creating the unicast or multicast socket connection and throwing an appropriate exception if the socket cannot be opened. A successful socket creation is then handed down to the processor classes to reference. Start/Stop API - The component class overrides the start/stop REDHAWK calls so that it can create the socket and start the appropriate processors. During stop, it cleans up the processor threads and closes the socket. The traditional service function/process thread is not used by this component. The BulkIOToSDDSProcessor class is a templated class so that it can handle any of the current port types. It is responsible for the following actions:\n Pulling data from BulkIO - Using the stream API, the processor will attempt to pull exactly 1024 bytes, the SDDS payload size, from the BulkIO stream. This may not always be the case due to end of streams, SRI changes, and so forth, which is discussed in more depth below. Setting SDDS header values - Fields such as, but not limited to the SDDS timing, frequency, and complex field are derived from the BulkIO SRI. Optionally a user may override these fields. Pushing SDDS Packets - Using the socket connection passed in from the component class, the processor class will push SDDS packets down to the kernel using the sendmsg API and the scatter/gather approach. The scatter/gather approach allows the packet to be divided into three separate arrays: SDDS Header Template - The class has a single SDDS header that is updated for each packet. SDDS Payload - Read from BulkIO; this is usually 1024; however, can be less on an EOS or SRI change. Zero Padding - Generally not used, but in cases where the SDDS Payload is less than 1024, the packet is padded. Properties Properties and their descriptions are below. Struct props are shown with their struct properties in a table below:\nnetwork_settings - Settings for the network connection.\n Struct Property Description interface The network interface you intend to be present or blank if no check is needed. Do not include the VLAN in the interface name. (For example, for eth0.28 the interface should be set to \u0026ldquo;eth0\u0026rdquo; NOT \u0026ldquo;eth0.28\u0026rdquo;). ip_address For the unicast case, this is the destination IP address to send the UDP packets. For the multicast case, this is the multicast group. port UDP port used to publish data. (default SDDS port is: 29495) vlan UDP port used to publish data. sdds_settings - Settings related to standard fields in the SDDS Packet or data portion that cannot be derived from BulkIO metadata.\n Struct Property Description standard_format The SF (Standard Format) field is used to identify whether or not the packet conforms to the SDDS standard. For SDDS standard packets, the SF bit shall be set to a value of 1. The SF bit shall be set to a value of zero for non-standard packets. original_format The OF (Original Format) field identifies the original format of the data transmitted. If the data was originally offset binary and has been converted to 2\u0026rsquo;s complement, the OF value is set to one. Otherwise, the data is 2\u0026rsquo;s complement and has not been converted and the OF value is set to zero. spectral_sense The SS (Spectral Sense) field identifiees whether or not the spectral sense has been inverted from the original input. The SS value is set to one if the spectral sense has been inverted. The SS value is set to zero if the spectral sense has not been inverted. endian_representation The endianness (Big or Little) of the data portion of the SDDS packet. Defaults to Network Byte Order (Big Endian). This will also affect the SRI keyword DATA_REF_STR and set it appropriately. sdds_attach_settings - Settings related to the BulkIO based SDDS Attach and detach API.\n Struct Property Description time_tag_valid Used only in the attach call. The attach call is made prior to the bulkIO TimeStamp being available so the true BULKIO::TCS_VALID flag cannot be checked. This is only used during the call to attach. user_id Used as a parameter to the attach call. downstream_give_sri_priority Informs downstream components, via the BULKIO_SRI_PRIORITY keyword, to override the xdelta and real/complex mode found in the SDDS Packet header in place of the xdelta and mode found in the supplied SRI. override_sdds_header - Used to optionally override values in the SDDS header which would otherwise be derived from BulkIO metadata or set to a reasonable value.\n Struct Property Description enabled If true, the values in this struct will override the default values used by this component. Each property should have a description which explains what values would otherwise be used. dmode The data mode field identifies the structure of the data field. See the full specification for details. Unless overridden, this is set to 1 for byte samples, 2 for shorts, and 0 for floats as floats are not part of the standadr. bps The number of bits per sample where the sample size in this case is only refering to the size of the native type used eg. byte, short, float. Bytes are 8, Shorts 16, and since only 5 bits are available, a float is labeled as 31 rather than 32. Unless overridden, this is derived from the sizeof call on the native bulkIO packet type. cx Denotes if the data portion of the packet represents real (0) or complex (1) values. Unless overridden, this is derived from the mode field within the SRI. msv Denotes if the samples within this packet span a 1-millisecond boundry. Unless overridden, this field is not used and set to zero. ttv Time Tag Valid field denotes if the values stored within the Time Tag information fields (Time Tag, Time Tag Extension) are valid. Unless overridden, this is derived from the tcstatus field of BulkIO Timestamps and is set to true if equal to TCS_VALID and false otherwise. sscv Synchronous Sample Clock Valid field is 1 if the SSC information fields (dfdt and frequency) are valid and zero otherwise. Unless overridden, this is always set to 1. msptr Points to the first sample in the data field that occurred after the 1-millisecond event. Unless overridden, this is always set to 0. msdel The 1-ms Delta is the time difference between the 1-millisecond event and the first positive going transistion of the SSC that occurred after the 1-millisecond event. Unless overridden, this is always set to 0. frequency The frequency field contains the frequency of the SSC. This value represents the instantaneous frqeuency of the SSC associated with the first sample of the frame. Unless overridden, this is derived from the xdelta found in the SRI. dfdt This field measures the rate at which the frequency is changing. The value represents the delta between the instantaneous frequency of the last SSC of the packet and the instantaneous frequency of the first SSC of the packet divided by the packet duration. Unless overridden, this is set to 0.0. SRI Keywords The SinkSDDS component does not check for or react to any specific keywords. Any keywords which exist in the given SRI are forwarded to downstream components unless they are the same keywords written to by SinkSDDS in which case SinkSDDS will override the values.\n BULKIO_SRI_PRIORITY - If the sdds_attach_settings::downstream_give_sri_priority property is set to true, the BULKIO_SRI_PRIORITY keyword will be set with a value of one. If the sdds_attach_settings::downstream_give_sri_priority property is set to false, the BULKIO_SRI_PRIORITY keyword will not be added. DATA_REF_STR - If the sdds_settings::endian_representation property is set to LITTLE_ENDIAN (0) the DATA_REF_STR keyword will be set to 43981 (0xABCD) while if the sdds_settings::endian_representation property is set to BIG_ENDIAN (1) the DATA_REF_STR keyword will be set to 52651 (0xCDAB). Known Issues Calculation of dfdt field - Currently the dfdt field in the SDDS header defaults to zero unless overridden by the user. The dfdt field is supposed to represent the change in sample clock frequency in units of Hz/sec between the first and last sample in the SDDS packet. This exact information is not found in BulkIO, so a direct mapping is not possible; however, BulkIO does allow you to check if multiple timestamps are available. Some estimation based on that may be possible. Change of BulkIO Mode - Changing the BulkIO mode field mid-stream is not recommended, a user should send an EOS and start a new stream with the changed mode. The component will gracefully deal with a mode change though with the following outcomes. Going from Real-\u0026gt;Complex this will cause 1 SDDS packets worth of data to have an incorrect time stamp. Going from Complex-\u0026gt;Real will cause a single packet to be erroneously padded with zeros. "
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.sinksdds.readme/",
"title": "rh.SinkSDDS",
"tags": [],
"description": "",
"content": " REDHAWK rh.SinkSDDS Table of Contents Description Installation Design Properties SRI Keywords Known Issues Description The rh.SinkSDDS component takes in a single BulkIO stream on one of the three input ports and serves a single SDDS stream over the provided multicast or unicast address. The component is currently limited to a single stream. The component performs a BulkIO attach call on any existing connections at start and calls attach on any dynamically made connections during runtime. BulkIO SRI is used to set the SDDS header information unless overridden via properties, and the SRI is passed across the SDDS BulkIO connection to any downstream components. See the Properties section for information on overriding SDDS header values and the SRI Keywords section for information on KEYWORDs created.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nDesign The code is divided into two main classes, the component class and the templated BulkIOToSDDS processor class. The component class contains three instances of the processor class, one for each port type: float, short, and octet.\nThe component class is responsible for the following actions:\n Stream listeners - The component class registers new stream listeners and removes stream listeners for each port so that it can provide the appropriate processor with the new stream. It is also the only entity aware of all three BulkIO to SDDS processors so it ensures that only a single stream is active when new streams come in. Property callbacks - Using the setPropertyConfigureImpl API, the component class intercepts the REDHAWK configure call for the struct properties and ensures that the component is not running when trying to set these properties. New Connection Listener - When a new dynamic connection is made after the component is already running, the SRI and BulkIO Attach calls need to be made. The component class informs the processor classes of new dynamic connections so this may occur. Socket creation - The component class is responsible for creating the unicast or multicast socket connection and throwing an appropriate exception if the socket cannot be opened. A successful socket creation is then handed down to the processor classes to reference. Start/Stop API - The component class overrides the start/stop REDHAWK calls so that it can create the socket and start the appropriate processors. During stop, it cleans up the processor threads and closes the socket. The traditional service function/process thread is not used by this component. The BulkIOToSDDSProcessor class is a templated class so that it can handle any of the current port types. It is responsible for the following actions:\n Pulling data from BulkIO - Using the stream API, the processor will attempt to pull exactly 1024 bytes, the SDDS payload size, from the BulkIO stream. This may not always be the case due to end of streams, SRI changes, and so forth, which is discussed in more depth below. Setting SDDS header values - Fields such as, but not limited to the SDDS timing, frequency, and complex field are derived from the BulkIO SRI. Optionally a user may override these fields. Pushing SDDS Packets - Using the socket connection passed in from the component class, the processor class will push SDDS packets down to the kernel using the sendmsg API and the scatter/gather approach. The scatter/gather approach allows the packet to be divided into three separate arrays: SDDS Header Template - The class has a single SDDS header that is updated for each packet. SDDS Payload - Read from BulkIO; this is usually 1024; however, can be less on an EOS or SRI change. Zero Padding - Generally not used, but in cases where the SDDS Payload is less than 1024, the packet is padded. Properties Properties and their descriptions are below. Struct props are shown with their struct properties in a table below:\nnetwork_settings - Settings for the network connection.\n Struct Property Description interface The network interface you intend to be present or blank if no check is needed. Do not include the VLAN in the interface name. (For example, for eth0.28 the interface should be set to \u0026ldquo;eth0\u0026rdquo; NOT \u0026ldquo;eth0.28\u0026rdquo;). ip_address For the unicast case, this is the destination IP address to send the UDP packets. For the multicast case, this is the multicast group. port UDP port used to publish data. (default SDDS port is: 29495) vlan UDP port used to publish data. sdds_settings - Settings related to standard fields in the SDDS Packet or data portion that cannot be derived from BulkIO metadata.\n Struct Property Description standard_format The SF (Standard Format) field is used to identify whether or not the packet conforms to the SDDS standard. For SDDS standard packets, the SF bit shall be set to a value of 1. The SF bit shall be set to a value of zero for non-standard packets. original_format The OF (Original Format) field identifies the original format of the data transmitted. If the data was originally offset binary and has been converted to 2\u0026rsquo;s complement, the OF value is set to one. Otherwise, the data is 2\u0026rsquo;s complement and has not been converted and the OF value is set to zero. spectral_sense The SS (Spectral Sense) field identifiees whether or not the spectral sense has been inverted from the original input. The SS value is set to one if the spectral sense has been inverted. The SS value is set to zero if the spectral sense has not been inverted. endian_representation The endianness (Big or Little) of the data portion of the SDDS packet. Defaults to Network Byte Order (Big Endian). This will also affect the SRI keyword DATA_REF_STR and set it appropriately. sdds_attach_settings - Settings related to the BulkIO based SDDS Attach and detach API.\n Struct Property Description time_tag_valid Used only in the attach call. The attach call is made prior to the bulkIO TimeStamp being available so the true BULKIO::TCS_VALID flag cannot be checked. This is only used during the call to attach. user_id Used as a parameter to the attach call. downstream_give_sri_priority Informs downstream components, via the BULKIO_SRI_PRIORITY keyword, to override the xdelta and real/complex mode found in the SDDS Packet header in place of the xdelta and mode found in the supplied SRI. override_sdds_header - Used to optionally override values in the SDDS header which would otherwise be derived from BulkIO metadata or set to a reasonable value.\n Struct Property Description enabled If true, the values in this struct will override the default values used by this component. Each property should have a description which explains what values would otherwise be used. dmode The data mode field identifies the structure of the data field. See the full specification for details. Unless overridden, this is set to 1 for byte samples, 2 for shorts, and 0 for floats as floats are not part of the standadr. bps The number of bits per sample where the sample size in this case is only refering to the size of the native type used eg. byte, short, float. Bytes are 8, Shorts 16, and since only 5 bits are available, a float is labeled as 31 rather than 32. Unless overridden, this is derived from the sizeof call on the native bulkIO packet type. cx Denotes if the data portion of the packet represents real (0) or complex (1) values. Unless overridden, this is derived from the mode field within the SRI. msv Denotes if the samples within this packet span a 1-millisecond boundry. Unless overridden, this field is not used and set to zero. ttv Time Tag Valid field denotes if the values stored within the Time Tag information fields (Time Tag, Time Tag Extension) are valid. Unless overridden, this is derived from the tcstatus field of BulkIO Timestamps and is set to true if equal to TCS_VALID and false otherwise. sscv Synchronous Sample Clock Valid field is 1 if the SSC information fields (dfdt and frequency) are valid and zero otherwise. Unless overridden, this is always set to 1. msptr Points to the first sample in the data field that occurred after the 1-millisecond event. Unless overridden, this is always set to 0. msdel The 1-ms Delta is the time difference between the 1-millisecond event and the first positive going transistion of the SSC that occurred after the 1-millisecond event. Unless overridden, this is always set to 0. frequency The frequency field contains the frequency of the SSC. This value represents the instantaneous frqeuency of the SSC associated with the first sample of the frame. Unless overridden, this is derived from the xdelta found in the SRI. dfdt This field measures the rate at which the frequency is changing. The value represents the delta between the instantaneous frequency of the last SSC of the packet and the instantaneous frequency of the first SSC of the packet divided by the packet duration. Unless overridden, this is set to 0.0. SRI Keywords The SinkSDDS component does not check for or react to any specific keywords. Any keywords which exist in the given SRI are forwarded to downstream components unless they are the same keywords written to by SinkSDDS in which case SinkSDDS will override the values.\n BULKIO_SRI_PRIORITY - If the sdds_attach_settings::downstream_give_sri_priority property is set to true, the BULKIO_SRI_PRIORITY keyword will be set with a value of one. If the sdds_attach_settings::downstream_give_sri_priority property is set to false, the BULKIO_SRI_PRIORITY keyword will not be added. DATA_REF_STR - If the sdds_settings::endian_representation property is set to LITTLE_ENDIAN (0) the DATA_REF_STR keyword will be set to 43981 (0xABCD) while if the sdds_settings::endian_representation property is set to BIG_ENDIAN (1) the DATA_REF_STR keyword will be set to 52651 (0xCDAB). Known Issues Calculation of dfdt field - Currently the dfdt field in the SDDS header defaults to zero unless overridden by the user. The dfdt field is supposed to represent the change in sample clock frequency in units of Hz/sec between the first and last sample in the SDDS packet. This exact information is not found in BulkIO, so a direct mapping is not possible; however, BulkIO does allow you to check if multiple timestamps are available. Some estimation based on that may be possible. Change of BulkIO Mode - Changing the BulkIO mode field mid-stream is not recommended, a user should send an EOS and start a new stream with the changed mode. The component will gracefully deal with a mode change though with the following outcomes. Going from Real-\u0026gt;Complex this will cause 1 SDDS packets worth of data to have an incorrect time stamp. Going from Complex-\u0026gt;Real will cause a single packet to be erroneously padded with zeros. "
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.sinksdds.readme/",
"title": "rh.SinkSDDS",
"tags": [],
"description": "",
"content": " REDHAWK rh.SinkSDDS Table of Contents Description Installation Design Properties SRI Keywords Known Issues Description The rh.SinkSDDS component takes in a single BulkIO stream on one of the three input ports and serves a single SDDS stream over the provided multicast or unicast address. The component is currently limited to a single stream. The component performs a BulkIO attach call on any existing connections at start and calls attach on any dynamically made connections during runtime. BulkIO SRI is used to set the SDDS header information unless overridden via properties, and the SRI is passed across the SDDS BulkIO connection to any downstream components. See the Properties section for information on overriding SDDS header values and the SRI Keywords section for information on KEYWORDs created.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nDesign The code is divided into two main classes, the component class and the templated BulkIOToSDDS processor class. The component class contains three instances of the processor class, one for each port type: float, short, and octet.\nThe component class is responsible for the following actions:\n Stream listeners - The component class registers new stream listeners and removes stream listeners for each port so that it can provide the appropriate processor with the new stream. It is also the only entity aware of all three BulkIO to SDDS processors so it ensures that only a single stream is active when new streams come in. Property callbacks - Using the setPropertyConfigureImpl API, the component class intercepts the REDHAWK configure call for the struct properties and ensures that the component is not running when trying to set these properties. New Connection Listener - When a new dynamic connection is made after the component is already running, the SRI and BulkIO Attach calls need to be made. The component class informs the processor classes of new dynamic connections so this may occur. Socket creation - The component class is responsible for creating the unicast or multicast socket connection and throwing an appropriate exception if the socket cannot be opened. A successful socket creation is then handed down to the processor classes to reference. Start/Stop API - The component class overrides the start/stop REDHAWK calls so that it can create the socket and start the appropriate processors. During stop, it cleans up the processor threads and closes the socket. The traditional service function/process thread is not used by this component. The BulkIOToSDDSProcessor class is a templated class so that it can handle any of the current port types. It is responsible for the following actions:\n Pulling data from BulkIO - Using the stream API, the processor will attempt to pull exactly 1024 bytes, the SDDS payload size, from the BulkIO stream. This may not always be the case due to end of streams, SRI changes, and so forth, which is discussed in more depth below. Setting SDDS header values - Fields such as, but not limited to the SDDS timing, frequency, and complex field are derived from the BulkIO SRI. Optionally a user may override these fields. Pushing SDDS Packets - Using the socket connection passed in from the component class, the processor class will push SDDS packets down to the kernel using the sendmsg API and the scatter/gather approach. The scatter/gather approach allows the packet to be divided into three separate arrays: SDDS Header Template - The class has a single SDDS header that is updated for each packet. SDDS Payload - Read from BulkIO; this is usually 1024; however, can be less on an EOS or SRI change. Zero Padding - Generally not used, but in cases where the SDDS Payload is less than 1024, the packet is padded. Properties Properties and their descriptions are below. Struct props are shown with their struct properties in a table below:\nnetwork_settings - Settings for the network connection.\n Struct Property Description interface The network interface you intend to be present or blank if no check is needed. Do not include the VLAN in the interface name. (For example, for eth0.28 the interface should be set to \u0026ldquo;eth0\u0026rdquo; NOT \u0026ldquo;eth0.28\u0026rdquo;). ip_address For the unicast case, this is the destination IP address to send the UDP packets. For the multicast case, this is the multicast group. port UDP port used to publish data. (default SDDS port is: 29495) vlan UDP port used to publish data. sdds_settings - Settings related to standard fields in the SDDS Packet or data portion that cannot be derived from BulkIO metadata.\n Struct Property Description standard_format The SF (Standard Format) field is used to identify whether or not the packet conforms to the SDDS standard. For SDDS standard packets, the SF bit shall be set to a value of 1. The SF bit shall be set to a value of zero for non-standard packets. original_format The OF (Original Format) field identifies the original format of the data transmitted. If the data was originally offset binary and has been converted to 2\u0026rsquo;s complement, the OF value is set to one. Otherwise, the data is 2\u0026rsquo;s complement and has not been converted and the OF value is set to zero. spectral_sense The SS (Spectral Sense) field identifiees whether or not the spectral sense has been inverted from the original input. The SS value is set to one if the spectral sense has been inverted. The SS value is set to zero if the spectral sense has not been inverted. endian_representation The endianness (Big or Little) of the data portion of the SDDS packet. Defaults to Network Byte Order (Big Endian). This will also affect the SRI keyword DATA_REF_STR and set it appropriately. sdds_attach_settings - Settings related to the BulkIO based SDDS Attach and detach API.\n Struct Property Description time_tag_valid Used only in the attach call. The attach call is made prior to the bulkIO TimeStamp being available so the true BULKIO::TCS_VALID flag cannot be checked. This is only used during the call to attach. user_id Used as a parameter to the attach call. downstream_give_sri_priority Informs downstream components, via the BULKIO_SRI_PRIORITY keyword, to override the xdelta and real/complex mode found in the SDDS Packet header in place of the xdelta and mode found in the supplied SRI. override_sdds_header - Used to optionally override values in the SDDS header which would otherwise be derived from BulkIO metadata or set to a reasonable value.\n Struct Property Description enabled If true, the values in this struct will override the default values used by this component. Each property should have a description which explains what values would otherwise be used. dmode The data mode field identifies the structure of the data field. See the full specification for details. Unless overridden, this is set to 1 for byte samples, 2 for shorts, and 0 for floats as floats are not part of the standadr. bps The number of bits per sample where the sample size in this case is only refering to the size of the native type used eg. byte, short, float. Bytes are 8, Shorts 16, and since only 5 bits are available, a float is labeled as 31 rather than 32. Unless overridden, this is derived from the sizeof call on the native bulkIO packet type. cx Denotes if the data portion of the packet represents real (0) or complex (1) values. Unless overridden, this is derived from the mode field within the SRI. msv Denotes if the samples within this packet span a 1-millisecond boundry. Unless overridden, this field is not used and set to zero. ttv Time Tag Valid field denotes if the values stored within the Time Tag information fields (Time Tag, Time Tag Extension) are valid. Unless overridden, this is derived from the tcstatus field of BulkIO Timestamps and is set to true if equal to TCS_VALID and false otherwise. sscv Synchronous Sample Clock Valid field is 1 if the SSC information fields (dfdt and frequency) are valid and zero otherwise. Unless overridden, this is always set to 1. msptr Points to the first sample in the data field that occurred after the 1-millisecond event. Unless overridden, this is always set to 0. msdel The 1-ms Delta is the time difference between the 1-millisecond event and the first positive going transistion of the SSC that occurred after the 1-millisecond event. Unless overridden, this is always set to 0. frequency The frequency field contains the frequency of the SSC. This value represents the instantaneous frqeuency of the SSC associated with the first sample of the frame. Unless overridden, this is derived from the xdelta found in the SRI. dfdt This field measures the rate at which the frequency is changing. The value represents the delta between the instantaneous frequency of the last SSC of the packet and the instantaneous frequency of the first SSC of the packet divided by the packet duration. Unless overridden, this is set to 0.0. SRI Keywords The SinkSDDS component does not check for or react to any specific keywords. Any keywords which exist in the given SRI are forwarded to downstream components unless they are the same keywords written to by SinkSDDS in which case SinkSDDS will override the values.\n BULKIO_SRI_PRIORITY - If the sdds_attach_settings::downstream_give_sri_priority property is set to true, the BULKIO_SRI_PRIORITY keyword will be set with a value of one. If the sdds_attach_settings::downstream_give_sri_priority property is set to false, the BULKIO_SRI_PRIORITY keyword will not be added. DATA_REF_STR - If the sdds_settings::endian_representation property is set to LITTLE_ENDIAN (0) the DATA_REF_STR keyword will be set to 43981 (0xABCD) while if the sdds_settings::endian_representation property is set to BIG_ENDIAN (1) the DATA_REF_STR keyword will be set to 52651 (0xCDAB). Known Issues Calculation of dfdt field - Currently the dfdt field in the SDDS header defaults to zero unless overridden by the user. The dfdt field is supposed to represent the change in sample clock frequency in units of Hz/sec between the first and last sample in the SDDS packet. This exact information is not found in BulkIO, so a direct mapping is not possible; however, BulkIO does allow you to check if multiple timestamps are available. Some estimation based on that may be possible. Change of BulkIO Mode - Changing the BulkIO mode field mid-stream is not recommended, a user should send an EOS and start a new stream with the changed mode. The component will gracefully deal with a mode change though with the following outcomes. Going from Real-\u0026gt;Complex this will cause 1 SDDS packets worth of data to have an incorrect time stamp. Going from Complex-\u0026gt;Real will cause a single packet to be erroneously padded with zeros. "
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.sinkvita49.readme/",
"title": "rh.SinkVITA49",
"tags": [],
"description": "",
"content": " REDHAWK rh.SinkVITA49 Description Contains the source and build script for the REDHAWK rh.SinkVITA49 component. The rh.SinkVITA49 component creates a UDP/multicast or TCP VITA49 packet stream and converts the data and SRI Keywords to IF data packets and Context packets for use within/between/outside of a REDHAWK domain application.\nInstallation This asset requires the rh.VITA49 shared library. This shared library must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.sinkvita49.readme/",
"title": "rh.SinkVITA49",
"tags": [],
"description": "",
"content": " REDHAWK rh.SinkVITA49 Description Contains the source and build script for the REDHAWK rh.SinkVITA49 component. The rh.SinkVITA49 component creates a UDP/multicast or TCP VITA49 packet stream and converts the data and SRI Keywords to IF data packets and Context packets for use within/between/outside of a REDHAWK domain application.\nInstallation This asset requires the rh.VITA49 shared library. This shared library must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.sinkvita49.readme/",
"title": "rh.SinkVITA49",
"tags": [],
"description": "",
"content": " REDHAWK rh.SinkVITA49 Description Contains the source and build script for the REDHAWK rh.SinkVITA49 component. The rh.SinkVITA49 component creates a UDP/multicast or TCP VITA49 packet stream and converts the data and SRI Keywords to IF data packets and Context packets for use within/between/outside of a REDHAWK domain application.\nInstallation This asset requires the rh.VITA49 shared library. This shared library must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.sourcesdds.readme/",
"title": "rh.SourceSDDS",
"tags": [],
"description": "",
"content": " REDHAWK rh.SourceSDDS Table of Contents Description Installation Design Properties Usage Unimplemented Optimizations Description The rh.SourceSDDS consumes a single SDDS formatted multicast or unicast UDP stream and outputs it via the corresponding BulkIO port. The component provides a number of status properties including buffer monitoring of both kernel space socket and internal component buffers. Source IP and port information may either be expressed via the attachment override property or via the BulkIO SDDS ports attach call. See the properties and SRI section for details on how to configure the components advanced optimizations and the list of SRI keywords checked for within the component.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nDesign The design goals for this component were to provide a clean, easy to follow, SourceSDDS implementation that could not only ingest at the expected data rates but also provide status metrics for the data flow, multi-cast configuration debugging, and test cases to profile the max ingest speed.\nThe dataflow and source code can be broken up into four distict sections; component logic, socket reader, internal buffers, and the SDDS to bulkIO processor. The component class has no service loop and instead starts two threads on start; the socket reader and the SDDS to BulkIO processor. The socket reader thread pulls a user defined number of SDDS packets off the socket at a time and places them into the shared buffer for the SDDS to BulkIO thread to consume and push out the BulkIO ports.\nProperties Properties and their descriptions are below, struct props are shown with their struct properties in a table below:\n_advancedoptimizations - A set of optimizations that may help adjust throughput performance. The defaults values work well for most systems.\n Struct Property Description buffer_size The maximum number of elements (SDDS Packets) which can be held within the internal buffer. If there is down stream back pressure this buffer will start to fill first and provide pressure on the socket buffer if full. Current fullness is displayed within status struct udp_socket_buffer_size The socket buffer size requested via a call to setsockopt. Once the socket is opened, the user provided value will be replaced with the true value returned by the kernel. Note that the actual value set will depend on system configuration; in addition, the kernel will double the value to allow space for bookkeeping overhead. pkts_per_socket_read The maximum number of SDDS packets read per read of the socket. The recvmmsg system call is used to read multiple UDP packets per system call, and a non-blocking socket used so at most, pkts_per_socket_read will be read. sdds_pkts_per_bulkio_push The number of SDDS packets to aggregate per BulkIO pushpacket call. Note that situations such as a TTV change, or packet drops may cause push packets to occur before the desired size is achieved. Increasing this value will improve throughput performance but impact latency. It also has an affect on timing precision as only the first SDDS packet in the group\u0026rsquo;s time stamp is preserved in the BulkIO call. socket_read_thread_affinity Set using the same bitmask syntax (eg. FFFFFFFF) as taskset and limits the CPU affinity of the thread which reads from the socket to only the specified CPUs. If externally set, this property will update to reflect the actual thread affinity sdds_to_bulkio_thread_affinity Set using the same bitmask syntax (eg. FFFFFFFF) as taskset and limits the CPU affinity of the thread which consumes packets from the internal buffer, and makes the call to pushpacket socket_read_thread_priority If set to non-zero, the scheduler type for the socket reader thread will be set to Round Robin and the priority set to the provided value using the pthread_setschedparam call. Note that rtprio privileges will need to be given to user running the component and that in most cases, this feature is not needed to keep up with data rates. sdds_to_bulkio_thread_priority If set to non-zero, the scheduler type for the SDDS to BulkIO processor thread will be set to Round Robin and the priority set to the provided value using the pthread_setschedparam call. Note that rtprio privileges will need to be given to user running the component and that in most cases, this feature is not needed to keep up with data rates. check_for_duplicate_sender If true, the source address of each SDDS packet will be checked and a warning printed if two different hosts are sending packets on the same multicast address. This is used primarily to debug the network configuration and can impact performance so is disabled by default. _attachmentoverride - Used in place of the SDDS Port to establish a multicast or unicast connection to a specific host and port. If enabled, this will overrule calls to attach however any SRI received from the attach port will be used.\n Struct Property Description enabled Denotes if the attachment override values should be used. ip_address For the unicast case this is the IP address of the network interface to bind to where the address of 0.0.0.0 is acceptable. For the multicast case this is the multicast group to join. vlan VLAN of the interface carrying the SDDS traffic. Ignored if set to 0. port Source port of SDDS traffic (default SDDS port is: 29495) endianness The endianness (Big or Little) of the data portion of the SDDS packet. Defaults to Network Byte Order (Big Endian) interface - The network interface you intend to be present or blank if no check is needed. Do not include the VLAN in the interface name. (eg. For eth0.28 the interface should be set to \u0026ldquo;eth0\u0026rdquo; NOT \u0026ldquo;eth0.28\u0026rdquo;).\n_advancedconfiguration - Configuration options that affect when and how to forward SDDS packets to BulkIO\n Struct Property Description push_on_ttv If set to true, a push packet will occur on any state change of the SDDS Time Tag Valid (TTV) flag. Eg. If TTV goes from True to False, all currently buffered data will be sent with a push packet and the next packet will start with the TTV False data. The TCS_INVALID flag will be set in the BulkIO timing field if the TTV flag is false. wait_on_ttv If set to true, no BulkIO packets will be pushed unless the SDDS Time Tag Valid (TTV) flag is set to true. Any packets missed due to invalid Time Tag will be counted as dropped / missed packets. status - A read only status structure to monitor the components performance as well as dropped packets and timing slips.\n Struct Property Description expected_sequence_number The next SDDS sequence number expected. Useful to confirm SDDS packets are being received. dropped_packets The number of lost SDDS packets. For simplicity, the calculation includes the optional checksum packets in the lost SDDS packet count (sent every 31 packets) so it may not reflect the exact number of dropped packets if checksum packets are not used (and they never are). bits_per_sample The size (in bits) of the SDDS sample datatype which is derived from the bps field in the SDDS header. Values map from: (8 -\u0026gt; Byte), (16 -\u0026gt; Short), (32 -\u0026gt; Float) empty_buffers_available The number of empty SDDS buffers in the internal buffer that are available to the socket reader. Note empty_buffers_available + buffers_to_work may be less than the total buffer size as the socket reader pops off pkts_per_socket_read and the BulkIO thread pops sdds_pkts_per_bulkio_push. buffers_to_work The number of full SDDS buffers in the internal buffer that need to be converted to BulkIO by the SDDS to BulkIO processor. Note empty_buffers_available + buffers_to_work may be less than the total buffer size as the socket reader pops off pkts_per_socket_read and the BulkIO thread pops sdds_pkts_per_bulkio_push. udp_socket_buffer_queue The current size of the kernels UDP buffer for the specific IP and port in use by this component. The data is parsed from /proc/net/udp. Note that multiple consumers may read from the same IP and socket and will appear to have unique lines the /proc/net/udp file however; the kernel keeps a single buffer for all consumers so this property reflects the max value of \u0026ldquo;fullness\u0026rdquo; as the slowest process will cause all processes to miss packets. num_udp_socket_readers The number of consumers on this socket. The data is parsed from /proc/net/udp. input_address The current host IP address in use either via the attachment override or attach call. input_port The current host port in use either via the attachment override or attach call. input_vlan The current host vlan in use either via the attachment override or attach call. input_endianness The endianness set either via SRI keywords or attachment override. input_samplerate The current samplerate, derived from either the SRI or the frequency field of the SDDS packet. The sample rate supplied by the attach call is ignored! input_stream_id The stream id set via SRI. A default is used if no stream ID is passed via SRI. time_slips The number of time slips which have occurred. A time slip could be either a single time slip event or an accumulated time slip. A single time slip event is defined as the SDDS timestamps between two SDDS packets exceeding a one sample delta. (eg. there was one sample time lag or lead between consecutive packets) An accumulated time slip is defined as the absolute value of the time error accumulator exceeding 0.000001 seconds. The time error accumulator is a running total of the delta between the expected (1/sample_rate) and actual time stamps and should always hover around zero. num_packets_dropped_by_nic Read from /sys/class/[interface]/statistics/rx_dropped, indicates the number of packets received by the network device that are not forwarded to the upper layers for packet processing. This is NOT an indication of full buffers but instead a hint that something may be missconfigured as the NIC is receiving packets it does not know what to do with. See the network driver for the exact meaning of this value. interface The network interface currently in use by the component for consuming data from the network. Usage SourceSDDS ingests network SDDS and outputs BULKIO data as octet, short, or float. The component receives information on how and where to consume the network data either from receiving and attach() and pushSRI() call in the dataSddsIn port or by using the attachment_override property. The component has a property for the network \u0026ldquo;interface\u0026rdquo; indicating which network interface on the host computer must be used in order to receive the network data. If the interface is left blank the component will try to resolve the correct interface based on the IP address and VLAN of the desired incoming data. Once the component has acquired the network stream it will remove the the SDDS network headers package the data as BULKIO and push it out the appropriate BULKIO port.\nSRI SRI can be fed into the SDDS port for the purpose of overriding the SDDS header, setting a stream ID, and passing along keywords. By default, the xdelta/sample rate is derived from the SDDS header. The sample rate supplied with the attach call is always ignored. Optionally, you may override the xdelta via keywords. Below is the list of keywords that are read by this component and its response.\n BULKIO_SRI_PRIORITY or use_BULKIO_SRI or sddsPacketAlt - Used to override the xdelta and real/complex mode found in the SDDS Packet header in place of the xdelta and mode found in the supplied SRI. dataRef or DATA_REF_STR - Used to set the endianness of the SDDS data portion. A string value of \u0026ldquo;43981\u0026rdquo; or \u0026ldquo;1234\u0026rdquo; will map to little endian while \u0026ldquo;52651\u0026rdquo; or \u0026ldquo;4321\u0026rdquo; will map to big endian. Unimplemented Optimizations This is a short list of additional optimizations which were considered but not implemented. Generally the reason for not implementing them was a choice of code simplicity / maintainability over increased performance. The current performance seems fast enough and I was hesitant to add the additional complexity if there was no driving factor. If in the future there is a driving factor behind increasing performance further, here is where I would start.\n Wait free, lock free queue - Thread contention is likely the largest factor holding back speed. In C++11 and boost 1.55 there are wait free, lock free queues which could be used. A possible C++0x compliant queue can be found here but is untested. Using a lock free queue would allow the socket reader thread to more quickly get back to reading the socket as packets are generally dropped when one cannot service the socket fast enough.\n Plain pointers over smart pointers - Smart pointers are used to simplify memory management however smart pointers are twice the size of a standard pointer and when dropped out of scope cause a write to the internal reference counter.\n Circular buffer over deque - deques are pretty fast as they allocate memory in chunks but they still require some memory allocation on the fly and are not contiguous which may impact cache performance. If you ditch the smart pointers, it may make sense to ditch the deque in place of a circular buffer. Some limited testing was done using a circular buffer with smart pointers but no obvious performance difference was seen.\n Reduce number of memcopies in SDDS to BulkIO thread - Currently, a memcopy occurs pulling the data portion of the SDDS Packet out and into the BulkIO packet. This memcopy could be avoided if the SDDS Data is copied into a contiguous portion of memory right off of the socket. This is possible with two changes. The pool of SDDS Packets data portions would need to be constructed in a contiguous block; this would require changes to the SmartPacketBuffer. To get the socket to write into two different memory blocks a second iovec would be made. Then one could directly point to to the internal buffer on the push packet as long as the push packet did not span the end of the memory block.\n "
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.sourcesdds.readme/",
"title": "rh.SourceSDDS",
"tags": [],
"description": "",
"content": " REDHAWK rh.SourceSDDS Table of Contents Description Installation Design Properties Usage Unimplemented Optimizations Description The rh.SourceSDDS consumes a single SDDS formatted multicast or unicast UDP stream and outputs it via the corresponding BulkIO port. The component provides a number of status properties including buffer monitoring of both kernel space socket and internal component buffers. Source IP and port information may either be expressed via the attachment override property or via the BulkIO SDDS ports attach call. See the properties and SRI section for details on how to configure the components advanced optimizations and the list of SRI keywords checked for within the component.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nDesign The design goals for this component were to provide a clean, easy to follow, SourceSDDS implementation that could not only ingest at the expected data rates but also provide status metrics for the data flow, multi-cast configuration debugging, and test cases to profile the max ingest speed.\nThe dataflow and source code can be broken up into four distict sections; component logic, socket reader, internal buffers, and the SDDS to bulkIO processor. The component class has no service loop and instead starts two threads on start; the socket reader and the SDDS to BulkIO processor. The socket reader thread pulls a user defined number of SDDS packets off the socket at a time and places them into the shared buffer for the SDDS to BulkIO thread to consume and push out the BulkIO ports.\nProperties Properties and their descriptions are below, struct props are shown with their struct properties in a table below:\n_advancedoptimizations - A set of optimizations that may help adjust throughput performance. The defaults values work well for most systems.\n Struct Property Description buffer_size The maximum number of elements (SDDS Packets) which can be held within the internal buffer. If there is down stream back pressure this buffer will start to fill first and provide pressure on the socket buffer if full. Current fullness is displayed within status struct udp_socket_buffer_size The socket buffer size requested via a call to setsockopt. Once the socket is opened, the user provided value will be replaced with the true value returned by the kernel. Note that the actual value set will depend on system configuration; in addition, the kernel will double the value to allow space for bookkeeping overhead. pkts_per_socket_read The maximum number of SDDS packets read per read of the socket. The recvmmsg system call is used to read multiple UDP packets per system call, and a non-blocking socket used so at most, pkts_per_socket_read will be read. sdds_pkts_per_bulkio_push The number of SDDS packets to aggregate per BulkIO pushpacket call. Note that situations such as a TTV change, or packet drops may cause push packets to occur before the desired size is achieved. Increasing this value will improve throughput performance but impact latency. It also has an affect on timing precision as only the first SDDS packet in the group\u0026rsquo;s time stamp is preserved in the BulkIO call. socket_read_thread_affinity Set using the same bitmask syntax (eg. FFFFFFFF) as taskset and limits the CPU affinity of the thread which reads from the socket to only the specified CPUs. If externally set, this property will update to reflect the actual thread affinity sdds_to_bulkio_thread_affinity Set using the same bitmask syntax (eg. FFFFFFFF) as taskset and limits the CPU affinity of the thread which consumes packets from the internal buffer, and makes the call to pushpacket socket_read_thread_priority If set to non-zero, the scheduler type for the socket reader thread will be set to Round Robin and the priority set to the provided value using the pthread_setschedparam call. Note that rtprio privileges will need to be given to user running the component and that in most cases, this feature is not needed to keep up with data rates. sdds_to_bulkio_thread_priority If set to non-zero, the scheduler type for the SDDS to BulkIO processor thread will be set to Round Robin and the priority set to the provided value using the pthread_setschedparam call. Note that rtprio privileges will need to be given to user running the component and that in most cases, this feature is not needed to keep up with data rates. check_for_duplicate_sender If true, the source address of each SDDS packet will be checked and a warning printed if two different hosts are sending packets on the same multicast address. This is used primarily to debug the network configuration and can impact performance so is disabled by default. _attachmentoverride - Used in place of the SDDS Port to establish a multicast or unicast connection to a specific host and port. If enabled, this will overrule calls to attach however any SRI received from the attach port will be used.\n Struct Property Description enabled Denotes if the attachment override values should be used. ip_address For the unicast case this is the IP address of the network interface to bind to where the address of 0.0.0.0 is acceptable. For the multicast case this is the multicast group to join. vlan VLAN of the interface carrying the SDDS traffic. Ignored if set to 0. port Source port of SDDS traffic (default SDDS port is: 29495) endianness The endianness (Big or Little) of the data portion of the SDDS packet. Defaults to Network Byte Order (Big Endian) interface - The network interface you intend to be present or blank if no check is needed. Do not include the VLAN in the interface name. (eg. For eth0.28 the interface should be set to \u0026ldquo;eth0\u0026rdquo; NOT \u0026ldquo;eth0.28\u0026rdquo;).\n_advancedconfiguration - Configuration options that affect when and how to forward SDDS packets to BulkIO\n Struct Property Description push_on_ttv If set to true, a push packet will occur on any state change of the SDDS Time Tag Valid (TTV) flag. Eg. If TTV goes from True to False, all currently buffered data will be sent with a push packet and the next packet will start with the TTV False data. The TCS_INVALID flag will be set in the BulkIO timing field if the TTV flag is false. wait_on_ttv If set to true, no BulkIO packets will be pushed unless the SDDS Time Tag Valid (TTV) flag is set to true. Any packets missed due to invalid Time Tag will be counted as dropped / missed packets. status - A read only status structure to monitor the components performance as well as dropped packets and timing slips.\n Struct Property Description expected_sequence_number The next SDDS sequence number expected. Useful to confirm SDDS packets are being received. dropped_packets The number of lost SDDS packets. For simplicity, the calculation includes the optional checksum packets in the lost SDDS packet count (sent every 31 packets) so it may not reflect the exact number of dropped packets if checksum packets are not used (and they never are). bits_per_sample The size (in bits) of the SDDS sample datatype which is derived from the bps field in the SDDS header. Values map from: (8 -\u0026gt; Byte), (16 -\u0026gt; Short), (32 -\u0026gt; Float) empty_buffers_available The number of empty SDDS buffers in the internal buffer that are available to the socket reader. Note empty_buffers_available + buffers_to_work may be less than the total buffer size as the socket reader pops off pkts_per_socket_read and the BulkIO thread pops sdds_pkts_per_bulkio_push. buffers_to_work The number of full SDDS buffers in the internal buffer that need to be converted to BulkIO by the SDDS to BulkIO processor. Note empty_buffers_available + buffers_to_work may be less than the total buffer size as the socket reader pops off pkts_per_socket_read and the BulkIO thread pops sdds_pkts_per_bulkio_push. udp_socket_buffer_queue The current size of the kernels UDP buffer for the specific IP and port in use by this component. The data is parsed from /proc/net/udp. Note that multiple consumers may read from the same IP and socket and will appear to have unique lines the /proc/net/udp file however; the kernel keeps a single buffer for all consumers so this property reflects the max value of \u0026ldquo;fullness\u0026rdquo; as the slowest process will cause all processes to miss packets. num_udp_socket_readers The number of consumers on this socket. The data is parsed from /proc/net/udp. input_address The current host IP address in use either via the attachment override or attach call. input_port The current host port in use either via the attachment override or attach call. input_vlan The current host vlan in use either via the attachment override or attach call. input_endianness The endianness set either via SRI keywords or attachment override. input_samplerate The current samplerate, derived from either the SRI or the frequency field of the SDDS packet. The sample rate supplied by the attach call is ignored! input_stream_id The stream id set via SRI. A default is used if no stream ID is passed via SRI. time_slips The number of time slips which have occurred. A time slip could be either a single time slip event or an accumulated time slip. A single time slip event is defined as the SDDS timestamps between two SDDS packets exceeding a one sample delta. (eg. there was one sample time lag or lead between consecutive packets) An accumulated time slip is defined as the absolute value of the time error accumulator exceeding 0.000001 seconds. The time error accumulator is a running total of the delta between the expected (1/sample_rate) and actual time stamps and should always hover around zero. num_packets_dropped_by_nic Read from /sys/class/[interface]/statistics/rx_dropped, indicates the number of packets received by the network device that are not forwarded to the upper layers for packet processing. This is NOT an indication of full buffers but instead a hint that something may be missconfigured as the NIC is receiving packets it does not know what to do with. See the network driver for the exact meaning of this value. interface The network interface currently in use by the component for consuming data from the network. Usage SourceSDDS ingests network SDDS and outputs BULKIO data as octet, short, or float. The component receives information on how and where to consume the network data either from receiving and attach() and pushSRI() call in the dataSddsIn port or by using the attachment_override property. The component has a property for the network \u0026ldquo;interface\u0026rdquo; indicating which network interface on the host computer must be used in order to receive the network data. If the interface is left blank the component will try to resolve the correct interface based on the IP address and VLAN of the desired incoming data. Once the component has acquired the network stream it will remove the the SDDS network headers package the data as BULKIO and push it out the appropriate BULKIO port.\nSRI SRI can be fed into the SDDS port for the purpose of overriding the SDDS header, setting a stream ID, and passing along keywords. By default, the xdelta/sample rate is derived from the SDDS header. The sample rate supplied with the attach call is always ignored. Optionally, you may override the xdelta via keywords. Below is the list of keywords that are read by this component and its response.\n BULKIO_SRI_PRIORITY or use_BULKIO_SRI or sddsPacketAlt - Used to override the xdelta and real/complex mode found in the SDDS Packet header in place of the xdelta and mode found in the supplied SRI. dataRef or DATA_REF_STR - Used to set the endianness of the SDDS data portion. A string value of \u0026ldquo;43981\u0026rdquo; or \u0026ldquo;1234\u0026rdquo; will map to little endian while \u0026ldquo;52651\u0026rdquo; or \u0026ldquo;4321\u0026rdquo; will map to big endian. Unimplemented Optimizations This is a short list of additional optimizations which were considered but not implemented. Generally the reason for not implementing them was a choice of code simplicity / maintainability over increased performance. The current performance seems fast enough and I was hesitant to add the additional complexity if there was no driving factor. If in the future there is a driving factor behind increasing performance further, here is where I would start.\n Wait free, lock free queue - Thread contention is likely the largest factor holding back speed. In C++11 and boost 1.55 there are wait free, lock free queues which could be used. A possible C++0x compliant queue can be found here but is untested. Using a lock free queue would allow the socket reader thread to more quickly get back to reading the socket as packets are generally dropped when one cannot service the socket fast enough.\n Plain pointers over smart pointers - Smart pointers are used to simplify memory management however smart pointers are twice the size of a standard pointer and when dropped out of scope cause a write to the internal reference counter.\n Circular buffer over deque - deques are pretty fast as they allocate memory in chunks but they still require some memory allocation on the fly and are not contiguous which may impact cache performance. If you ditch the smart pointers, it may make sense to ditch the deque in place of a circular buffer. Some limited testing was done using a circular buffer with smart pointers but no obvious performance difference was seen.\n Reduce number of memcopies in SDDS to BulkIO thread - Currently, a memcopy occurs pulling the data portion of the SDDS Packet out and into the BulkIO packet. This memcopy could be avoided if the SDDS Data is copied into a contiguous portion of memory right off of the socket. This is possible with two changes. The pool of SDDS Packets data portions would need to be constructed in a contiguous block; this would require changes to the SmartPacketBuffer. To get the socket to write into two different memory blocks a second iovec would be made. Then one could directly point to to the internal buffer on the push packet as long as the push packet did not span the end of the memory block.\n "
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.sourcesdds.readme/",
"title": "rh.SourceSDDS",
"tags": [],
"description": "",
"content": " REDHAWK rh.SourceSDDS Table of Contents Description Installation Design Properties Usage Unimplemented Optimizations Description The rh.SourceSDDS consumes a single SDDS formatted multicast or unicast UDP stream and outputs it via the corresponding BulkIO port. The component provides a number of status properties including buffer monitoring of both kernel space socket and internal component buffers. Source IP and port information may either be expressed via the attachment override property or via the BulkIO SDDS ports attach call. See the properties and SRI section for details on how to configure the components advanced optimizations and the list of SRI keywords checked for within the component.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nDesign The design goals for this component were to provide a clean, easy to follow, SourceSDDS implementation that could not only ingest at the expected data rates but also provide status metrics for the data flow, multi-cast configuration debugging, and test cases to profile the max ingest speed.\nThe dataflow and source code can be broken up into four distict sections; component logic, socket reader, internal buffers, and the SDDS to bulkIO processor. The component class has no service loop and instead starts two threads on start; the socket reader and the SDDS to BulkIO processor. The socket reader thread pulls a user defined number of SDDS packets off the socket at a time and places them into the shared buffer for the SDDS to BulkIO thread to consume and push out the BulkIO ports.\nProperties Properties and their descriptions are below, struct props are shown with their struct properties in a table below:\n_advancedoptimizations - A set of optimizations that may help adjust throughput performance. The defaults values work well for most systems.\n Struct Property Description buffer_size The maximum number of elements (SDDS Packets) which can be held within the internal buffer. If there is down stream back pressure this buffer will start to fill first and provide pressure on the socket buffer if full. Current fullness is displayed within status struct udp_socket_buffer_size The socket buffer size requested via a call to setsockopt. Once the socket is opened, the user provided value will be replaced with the true value returned by the kernel. Note that the actual value set will depend on system configuration; in addition, the kernel will double the value to allow space for bookkeeping overhead. pkts_per_socket_read The maximum number of SDDS packets read per read of the socket. The recvmmsg system call is used to read multiple UDP packets per system call, and a non-blocking socket used so at most, pkts_per_socket_read will be read. sdds_pkts_per_bulkio_push The number of SDDS packets to aggregate per BulkIO pushpacket call. Note that situations such as a TTV change, or packet drops may cause push packets to occur before the desired size is achieved. Increasing this value will improve throughput performance but impact latency. It also has an affect on timing precision as only the first SDDS packet in the group\u0026rsquo;s time stamp is preserved in the BulkIO call. socket_read_thread_affinity Set using the same bitmask syntax (eg. FFFFFFFF) as taskset and limits the CPU affinity of the thread which reads from the socket to only the specified CPUs. If externally set, this property will update to reflect the actual thread affinity sdds_to_bulkio_thread_affinity Set using the same bitmask syntax (eg. FFFFFFFF) as taskset and limits the CPU affinity of the thread which consumes packets from the internal buffer, and makes the call to pushpacket socket_read_thread_priority If set to non-zero, the scheduler type for the socket reader thread will be set to Round Robin and the priority set to the provided value using the pthread_setschedparam call. Note that rtprio privileges will need to be given to user running the component and that in most cases, this feature is not needed to keep up with data rates. sdds_to_bulkio_thread_priority If set to non-zero, the scheduler type for the SDDS to BulkIO processor thread will be set to Round Robin and the priority set to the provided value using the pthread_setschedparam call. Note that rtprio privileges will need to be given to user running the component and that in most cases, this feature is not needed to keep up with data rates. check_for_duplicate_sender If true, the source address of each SDDS packet will be checked and a warning printed if two different hosts are sending packets on the same multicast address. This is used primarily to debug the network configuration and can impact performance so is disabled by default. _attachmentoverride - Used in place of the SDDS Port to establish a multicast or unicast connection to a specific host and port. If enabled, this will overrule calls to attach however any SRI received from the attach port will be used.\n Struct Property Description enabled Denotes if the attachment override values should be used. ip_address For the unicast case this is the IP address of the network interface to bind to where the address of 0.0.0.0 is acceptable. For the multicast case this is the multicast group to join. vlan VLAN of the interface carrying the SDDS traffic. Ignored if set to 0. port Source port of SDDS traffic (default SDDS port is: 29495) endianness The endianness (Big or Little) of the data portion of the SDDS packet. Defaults to Network Byte Order (Big Endian) interface - The network interface you intend to be present or blank if no check is needed. Do not include the VLAN in the interface name. (eg. For eth0.28 the interface should be set to \u0026ldquo;eth0\u0026rdquo; NOT \u0026ldquo;eth0.28\u0026rdquo;).\n_advancedconfiguration - Configuration options that affect when and how to forward SDDS packets to BulkIO\n Struct Property Description push_on_ttv If set to true, a push packet will occur on any state change of the SDDS Time Tag Valid (TTV) flag. Eg. If TTV goes from True to False, all currently buffered data will be sent with a push packet and the next packet will start with the TTV False data. The TCS_INVALID flag will be set in the BulkIO timing field if the TTV flag is false. wait_on_ttv If set to true, no BulkIO packets will be pushed unless the SDDS Time Tag Valid (TTV) flag is set to true. Any packets missed due to invalid Time Tag will be counted as dropped / missed packets. status - A read only status structure to monitor the components performance as well as dropped packets and timing slips.\n Struct Property Description expected_sequence_number The next SDDS sequence number expected. Useful to confirm SDDS packets are being received. dropped_packets The number of lost SDDS packets. For simplicity, the calculation includes the optional checksum packets in the lost SDDS packet count (sent every 31 packets) so it may not reflect the exact number of dropped packets if checksum packets are not used (and they never are). bits_per_sample The size (in bits) of the SDDS sample datatype which is derived from the bps field in the SDDS header. Values map from: (8 -\u0026gt; Byte), (16 -\u0026gt; Short), (32 -\u0026gt; Float) empty_buffers_available The number of empty SDDS buffers in the internal buffer that are available to the socket reader. Note empty_buffers_available + buffers_to_work may be less than the total buffer size as the socket reader pops off pkts_per_socket_read and the BulkIO thread pops sdds_pkts_per_bulkio_push. buffers_to_work The number of full SDDS buffers in the internal buffer that need to be converted to BulkIO by the SDDS to BulkIO processor. Note empty_buffers_available + buffers_to_work may be less than the total buffer size as the socket reader pops off pkts_per_socket_read and the BulkIO thread pops sdds_pkts_per_bulkio_push. udp_socket_buffer_queue The current size of the kernels UDP buffer for the specific IP and port in use by this component. The data is parsed from /proc/net/udp. Note that multiple consumers may read from the same IP and socket and will appear to have unique lines the /proc/net/udp file however; the kernel keeps a single buffer for all consumers so this property reflects the max value of \u0026ldquo;fullness\u0026rdquo; as the slowest process will cause all processes to miss packets. num_udp_socket_readers The number of consumers on this socket. The data is parsed from /proc/net/udp. input_address The current host IP address in use either via the attachment override or attach call. input_port The current host port in use either via the attachment override or attach call. input_vlan The current host vlan in use either via the attachment override or attach call. input_endianness The endianness set either via SRI keywords or attachment override. input_samplerate The current samplerate, derived from either the SRI or the frequency field of the SDDS packet. The sample rate supplied by the attach call is ignored! input_stream_id The stream id set via SRI. A default is used if no stream ID is passed via SRI. time_slips The number of time slips which have occurred. A time slip could be either a single time slip event or an accumulated time slip. A single time slip event is defined as the SDDS timestamps between two SDDS packets exceeding a one sample delta. (eg. there was one sample time lag or lead between consecutive packets) An accumulated time slip is defined as the absolute value of the time error accumulator exceeding 0.000001 seconds. The time error accumulator is a running total of the delta between the expected (1/sample_rate) and actual time stamps and should always hover around zero. num_packets_dropped_by_nic Read from /sys/class/[interface]/statistics/rx_dropped, indicates the number of packets received by the network device that are not forwarded to the upper layers for packet processing. This is NOT an indication of full buffers but instead a hint that something may be missconfigured as the NIC is receiving packets it does not know what to do with. See the network driver for the exact meaning of this value. interface The network interface currently in use by the component for consuming data from the network. Usage SourceSDDS ingests network SDDS and outputs BULKIO data as octet, short, or float. The component receives information on how and where to consume the network data either from receiving and attach() and pushSRI() call in the dataSddsIn port or by using the attachment_override property. The component has a property for the network \u0026ldquo;interface\u0026rdquo; indicating which network interface on the host computer must be used in order to receive the network data. If the interface is left blank the component will try to resolve the correct interface based on the IP address and VLAN of the desired incoming data. Once the component has acquired the network stream it will remove the the SDDS network headers package the data as BULKIO and push it out the appropriate BULKIO port.\nSRI SRI can be fed into the SDDS port for the purpose of overriding the SDDS header, setting a stream ID, and passing along keywords. By default, the xdelta/sample rate is derived from the SDDS header. The sample rate supplied with the attach call is always ignored. Optionally, you may override the xdelta via keywords. Below is the list of keywords that are read by this component and its response.\n BULKIO_SRI_PRIORITY or use_BULKIO_SRI or sddsPacketAlt - Used to override the xdelta and real/complex mode found in the SDDS Packet header in place of the xdelta and mode found in the supplied SRI. dataRef or DATA_REF_STR - Used to set the endianness of the SDDS data portion. A string value of \u0026ldquo;43981\u0026rdquo; or \u0026ldquo;1234\u0026rdquo; will map to little endian while \u0026ldquo;52651\u0026rdquo; or \u0026ldquo;4321\u0026rdquo; will map to big endian. Unimplemented Optimizations This is a short list of additional optimizations which were considered but not implemented. Generally the reason for not implementing them was a choice of code simplicity / maintainability over increased performance. The current performance seems fast enough and I was hesitant to add the additional complexity if there was no driving factor. If in the future there is a driving factor behind increasing performance further, here is where I would start.\n Wait free, lock free queue - Thread contention is likely the largest factor holding back speed. In C++11 and boost 1.55 there are wait free, lock free queues which could be used. A possible C++0x compliant queue can be found here but is untested. Using a lock free queue would allow the socket reader thread to more quickly get back to reading the socket as packets are generally dropped when one cannot service the socket fast enough.\n Plain pointers over smart pointers - Smart pointers are used to simplify memory management however smart pointers are twice the size of a standard pointer and when dropped out of scope cause a write to the internal reference counter.\n Circular buffer over deque - deques are pretty fast as they allocate memory in chunks but they still require some memory allocation on the fly and are not contiguous which may impact cache performance. If you ditch the smart pointers, it may make sense to ditch the deque in place of a circular buffer. Some limited testing was done using a circular buffer with smart pointers but no obvious performance difference was seen.\n Reduce number of memcopies in SDDS to BulkIO thread - Currently, a memcopy occurs pulling the data portion of the SDDS Packet out and into the BulkIO packet. This memcopy could be avoided if the SDDS Data is copied into a contiguous portion of memory right off of the socket. This is possible with two changes. The pool of SDDS Packets data portions would need to be constructed in a contiguous block; this would require changes to the SmartPacketBuffer. To get the socket to write into two different memory blocks a second iovec would be made. Then one could directly point to to the internal buffer on the push packet as long as the push packet did not span the end of the memory block.\n "
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.sourcevita49.readme/",
"title": "rh.SourceVITA49",
"tags": [],
"description": "",
"content": " REDHAWK rh.SourceVITA49 Description Contains the source and build script for the REDHAWK rh.SourceVITA49 component. The rh.SourceVITA49 component connects to a UDP/multicast or TCP VITA49 packet stream and converts the headers to SRI Keywords and data to the BULKIO interface of the user\u0026rsquo;s choice for use within REDHAWK domain applications.\nInstallation This asset requires the rh.VITA49 shared library. This shared library must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.sourcevita49.readme/",
"title": "rh.SourceVITA49",
"tags": [],
"description": "",
"content": " REDHAWK rh.SourceVITA49 Description Contains the source and build script for the REDHAWK rh.SourceVITA49 component. The rh.SourceVITA49 component connects to a UDP/multicast or TCP VITA49 packet stream and converts the headers to SRI Keywords and data to the BULKIO interface of the user\u0026rsquo;s choice for use within REDHAWK domain applications.\nInstallation This asset requires the rh.VITA49 shared library. This shared library must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.sourcevita49.readme/",
"title": "rh.SourceVITA49",
"tags": [],
"description": "",
"content": " REDHAWK rh.SourceVITA49 Description Contains the source and build script for the REDHAWK rh.SourceVITA49 component. The rh.SourceVITA49 component connects to a UDP/multicast or TCP VITA49 packet stream and converts the headers to SRI Keywords and data to the BULKIO interface of the user\u0026rsquo;s choice for use within REDHAWK domain applications.\nInstallation This asset requires the rh.VITA49 shared library. This shared library must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.tunefilterdecimate.readme/",
"title": "rh.TuneFilterDecimate",
"tags": [],
"description": "",
"content": " REDHAWK rh.TuneFilterDecimate Description Contains the source and build script for the REDHAWK rh.TuneFilterDecimate component. This component selects a narrowband cut from an input signal. Tuning, filtering and decimation are used to remove noise and interference in other frequency bands and reduce the sampling rate for more efficient downstream processing.\nInstallation This asset requires the rh.dsp and rh.fftlib shared libraries. These must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.tunefilterdecimate.readme/",
"title": "rh.TuneFilterDecimate",
"tags": [],
"description": "",
"content": " REDHAWK rh.TuneFilterDecimate Description Contains the source and build script for the REDHAWK rh.TuneFilterDecimate component. This component selects a narrowband cut from an input signal. Tuning, filtering and decimation are used to remove noise and interference in other frequency bands and reduce the sampling rate for more efficient downstream processing.\nInstallation This asset requires the rh.dsp and rh.fftlib shared libraries. These must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.tunefilterdecimate.readme/",
"title": "rh.TuneFilterDecimate",
"tags": [],
"description": "",
"content": " REDHAWK rh.TuneFilterDecimate Description Contains the source and build script for the REDHAWK rh.TuneFilterDecimate component. This component selects a narrowband cut from an input signal. Tuning, filtering and decimation are used to remove noise and interference in other frequency bands and reduce the sampling rate for more efficient downstream processing.\nInstallation This asset requires the rh.dsp and rh.fftlib shared libraries. These must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/devices/rh.usrp_uhd.readme/",
"title": "rh.USRP_UHD",
"tags": [],
"description": "",
"content": " REDHAWK rh.USRP_UHD Description Contains the source and build script for the REDHAWK rh.USRP_UHD device. This device is a FRONTEND Interfaces compliant device for the USRP that requires the UHD host code and supporting libraries to be installed.\nInstallation This asset requires the uhd library, which must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nTroubleshooting The UHD software will raise a RuntimeError exception when the firmware and/or fpga image flashed to the USRP hardware is incompatible with the UHD software installed on the host system. To ensure that the firmware and fpga image are compatible with the UHD software, run the uhd_usrp_probe command and check for a RuntimeError to occur. If no error occurs, everything is compatible.\nIt may be necessary to identify the specific USRP target hardware when running uhd_usrp_probe. For example, uhd_usrp_probe --args=\u0026quot;addr=192.168.10.2\u0026quot; may be used to target a network-attached USRP where 192.168.10.2 is the IP address of the USRP hardware.\nIf there is an error, the message should indicate how to go about fixing the error. Typically, the solution is to flash the USRP hardware with compatible firmware and/or a compatible fpga image. The firmware and fpga images are available by installing the uhd-firmware package using yum or rpm. This package is included with REDHAWK yum repository, but must be installed explicitly.\nThe RuntimeError should be similar to one of the following examples:\nUSRP X3xx Series\nRuntimeError: Expected FPGA compatibility number 19, but got 13: The FPGA image on your device is not compatible with this host code build. Download the appropriate FPGA images for this version of UHD. Please run: \u0026quot;/usr/lib64/uhd/utils/uhd_images_downloader.py\u0026quot; Then burn a new image to the on-board flash storage of your USRP X3xx device using the image loader utility. Use this command: \u0026quot;/usr/bin/uhd_image_loader\u0026quot; --args=\u0026quot;type=x300,addr=192.168.10.2\u0026quot; For more information, refer to the UHD manual: http://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_flash USRP N2xx Series\nRuntimeError: Please update the firmware and FPGA images for your device. See the application notes for USRP2/N-Series for instructions. Expected FPGA compatibility number 11, but got 10: The FPGA build is not compatible with the host code build. Please run: \u0026quot;/usr/local/lib/uhd/utils/uhd_images_downloader.py\u0026quot; \u0026quot;/usr/local/lib/uhd/utils/usrp_n2xx_simple_net_burner\u0026quot; \\ --addr=\u0026quot;192.168.10.2\u0026quot; Note: The path to the UHD utilities mentioned in the messages above may be different on your system. The path will typically begin with /usr or /usr/local, and the library may either be in lib or lib64.\nHardware Compatibility UHD versions prior to 3.9.0 only support a subset of the X300/X310 hardware and firmware. X3xx devices with a hardware revision number from 0 to 6 and a firmware version of 3.x or lower will work with UHD prior to 3.9.0. Firmware version 4.0 or later, as well as hardware revision number 7 or later, require UHD version 3.9.0 or later.\nFEI Compliance Test Results See the FEI Compliance Results document.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/devices/rh.usrp_uhd.readme/",
"title": "rh.USRP_UHD",
"tags": [],
"description": "",
"content": " REDHAWK rh.USRP_UHD Description Contains the source and build script for the REDHAWK rh.USRP_UHD device. This device is a FRONTEND Interfaces compliant device for the USRP that requires the UHD host code and supporting libraries to be installed.\nInstallation This asset requires the uhd library, which must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nTroubleshooting The UHD software will raise a RuntimeError exception when the firmware and/or fpga image flashed to the USRP hardware is incompatible with the UHD software installed on the host system. To ensure that the firmware and fpga image are compatible with the UHD software, run the uhd_usrp_probe command and check for a RuntimeError to occur. If no error occurs, everything is compatible.\nIt may be necessary to identify the specific USRP target hardware when running uhd_usrp_probe. For example, uhd_usrp_probe --args=\u0026quot;addr=192.168.10.2\u0026quot; may be used to target a network-attached USRP where 192.168.10.2 is the IP address of the USRP hardware.\nIf there is an error, the message should indicate how to go about fixing the error. Typically, the solution is to flash the USRP hardware with compatible firmware and/or a compatible fpga image. The firmware and fpga images are available by installing the uhd-firmware package using yum or rpm. This package is included with REDHAWK yum repository, but must be installed explicitly.\nThe RuntimeError should be similar to one of the following examples:\nUSRP X3xx Series\nRuntimeError: Expected FPGA compatibility number 19, but got 13: The FPGA image on your device is not compatible with this host code build. Download the appropriate FPGA images for this version of UHD. Please run: \u0026quot;/usr/lib64/uhd/utils/uhd_images_downloader.py\u0026quot; Then burn a new image to the on-board flash storage of your USRP X3xx device using the image loader utility. Use this command: \u0026quot;/usr/bin/uhd_image_loader\u0026quot; --args=\u0026quot;type=x300,addr=192.168.10.2\u0026quot; For more information, refer to the UHD manual: http://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_flash USRP N2xx Series\nRuntimeError: Please update the firmware and FPGA images for your device. See the application notes for USRP2/N-Series for instructions. Expected FPGA compatibility number 11, but got 10: The FPGA build is not compatible with the host code build. Please run: \u0026quot;/usr/local/lib/uhd/utils/uhd_images_downloader.py\u0026quot; \u0026quot;/usr/local/lib/uhd/utils/usrp_n2xx_simple_net_burner\u0026quot; \\ --addr=\u0026quot;192.168.10.2\u0026quot; Note: The path to the UHD utilities mentioned in the messages above may be different on your system. The path will typically begin with /usr or /usr/local, and the library may either be in lib or lib64.\nHardware Compatibility UHD versions prior to 3.9.0 only support a subset of the X300/X310 hardware and firmware. X3xx devices with a hardware revision number from 0 to 6 and a firmware version of 3.x or lower will work with UHD prior to 3.9.0. Firmware version 4.0 or later, as well as hardware revision number 7 or later, require UHD version 3.9.0 or later.\nFEI Compliance Test Results See the FEI Compliance Results document.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/devices/rh.usrp_uhd.readme/",
"title": "rh.USRP_UHD",
"tags": [],
"description": "",
"content": " REDHAWK rh.USRP_UHD Description Contains the source and build script for the REDHAWK rh.USRP_UHD device. This device is a FRONTEND Interfaces compliant device for the USRP that requires the UHD host code and supporting libraries to be installed.\nInstallation This asset requires the uhd library, which must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\nTroubleshooting The UHD software will raise a RuntimeError exception when the firmware and/or fpga image flashed to the USRP hardware is incompatible with the UHD software installed on the host system. To ensure that the firmware and fpga image are compatible with the UHD software, run the uhd_usrp_probe command and check for a RuntimeError to occur. If no error occurs, everything is compatible.\nIt may be necessary to identify the specific USRP target hardware when running uhd_usrp_probe. For example, uhd_usrp_probe --args=\u0026quot;addr=192.168.10.2\u0026quot; may be used to target a network-attached USRP where 192.168.10.2 is the IP address of the USRP hardware.\nIf there is an error, the message should indicate how to go about fixing the error. Typically, the solution is to flash the USRP hardware with compatible firmware and/or a compatible fpga image. The firmware and fpga images are available by installing the uhd-firmware package using yum or rpm. This package is included with REDHAWK yum repository, but must be installed explicitly.\nThe RuntimeError should be similar to one of the following examples:\nUSRP X3xx Series\nRuntimeError: Expected FPGA compatibility number 19, but got 13: The FPGA image on your device is not compatible with this host code build. Download the appropriate FPGA images for this version of UHD. Please run: \u0026quot;/usr/lib64/uhd/utils/uhd_images_downloader.py\u0026quot; Then burn a new image to the on-board flash storage of your USRP X3xx device using the image loader utility. Use this command: \u0026quot;/usr/bin/uhd_image_loader\u0026quot; --args=\u0026quot;type=x300,addr=192.168.10.2\u0026quot; For more information, refer to the UHD manual: http://files.ettus.com/manual/page_usrp_x3x0.html#x3x0_flash USRP N2xx Series\nRuntimeError: Please update the firmware and FPGA images for your device. See the application notes for USRP2/N-Series for instructions. Expected FPGA compatibility number 11, but got 10: The FPGA build is not compatible with the host code build. Please run: \u0026quot;/usr/local/lib/uhd/utils/uhd_images_downloader.py\u0026quot; \u0026quot;/usr/local/lib/uhd/utils/usrp_n2xx_simple_net_burner\u0026quot; \\ --addr=\u0026quot;192.168.10.2\u0026quot; Note: The path to the UHD utilities mentioned in the messages above may be different on your system. The path will typically begin with /usr or /usr/local, and the library may either be in lib or lib64.\nHardware Compatibility UHD versions prior to 3.9.0 only support a subset of the X300/X310 hardware and firmware. X3xx devices with a hardware revision number from 0 to 6 and a firmware version of 3.x or lower will work with UHD prior to 3.9.0. Firmware version 4.0 or later, as well as hardware revision number 7 or later, require UHD version 3.9.0 or later.\nFEI Compliance Test Results See the FEI Compliance Results document.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/libraries/rh.vita49.readme/",
"title": "rh.VITA49",
"tags": [],
"description": "",
"content": " REDHAWK rh.VITA49 Description Contains the source and build script for the REDHAWK rh.VITA49 shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/libraries/rh.vita49.readme/",
"title": "rh.VITA49",
"tags": [],
"description": "",
"content": " REDHAWK rh.VITA49 Description Contains the source and build script for the REDHAWK rh.VITA49 shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/libraries/rh.vita49.readme/",
"title": "rh.VITA49",
"tags": [],
"description": "",
"content": " REDHAWK rh.VITA49 Description Contains the source and build script for the REDHAWK rh.VITA49 shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install. Note: root privileges (sudo) may be required to install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.agc.readme/",
"title": "rh.agc",
"tags": [],
"description": "",
"content": " REDHAWK rh.agc Description Contains the source and build script for the REDHAWK rh.agc component. This component provides automatic gain control to normalize power levels for real or complex signals.\nInstallation This asset requires the rh.dsp shared library. This must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.agc.readme/",
"title": "rh.agc",
"tags": [],
"description": "",
"content": " REDHAWK rh.agc Description Contains the source and build script for the REDHAWK rh.agc component. This component provides automatic gain control to normalize power levels for real or complex signals.\nInstallation This asset requires the rh.dsp shared library. This must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.agc.readme/",
"title": "rh.agc",
"tags": [],
"description": "",
"content": " REDHAWK rh.agc Description Contains the source and build script for the REDHAWK rh.agc component. This component provides automatic gain control to normalize power levels for real or complex signals.\nInstallation This asset requires the rh.dsp shared library. This must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.autocorrelate.readme/",
"title": "rh.autocorrelate",
"tags": [],
"description": "",
"content": " REDHAWK rh.autocorrelate Description Contains the source and build script for the REDHAWK rh.autocorrelate component. This component is a frequency domain implementation of a windowed autocorrelation algorithm. This algorithm works by windowing the input data to break it up into separate frames. Each frame is independently autocorrelated with each other using a \u0026quot;full\u0026quot; autocorrelation, which includes the full transient response. This is efficiently computed in the frequency domain.\nInstallation This asset requires the rh.dsp and rh.fftlib shared libraries. These must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.autocorrelate.readme/",
"title": "rh.autocorrelate",
"tags": [],
"description": "",
"content": " REDHAWK rh.autocorrelate Description Contains the source and build script for the REDHAWK rh.autocorrelate component. This component is a frequency domain implementation of a windowed autocorrelation algorithm. This algorithm works by windowing the input data to break it up into separate frames. Each frame is independently autocorrelated with each other using a \u0026quot;full\u0026quot; autocorrelation, which includes the full transient response. This is efficiently computed in the frequency domain.\nInstallation This asset requires the rh.dsp and rh.fftlib shared libraries. These must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.autocorrelate.readme/",
"title": "rh.autocorrelate",
"tags": [],
"description": "",
"content": " REDHAWK rh.autocorrelate Description Contains the source and build script for the REDHAWK rh.autocorrelate component. This component is a frequency domain implementation of a windowed autocorrelation algorithm. This algorithm works by windowing the input data to break it up into separate frames. Each frame is independently autocorrelated with each other using a \u0026quot;full\u0026quot; autocorrelation, which includes the full transient response. This is efficiently computed in the frequency domain.\nInstallation This asset requires the rh.dsp and rh.fftlib shared libraries. These must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/waveforms/rh.basic_components_demo.readme/",
"title": "rh.basic_components_demo",
"tags": [],
"description": "",
"content": " REDHAWK basic_components_demo Description Contains the source and build script for the REDHAWK basic_components_demo waveform. This waveform is an example using a few core assets. Data from an rh.SigGen is created and manipulated to demonstrate the use of REDHAWK.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/waveforms/rh.basic_components_demo.readme/",
"title": "rh.basic_components_demo",
"tags": [],
"description": "",
"content": " REDHAWK basic_components_demo Description Contains the source and build script for the REDHAWK basic_components_demo waveform. This waveform is an example using a few core assets. Data from an rh.SigGen is created and manipulated to demonstrate the use of REDHAWK.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/waveforms/rh.basic_components_demo.readme/",
"title": "rh.basic_components_demo",
"tags": [],
"description": "",
"content": " REDHAWK basic_components_demo Description Contains the source and build script for the REDHAWK basic_components_demo waveform. This waveform is an example using a few core assets. Data from an rh.SigGen is created and manipulated to demonstrate the use of REDHAWK.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/libraries/rh.bluefilelib.readme/",
"title": "rh.blueFileLib",
"tags": [],
"description": "",
"content": " REDHAWK rh.blueFileLib Description Contains the source and build script for the REDHAWK rh.blueFileLib shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/libraries/rh.bluefilelib.readme/",
"title": "rh.blueFileLib",
"tags": [],
"description": "",
"content": " REDHAWK rh.blueFileLib Description Contains the source and build script for the REDHAWK rh.blueFileLib shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/libraries/rh.bluefilelib.readme/",
"title": "rh.blueFileLib",
"tags": [],
"description": "",
"content": " REDHAWK rh.blueFileLib Description Contains the source and build script for the REDHAWK rh.blueFileLib shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/libraries/rh.dsp.readme/",
"title": "rh.dsp",
"tags": [],
"description": "",
"content": " REDHAWK rh.dsp Description Contains the source and build script for the REDHAWK rh.dsp shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/libraries/rh.dsp.readme/",
"title": "rh.dsp",
"tags": [],
"description": "",
"content": " REDHAWK rh.dsp Description Contains the source and build script for the REDHAWK rh.dsp shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/libraries/rh.dsp.readme/",
"title": "rh.dsp",
"tags": [],
"description": "",
"content": " REDHAWK rh.dsp Description Contains the source and build script for the REDHAWK rh.dsp shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.fastfilter.readme/",
"title": "rh.fastfilter",
"tags": [],
"description": "",
"content": " REDHAWK rh.fastfilter Description Contains the source and build script for the REDHAWK rh.fastfilter component. This component is a FIR filter implementation using the FFT-based overlap-add technique.\nInstallation This asset requires the rh.dsp and rh.fftlib shared libraries. These must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.fastfilter.readme/",
"title": "rh.fastfilter",
"tags": [],
"description": "",
"content": " REDHAWK rh.fastfilter Description Contains the source and build script for the REDHAWK rh.fastfilter component. This component is a FIR filter implementation using the FFT-based overlap-add technique.\nInstallation This asset requires the rh.dsp and rh.fftlib shared libraries. These must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.fastfilter.readme/",
"title": "rh.fastfilter",
"tags": [],
"description": "",
"content": " REDHAWK rh.fastfilter Description Contains the source and build script for the REDHAWK rh.fastfilter component. This component is a FIR filter implementation using the FFT-based overlap-add technique.\nInstallation This asset requires the rh.dsp and rh.fftlib shared libraries. These must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.fcalc.readme/",
"title": "rh.fcalc",
"tags": [],
"description": "",
"content": " REDHAWK rh.fcalc Description Contains the source and build script for the REDHAWK rh.fcalc component. This component allows users to perform calculations on one or two input streams simultaneously on an element by element basis. Set the equation property for the function you wish to calculate with the variable a as the first input and b as the second input.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.fcalc.readme/",
"title": "rh.fcalc",
"tags": [],
"description": "",
"content": " REDHAWK rh.fcalc Description Contains the source and build script for the REDHAWK rh.fcalc component. This component allows users to perform calculations on one or two input streams simultaneously on an element by element basis. Set the equation property for the function you wish to calculate with the variable a as the first input and b as the second input.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.fcalc.readme/",
"title": "rh.fcalc",
"tags": [],
"description": "",
"content": " REDHAWK rh.fcalc Description Contains the source and build script for the REDHAWK rh.fcalc component. This component allows users to perform calculations on one or two input streams simultaneously on an element by element basis. Set the equation property for the function you wish to calculate with the variable a as the first input and b as the second input.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/libraries/rh.fftlib.readme/",
"title": "rh.fftlib",
"tags": [],
"description": "",
"content": " REDHAWK rh.fftlib Description Contains the source and build script for the REDHAWK rh.fftlib shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/libraries/rh.fftlib.readme/",
"title": "rh.fftlib",
"tags": [],
"description": "",
"content": " REDHAWK rh.fftlib Description Contains the source and build script for the REDHAWK rh.fftlib shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/libraries/rh.fftlib.readme/",
"title": "rh.fftlib",
"tags": [],
"description": "",
"content": " REDHAWK rh.fftlib Description Contains the source and build script for the REDHAWK rh.fftlib shared library.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.psd.readme/",
"title": "rh.psd",
"tags": [],
"description": "",
"content": " REDHAWK rh.psd Description Contains the source and build script for the REDHAWK rh.psd component. FFT-based power spectral density (PSD) component that transforms data from the time domain to the frequency domain. Output data is framed data where each frame contains the frequency domain representation of a subsection of the input.\nInstallation This asset requires the rh.dsp and rh.fftlib shared libraries. These must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.psd.readme/",
"title": "rh.psd",
"tags": [],
"description": "",
"content": " REDHAWK rh.psd Description Contains the source and build script for the REDHAWK rh.psd component. FFT-based power spectral density (PSD) component that transforms data from the time domain to the frequency domain. Output data is framed data where each frame contains the frequency domain representation of a subsection of the input.\nInstallation This asset requires the rh.dsp and rh.fftlib shared libraries. These must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.psd.readme/",
"title": "rh.psd",
"tags": [],
"description": "",
"content": " REDHAWK rh.psd Description Contains the source and build script for the REDHAWK rh.psd component. FFT-based power spectral density (PSD) component that transforms data from the time domain to the frequency domain. Output data is framed data where each frame contains the frequency domain representation of a subsection of the input.\nInstallation This asset requires the rh.dsp and rh.fftlib shared libraries. These must be installed in order to build and run this asset. To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.psk_soft.readme/",
"title": "rh.psk_soft",
"tags": [],
"description": "",
"content": " REDHAWK rh.psk_soft Description Contains the source and build script for the REDHAWK rh.psk_soft PSK demodulator component. The component takes complex baseband pre-d data and does a PSK demodulation of either BPSK, QPSK, or 8-PSK and outputs symbols and bits. Input must be an integer number of samples per symbol (recommended 8-10).\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.psk_soft.readme/",
"title": "rh.psk_soft",
"tags": [],
"description": "",
"content": " REDHAWK rh.psk_soft Description Contains the source and build script for the REDHAWK rh.psk_soft PSK demodulator component. The component takes complex baseband pre-d data and does a PSK demodulation of either BPSK, QPSK, or 8-PSK and outputs symbols and bits. Input must be an integer number of samples per symbol (recommended 8-10).\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.psk_soft.readme/",
"title": "rh.psk_soft",
"tags": [],
"description": "",
"content": " REDHAWK rh.psk_soft Description Contains the source and build script for the REDHAWK rh.psk_soft PSK demodulator component. The component takes complex baseband pre-d data and does a PSK demodulation of either BPSK, QPSK, or 8-PSK and outputs symbols and bits. Input must be an integer number of samples per symbol (recommended 8-10).\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/waveforms/rh.short_file_to_float_file.readme/",
"title": "rh.short_file_to_float_file",
"tags": [],
"description": "",
"content": " REDHAWK short_file_to_float_file Description Contains the source and build script for the REDHAWK short_file_to_float_file waveform. This waveform reads in a file containing shorts, converts them to floats in REDHAWK and then writes out the file. This waveform uses three components, rh.FileReader, rh.DataConverter, and rh.FileWriter.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/waveforms/rh.short_file_to_float_file.readme/",
"title": "rh.short_file_to_float_file",
"tags": [],
"description": "",
"content": " REDHAWK short_file_to_float_file Description Contains the source and build script for the REDHAWK short_file_to_float_file waveform. This waveform reads in a file containing shorts, converts them to floats in REDHAWK and then writes out the file. This waveform uses three components, rh.FileReader, rh.DataConverter, and rh.FileWriter.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/waveforms/rh.short_file_to_float_file.readme/",
"title": "rh.short_file_to_float_file",
"tags": [],
"description": "",
"content": " REDHAWK short_file_to_float_file Description Contains the source and build script for the REDHAWK short_file_to_float_file waveform. This waveform reads in a file containing shorts, converts them to floats in REDHAWK and then writes out the file. This waveform uses three components, rh.FileReader, rh.DataConverter, and rh.FileWriter.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.sinksocket.readme/",
"title": "rh.sinksocket",
"tags": [],
"description": "",
"content": " REDHAWK rh.sinksocket Table of Contents Description Properties Installation Usage Description The rh.sinksocket component reads data from BulkIO ports and writes the same data to all TCP connections. Each rh.sinksocket component can operate multiple TCP connections (TCP clients or servers).\nThe Properties section explains how to configure the component and monitor its data throughput. The component supports the following configurations:\n TCP mode (client or server) IP address (for TCP client mode) ports whether Nagle\u0026rsquo;s algorithm for combining TCP packets is allowed whether and how endian byte reordering is done Properties The following table describes the top level properties of rh.sinksocket.\n NAME TYPE ACCESS DESCRIPTION total_bytes double readonly Number of bytes sent over the network by all connections combined. bytes_per_sec float readonly Bytes-per-second, for data sent over the network, for all connections combined. Connections [Connection] read/write A list of data structures, each defining an rh.sinksocket Connection. ConnectionStats [ConnectionStat] readonly A list of data structures, each with information about a TCP connection. The following table describes the properties within a single Connection. If an rh.sinksocket is created without properties specified by the user, a single Connection is created with the default values given in the table.\n NAME TYPE DEFAULT DESCRIPTION connection_type string server Enumerated values: client, server.Set whether rh.sinksocket is a TCP client or server. ip_address string \u0026quot;\u0026quot; If this Connection is a TCP client, set the IP address to which it will connect.If this Connection is a TCP server, this value is ignored. ports [ushort] [32191] If this Connection is a TCP client, set the list of port numbers to which rh.sinksocket will connect.If this Connection is a TCP server, set the list of port numbers on which rh.sinksocket will listen. tcp_nodelays [boolean] [false] If tcp_nodelay is true, prevent the TCP connection from combining packets with Nagle\u0026rsquo;s algorithm. byte_swap [ushort] [0] Reorder bytes of integer values between little-endian and big-endian representation.Values: - 0: no byte swapping - 1: byte swap according to the data size for each port - \u0026lt;num\u0026gt;: swap bytes as if the data type length was \u0026lt;num\u0026gt; An rh.sinksocket Connection contains a set of TCP connections. Each TCP connection corresponds to a TCP port number. These numbers are listed in the ports list. The byte_swap and tcp_nodelays lists relate to the ports list like associative arrays. That is, the first element of each corresponds to the same TCP connection. The same is true for the nth element of each list.\nThe following table describes the properties within a single ConnectionStat. Each ConnectionStat contains information about one of the TCP connections within an rh.sinksocket Connection.\n NAME TYPE DESCRIPTION ip_address string The IP address of the Connection. If the Connection is type server, this value will be blank. port ushort The TCP port of the connection. status string The status of the connection.Enumerated values: startup, not_connected, connected, error. bytes_per_second float Number of bytes sent over the network by the connection. bytes_sent double Bytes-per-second, for data sent over the network, for the connection. Installation The following procedure explains how to install rh.sinksocket from source. rh.sinksocket is one of the REDHAWK basic assets. For information about how to install the REDHAWK basic assets from RPMs, refer to the REDHAWK Manual.\n Ensure OSSIEHOME and SDRROOT are both set. For a standard install, enter the following commands to set them: $ cd /etc/profile.d $ . redhawk.sh $ . redhawk-sdrroot.sh To build and install rh.sinksocket, enter the following commands: $ cd /path/to/redhawk/assets $ cd $(find . -name sinksocket) $ ./build.sh install The rh.sinksocket executable is created in the cpp subdirectory, and then the component is installed to SDRROOT.\nUsage The following examples explain how to use the rh.sinksocket component.\n Example 1: rh.sinksocket as a server in the REDHAWK sandbox Example 2: rh.sinksocket as a client in the REDHAWK sandbox Example 3: rh.sinksocket as a server in a REDHAWK waveform Example 4: rh.sinksocket as a client in a REDHAWK waveform All of the examples configure the component to use two ports. One port does not swap byte endianness, while the other swaps bytes for a data word size of 2. The first port allows packet combining with Nagle\u0026rsquo;s algorithm, while the second does not. However, packet combining is not observable in these examples.\nNote: For the sandbox examples, a version of netcat must be installed.\nExample 1: rh.sinksocket as a Server in the REDHAWK Sandbox Running the Example Save the following python code to a file named demo.py. ```python #!/usr/bin/env python from pprint import pprint\nfrom ossie.utils import sb\nUse a StreamSource to provide demo data. streamsource = sb.StreamSource()\nCreate the rh.sinksocket. props = { \u0026lsquo;Connections\u0026rsquo;: [ { \u0026lsquo;connection_type\u0026rsquo;: \u0026lsquo;server\u0026rsquo;, \u0026lsquo;ports\u0026rsquo;: [32191, 32192], \u0026lsquo;byte_swap\u0026rsquo;: [0, 2], \u0026lsquo;tcp_nodelays\u0026rsquo;: [False, True], } ] } sinksocket = sb.launch(\u0026lsquo;rh.sinksocket\u0026rsquo;, properties=props) streamsource.connect(sinksocket, providesPortName=\u0026lsquo;dataChar_in\u0026rsquo;)\nsb.start()\nManually send data, or quit. while raw_input() != \u0026lsquo;q\u0026rsquo;: streamsource.write(\u0026lsquo;abcd..\u0026rsquo;) streamsource.close()\nDisplay connection information supported by rh.sinksocket. print \u0026lsquo;total bytes: {0}\u0026lsquo;.format(sinksocket.total_bytes) print \u0026lsquo;bytes_per_second: {0}\u0026lsquo;.format(sinksocket.bytes_per_sec) print for c in sinksocket.Connections: pprint(c, indent=4) print for c in sinksocket.ConnectionStats: pprint(c, indent=4) print\nsb.stop()\n2. Use three terminals to enter the following commands. **Note: The order of these operations is important.** * In terminal 1, enter: ```bash $ python demo.py In terminal 2, enter:\n$ nc 127.0.0.1 32191 In terminal 3, enter:\n$ nc 127.0.0.1 32192 In terminal 1, press Enter a few times.\nEach time you press Enter, the data 'abcd..' is sent.\n In terminal 1, press q and Enter to quit.\n In terminals 2 and 3, press Ctrl-c to quit.\n Analyzing the Output Terminal 1 displays the connection information produced by the print statements.\nTerminal 2 displays 'abcd..' equivalent to the number of times you pressed Enter before pressing q in terminal 1.\nTerminal 3 displays the information the same number of times as in terminal 2, but the order of the characters is 'badc..'. The first and second characters are swapped with each other as are the third and fourth, etc. This change occurred because the byte_swap property was set to 2.\nExample 2: rh.sinksocket as a Client in the REDHAWK Sandbox This is similar to Example 1, except that the component is a TCP client.\n To run the example, make these changes: in demo.py, replace 'server' with 'client' below 'connection_type': 'client', add the following line: 'ip_address': '127.0.0.1', in terminals 2 and 3, add the -l flag after nc Then, run this example in the same way as Example 1. The order of operations is less important in this case. If rh.sinksocket is configured to expect a TCP server, and that server is unavailable, rh.sinksocket skips it. When the server comes online, rh.sinksocket automatically connects and starts/resumes sending data to it.\nExample 3: rh.sinksocket as a Server in a REDHAWK Waveform A waveform\u0026rsquo;s SAD file contains configuration information for its components. The following SAD file snippet contains the same configuration as Example 1. To use this in a SAD file, replace or insert the \u0026lt;componentproperties\u0026gt; section.\n\u0026lt;componentinstantiation id=\u0026#34;sinksocket_1\u0026#34;\u0026gt; \u0026lt;componentproperties\u0026gt; \u0026lt;structsequenceref refid=\u0026#34;Connections\u0026#34;\u0026gt; \u0026lt;structvalue\u0026gt; \u0026lt;simpleref refid=\u0026#34;Connection::connection_type\u0026#34; value=\u0026#34;server\u0026#34;/\u0026gt; \u0026lt;simpleref refid=\u0026#34;Connection::ip_address\u0026#34; value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connection::byte_swap\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;0\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;2\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connection::ports\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;32191\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;32192\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connections::tcp_nodelays\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;false\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;true\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;/structvalue\u0026gt; \u0026lt;/structsequenceref\u0026gt; \u0026lt;/componentproperties\u0026gt; \u0026lt;/componentinstantiation\u0026gt; Example 4: rh.sinksocket as a Client in a REDHAWK Waveform A waveform\u0026rsquo;s SAD file contains configuration information for its components. The following SAD file snippet contains the same configuration as Example 2. To use this in a SAD file, replace or insert the \u0026lt;componentproperties\u0026gt; section.\n\u0026lt;componentinstantiation id=\u0026#34;sinksocket_1\u0026#34;\u0026gt; \u0026lt;componentproperties\u0026gt; \u0026lt;structsequenceref refid=\u0026#34;Connections\u0026#34;\u0026gt; \u0026lt;structvalue\u0026gt; \u0026lt;simpleref refid=\u0026#34;Connection::connection_type\u0026#34; value=\u0026#34;client\u0026#34;/\u0026gt; \u0026lt;simpleref refid=\u0026#34;Connection::ip_address\u0026#34; value=\u0026#34;127.0.0.1\u0026#34;/\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connection::byte_swap\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;0\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;2\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connection::ports\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;32191\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;32192\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connections::tcp_nodelays\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;false\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;true\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;/structvalue\u0026gt; \u0026lt;/structsequenceref\u0026gt; \u0026lt;/componentproperties\u0026gt; \u0026lt;/componentinstantiation\u0026gt;"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.sinksocket.readme/",
"title": "rh.sinksocket",
"tags": [],
"description": "",
"content": " REDHAWK rh.sinksocket Table of Contents Description Properties Installation Usage Description The rh.sinksocket component reads data from BulkIO ports and writes the same data to all TCP connections. Each rh.sinksocket component can operate multiple TCP connections (TCP clients or servers).\nThe Properties section explains how to configure the component and monitor its data throughput. The component supports the following configurations:\n TCP mode (client or server) IP address (for TCP client mode) ports whether Nagle\u0026rsquo;s algorithm for combining TCP packets is allowed whether and how endian byte reordering is done Properties The following table describes the top level properties of rh.sinksocket.\n NAME TYPE ACCESS DESCRIPTION total_bytes double readonly Number of bytes sent over the network by all connections combined. bytes_per_sec float readonly Bytes-per-second, for data sent over the network, for all connections combined. Connections [Connection] read/write A list of data structures, each defining an rh.sinksocket Connection. ConnectionStats [ConnectionStat] readonly A list of data structures, each with information about a TCP connection. The following table describes the properties within a single Connection. If an rh.sinksocket is created without properties specified by the user, a single Connection is created with the default values given in the table.\n NAME TYPE DEFAULT DESCRIPTION connection_type string server Enumerated values: client, server.Set whether rh.sinksocket is a TCP client or server. ip_address string \u0026quot;\u0026quot; If this Connection is a TCP client, set the IP address to which it will connect.If this Connection is a TCP server, this value is ignored. ports [ushort] [32191] If this Connection is a TCP client, set the list of port numbers to which rh.sinksocket will connect.If this Connection is a TCP server, set the list of port numbers on which rh.sinksocket will listen. tcp_nodelays [boolean] [false] If tcp_nodelay is true, prevent the TCP connection from combining packets with Nagle\u0026rsquo;s algorithm. byte_swap [ushort] [0] Reorder bytes of integer values between little-endian and big-endian representation.Values: - 0: no byte swapping - 1: byte swap according to the data size for each port - \u0026lt;num\u0026gt;: swap bytes as if the data type length was \u0026lt;num\u0026gt; An rh.sinksocket Connection contains a set of TCP connections. Each TCP connection corresponds to a TCP port number. These numbers are listed in the ports list. The byte_swap and tcp_nodelays lists relate to the ports list like associative arrays. That is, the first element of each corresponds to the same TCP connection. The same is true for the nth element of each list.\nThe following table describes the properties within a single ConnectionStat. Each ConnectionStat contains information about one of the TCP connections within an rh.sinksocket Connection.\n NAME TYPE DESCRIPTION ip_address string The IP address of the Connection. If the Connection is type server, this value will be blank. port ushort The TCP port of the connection. status string The status of the connection.Enumerated values: startup, not_connected, connected, error. bytes_per_second float Number of bytes sent over the network by the connection. bytes_sent double Bytes-per-second, for data sent over the network, for the connection. Installation The following procedure explains how to install rh.sinksocket from source. rh.sinksocket is one of the REDHAWK basic assets. For information about how to install the REDHAWK basic assets from RPMs, refer to the REDHAWK Manual.\n Ensure OSSIEHOME and SDRROOT are both set. For a standard install, enter the following commands to set them: $ cd /etc/profile.d $ . redhawk.sh $ . redhawk-sdrroot.sh To build and install rh.sinksocket, enter the following commands: $ cd /path/to/redhawk/assets $ cd $(find . -name sinksocket) $ ./build.sh install The rh.sinksocket executable is created in the cpp subdirectory, and then the component is installed to SDRROOT.\nUsage The following examples explain how to use the rh.sinksocket component.\n Example 1: rh.sinksocket as a server in the REDHAWK sandbox Example 2: rh.sinksocket as a client in the REDHAWK sandbox Example 3: rh.sinksocket as a server in a REDHAWK waveform Example 4: rh.sinksocket as a client in a REDHAWK waveform All of the examples configure the component to use two ports. One port does not swap byte endianness, while the other swaps bytes for a data word size of 2. The first port allows packet combining with Nagle\u0026rsquo;s algorithm, while the second does not. However, packet combining is not observable in these examples.\nNote: For the sandbox examples, a version of netcat must be installed.\nExample 1: rh.sinksocket as a Server in the REDHAWK Sandbox Running the Example Save the following python code to a file named demo.py. ```python #!/usr/bin/env python from pprint import pprint\nfrom ossie.utils import sb\nUse a StreamSource to provide demo data. streamsource = sb.StreamSource()\nCreate the rh.sinksocket. props = { \u0026lsquo;Connections\u0026rsquo;: [ { \u0026lsquo;connection_type\u0026rsquo;: \u0026lsquo;server\u0026rsquo;, \u0026lsquo;ports\u0026rsquo;: [32191, 32192], \u0026lsquo;byte_swap\u0026rsquo;: [0, 2], \u0026lsquo;tcp_nodelays\u0026rsquo;: [False, True], } ] } sinksocket = sb.launch(\u0026lsquo;rh.sinksocket\u0026rsquo;, properties=props) streamsource.connect(sinksocket, providesPortName=\u0026lsquo;dataChar_in\u0026rsquo;)\nsb.start()\nManually send data, or quit. while raw_input() != \u0026lsquo;q\u0026rsquo;: streamsource.write(\u0026lsquo;abcd..\u0026rsquo;) streamsource.close()\nDisplay connection information supported by rh.sinksocket. print \u0026lsquo;total bytes: {0}\u0026lsquo;.format(sinksocket.total_bytes) print \u0026lsquo;bytes_per_second: {0}\u0026lsquo;.format(sinksocket.bytes_per_sec) print for c in sinksocket.Connections: pprint(c, indent=4) print for c in sinksocket.ConnectionStats: pprint(c, indent=4) print\nsb.stop()\n2. Use three terminals to enter the following commands. **Note: The order of these operations is important.** * In terminal 1, enter: ```bash $ python demo.py In terminal 2, enter:\n$ nc 127.0.0.1 32191 In terminal 3, enter:\n$ nc 127.0.0.1 32192 In terminal 1, press Enter a few times.\nEach time you press Enter, the data 'abcd..' is sent.\n In terminal 1, press q and Enter to quit.\n In terminals 2 and 3, press Ctrl-c to quit.\n Analyzing the Output Terminal 1 displays the connection information produced by the print statements.\nTerminal 2 displays 'abcd..' equivalent to the number of times you pressed Enter before pressing q in terminal 1.\nTerminal 3 displays the information the same number of times as in terminal 2, but the order of the characters is 'badc..'. The first and second characters are swapped with each other as are the third and fourth, etc. This change occurred because the byte_swap property was set to 2.\nExample 2: rh.sinksocket as a Client in the REDHAWK Sandbox This is similar to Example 1, except that the component is a TCP client.\n To run the example, make these changes: in demo.py, replace 'server' with 'client' below 'connection_type': 'client', add the following line: 'ip_address': '127.0.0.1', in terminals 2 and 3, add the -l flag after nc Then, run this example in the same way as Example 1. The order of operations is less important in this case. If rh.sinksocket is configured to expect a TCP server, and that server is unavailable, rh.sinksocket skips it. When the server comes online, rh.sinksocket automatically connects and starts/resumes sending data to it.\nExample 3: rh.sinksocket as a Server in a REDHAWK Waveform A waveform\u0026rsquo;s SAD file contains configuration information for its components. The following SAD file snippet contains the same configuration as Example 1. To use this in a SAD file, replace or insert the \u0026lt;componentproperties\u0026gt; section.\n\u0026lt;componentinstantiation id=\u0026#34;sinksocket_1\u0026#34;\u0026gt; \u0026lt;componentproperties\u0026gt; \u0026lt;structsequenceref refid=\u0026#34;Connections\u0026#34;\u0026gt; \u0026lt;structvalue\u0026gt; \u0026lt;simpleref refid=\u0026#34;Connection::connection_type\u0026#34; value=\u0026#34;server\u0026#34;/\u0026gt; \u0026lt;simpleref refid=\u0026#34;Connection::ip_address\u0026#34; value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connection::byte_swap\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;0\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;2\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connection::ports\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;32191\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;32192\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connections::tcp_nodelays\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;false\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;true\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;/structvalue\u0026gt; \u0026lt;/structsequenceref\u0026gt; \u0026lt;/componentproperties\u0026gt; \u0026lt;/componentinstantiation\u0026gt; Example 4: rh.sinksocket as a Client in a REDHAWK Waveform A waveform\u0026rsquo;s SAD file contains configuration information for its components. The following SAD file snippet contains the same configuration as Example 2. To use this in a SAD file, replace or insert the \u0026lt;componentproperties\u0026gt; section.\n\u0026lt;componentinstantiation id=\u0026#34;sinksocket_1\u0026#34;\u0026gt; \u0026lt;componentproperties\u0026gt; \u0026lt;structsequenceref refid=\u0026#34;Connections\u0026#34;\u0026gt; \u0026lt;structvalue\u0026gt; \u0026lt;simpleref refid=\u0026#34;Connection::connection_type\u0026#34; value=\u0026#34;client\u0026#34;/\u0026gt; \u0026lt;simpleref refid=\u0026#34;Connection::ip_address\u0026#34; value=\u0026#34;127.0.0.1\u0026#34;/\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connection::byte_swap\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;0\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;2\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connection::ports\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;32191\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;32192\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connections::tcp_nodelays\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;false\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;true\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;/structvalue\u0026gt; \u0026lt;/structsequenceref\u0026gt; \u0026lt;/componentproperties\u0026gt; \u0026lt;/componentinstantiation\u0026gt;"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.sinksocket.readme/",
"title": "rh.sinksocket",
"tags": [],
"description": "",
"content": " REDHAWK rh.sinksocket Table of Contents Description Properties Installation Usage Description The rh.sinksocket component reads data from BulkIO ports and writes the same data to all TCP connections. Each rh.sinksocket component can operate multiple TCP connections (TCP clients or servers).\nThe Properties section explains how to configure the component and monitor its data throughput. The component supports the following configurations:\n TCP mode (client or server) IP address (for TCP client mode) ports whether Nagle\u0026rsquo;s algorithm for combining TCP packets is allowed whether and how endian byte reordering is done Properties The following table describes the top level properties of rh.sinksocket.\n NAME TYPE ACCESS DESCRIPTION total_bytes double readonly Number of bytes sent over the network by all connections combined. bytes_per_sec float readonly Bytes-per-second, for data sent over the network, for all connections combined. Connections [Connection] read/write A list of data structures, each defining an rh.sinksocket Connection. ConnectionStats [ConnectionStat] readonly A list of data structures, each with information about a TCP connection. The following table describes the properties within a single Connection. If an rh.sinksocket is created without properties specified by the user, a single Connection is created with the default values given in the table.\n NAME TYPE DEFAULT DESCRIPTION connection_type string server Enumerated values: client, server.Set whether rh.sinksocket is a TCP client or server. ip_address string \u0026quot;\u0026quot; If this Connection is a TCP client, set the IP address to which it will connect.If this Connection is a TCP server, this value is ignored. ports [ushort] [32191] If this Connection is a TCP client, set the list of port numbers to which rh.sinksocket will connect.If this Connection is a TCP server, set the list of port numbers on which rh.sinksocket will listen. tcp_nodelays [boolean] [false] If tcp_nodelay is true, prevent the TCP connection from combining packets with Nagle\u0026rsquo;s algorithm. byte_swap [ushort] [0] Reorder bytes of integer values between little-endian and big-endian representation.Values: - 0: no byte swapping - 1: byte swap according to the data size for each port - \u0026lt;num\u0026gt;: swap bytes as if the data type length was \u0026lt;num\u0026gt; An rh.sinksocket Connection contains a set of TCP connections. Each TCP connection corresponds to a TCP port number. These numbers are listed in the ports list. The byte_swap and tcp_nodelays lists relate to the ports list like associative arrays. That is, the first element of each corresponds to the same TCP connection. The same is true for the nth element of each list.\nThe following table describes the properties within a single ConnectionStat. Each ConnectionStat contains information about one of the TCP connections within an rh.sinksocket Connection.\n NAME TYPE DESCRIPTION ip_address string The IP address of the Connection. If the Connection is type server, this value will be blank. port ushort The TCP port of the connection. status string The status of the connection.Enumerated values: startup, not_connected, connected, error. bytes_per_second float Number of bytes sent over the network by the connection. bytes_sent double Bytes-per-second, for data sent over the network, for the connection. Installation The following procedure explains how to install rh.sinksocket from source. rh.sinksocket is one of the REDHAWK basic assets. For information about how to install the REDHAWK basic assets from RPMs, refer to the REDHAWK Manual.\n Ensure OSSIEHOME and SDRROOT are both set. For a standard install, enter the following commands to set them: $ cd /etc/profile.d $ . redhawk.sh $ . redhawk-sdrroot.sh To build and install rh.sinksocket, enter the following commands: $ cd /path/to/redhawk/assets $ cd $(find . -name sinksocket) $ ./build.sh install The rh.sinksocket executable is created in the cpp subdirectory, and then the component is installed to SDRROOT.\nUsage The following examples explain how to use the rh.sinksocket component.\n Example 1: rh.sinksocket as a server in the REDHAWK sandbox Example 2: rh.sinksocket as a client in the REDHAWK sandbox Example 3: rh.sinksocket as a server in a REDHAWK waveform Example 4: rh.sinksocket as a client in a REDHAWK waveform All of the examples configure the component to use two ports. One port does not swap byte endianness, while the other swaps bytes for a data word size of 2. The first port allows packet combining with Nagle\u0026rsquo;s algorithm, while the second does not. However, packet combining is not observable in these examples.\nNote: For the sandbox examples, a version of netcat must be installed.\nExample 1: rh.sinksocket as a Server in the REDHAWK Sandbox Running the Example Save the following python code to a file named demo.py. ```python #!/usr/bin/env python3 from pprint import pprint\nfrom ossie.utils import sb\nUse a StreamSource to provide demo data. streamsource = sb.StreamSource()\nCreate the rh.sinksocket. props = { \u0026lsquo;Connections\u0026rsquo;: [ { \u0026lsquo;connection_type\u0026rsquo;: \u0026lsquo;server\u0026rsquo;, \u0026lsquo;ports\u0026rsquo;: [32191, 32192], \u0026lsquo;byte_swap\u0026rsquo;: [0, 2], \u0026lsquo;tcp_nodelays\u0026rsquo;: [False, True], } ] } sinksocket = sb.launch(\u0026lsquo;rh.sinksocket\u0026rsquo;, properties=props) streamsource.connect(sinksocket, providesPortName=\u0026lsquo;dataChar_in\u0026rsquo;)\nsb.start()\nManually send data, or quit. while raw_input() != \u0026lsquo;q\u0026rsquo;: streamsource.write(\u0026lsquo;abcd..\u0026rsquo;) streamsource.close()\nDisplay connection information supported by rh.sinksocket. print \u0026lsquo;total bytes: {0}\u0026lsquo;.format(sinksocket.total_bytes) print \u0026lsquo;bytes_per_second: {0}\u0026lsquo;.format(sinksocket.bytes_per_sec) print for c in sinksocket.Connections: pprint(c, indent=4) print for c in sinksocket.ConnectionStats: pprint(c, indent=4) print\nsb.stop()\n2. Use three terminals to enter the following commands. **Note: The order of these operations is important.** * In terminal 1, enter: ```bash $ python demo.py In terminal 2, enter:\n$ nc 127.0.0.1 32191 In terminal 3, enter:\n$ nc 127.0.0.1 32192 In terminal 1, press Enter a few times.\nEach time you press Enter, the data 'abcd..' is sent.\n In terminal 1, press q and Enter to quit.\n In terminals 2 and 3, press Ctrl-c to quit.\n Analyzing the Output Terminal 1 displays the connection information produced by the print statements.\nTerminal 2 displays 'abcd..' equivalent to the number of times you pressed Enter before pressing q in terminal 1.\nTerminal 3 displays the information the same number of times as in terminal 2, but the order of the characters is 'badc..'. The first and second characters are swapped with each other as are the third and fourth, etc. This change occurred because the byte_swap property was set to 2.\nExample 2: rh.sinksocket as a Client in the REDHAWK Sandbox This is similar to Example 1, except that the component is a TCP client.\n To run the example, make these changes: in demo.py, replace 'server' with 'client' below 'connection_type': 'client', add the following line: 'ip_address': '127.0.0.1', in terminals 2 and 3, add the -l flag after nc Then, run this example in the same way as Example 1. The order of operations is less important in this case. If rh.sinksocket is configured to expect a TCP server, and that server is unavailable, rh.sinksocket skips it. When the server comes online, rh.sinksocket automatically connects and starts/resumes sending data to it.\nExample 3: rh.sinksocket as a Server in a REDHAWK Waveform A waveform\u0026rsquo;s SAD file contains configuration information for its components. The following SAD file snippet contains the same configuration as Example 1. To use this in a SAD file, replace or insert the \u0026lt;componentproperties\u0026gt; section.\n\u0026lt;componentinstantiation id=\u0026#34;sinksocket_1\u0026#34;\u0026gt; \u0026lt;componentproperties\u0026gt; \u0026lt;structsequenceref refid=\u0026#34;Connections\u0026#34;\u0026gt; \u0026lt;structvalue\u0026gt; \u0026lt;simpleref refid=\u0026#34;Connection::connection_type\u0026#34; value=\u0026#34;server\u0026#34;/\u0026gt; \u0026lt;simpleref refid=\u0026#34;Connection::ip_address\u0026#34; value=\u0026#34;\u0026#34;/\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connection::byte_swap\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;0\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;2\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connection::ports\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;32191\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;32192\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connections::tcp_nodelays\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;false\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;true\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;/structvalue\u0026gt; \u0026lt;/structsequenceref\u0026gt; \u0026lt;/componentproperties\u0026gt; \u0026lt;/componentinstantiation\u0026gt; Example 4: rh.sinksocket as a Client in a REDHAWK Waveform A waveform\u0026rsquo;s SAD file contains configuration information for its components. The following SAD file snippet contains the same configuration as Example 2. To use this in a SAD file, replace or insert the \u0026lt;componentproperties\u0026gt; section.\n\u0026lt;componentinstantiation id=\u0026#34;sinksocket_1\u0026#34;\u0026gt; \u0026lt;componentproperties\u0026gt; \u0026lt;structsequenceref refid=\u0026#34;Connections\u0026#34;\u0026gt; \u0026lt;structvalue\u0026gt; \u0026lt;simpleref refid=\u0026#34;Connection::connection_type\u0026#34; value=\u0026#34;client\u0026#34;/\u0026gt; \u0026lt;simpleref refid=\u0026#34;Connection::ip_address\u0026#34; value=\u0026#34;127.0.0.1\u0026#34;/\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connection::byte_swap\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;0\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;2\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connection::ports\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;32191\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;32192\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;simplesequenceref refid=\u0026#34;Connections::tcp_nodelays\u0026#34;\u0026gt; \u0026lt;values\u0026gt; \u0026lt;value\u0026gt;false\u0026lt;/value\u0026gt; \u0026lt;value\u0026gt;true\u0026lt;/value\u0026gt; \u0026lt;/values\u0026gt; \u0026lt;/simplesequenceref\u0026gt; \u0026lt;/structvalue\u0026gt; \u0026lt;/structsequenceref\u0026gt; \u0026lt;/componentproperties\u0026gt; \u0026lt;/componentinstantiation\u0026gt;"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/waveforms/rh.socket_loopback_demo.readme/",
"title": "rh.socket_loopback_demo",
"tags": [],
"description": "",
"content": " REDHAWK socket_loopback_demo Description Contains the source and build script for the REDHAWK socket_loopback_demo waveform. This waveform puts REDHAWK data out onto a network socket using rh.sinksocket and then reads it back from the socket into REDHAWK via rh.sourcesocket.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/waveforms/rh.socket_loopback_demo.readme/",
"title": "rh.socket_loopback_demo",
"tags": [],
"description": "",
"content": " REDHAWK socket_loopback_demo Description Contains the source and build script for the REDHAWK socket_loopback_demo waveform. This waveform puts REDHAWK data out onto a network socket using rh.sinksocket and then reads it back from the socket into REDHAWK via rh.sourcesocket.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/waveforms/rh.socket_loopback_demo.readme/",
"title": "rh.socket_loopback_demo",
"tags": [],
"description": "",
"content": " REDHAWK socket_loopback_demo Description Contains the source and build script for the REDHAWK socket_loopback_demo waveform. This waveform puts REDHAWK data out onto a network socket using rh.sinksocket and then reads it back from the socket into REDHAWK via rh.sourcesocket.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/components/rh.sourcesocket.readme/",
"title": "rh.sourcesocket",
"tags": [],
"description": "",
"content": " REDHAWK rh.sourcesocket Description Contains the source and build script for the REDHAWK rh.sourcesocket component. This component reads data from a TCP socket and writes it to a BulkIO port.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/components/rh.sourcesocket.readme/",
"title": "rh.sourcesocket",
"tags": [],
"description": "",
"content": " REDHAWK rh.sourcesocket Description Contains the source and build script for the REDHAWK rh.sourcesocket component. This component reads data from a TCP socket and writes it to a BulkIO port.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/components/rh.sourcesocket.readme/",
"title": "rh.sourcesocket",
"tags": [],
"description": "",
"content": " REDHAWK rh.sourcesocket Description Contains the source and build script for the REDHAWK rh.sourcesocket component. This component reads data from a TCP socket and writes it to a BulkIO port.\nInstallation To build from source, run the build.sh script. To install to $SDRROOT, run build.sh install.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.2-lts/waveforms/rh.vita49_loopback_demo.readme/",
"title": "rh.vita49_loopback_demo",
"tags": [],
"description": "",
"content": " REDHAWK vita49_loopback_demo Description Contains the source and build script for the REDHAWK vita49_loopback_demo waveform. This waveform uses the rh.sourceVITA49 and rh.sinkVITA49 components to demonstrate how VITA49 network data can move into and out of REDHAWK.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/waveforms/rh.vita49_loopback_demo.readme/",
"title": "rh.vita49_loopback_demo",
"tags": [],
"description": "",
"content": " REDHAWK vita49_loopback_demo Description Contains the source and build script for the REDHAWK vita49_loopback_demo waveform. This waveform uses the rh.sourceVITA49 and rh.sinkVITA49 components to demonstrate how VITA49 network data can move into and out of REDHAWK.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/waveforms/rh.vita49_loopback_demo.readme/",
"title": "rh.vita49_loopback_demo",
"tags": [],
"description": "",
"content": " REDHAWK vita49_loopback_demo Description Contains the source and build script for the REDHAWK vita49_loopback_demo waveform. This waveform uses the rh.sourceVITA49 and rh.sinkVITA49 components to demonstrate how VITA49 network data can move into and out of REDHAWK.\nInstallation This is a waveform project; therefore, it does not need to be built. It must be installed into the $SDRROOT/dom/waveforms directory. To install it, open the project in the REDHAWK IDE and drag it into the Target SDR folder.\n"
},
{
"uri": "https://redhawksdr.github.io/assets/3.0-lts/",
"title": "Assets 3.0",
"tags": [],
"description": "",
"content": " rh.AmFmPmBasebandDemod rh.ArbitraryRateResampler rh.DataConverter rh.FM_RBDS_demo rh.FM_mono_demo rh.FileReader rh.FileWriter rh.FmRdsSimulator rh.HardLimit rh.RBDSDecoder rh.RedhawkDevUtils rh.SigGen rh.SinkSDDS rh.SinkVITA49 rh.SourceSDDS rh.SourceVITA49 rh.TuneFilterDecimate rh.USRP_UHD rh.VITA49 rh.agc rh.autocorrelate rh.basic_components_demo rh.blueFileLib rh.dsp rh.fastfilter rh.fcalc rh.fftlib rh.psd rh.psk_soft rh.short_file_to_float_file rh.sinksocket rh.socket_loopback_demo rh.sourcesocket rh.vita49_loopback_demo "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/3.0-lts/",
"title": "Assets 3.0",
"tags": [],
"description": "",
"content": "The release notes for all REDHAWK 3.0 assets can be accessed through this page.\nWhat\u0026rsquo;s New - January 2021\nREDHAWK core assets with REDHAWK 3.0.0:\n The core assets have been updated to work with FEI 3.0, C++ 14, Python 3, and Java 11. rh.MSDD and rh.RTL2832U are not released concurrent with REDHAWK 3.0.0. An off-cycle update is planned. REDHAWK Basic Components rh.agc rh.AmFmPmBasebandDemod rh.ArbitraryRateResampler rh.autocorrelate rh.DataConverter rh.fastfilter rh.fcalc rh.FileReader rh.FileWriter rh.HardLimit rh.psd rh.psk_soft rh.RBDSDecoder rh.SigGen rh.SinkSDDS rh.sinksocket rh.SinkVITA49 rh.SourceSDDS rh.sourcesocket rh.SourceVITA49 rh.TuneFilterDecimate REDHAWK Basic Devices rh.FmRdsSimulator rh.USRP_UHD REDHAWK Basic Waveforms rh.basic_components_demo rh.FM_mono_demo rh.FM_RBDS_demo rh.short_file_to_float_file rh.socket_loopback_demo rh.VITA49_loopback_demo REDHAWK Basic Libraries rh.blueFileLib rh.dsp rh.fftlib rh.RedhawkDevUtils rh.VITA49 "
},
{
"uri": "https://redhawksdr.github.io/manual/3.0-lts/",
"title": "REDHAWK 3.0",
"tags": [],
"description": "",
"content": "REDHAWK 3.0 is a feature complete series that may include sub-minor version releases consisting of bug fixes only. Both API and ABI forwards/backwards compatibility are guaranteed between sub-minor (3.0.x) releases.\n REDHAWK 3.0.1 Manual REDHAWK 3.0.0 Manual "
},
{
"uri": "https://redhawksdr.github.io/release-notes/3.0-lts/",
"title": "REDHAWK 3.0",
"tags": [],
"description": "",
"content": "REDHAWK 3.0.x is a feature complete series that may include sub-minor version releases consisting of only bug fixes. Both API and ABI forwards/backwards compatibility are guaranteed between sub-minor releases. Please contact the program office for support-related requests.\n REDHAWK Release Notes - 3.0.1 REDHAWK Release Notes - 3.0.0 "
},
{
"uri": "https://redhawksdr.github.io/assets/2.3-lts/",
"title": "Assets 2.3",
"tags": [],
"description": "",
"content": " rh.AmFmPmBasebandDemod rh.ArbitraryRateResampler rh.DataConverter rh.FM_RBDS_demo rh.FM_mono_demo rh.FileReader rh.FileWriter rh.FmRdsSimulator rh.HardLimit rh.MSDD rh.MSDD_Controller rh.RBDSDecoder rh.RTL2832U rh.RedhawkDevUtils rh.SigGen rh.SinkSDDS rh.SinkVITA49 rh.SourceSDDS rh.SourceVITA49 rh.TuneFilterDecimate rh.USRP_UHD rh.VITA49 rh.agc rh.autocorrelate rh.basic_components_demo rh.blueFileLib rh.dsp rh.fastfilter rh.fcalc rh.fftlib rh.psd rh.psk_soft rh.short_file_to_float_file rh.sinksocket rh.socket_loopback_demo rh.sourcesocket rh.vita49_loopback_demo "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.3-lts/",
"title": "Assets 2.3",
"tags": [],
"description": "",
"content": "The release notes for all REDHAWK LTS 2.3 assets can be accessed through this page.\nWhat\u0026rsquo;s New - March 2021\nNewly released REDHAWK core assets with REDHAWK 2.3.0 include:\n rh.DataConverter rh.fastfilter rh.MSDD rh.psd REDHAWK Basic Components\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u0026nbsp; \u0026nbsp; rh.agc rh.AmFmPmBasebandDemod rh.ArbitraryRateResampler rh.autocorrelate rh.DataConverter rh.fastfilter rh.fcalc rh.FileReader rh.FileWriter rh.HardLimit rh.psd rh.psk_soft rh.RBDSDecoder rh.SigGen rh.SinkSDDS rh.sinksocket rh.SinkVITA49 rh.SourceSDDS rh.sourcesocket rh.SourceVITA49 rh.TuneFilterDecimate REDHAWK Basic Devices\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u0026nbsp; \u0026nbsp; rh.FmRdsSimulator rh.MSDD rh.RTL2832U rh.USRP_UHD REDHAWK Basic Waveforms\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u0026nbsp; \u0026nbsp; rh.basic_components_demo rh.FM_mono_demo rh.FM_RBDS_demo rh.short_file_to_float_file rh.socket_loopback_demo rh.VITA49_loopback_demo REDHAWK Shared Libraries\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp; \u0026nbsp; \u0026nbsp; rh.blueFileLib rh.dsp rh.fftlib rh.RedhawkDevUtils rh.VITA49 "
},
{
"uri": "https://redhawksdr.github.io/release-notes/updates/2.2-lts/gpp-2.3.0/",
"title": "GPP 2.3.0",
"tags": [],
"description": "",
"content": "Release notes for GPP 2.3.0 (REDHAWK 2.2)\n Plugin infrastructure created for GPP to track custom system metrics "
},
{
"uri": "https://redhawksdr.github.io/release-notes/updates/2.2-lts/gpp-profile-2.3.0/",
"title": "GPP-profile 2.3.0",
"tags": [],
"description": "",
"content": "Release notes for GPP-profile 2.3.0 (REDHAWK 2.2)\n Plugin infrastructure created for GPP to track custom system metrics "
},
{
"uri": "https://redhawksdr.github.io/manual/2.3-lts/",
"title": "REDHAWK 2.3",
"tags": [],
"description": "",
"content": "REDHAWK 2.3 is a feature complete series that may include sub-minor version releases consisting of bug fixes only. Both API and ABI forwards/backwards compatibility are guaranteed between sub-minor (2.3.x) releases.\n REDHAWK 2.3.2 Manual - No changes from the 2.3.0 manual. REDHAWK 2.3.1 Manual - No changes from the 2.3.0 manual. REDHAWK 2.3.0 Manual "
},
{
"uri": "https://redhawksdr.github.io/release-notes/2.3-lts/",
"title": "REDHAWK 2.3",
"tags": [],
"description": "",
"content": "REDHAWK 2.3.x is a feature complete series that may include sub-minor version releases consisting of only bug fixes. Both API and ABI forwards/backwards compatibility are guaranteed between sub-minor releases. Please contact the program office for support-related requests.\n REDHAWK Release Notes - 2.3.2 REDHAWK Release Notes - 2.3.1 REDHAWK Release Notes - 2.3.0 "
},
{
"uri": "https://redhawksdr.github.io/release-notes/2.0-lts/release-notes-2.0.7/",
"title": "REDHAWK Release Notes - 2.0.7",
"tags": [],
"description": "",
"content": " The effort in REDHAWK 2.0.7 focused on:\n Core Framework\n Resolving soft package dependency issue so DeviceManager resolves run time environment settings when deploying Devices and Services that have soft package dependencies. Resolving issue so that during Application release, calls to the Application object no longer result in misleading errors. Improving flexibility to ignore GPP threshold checks when determining if the GPP should go into a BUSY state. Resolving issue where processes with spaces in the names would cause the GPP to terminate. Resolving issue to allow for slow startup conditions of OmniNames service before starting OmniEvents service. Resolving issue with uninitialized data structures with BulkIO and SourceSDDS that inhibited BulkIO data transfers. Resolving issue with incorrect exception being thrown during allocateCapacity. Resolving issue when shutting down orb from Python resources. Providing a warning in the logs if a message is too large. Resolving issue with the code generators so they can be run on systems with FIPS enabled. Resolving issue so generated C++ FEI Devices do not leak memory when deallocating listeners. Existing Devices must be regenerated and recompiled to apply this fix. Resolving a memory leak in FrontendTunerDevice::create(). Existing Devices must be recompiled to apply this fix. Resolving issue so the functions returnRFInfoPkt transform all fields between types frontend::RFInfoPkt and FRONTEND::RFInfoPkt. Resolving issue so BulkIO input stream calls to read() and tryread() with a sample count do not segfault when their queue contains only an empty packet with EOS set. IDE\n Providing an option in the IDE to perform a FrontEnd Device allocation in the background to aid developers who are debugging their FrontEnd Devices. Adding the Eclipse “TM Terminal” in the IDE, a full-featured terminal emulator that provides full ANSI cursor control, readline, and coloring. Fixing links in the IDE’s help contents so REDHAWK help now displays correctly when links within the help are selected. Resolving issue so Diagram shapes no longer stack if they are part of a feedback loop. Documentation\n Adding documentation for developing a logging configuration plug-in that will be used to resolve the LOGGING_CONFIG_URI parameter during deployment of Devices, Services and Components. Renaming the Generating Code section to Generating Code for Components and explaining the code generation process and what occurs in the IDE when the code is generated. Updating the REDHAWK User Manual with accessibility rules for all properties. Updating the REDHAWK ICD with the description of the new “property” kind. REDHAWK Enterprise Integration\n Adding toString() method to RedhawkStruct object, ensuring the getAllocIds(RedhawkStruct s) return object is a List, and adding a helper method for retrieving allocIds called getAllocIds(). Updating REDHAWK Driver to properly clean up driver-registered Device Managers on shutdown. Adding IDL source to appropriate Core Framework jars. Incorporated additional method to produce jar bundle with manifest built dynamically via the BnD Tools, source jar, and zip of XSDs. Updating REDHAWK Java Driver and REDHAWK REST to make it easier for users to access External Properties in Waveforms. Adding implementations of ConnectionManager, AllocationManager interfaces to REDHAWK Driver. Adding utility methods for programatically setting the log level of Domain, Application, Device, and Component Resources. Adding REST access to Event Channel Manager functionality. Updating REDHAWK Driver to have wrapper methods for retrieving state, connections, activeSRIs, and UsesPortStatistics from BULKIO objects. Updating REDHAWK REST to make connections, activeSRIs, UsesPortStatistics, and state available. Adding wrapper methods to RedhawkApplication and RedhawkComponent interfaces for easier access to aware(), componentDevices(), componentProcessIds(), and componentImplementations(). REST Responses for Component and Application now display componentDevice, aware, componentProcessId, and componentImplementation information. Adding ability to get and set adminState from REDHAWK Driver and REDHAWK REST. Adding ability to view usageState and operationalState from REDHAWK Driver and REDHAWK REST. Adding ability to registerRemoteDomain, unregisterRemoteDomains, get device implementation information and a deviceConfiguration profile via REDHAWK Driver and REDHAWK REST. Preconfiguring HTTPS and WSS in REDHAWK Enterprise Integration and adding Web Server Configuration section in REDHAWK Enterprise Integration User Guide. Fixes The following IDE and Core Framework fixes were completed in REDHAWK 2.0.7.\nRelease notes for Core Assets are available on Github (https://github.com/RedhawkSDR/) in each Core Asset repository.\nCore Framework Fixes The following Core Framework bug fixes were completed in REDHAWK 2.0.7.\n The Python Sandbox DataSource always calculates per-packet time stamps using floating point arithmetic, avoiding truncation errors when given an integer value for the sample rate. Writing to a C++ BulkIO output stream configured for complex data with real data and a list of time stamps now interprets the time stamp offsets in terms of complex samples, preserving the integrity of the time stamps. On the GPP, when nic_usage is disabled, no message is generated when the usage threshold is exceeded. Resolved issue so now files_available and threads are checked for GPP BUSY state. Clarified logging message regarding reservations. The default implementation of runTest() for Python Components and Devices throws the correct CF.TestableObject.UnknownTest error. Changed run user for omniEvents to omniORB user. Initialized internal data structure for managing blocking state for input Ports. When nic_usage is set to 0 in the thresholds property of the GPP, the GPP will enter a BUSY state, irrespective of the overall NIC usage. Thread management in the Python Component/Device base class is updated to better utilize the processor. Added support to allow LOGGING_CONFIG_URI to be passed on the command line during Component deployment irrespective of whether it was defined by the Component. On CentOS 7, C++ LoadableDevices no longer throw a CORBA::COMM_FAILURE exception from load() when the file cannot be loaded. The severity of the log message when a C++ Device cannot connect to the IDM channel has been reduced from error to warning. Special Resolutions The following previously reported Known Issues have been closed in REDHAWK 2.0.7 with the following resolutions:\n Won’t Fix\n Struct_from_props fails during allocate_capacity in python device - This behavior is not an error. Query behavior for Optional Elements in Structs - All elements in struct properties are handled as a single configuration item. Make sendChangedProperty events safe for structs that have had attributes added - This issue was rejected. IDE Fixes The following IDE bug fixes were completed in REDHAWK 2.0.7.\n Updated Java environment specification to Java 8 for the plotter and editor applications. Corrected some configuration data for the IDE plotter application. Corrected an issue that could cause the CORBA name browser to slow the entire UI. Resolved a code quality issue. Corrected context menu icons for simple and simple sequence Properties. Corrected some information missing from Properties when creating new FEI Devices. Corrected the remove button in the new FrontEnd Device wizard so that it is not enabled when a Property cannot be removed. Corrected an error where the Property table in the new FrontEnd Device wizard was too small to see Properties on RHEL 7 systems. Resolved ClassCastException when calling Expand All or Collapse All on a Waveform that includes a HostCollocation. Corrected the display of some spinner controls on RHEL 7. Resolved issue so Implementation tab now displays all usesdevice Property types. Ensured that some code intended only for debugging is not included in the IDE. Corrected the lightweight auto-refresh preference. Fixed NPE in FindComponentConstraint. Fixed error when terminating a C++ Component launched in debug mode. Corrected several internal configuration issues with the code generation menus/buttons for Components. Corrected an NPE that could occur when validating SAD or DCD files with references to non-existent struct sequence Properties. Corrected internal IDE code to properly indicate when XML validation problems are found. Updated SAD/DCD loggingconfig URI validation messages. Component usage name and naming service ID are now kept in sync after a graphical edit. Added missing icons in the DCD editor. Updated a missing environment specification to reflect the requirement for Java 8. The New Control Panel Project button is no longer displayed when editing a REDHAWK shared library project. Corrected an internal IDE issue that could prevent loading REDHAWK XML. Corrected a rare bug that could cause the content in the pages of an editor to become un-synchronized. The BULKIO SRI keyword CHAN_RF is now always preferred to COL_RF for center frequency when plotting. Corrected a code issue that could have suppressed Sandbox errors. The IDE no longer attempts to read Device files when browsing the Sandbox file manager. The release field in spec files created for Waveforms and Nodes is now correct. Corrected a potential code freeze when the IDE loses contact with a connected Domain. Corrected issues with UI themes in the REDHAWK Explorer product. A superfluous ODM event channel is no longer created when the display name differs from Domain name. Corrected some issues with product branding. Corrected an issue with CSS themes. Corrected a copyright notice about Eclipse software. Fixed issue with a ConcurrentModificationException occassionally occurring when using the “Monitor Ports” functionality. The icon for the PRF editor was corrected. Message is now always a selectable kind type for Struct Properties. Corrected a link in the REDHAWK help that was not working. Fixed issue where Waveforms with external Ports were not being removed from the REDHAWK Explorer view on terminate. Fixed issue where the IDL Selection Wizard filter stopped working when the Show all interfaces button was checked. The OSSIEHOME Eclipse variable should not be expanded in the IDL project’s .ecpproperties file. The connect wizard now works with Waveforms’ external Ports. When launching a Node on an existing Domain, the IDE now uses the Domain name instead of the Domain’s display name. Allocation IDs generated in the FEI usesdevice wizard of the SAD Diagram no longer contain user names. Removing a Device/Service instantiation removes the componentfile element from the DCD XML if it is not needed. Component project’s Generator combo box only displays applicable code generators. UsesDevice passes validation with any combination of accepted Properties. The Sandbox Chalkboard now shows as stopped if all Components in it are released or terminated. Improved how HostCollocations are handled by the diagram layout algorithm. A race condition was corrected that allowed a new project to be created with an invalid name. Special Resolutions The following previously reported Known Issues have been closed in REDHAWK 2.0.7 with the following resolutions:\n Won’t Fix\n The IDE Help REDHAWK Content is not the released version of the documentation - The IDE Help REDHAWK Content includes the documentation during the IDE build process; therefore, the released version of the documentation cannot be included at that time. Duplicate\n Hide the create control panel toolbar button for Shared Libraries (softpackage) projects - Duplicate of IDE-1958 (Control panel button shown when editing shared library in SPD editor). Documentation Improvements/Fixes The following documentation new features/improvements/fixes were completed in REDHAWK 2.0.7.\n Updated installation instructions to include RPM that installs the GPG key. Updated the Downloads page to support both LTS and Beta Series of REDHAWK. Added documentation for configuring the REDHAWK Integration assets with JacORB. Added domainName information to REDHAWK Connector and REDHAWK Camel documentation. Corrected base URI information, defined nameserver, and added connectionName information to REDHAWK REST documentation. Updated REDHAWK Enterprise Integration User Guide RedhawkPort and RedhawkApplication information for REDHAWK Driver and REDHAWK REST. Added remoteDomainManagers to the REDHAWK ICD. Added documentation about managing GPP BUSY state. Updated FEI Allocation Wizard Tuner Allocation dialog screenshot and revised text to include new Run in background checkbox. Updated REDHAWK Enterprise Integration User Guide to include Code Examples for ConnectionManager, Logging, and AllocationManager. Updated REDHAWK Enterprise Integration User Guide code examples of EventChannelListener functionality. Updated procedure, Using the FEI Wizard to Create an FEI Device, to include the Setup Code Generation dialog and added screenshot. Updated Host Collocation procedure and replaced screenshots to correctly display collocation name created when adding a collocation. Updated screenshot of SPD editor Properties to correctly display a drop-down for the “Kind”. Updated Converting Complex Data in C++ and BulkIO High-speed data sections of User Manual. Added information to explain that octave Component numerical properties are treated as complex. Corrected property definition shown in code for multi-out Ports by removing kind elements that were underneath the simple elements. Added BurstIO Section to the REDHAWK ICD. "
},
{
"uri": "https://redhawksdr.github.io/release-notes/updates/2.2-lts/redhawk-codegen-2.3.0/",
"title": "redhawk-codegen 2.3.0",
"tags": [],
"description": "",
"content": "Release notes for redhawk-codegen 2.3.0 (REDHAWK 2.2)\n Plugin infrastructure created for GPP to track custom system metrics "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/3.0-lts/components/rh.amfmpmbasebanddemod/",
"title": "rh.AmFmPmBasebandDemod Release Notes",
"tags": [],
"description": "",
"content": "Release notes for rh.AmFmPmBasebandDemod 2.1.0 (REDHAWK 3.0.0).\n Updated to compile at C++ 14. Updated tests to use Python 3. "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.2-lts/components/rh.arbitraryrateresampler/",
"title": "rh.ArbitraryRateResampler Release Notes",
"tags": [],
"description": "",
"content": ""
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.3-lts/components/rh.arbitraryrateresampler/",
"title": "rh.ArbitraryRateResampler Release Notes",
"tags": [],
"description": "",
"content": ""
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/3.0-lts/components/rh.arbitraryrateresampler/",
"title": "rh.ArbitraryRateResampler Release Notes",
"tags": [],
"description": "",
"content": "Release notes for rh.ArbitraryRateResampler 2.1.0 (REDHAWK 3.0.0).\n Updated to compile at C++ 14. Updated tests to use Python 3. "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.2-lts/components/rh.dataconverter/",
"title": "rh.DataConverter Release Notes",
"tags": [],
"description": "",
"content": "Release notes for rh.DataConverter 5.0.0 (REDHAWK 2.2.2)\nThe following changes\n Optimized processing for available Intel IPP libraries or SSE extensions. Shared process space for component execution. BulkIO shared memory data transfers between processes residing on the same host. Logging messages use the REDHAWK 2.2.x logging API. Input and output port names comply with REDHAWK naming conventions. Property types comply with REDHAWK conventions. Improved descriptions for ports and properties. An additional help section (Asset Use) in the Readme.md explaining component configuration and use. Refactored unit tests use the REDHAWK 2.2.x sandbox API. "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.3-lts/components/rh.dataconverter/",
"title": "rh.DataConverter Release Notes",
"tags": [],
"description": "",
"content": "Release notes for rh.DataConverter 5.0.0 (REDHAWK 2.2.2)\nThe following changes\n Optimized processing for available Intel IPP libraries or SSE extensions. Shared process space for component execution. BulkIO shared memory data transfers between processes residing on the same host. Logging messages use the REDHAWK 2.2.x logging API. Input and output port names comply with REDHAWK naming conventions. Property types comply with REDHAWK conventions. Improved descriptions for ports and properties. An additional help section (Asset Use) in the Readme.md explaining component configuration and use. Refactored unit tests use the REDHAWK 2.2.x sandbox API. "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/3.0-lts/components/rh.dataconverter/",
"title": "rh.DataConverter Release Notes",
"tags": [],
"description": "",
"content": "Release notes for rh.DataConverter 5.1.0 (REDHAWK 3.0.0).\n Updated to compile at C++ 14. Updated tests to use Python 3. "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.2-lts/waveforms/rh.fm_rbds_demo/",
"title": "rh.FM_RBDS_demo Release Notes",
"tags": [],
"description": "",
"content": ""
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.3-lts/waveforms/rh.fm_rbds_demo/",
"title": "rh.FM_RBDS_demo Release Notes",
"tags": [],
"description": "",
"content": ""
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/3.0-lts/waveforms/rh.fm_rbds_demo/",
"title": "rh.FM_RBDS_demo Release Notes",
"tags": [],
"description": "",
"content": ""
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.2-lts/waveforms/rh.fm_mono_demo/",
"title": "rh.FM_mono_demo Release Notes",
"tags": [],
"description": "",
"content": ""
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.3-lts/waveforms/rh.fm_mono_demo/",
"title": "rh.FM_mono_demo Release Notes",
"tags": [],
"description": "",
"content": ""
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/3.0-lts/waveforms/rh.fm_mono_demo/",
"title": "rh.FM_mono_demo Release Notes",
"tags": [],
"description": "",
"content": ""
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.2-lts/components/rh.filereader/",
"title": "rh.FileReader Release Notes",
"tags": [],
"description": "",
"content": "Release notes for rh.FileReader 5.0.0 (REDHAWK 2.2.2)\n Added ability to process a meta data file captured by FileWriter to replicate the same context when playing back the data. The following context information is used when processing each data packet:\n SRI Context - streamID, hversion, xstart, xdelta, subsize, ystart, ydelta, mode, keywords/values Packet Context - streamID, data length, EOS, timecode (tcmode,tcstatus, twsec, tfsec, toff) Added additional unit tests for meta data file handling.\n Updated version number.\n Prevented increase of CPU utilization when the asset is not playing.\n Improved handling of Big or Little Endian data formats when processing data.\n "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.3-lts/components/rh.filereader/",
"title": "rh.FileReader Release Notes",
"tags": [],
"description": "",
"content": "Release notes for rh.FileReader 5.0.0 (REDHAWK 2.2.2)\n Added ability to process a meta data file captured by FileWriter to replicate the same context when playing back the data. The following context information is used when processing each data packet:\n SRI Context - streamID, hversion, xstart, xdelta, subsize, ystart, ydelta, mode, keywords/values Packet Context - streamID, data length, EOS, timecode (tcmode,tcstatus, twsec, tfsec, toff) Added additional unit tests for meta data file handling.\n Updated version number.\n Prevented increase of CPU utilization when the asset is not playing.\n Improved handling of Big or Little Endian data formats when processing data.\n "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/3.0-lts/components/rh.filereader/",
"title": "rh.FileReader Release Notes",
"tags": [],
"description": "",
"content": "Release notes for rh.FileReader 5.1.0 (REDHAWK 3.0.0).\n Updated to compile at C++ 14. Updated tests to use Python 3. "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.2-lts/components/rh.filewriter/",
"title": "rh.FileWriter Release Notes",
"tags": [],
"description": "",
"content": "Release notes for rh.FileWriter 5.0.0 (REDHAWK 2.2.2)\n Added meta data mode to capture additional processing context when saving data files. The following context information is saved for each packet of data and when SRI changes occur:\n SRI Context - streamID, hversion, xstart, xdelta, subsize, ystart, ydelta, mode, keywords/values Packet Context - streamID, data length, EOS, timecode (tcmode,tcstatus, twsec, tfsec, toff) Added additional unit tests for meta data file handling.\n Updated version number.\n Modified bluefile keyword support so that all keywords (not just last) for a stream are written to bluefiles.\n Improved handling of Big or Little Endian data formats when processing data.\n Fixed issue with floating point comparison of timestamps in unit test.\n Increased precision for calculation of max bytes per file from advanced_properties.max_file_time property.\n "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.3-lts/components/rh.filewriter/",
"title": "rh.FileWriter Release Notes",
"tags": [],
"description": "",
"content": "Release notes for rh.FileWriter 5.0.0 (REDHAWK 2.2.2)\n Added meta data mode to capture additional processing context when saving data files. The following context information is saved for each packet of data and when SRI changes occur:\n SRI Context - streamID, hversion, xstart, xdelta, subsize, ystart, ydelta, mode, keywords/values Packet Context - streamID, data length, EOS, timecode (tcmode,tcstatus, twsec, tfsec, toff) Added additional unit tests for meta data file handling.\n Updated version number.\n Modified bluefile keyword support so that all keywords (not just last) for a stream are written to bluefiles.\n Improved handling of Big or Little Endian data formats when processing data.\n Fixed issue with floating point comparison of timestamps in unit test.\n Increased precision for calculation of max bytes per file from advanced_properties.max_file_time property.\n "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/3.0-lts/components/rh.filewriter/",
"title": "rh.FileWriter Release Notes",
"tags": [],
"description": "",
"content": "Release notes for rh.FileWriter 5.1.0 (REDHAWK 3.0.0).\n Updated to compile at C++ 14. Updated tests to use Python 3. "
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.2-lts/devices/rh.fmrdssimulator/",
"title": "rh.FmRdsSimulator Release Notes",
"tags": [],
"description": "",
"content": ""
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/2.3-lts/devices/rh.fmrdssimulator/",
"title": "rh.FmRdsSimulator Release Notes",
"tags": [],
"description": "",
"content": ""
},
{
"uri": "https://redhawksdr.github.io/release-notes/assets/3.0-lts/devices/rh.fmrdssimulator/",
"title": "rh.FmRdsSimulator Release Notes",
"tags": [],
"description": "",