Changeset 299c79c in ammosreader
- Timestamp:
- 06/30/22 13:28:16 (3 years ago)
- Branches:
- AmmosSource, guix
- Children:
- 93661be
- Parents:
- eab48d0
- Location:
- doc/html
- Files:
-
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/html/.buildinfo
reab48d0 r299c79c 1 1 # Sphinx build info version 1 2 2 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 config: 13374ee1ea55cf36915a4a11d92b21ec3 config: bd0cf0b1e5e8b74e46ffad0c7feb7650 4 4 tags: 645f666f9bcd5a90fca523b33c5a78b7 -
doc/html/_modules/ammosreader/AmmosAudioDataHeader.html
reab48d0 r299c79c 64 64 65 65 <h1>Source code for ammosreader.AmmosAudioDataHeader</h1><div class="highlight"><pre> 66 <span></span><span class="kn">import</span> <span class="nn">struct</span> 67 <span class="kn">import</span> <span class="nn">numpy</span> 66 <span></span><span class="sd">"""I provide an AMMOS data header for audio data frames."""</span> 68 67 69 <div class="viewcode-block" id="AmmosAudioDemodType"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioDataHeader.AmmosAudioDemodType">[docs]</a><span class="k">class</span> <span class="nc">AmmosAudioDemodType</span><span class="p">():</span> 68 <span class="kn">import</span> <span class="nn">struct</span> 69 <span class="kn">from</span> <span class="nn">ammosreader.AmmosConstants</span> <span class="kn">import</span> <span class="n">AmmosAudioDemodType</span> 70 70 71 <span class="nd">@classmethod</span>72 <span class="nd">@property</span>73 <span class="k">def</span> <span class="nf">mapping</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>74 <span class="k">return</span> <span class="p">{</span><span class="mi">0</span><span class="p">:</span> <span class="s1">'FM'</span><span class="p">,</span> <span class="mi">1</span><span class="p">:</span> <span class="s1">'AM'</span><span class="p">,</span> <span class="mi">5</span><span class="p">:</span> <span class="s1">'ISB'</span><span class="p">,</span> <span class="mi">6</span><span class="p">:</span> <span class="s1">'CW'</span><span class="p">,</span>75 <span class="mi">7</span><span class="p">:</span> <span class="s1">'USB'</span><span class="p">,</span> <span class="mi">8</span><span class="p">:</span> <span class="s1">'LSB'</span><span class="p">,</span> <span class="mi">256</span><span class="p">:</span> <span class="s1">'DIGITAL'</span><span class="p">,</span>76 <span class="mh">0xFFFFFFFF</span><span class="p">:</span> <span class="s1">'UNKNOWN'</span><span class="p">}</span>77 71 78 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">demod_type</span><span class="p">):</span>79 <span class="bp">self</span><span class="o">.</span><span class="n">demod_type</span> <span class="o">=</span> <span class="n">demod_type</span>72 <div class="viewcode-block" id="AmmosAudioDataHeader"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader">[docs]</a><span class="k">class</span> <span class="nc">AmmosAudioDataHeader</span><span class="p">:</span> 73 <span class="sd">"""I implement an AMMOS data header for audio data frames."""</span> 80 74 81 <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 82 <span class="k">return</span> <span class="n">AmmosAudioDemodType</span><span class="o">.</span><span class="n">mapping</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">demod_type</span><span class="p">]</span></div> 83 84 <div class="viewcode-block" id="AmmosAudioDataHeader"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader">[docs]</a><span class="k">class</span> <span class="nc">AmmosAudioDataHeader</span><span class="p">():</span> 75 <span class="n">HEADER_SIZE</span> <span class="o">=</span> <span class="mi">36</span> <span class="c1"># 9 words</span> 85 76 86 77 <div class="viewcode-block" id="AmmosAudioDataHeader.from_bytes"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader.from_bytes">[docs]</a> <span class="nd">@classmethod</span> 87 78 <span class="k">def</span> <span class="nf">from_bytes</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">):</span> 79 <span class="sd">"""I return an AMMOS data header from given bytes."""</span> 80 <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o">==</span> <span class="bp">cls</span><span class="o">.</span><span class="n">HEADER_SIZE</span> 88 81 <span class="n">elements</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'<IIQIIIII'</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">)</span> 89 82 <span class="n">sample_rate</span> <span class="o">=</span> <span class="n">elements</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> … … 91 84 <span class="n">frequency</span> <span class="o">=</span> <span class="n">elements</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> 92 85 <span class="n">demod_bandwidth</span> <span class="o">=</span> <span class="n">elements</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> 93 <span class="n">demod_type</span> <span class="o">=</span> <span class="n"> elements</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span>94 <span class="n"> sample_count</span> <span class="o">=</span> <span class="n">elements</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span>95 <span class="n"> channel_count</span> <span class="o">=</span> <span class="n">elements</span><span class="p">[</span><span class="mi">6</span><span class="p">]</span>86 <span class="n">demod_type</span> <span class="o">=</span> <span class="n">AmmosAudioDemodType</span><span class="p">(</span><span class="n">elements</span><span class="p">[</span><span class="mi">4</span><span class="p">])</span> 87 <span class="n">number_of_samples</span> <span class="o">=</span> <span class="n">elements</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> 88 <span class="n">number_of_channels</span> <span class="o">=</span> <span class="n">elements</span><span class="p">[</span><span class="mi">6</span><span class="p">]</span> 96 89 <span class="n">sample_size</span> <span class="o">=</span> <span class="n">elements</span><span class="p">[</span><span class="mi">7</span><span class="p">]</span> 97 90 <span class="k">return</span> <span class="n">AmmosAudioDataHeader</span><span class="p">(</span><span class="n">sample_rate</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">frequency</span><span class="p">,</span> <span class="n">demod_bandwidth</span><span class="p">,</span> <span class="n">demod_type</span><span class="p">,</span> 98 <span class="n"> sample_count</span><span class="p">,</span> <span class="n">channel_count</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">)</span></div>91 <span class="n">number_of_samples</span><span class="p">,</span> <span class="n">number_of_channels</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">)</span></div> 99 92 100 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sample_rate</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">frequency</span><span class="p">,</span> <span class="n">demod_bandwidth</span><span class="p">,</span> <span class="n">demod_type</span><span class="p">,</span> <span class="n">sample_count</span><span class="p">,</span> <span class="n">channel_count</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">):</span> 93 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sample_rate</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">frequency</span><span class="p">,</span> <span class="n">demod_bandwidth</span><span class="p">,</span> <span class="n">demod_type</span><span class="p">,</span> <span class="n">number_of_samples</span><span class="p">,</span> 94 <span class="n">number_of_channels</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">):</span> 95 <span class="sd">"""I create a new instance of myself using the above parameters."""</span> 101 96 <span class="bp">self</span><span class="o">.</span><span class="n">sample_rate</span> <span class="o">=</span> <span class="n">sample_rate</span> 102 97 <span class="bp">self</span><span class="o">.</span><span class="n">status</span> <span class="o">=</span> <span class="n">status</span> … … 104 99 <span class="bp">self</span><span class="o">.</span><span class="n">demod_bandwidth</span> <span class="o">=</span> <span class="n">demod_bandwidth</span> 105 100 <span class="bp">self</span><span class="o">.</span><span class="n">demod_type</span> <span class="o">=</span> <span class="n">AmmosAudioDemodType</span><span class="p">(</span><span class="n">demod_type</span><span class="p">)</span> 106 <span class="bp">self</span><span class="o">.</span><span class="n"> sample_count</span> <span class="o">=</span> <span class="n">sample_count</span>107 <span class="bp">self</span><span class="o">.</span><span class="n"> channel_count</span> <span class="o">=</span> <span class="n">channel_count</span>101 <span class="bp">self</span><span class="o">.</span><span class="n">number_of_samples</span> <span class="o">=</span> <span class="n">number_of_samples</span> 102 <span class="bp">self</span><span class="o">.</span><span class="n">number_of_channels</span> <span class="o">=</span> <span class="n">number_of_channels</span> 108 103 <span class="bp">self</span><span class="o">.</span><span class="n">sample_size</span> <span class="o">=</span> <span class="n">sample_size</span> 109 104 110 105 <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 106 <span class="sd">"""I return the string representation of myself."""</span> 111 107 <span class="k">return</span> <span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">AmmosAudioDataHeader</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> 112 108 <span class="s2">"Sample rate:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sample_rate</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> … … 115 111 <span class="s2">"Demodulation bandwidth:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">demod_bandwidth</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> 116 112 <span class="s2">"Demodulation type:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">demod_type</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> 117 <span class="s2">"Sample count:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n"> sample_count</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span>118 <span class="s2">"Channel count:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n"> channel_count</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span>113 <span class="s2">"Sample count:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">number_of_samples</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> 114 <span class="s2">"Channel count:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">number_of_channels</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> 119 115 <span class="s2">"Sample size:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sample_size</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span></div> 120 116 </pre></div> -
doc/html/_modules/ammosreader/AmmosAudioReader.html
reab48d0 r299c79c 64 64 65 65 <h1>Source code for ammosreader.AmmosAudioReader</h1><div class="highlight"><pre> 66 <span></span><span class="sd">"""I p arse an R&S AMMOS recording."""</span>67 68 <span class="kn">import</span> <span class="nn">os</span> 69 66 <span></span><span class="sd">"""I provide a specialized Ammos Reader for audio data."""</span> 67 <span class="kn">import</span> <span class="nn">logging</span> 68 69 <span class="kn">from</span> <span class="nn">ammosreader.AbstractAmmosReader</span> <span class="kn">import</span> <span class="n">AbstractAmmosReader</span> 70 70 <span class="kn">from</span> <span class="nn">ammosreader.AmmosGlobalFrameBody</span> <span class="kn">import</span> <span class="n">AmmosGlobalFrameBody</span> 71 71 <span class="kn">from</span> <span class="nn">ammosreader.AmmosAudioDataHeader</span> <span class="kn">import</span> <span class="n">AmmosAudioDataHeader</span> 72 72 <span class="kn">from</span> <span class="nn">ammosreader.AmmosExtendedAudioDataHeader</span> <span class="kn">import</span> <span class="n">AmmosExtendedAudioDataHeader</span> 73 <span class="kn">from</span> <span class="nn">ammosreader.AmmosGlobalFrameHeader</span> <span class="kn">import</span> <span class="n">AmmosGlobalFrameHeader</span> 74 <span class="kn">from</span> <span class="nn">ammosreader.AmmosSingleFrame</span> <span class="kn">import</span> <span class="n">AmmosSingleFrame</span> 75 <span class="kn">from</span> <span class="nn">ammosreader.AmmosContainer</span> <span class="kn">import</span> <span class="n">AmmosContainer</span> 76 77 78 <div class="viewcode-block" id="AmmosAudioReader"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader">[docs]</a><span class="k">class</span> <span class="nc">AmmosAudioReader</span><span class="p">():</span> 73 <span class="kn">from</span> <span class="nn">ammosreader.AmmosAudioDataBody</span> <span class="kn">import</span> <span class="n">AmmosAudioDataBody</span> 74 75 76 <div class="viewcode-block" id="AmmosAudioReader"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader">[docs]</a><span class="k">class</span> <span class="nc">AmmosAudioReader</span><span class="p">(</span><span class="n">AbstractAmmosReader</span><span class="p">):</span> 79 77 <span class="sd">"""I read the audio data embedded in an R&S AMMOS recording."""</span> 80 81 <span class="n">GLOBAL_HEADER_SIZE</span> <span class="o">=</span> <span class="mi">24</span> <span class="c1"># 8 words</span>82 <span class="n">STANDARD_AUDIO_DATA_HEADER_SIZE</span> <span class="o">=</span> <span class="mi">36</span> <span class="c1"># 9 words</span>83 <span class="n">EXTENDED_AUDIO_DATA_HEADER_SIZE</span> <span class="o">=</span> <span class="mi">44</span> <span class="c1"># 11 words</span>84 78 85 79 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">):</span> … … 90 84 <span class="sd"> :type file_name: str</span> 91 85 <span class="sd"> """</span> 92 <span class="bp">self</span><span class="o">.</span><span class="n">file_name</span> <span class="o">=</span> <span class="n">file_name</span> 93 <span class="bp">self</span><span class="o">.</span><span class="n">file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">file_name</span><span class="p">,</span> <span class="s2">"rb"</span><span class="p">)</span> 94 <span class="bp">self</span><span class="o">.</span><span class="n">file_size</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">getsize</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">file_name</span><span class="p">)</span> 95 96 <span class="bp">self</span><span class="o">.</span><span class="n">container</span> <span class="o">=</span> <span class="n">AmmosContainer</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">file_name</span><span class="p">,</span> <span class="p">[])</span> 97 98 <span class="bp">self</span><span class="o">.</span><span class="n">tags</span> <span class="o">=</span> <span class="p">{}</span> 99 100 <div class="viewcode-block" id="AmmosAudioReader.rewind_to_start"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.rewind_to_start">[docs]</a> <span class="k">def</span> <span class="nf">rewind_to_start</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 101 <span class="sd">"""I set the file pointer to the beginning of the file for the next operation."""</span> 102 <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span></div> 103 104 <div class="viewcode-block" id="AmmosAudioReader.add_tag"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.add_tag">[docs]</a> <span class="k">def</span> <span class="nf">add_tag</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span> 105 <span class="sd">"""</span> 106 <span class="sd"> I add a tag to my tag list.</span> 107 108 <span class="sd"> :param tag: The tag to add to my tag list</span> 109 <span class="sd"> :type tag: dict</span> 110 <span class="sd"> """</span> 111 <span class="bp">self</span><span class="o">.</span><span class="n">tags</span><span class="p">[</span><span class="n">tag</span><span class="o">.</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">tag</span><span class="o">.</span><span class="n">value</span></div> 112 113 <div class="viewcode-block" id="AmmosAudioReader.read_all_frames_left"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_all_frames_left">[docs]</a> <span class="k">def</span> <span class="nf">read_all_frames_left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 114 <span class="sd">"""</span> 115 <span class="sd"> I read all remaining frames into my container until end of file is reached.</span> 116 117 <span class="sd"> :return: a container containing all frames read</span> 118 <span class="sd"> :rtype: AmmosContainer</span> 119 <span class="sd"> """</span> 120 <span class="n">frames_read</span> <span class="o">=</span> <span class="mi">0</span> 121 <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> 122 <span class="nb">print</span><span class="p">(</span><span class="s2">"Reading single frame"</span><span class="p">,</span> <span class="n">frames_read</span><span class="p">,</span> <span class="s1">'...'</span><span class="p">)</span> 123 <span class="n">current_frame</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_single_frame</span><span class="p">()</span> 124 <span class="k">if</span> <span class="n">current_frame</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> 125 <span class="n">frames_read</span> <span class="o">+=</span> <span class="mi">1</span> 126 <span class="bp">self</span><span class="o">.</span><span class="n">container</span><span class="o">.</span><span class="n">add_frame</span><span class="p">(</span><span class="n">current_frame</span><span class="p">)</span> 127 <span class="k">if</span> <span class="n">frames_read</span> <span class="o">%</span> <span class="mi">10000</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> 128 <span class="nb">print</span><span class="p">(</span><span class="s2">"#"</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span> 129 <span class="k">else</span><span class="p">:</span> 130 <span class="nb">print</span><span class="p">(</span><span class="s2">"Frame:"</span><span class="p">,</span> <span class="n">frames_read</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="s2">" incomplete"</span><span class="p">)</span> 131 <span class="k">break</span> 132 133 <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">container</span><span class="o">.</span><span class="n">global_frames</span><span class="p">),</span> <span class="s2">"frames read"</span><span class="p">)</span> 134 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">container</span></div> 135 136 <div class="viewcode-block" id="AmmosAudioReader.read_next_global_frame_header"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_global_frame_header">[docs]</a> <span class="k">def</span> <span class="nf">read_next_global_frame_header</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 137 <span class="sd">"""</span> 138 <span class="sd"> I return the next global frame header read from current position in file.</span> 139 140 <span class="sd"> :return: the next global frame header or None if incomplete</span> 141 <span class="sd"> :rtype: AmmosGlobalFrameHeader</span> 142 <span class="sd"> """</span> 143 <span class="nb">bytes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">AmmosAudioReader</span><span class="o">.</span><span class="n">GLOBAL_HEADER_SIZE</span><span class="p">)</span> 144 <span class="nb">print</span><span class="p">(</span><span class="s2">"Reading next global frame header"</span><span class="p">)</span> 145 <span class="k">if</span> <span class="p">((</span><span class="ow">not</span> <span class="nb">bytes</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o"><</span> <span class="n">AmmosAudioReader</span><span class="o">.</span><span class="n">GLOBAL_HEADER_SIZE</span><span class="p">)):</span> 146 <span class="nb">print</span><span class="p">(</span><span class="s2">"Can not read all"</span><span class="p">,</span> <span class="n">AmmosAudioReader</span><span class="o">.</span><span class="n">GLOBAL_HEADER_SIZE</span><span class="p">,</span> <span class="s2">"bytes of global frame header"</span><span class="p">)</span> 147 <span class="k">return</span> <span class="kc">None</span> 148 149 <span class="c1"># FIXME: Catch exceptions and add some asserts</span> 150 <span class="n">current_global_frame_header</span> <span class="o">=</span> <span class="n">AmmosGlobalFrameHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> 151 <span class="c1"># print("Current global frame header", current_global_frame_header)</span> 152 <span class="k">return</span> <span class="n">current_global_frame_header</span></div> 86 <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">file_name</span><span class="p">)</span> 153 87 154 88 <div class="viewcode-block" id="AmmosAudioReader.read_next_global_frame_body_data_header"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_global_frame_body_data_header">[docs]</a> <span class="k">def</span> <span class="nf">read_next_global_frame_body_data_header</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> … … 161 95 <span class="sd"> :rtype: AmmosAudioDataHeader</span> 162 96 <span class="sd"> """</span> 163 <span class="nb">bytes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">AmmosAudioReader</span><span class="o">.</span><span class="n">STANDARD_AUDIO_DATA_HEADER_SIZE</span><span class="p">)</span> 164 165 <span class="c1"># print("\nReading global frame body standard data header\n")</span> 166 <span class="k">if</span> <span class="p">((</span><span class="ow">not</span> <span class="nb">bytes</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o"><</span> <span class="n">AmmosAudioReader</span><span class="o">.</span><span class="n">STANDARD_AUDIO_DATA_HEADER_SIZE</span><span class="p">)):</span> 167 <span class="nb">print</span><span class="p">(</span><span class="s2">"Can not read all"</span><span class="p">,</span> <span class="n">AmmosAudioReader</span><span class="o">.</span><span class="n">STANDARD_AUDIO_DATA_HEADER_SIZE</span><span class="p">,</span> 168 <span class="s2">"bytes of global frame body data header"</span><span class="p">)</span> 97 <span class="n">header_size</span> <span class="o">=</span> <span class="n">AmmosAudioDataHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span> 98 99 <span class="nb">bytes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ammos_file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">header_size</span><span class="p">)</span> 100 101 <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Reading global frame body standard data header</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> 102 <span class="k">if</span> <span class="p">((</span><span class="ow">not</span> <span class="nb">bytes</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o"><</span> <span class="n">header_size</span><span class="p">)):</span> 103 <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Can not read all </span><span class="si">%s</span><span class="s2"> bytes of global frame body data header"</span><span class="p">,</span> <span class="n">header_size</span><span class="p">)</span> 169 104 <span class="k">return</span> <span class="kc">None</span> 170 105 <span class="k">return</span> <span class="n">AmmosAudioDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span></div> … … 177 112 <span class="sd"> :rtype: AmmosExtendedAudioDataHeader</span> 178 113 <span class="sd"> """</span> 179 <span class="nb">bytes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">AmmosAudioReader</span><span class="o">.</span><span class="n">EXTENDED_AUDIO_DATA_HEADER_SIZE</span><span class="p">)</span> 180 181 <span class="k">if</span> <span class="p">((</span><span class="ow">not</span> <span class="nb">bytes</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o"><</span> <span class="n">AmmosAudioReader</span><span class="o">.</span><span class="n">EXTENDED_AUDIO_DATA_HEADER_SIZE</span><span class="p">)):</span> 182 <span class="nb">print</span><span class="p">(</span><span class="s2">"Can not read all "</span><span class="p">,</span> <span class="n">AmmosAudioReader</span><span class="o">.</span><span class="n">EXTENDED_AUDIO_DATA_HEADER_SIZE</span><span class="p">,</span> 183 <span class="s2">" bytes of global frame extended data header"</span><span class="p">)</span> 114 <span class="n">header_size</span> <span class="o">=</span> <span class="n">AmmosExtendedAudioDataHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span> 115 116 <span class="nb">bytes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ammos_file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">header_size</span><span class="p">)</span> 117 118 <span class="k">if</span> <span class="p">((</span><span class="ow">not</span> <span class="nb">bytes</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o"><</span> <span class="n">header_size</span><span class="p">)):</span> 119 <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Can not read all </span><span class="si">%s</span><span class="s2"> bytes of global frame extended data header"</span><span class="p">,</span> <span class="n">header_size</span><span class="p">)</span> 184 120 <span class="k">return</span> <span class="kc">None</span> 185 121 <span class="k">return</span> <span class="n">AmmosExtendedAudioDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span></div> 186 122 187 <div class="viewcode-block" id="AmmosAudioReader.read_next_audio_data_body"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_audio_data_body">[docs]</a> <span class="k">def</span> <span class="nf">read_next_audio_data_body</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n"> sample_count</span><span class="p">,</span> <span class="n">channel_count</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">):</span>123 <div class="viewcode-block" id="AmmosAudioReader.read_next_audio_data_body"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_audio_data_body">[docs]</a> <span class="k">def</span> <span class="nf">read_next_audio_data_body</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number_of_samples</span><span class="p">,</span> <span class="n">number_of_channels</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">):</span> 188 124 <span class="sd">"""</span> 189 125 <span class="sd"> I return the next audio data read from current position in file.</span> 190 126 191 <span class="sd"> :param sample_count: the number of samples per channel inside data body</span>192 <span class="sd"> :type sample_count: int</span>193 194 <span class="sd"> :param channel_count: number of channels (e.g. mono, stereo or even more)</span>195 <span class="sd"> :type channel_count: int</span>127 <span class="sd"> :param number_of_samples: the number of samples per channel inside data body</span> 128 <span class="sd"> :type number_of_samples: int</span> 129 130 <span class="sd"> :param number_of_channels: number of channels (e.g. mono, stereo or even more)</span> 131 <span class="sd"> :type number_of_channels: int</span> 196 132 197 133 <span class="sd"> :param sample_size: sample size in bytes (1, 2 or 4 bytes)</span> … … 201 137 <span class="sd"> :rtype: bytes</span> 202 138 <span class="sd"> """</span> 203 <span class="c1"># FIXME: Describe the parameters better</span> 204 205 <span class="n">total</span> <span class="o">=</span> <span class="n">sample_count</span><span class="o">*</span><span class="n">channel_count</span><span class="o">*</span><span class="n">sample_size</span> 206 207 <span class="n">byte_string</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">total</span><span class="p">)</span> 139 <span class="n">total</span> <span class="o">=</span> <span class="n">number_of_samples</span><span class="o">*</span><span class="n">number_of_channels</span><span class="o">*</span><span class="n">sample_size</span> 140 141 <span class="n">byte_string</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ammos_file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">total</span><span class="p">)</span> 208 142 209 143 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">byte_string</span><span class="p">)</span> <span class="o">!=</span> <span class="n">total</span><span class="p">:</span> 210 <span class="nb">print</span><span class="p">(</span><span class="s2">"Can not read all"</span><span class="p">,</span> <span class="n">total</span><span class="p">,</span> <span class="s2">"bytes of data body"</span><span class="p">)</span> 211 <span class="k">return</span> <span class="kc">None</span> 212 <span class="nb">print</span><span class="p">([</span><span class="nb">hex</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">byte_string</span><span class="p">])</span> 213 <span class="k">return</span> <span class="n">byte_string</span></div> 214 215 <div class="viewcode-block" id="AmmosAudioReader.read_next_global_frame_body"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_global_frame_body">[docs]</a> <span class="k">def</span> <span class="nf">read_next_global_frame_body</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">global_frame_header</span><span class="p">):</span> 216 144 <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Can not read all </span><span class="si">%s</span><span class="s2"> bytes of data body"</span><span class="p">,</span> <span class="n">total</span><span class="p">)</span> 145 <span class="k">return</span> <span class="kc">None</span> 146 <span class="k">return</span> <span class="n">AmmosAudioDataBody</span><span class="p">(</span><span class="n">byte_string</span><span class="p">,</span> <span class="n">number_of_channels</span><span class="p">,</span> <span class="n">number_of_samples</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">)</span></div> 147 148 <div class="viewcode-block" id="AmmosAudioReader.read_next_global_frame_body"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_global_frame_body">[docs]</a> <span class="k">def</span> <span class="nf">read_next_global_frame_body</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data_header_length</span><span class="p">):</span> 149 <span class="sd">"""</span> 150 <span class="sd"> I return the next global frame body read from current position in file.</span> 151 152 <span class="sd"> :param global_frame_header:</span> 153 <span class="sd"> """</span> 217 154 <span class="n">audio_data_header</span> <span class="o">=</span> <span class="kc">None</span> 218 155 219 <span class="k">if</span> <span class="n"> global_frame_header</span><span class="o">.</span><span class="n">data_header_length</span> <span class="o">==</span> <span class="n">AmmosAudioReader</span><span class="o">.</span><span class="n">STANDARD_AUDIO_DATA_HEADER_SIZE</span><span class="p">:</span>220 <span class="n b">print</span><span class="p">(</span><span class="s2">"Read standard data header"</span><span class="p">)</span>156 <span class="k">if</span> <span class="n">data_header_length</span> <span class="o">==</span> <span class="n">AmmosAudioDataHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span><span class="p">:</span> 157 <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Read standard data header"</span><span class="p">)</span> 221 158 <span class="n">audio_data_header</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_global_frame_body_data_header</span><span class="p">()</span> 222 159 223 <span class="k">if</span> <span class="n">global_frame_header</span><span class="o">.</span><span class="n">data_header_length</span> <span class="o">==</span> <span class="n">AmmosAudioReader</span><span class="o">.</span><span class="n">EXTENDED_AUDIO_DATA_HEADER_SIZE</span><span class="p">:</span> 224 <span class="nb">print</span><span class="p">(</span><span class="s2">"Read extended data header"</span><span class="p">)</span> 160 <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Data header length </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">data_header_length</span><span class="p">)</span> 161 <span class="k">if</span> <span class="n">data_header_length</span> <span class="o">==</span> <span class="n">AmmosExtendedAudioDataHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span><span class="p">:</span> 162 <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Read extended data header"</span><span class="p">)</span> 225 163 <span class="n">audio_data_header</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_global_frame_body_extended_data_header</span><span class="p">()</span> 226 164 227 165 <span class="k">if</span> <span class="n">audio_data_header</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> 228 <span class="n b">print</span><span class="p">(</span><span class="s2">"Data header missing or format unknown"</span><span class="p">)</span>229 <span class="k">return</span> <span class="kc">None</span> 230 231 <span class="n">audio_data_body</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_audio_data_body</span><span class="p">(</span><span class="n">audio_data_header</span><span class="o">.</span><span class="n"> sample_count</span><span class="p">,</span>232 <span class="n">audio_data_header</span><span class="o">.</span><span class="n"> channel_count</span><span class="p">,</span>166 <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Data header missing or format unknown"</span><span class="p">)</span> 167 <span class="k">return</span> <span class="kc">None</span> 168 169 <span class="n">audio_data_body</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_audio_data_body</span><span class="p">(</span><span class="n">audio_data_header</span><span class="o">.</span><span class="n">number_of_samples</span><span class="p">,</span> 170 <span class="n">audio_data_header</span><span class="o">.</span><span class="n">number_of_channels</span><span class="p">,</span> 233 171 <span class="n">audio_data_header</span><span class="o">.</span><span class="n">sample_size</span><span class="p">)</span> 234 172 235 173 <span class="k">if</span> <span class="n">audio_data_body</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> 236 <span class="n b">print</span><span class="p">(</span><span class="s2">"Data body missing"</span><span class="p">)</span>174 <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Data body missing"</span><span class="p">)</span> 237 175 <span class="k">return</span> <span class="kc">None</span> 238 176 239 177 <span class="k">return</span> <span class="n">AmmosGlobalFrameBody</span><span class="p">(</span><span class="n">audio_data_header</span><span class="p">,</span> <span class="n">audio_data_body</span><span class="p">)</span></div> 240 178 241 <div class="viewcode-block" id="AmmosAudioReader.read_next_single_frame"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_single_frame">[docs]</a> <span class="k">def</span> <span class="nf">read_next_single_frame</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 242 243 <span class="n">global_frame_header</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_global_frame_header</span><span class="p">()</span> 244 245 <span class="nb">print</span><span class="p">(</span><span class="n">global_frame_header</span><span class="p">)</span> 246 247 <span class="k">if</span> <span class="n">global_frame_header</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> 248 <span class="nb">print</span><span class="p">(</span><span class="s2">"Global frame header missing"</span><span class="p">)</span> 249 <span class="k">return</span> <span class="kc">None</span> 250 251 <span class="k">if</span> <span class="n">global_frame_header</span><span class="o">.</span><span class="n">data_header_length</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> 252 <span class="nb">print</span><span class="p">(</span><span class="s2">"Data header length empty"</span><span class="p">)</span> 253 <span class="k">return</span> <span class="kc">None</span> 254 255 <span class="k">if</span> <span class="n">global_frame_header</span><span class="o">.</span><span class="n">frame_type</span> <span class="o">==</span> <span class="mi">256</span><span class="p">:</span> 256 <span class="nb">print</span><span class="p">(</span><span class="s2">"Audio Datastream found"</span><span class="p">)</span> 257 <span class="n">global_frame_body</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_global_frame_body</span><span class="p">(</span><span class="n">global_frame_header</span><span class="p">)</span> 258 <span class="k">if</span> <span class="n">global_frame_body</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> 259 <span class="k">return</span> <span class="kc">None</span> 260 <span class="k">else</span><span class="p">:</span> 261 <span class="nb">print</span><span class="p">(</span><span class="s2">"Unsupported frame type"</span><span class="p">,</span> <span class="n">global_frame_header</span><span class="o">.</span><span class="n">frame_type</span><span class="p">,</span> <span class="s2">"found"</span><span class="p">)</span> 262 <span class="k">return</span> <span class="kc">None</span> 263 264 <span class="n">ammos_single_frame</span> <span class="o">=</span> <span class="n">AmmosSingleFrame</span><span class="p">(</span><span class="n">global_frame_header</span><span class="p">,</span> <span class="n">global_frame_body</span><span class="p">)</span> 265 <span class="k">return</span> <span class="n">ammos_single_frame</span></div></div> 179 <div class="viewcode-block" id="AmmosAudioReader.pcm_for_channel"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.pcm_for_channel">[docs]</a> <span class="k">def</span> <span class="nf">pcm_for_channel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">a_channel</span><span class="p">):</span> 180 <span class="sd">"""</span> 181 <span class="sd"> I return the raw pcm audio data for a given channel.</span> 182 183 <span class="sd"> :param a_channel: the channel I have to extract</span> 184 <span class="sd"> :type a_channel: int</span> 185 186 <span class="sd"> :rtype: bytes</span> 187 <span class="sd"> """</span> 188 <span class="k">return</span> <span class="sa">b</span><span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">each</span><span class="o">.</span><span class="n">global_frame_body</span><span class="o">.</span><span class="n">data_body</span><span class="o">.</span><span class="n">pcm_for_channel</span><span class="p">(</span><span class="n">a_channel</span><span class="p">)</span> <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">container</span><span class="o">.</span><span class="n">global_frames</span><span class="p">])</span></div></div> 266 189 </pre></div> 267 190 -
doc/html/_modules/ammosreader/AmmosAudioSocketReader.html
reab48d0 r299c79c 64 64 65 65 <h1>Source code for ammosreader.AmmosAudioSocketReader</h1><div class="highlight"><pre> 66 <span></span><span class="kn">import</span> <span class="nn">socket</span> 66 <span></span><span class="sd">"""I read a Ammos datastream from a socket."""</span> 67 68 <span class="kn">import</span> <span class="nn">select</span> 69 <span class="kn">import</span> <span class="nn">socket</span> 67 70 <span class="kn">from</span> <span class="nn">collections</span> <span class="kn">import</span> <span class="n">deque</span> 68 69 71 <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> 70 72 <span class="kn">from</span> <span class="nn">ammosreader.AmmosAudioDataHeader</span> <span class="kn">import</span> <span class="n">AmmosAudioDataHeader</span> … … 74 76 75 77 <div class="viewcode-block" id="AmmosAudioSocketReader"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioSocketReader.AmmosAudioSocketReader">[docs]</a><span class="k">class</span> <span class="nc">AmmosAudioSocketReader</span><span class="p">:</span> 76 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">socket</span><span class="p">:</span><span class="n">socket</span><span class="o">.</span><span class="n">socket</span><span class="p"> ):</span>78 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">socket</span><span class="p">:</span><span class="n">socket</span><span class="o">.</span><span class="n">socket</span><span class="p">,</span> <span class="n">debug</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> 77 79 <span class="sd">"""</span> 78 80 <span class="sd"> Initializes the AmmosAudioSocketReader</span> … … 80 82 <span class="sd"> Args:</span> 81 83 <span class="sd"> socket (socket.socket): socket to read from</span> 84 <span class="sd"> debug (bool): if true, prints debug information</span> 82 85 <span class="sd"> """</span> 83 86 … … 88 91 <span class="bp">self</span><span class="o">.</span><span class="n">__socket</span> <span class="o">=</span> <span class="n">socket</span> 89 92 90 <span class="k">def</span> <span class="nf">__read_next_audio_data_body</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sample_count</span><span class="p">:</span><span class="nb">int</span><span class="p">,</span> <span class="n">channel_count</span><span class="p">:</span><span class="nb">int</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">:</span><span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bytearray</span><span class="p">:</span> 93 <span class="c1">#</span> 94 <span class="bp">self</span><span class="o">.</span><span class="n">DEBUG_MODE</span> <span class="o">=</span> <span class="n">debug</span> 95 96 <span class="k">def</span> <span class="nf">__get_next_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">byte_count</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bytearray</span><span class="p">:</span> 91 97 <span class="sd">"""</span> 92 <span class="sd"> reads the next audio data body</span>98 <span class="sd"> Gets the next bytes from the socket, for example headers and body data.</span> 93 99 94 100 <span class="sd"> Args:</span> 95 <span class="sd"> sample_count (int): amount of samples</span> 96 <span class="sd"> channel_count (int): amount of channels</span> 97 <span class="sd"> sample_size (int): size of a sample in bytes</span> 101 <span class="sd"> byte_count (int): number of bytes to read</span> 102 103 <span class="sd"> Raises:</span> 104 <span class="sd"> TimeoutError: Raises TimeoutError if the socket does not serve data anymore</span> 98 105 99 106 <span class="sd"> Returns:</span> 100 <span class="sd"> bytearray: contains the audio data</span> 101 <span class="sd"> """</span> 102 103 <span class="n">total</span> <span class="o">=</span> <span class="n">sample_count</span><span class="o">*</span><span class="n">channel_count</span><span class="o">*</span><span class="n">sample_size</span> 107 <span class="sd"> bytearray: data from socket as bytearray</span> 108 <span class="sd"> """</span> 109 104 110 <span class="n">byte_array</span> <span class="o">=</span> <span class="p">[]</span> 105 106 <span class="k">while</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array</span><span class="p">))</span> <span class="o"><</span> <span class="n">total</span><span class="p">:</span> 107 <span class="n">byte_array</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__socket</span><span class="o">.</span><span class="n">recv</span><span class="p">(</span><span class="n">total</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array</span><span class="p">))))</span> 108 109 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array</span><span class="p">))</span> <span class="o">!=</span> <span class="n">total</span><span class="p">:</span> 110 <span class="nb">print</span><span class="p">(</span><span class="s2">"Can not read all"</span><span class="p">,</span> <span class="n">total</span><span class="p">,</span> <span class="s2">"bytes of data body"</span><span class="p">)</span> 111 <span class="k">return</span> <span class="kc">None</span> 111 112 <span class="k">while</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array</span><span class="p">))</span> <span class="o"><</span> <span class="n">byte_count</span><span class="p">:</span> 113 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">DEBUG_MODE</span><span class="p">:</span> 114 <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Remaining Bytes: </span><span class="si">{</span><span class="n">byte_count</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> 115 <span class="bp">self</span><span class="o">.</span><span class="n">__socket</span><span class="o">.</span><span class="n">settimeout</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> 116 <span class="n">new_bytes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__socket</span><span class="o">.</span><span class="n">recv</span><span class="p">(</span><span class="n">byte_count</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array</span><span class="p">)),</span> <span class="n">socket</span><span class="o">.</span><span class="n">MSG_WAITALL</span><span class="p">)</span> 117 118 <span class="k">if</span> <span class="ow">not</span> <span class="n">new_bytes</span><span class="p">:</span> 119 <span class="k">raise</span> <span class="ne">TimeoutError</span><span class="p">(</span><span class="s2">"Socket timed out while reading data"</span><span class="p">)</span> 120 121 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">DEBUG_MODE</span><span class="p">:</span> 122 <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Got </span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">new_bytes</span><span class="p">)</span><span class="si">}</span><span class="s2"> bytes of </span><span class="si">{</span><span class="n">byte_count</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array</span><span class="p">))</span><span class="si">}</span><span class="s2"> ramining"</span><span class="p">)</span> 123 124 <span class="n">byte_array</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_bytes</span><span class="p">)</span> 125 112 126 <span class="k">return</span> <span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array</span><span class="p">)</span> 113 127 … … 125 139 <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">frombuffer</span><span class="p">(</span><span class="n">audio_data_body</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">int16</span><span class="p">)</span> 126 140 127 <div class="viewcode-block" id="AmmosAudioSocketReader.read_next_frame"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioSocketReader.AmmosAudioSocketReader.read_next_frame">[docs]</a> <span class="k">def</span> <span class="nf">read_next_frame</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">bytearray</span><span class="p">,</span> <span class="nb">int</span><span class="p">]:</span> 128 <span class="sd">"""</span> 129 <span class="sd"> reads the next ammos audio frame</span> 141 <div class="viewcode-block" id="AmmosAudioSocketReader.read_next_frame"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosAudioSocketReader.AmmosAudioSocketReader.read_next_frame">[docs]</a> <span class="k">def</span> <span class="nf">read_next_frame</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">tuple</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">,</span> <span class="nb">int</span><span class="p">]:</span> 142 <span class="sd">"""Reads the next ammos audio frame from socket</span> 143 144 <span class="sd"> Raises:</span> 145 <span class="sd"> TimeoutError: Raisees TimeoutError if the socket does not serve data anymore</span> 130 146 131 147 <span class="sd"> Returns:</span> 132 <span class="sd"> tuple[bytearray, int]: contains the audio data and the sample rate</span> 133 <span class="sd"> """</span> 148 <span class="sd"> tuple[np.ndarray, int]: Contains the audio data and the sample rate</span> 149 <span class="sd"> """</span> 150 151 <span class="c1"># get first byte of the day</span> 152 <span class="bp">self</span><span class="o">.</span><span class="n">__socket</span><span class="o">.</span><span class="n">settimeout</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> 153 154 <span class="n">new_byte</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__socket</span><span class="o">.</span><span class="n">recv</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">socket</span><span class="o">.</span><span class="n">MSG_WAITALL</span><span class="p">)</span> 155 <span class="c1"># raise Exception if socket does not return anything</span> 156 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">new_byte</span><span class="p">)</span> <span class="o"><</span> <span class="mi">1</span><span class="p">:</span> 157 <span class="k">raise</span> <span class="ne">TimeoutError</span> 158 134 159 <span class="c1">#read loop</span> 135 <span class="n">byte</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__socket</span><span class="o">.</span><span class="n">recv</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> 136 137 <span class="k">while</span> <span class="n">byte</span><span class="p">:</span> 160 <span class="k">while</span> <span class="n">new_byte</span><span class="p">:</span> 138 161 <span class="c1">#</span> 139 <span class="bp">self</span><span class="o">.</span><span class="n">__magic_word_buffer</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n"> byte</span><span class="p">)</span>162 <span class="bp">self</span><span class="o">.</span><span class="n">__magic_word_buffer</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_byte</span><span class="p">)</span> 140 163 <span class="n">byte_array</span> <span class="o">=</span> <span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__magic_word_buffer</span><span class="p">)</span> 141 164 … … 144 167 145 168 <span class="n">ammos_global_header_buffer</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__magic_word_buffer</span><span class="p">)</span> 146 <span class="k">while</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ammos_global_header_buffer</span><span class="p">))</span> <span class="o"><</span> <span class="mi">24</span><span class="p">:</span> 147 <span class="n">ammos_global_header_buffer</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__socket</span><span class="o">.</span><span class="n">recv</span><span class="p">(</span><span class="mi">24</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ammos_global_header_buffer</span><span class="p">))))</span> 169 <span class="n">ammos_global_header_buffer</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__get_next_data</span><span class="p">(</span><span class="mi">20</span><span class="p">))</span> 170 <span class="c1">#while len(b''.join(ammos_global_header_buffer)) < 24:</span> 171 <span class="c1"># ammos_global_header_buffer.append(self.__socket.recv(24 - len(b''.join(ammos_global_header_buffer))))</span> 148 172 149 173 <span class="n">ammos_global_header</span> <span class="o">=</span> <span class="n">AmmosGlobalFrameHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">ammos_global_header_buffer</span><span class="p">))</span> 150 <span class="nb">print</span><span class="p">(</span><span class="n">ammos_global_header</span><span class="p">)</span> 174 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">DEBUG_MODE</span><span class="p">:</span> 175 <span class="nb">print</span><span class="p">(</span><span class="n">ammos_global_header</span><span class="p">)</span> 151 176 152 177 <span class="k">if</span> <span class="n">ammos_global_header</span><span class="o">.</span><span class="n">data_header_length</span> <span class="o">==</span> <span class="mi">44</span> <span class="ow">and</span> <span class="n">ammos_global_header</span><span class="o">.</span><span class="n">frame_type</span> <span class="o">==</span> <span class="mi">256</span><span class="p">:</span> 153 <span class="n">byte_array_header</span> <span class="o">=</span> <span class="p">[]</span> 154 <span class="k">while</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array_header</span><span class="p">))</span> <span class="o"><</span> <span class="mi">44</span><span class="p">:</span> 155 <span class="n">byte_array_header</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__socket</span><span class="o">.</span><span class="n">recv</span><span class="p">(</span><span class="mi">44</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array_header</span><span class="p">))))</span> 156 157 <span class="n">ammos_extended_audio_data_header</span> <span class="o">=</span> <span class="n">AmmosExtendedAudioDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array_header</span><span class="p">))</span> 158 <span class="nb">print</span><span class="p">(</span><span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_count</span><span class="p">,</span> <span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">channel_count</span><span class="p">,</span> <span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_size</span><span class="p">)</span> 159 <span class="n">audio_body</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__read_next_audio_data_body</span><span class="p">(</span><span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_count</span><span class="p">,</span> 160 <span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">channel_count</span><span class="p">,</span> 161 <span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_size</span><span class="p">)</span> 178 <span class="n">byte_array_header</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__get_next_data</span><span class="p">(</span><span class="mi">44</span><span class="p">)</span> 179 <span class="c1">#while len(b''.join(byte_array_header)) < 44:</span> 180 <span class="c1"># byte_array_header.append(self.__socket.recv(44 - len(b''.join(byte_array_header))))</span> 181 182 <span class="n">ammos_extended_audio_data_header</span> <span class="o">=</span> <span class="n">AmmosExtendedAudioDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="n">byte_array_header</span><span class="p">)</span> 183 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">DEBUG_MODE</span><span class="p">:</span> 184 <span class="nb">print</span><span class="p">(</span><span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_count</span><span class="p">,</span> <span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">channel_count</span><span class="p">,</span> <span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_size</span><span class="p">)</span> 185 <span class="n">audio_body</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__get_next_data</span><span class="p">(</span><span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_count</span><span class="o">*</span> 186 <span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">channel_count</span><span class="o">*</span> 187 <span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_size</span><span class="p">)</span> 162 188 163 189 <span class="n">audio_array</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__audio_data_body_to_numpy</span><span class="p">(</span><span class="n">audio_body</span><span class="p">)</span> 164 <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">audio_array</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">audio_array</span><span class="p">)</span><span class="o">/</span><span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_rate</span><span class="p">)</span> 190 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">DEBUG_MODE</span><span class="p">:</span> 191 <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">audio_array</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">audio_array</span><span class="p">)</span><span class="o">/</span><span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_rate</span><span class="p">)</span> 165 192 166 193 <span class="k">return</span> <span class="p">[</span><span class="n">audio_array</span><span class="p">,</span> <span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_rate</span><span class="p">]</span> 167 194 168 195 <span class="k">elif</span> <span class="n">ammos_global_header</span><span class="o">.</span><span class="n">data_header_length</span> <span class="o">==</span> <span class="mi">36</span> <span class="ow">and</span> <span class="n">ammos_global_header</span><span class="o">.</span><span class="n">frame_type</span> <span class="o">==</span> <span class="mi">256</span><span class="p">:</span> 169 <span class="n">byte_array_header</span> <span class="o">=</span> <span class="p">[]</span> 170 <span class="k">while</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array_header</span><span class="p">))</span> <span class="o"><</span> <span class="mi">36</span><span class="p">:</span> 171 <span class="n">byte_array_header</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__socket</span><span class="o">.</span><span class="n">recv</span><span class="p">(</span><span class="mi">36</span> <span class="o">-</span> <span class="nb">len</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array_header</span><span class="p">))))</span> 172 173 <span class="n">ammos_audio_data_header</span> <span class="o">=</span> <span class="n">AmmosAudioDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="sa">b</span><span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">byte_array_header</span><span class="p">))</span> 174 <span class="nb">print</span><span class="p">(</span><span class="n">ammos_audio_data_header</span><span class="o">.</span><span class="n">sample_count</span><span class="p">,</span> <span class="n">ammos_audio_data_header</span><span class="o">.</span><span class="n">channel_count</span><span class="p">,</span> <span class="n">ammos_audio_data_header</span><span class="o">.</span><span class="n">sample_size</span><span class="p">)</span> 175 <span class="n">audio_body</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__read_next_audio_data_body</span><span class="p">(</span><span class="n">ammos_audio_data_header</span><span class="o">.</span><span class="n">sample_count</span><span class="p">,</span> 176 <span class="n">ammos_audio_data_header</span><span class="o">.</span><span class="n">channel_count</span><span class="p">,</span> 177 <span class="n">ammos_audio_data_header</span><span class="o">.</span><span class="n">sample_size</span><span class="p">)</span> 196 <span class="n">byte_array_header</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__get_next_data</span><span class="p">(</span><span class="mi">36</span><span class="p">)</span> 197 <span class="c1">#while len(b''.join(byte_array_header)) < 36:</span> 198 <span class="c1"># byte_array_header.append(self.__socket.recv(36 - len(b''.join(byte_array_header))))</span> 199 200 <span class="n">ammos_audio_data_header</span> <span class="o">=</span> <span class="n">AmmosAudioDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="n">byte_array_header</span><span class="p">)</span> 201 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">DEBUG_MODE</span><span class="p">:</span> 202 <span class="nb">print</span><span class="p">(</span><span class="n">ammos_audio_data_header</span><span class="o">.</span><span class="n">sample_count</span><span class="p">,</span> <span class="n">ammos_audio_data_header</span><span class="o">.</span><span class="n">channel_count</span><span class="p">,</span> <span class="n">ammos_audio_data_header</span><span class="o">.</span><span class="n">sample_size</span><span class="p">)</span> 203 <span class="n">audio_body</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__get_next_data</span><span class="p">(</span><span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_count</span><span class="o">*</span> 204 <span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">channel_count</span><span class="o">*</span> 205 <span class="n">ammos_extended_audio_data_header</span><span class="o">.</span><span class="n">sample_size</span><span class="p">)</span> 178 206 179 207 <span class="n">audio_array</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__audio_data_body_to_numpy</span><span class="p">(</span><span class="n">audio_body</span><span class="p">)</span> 180 <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">audio_array</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">audio_array</span><span class="p">)</span><span class="o">/</span><span class="n">ammos_audio_data_header</span><span class="o">.</span><span class="n">sample_rate</span><span class="p">)</span> 208 <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">DEBUG_MODE</span><span class="p">:</span> 209 <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">audio_array</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">audio_array</span><span class="p">)</span><span class="o">/</span><span class="n">ammos_audio_data_header</span><span class="o">.</span><span class="n">sample_rate</span><span class="p">)</span> 181 210 182 211 <span class="k">return</span> <span class="p">[</span><span class="n">audio_array</span><span class="p">,</span> <span class="n">ammos_audio_data_header</span><span class="o">.</span><span class="n">sample_rate</span><span class="p">]</span> 183 212 184 <span class="n">byte</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__socket</span><span class="o">.</span><span class="n">recv</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> 213 <span class="c1"># get the next byte</span> 214 <span class="bp">self</span><span class="o">.</span><span class="n">__socket</span><span class="o">.</span><span class="n">settimeout</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> 215 216 <span class="n">new_byte</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__socket</span><span class="o">.</span><span class="n">recv</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">socket</span><span class="o">.</span><span class="n">MSG_WAITALL</span><span class="p">)</span> 217 <span class="c1"># raise Exception if socket does not return anything</span> 218 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">new_byte</span><span class="p">)</span> <span class="o"><</span> <span class="mi">1</span><span class="p">:</span> 219 <span class="k">raise</span> <span class="ne">TimeoutError</span> 185 220 186 221 <span class="k">return</span> <span class="kc">None</span></div></div> … … 193 228 <p> 194 229 © Copyright 2022, KIDZg. 195 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4. 4.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> .230 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4.5.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> . 196 231 (Revision ) 197 232 </p> -
doc/html/_modules/ammosreader/AmmosContainer.html
reab48d0 r299c79c 69 69 70 70 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">frames</span><span class="p">):</span> 71 <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span> 72 <span class="bp">self</span><span class="o">.</span><span class="n">global_frames</span> <span class="o">=</span> <span class="n">frames</span> 73 <span class="bp">self</span><span class="o">.</span><span class="n">tags</span> <span class="o">=</span> <span class="p">[]</span> 71 <span class="bp">self</span><span class="o">.</span><span class="n">__name</span> <span class="o">=</span> <span class="n">name</span> 72 <span class="bp">self</span><span class="o">.</span><span class="n">__global_frames</span> <span class="o">=</span> <span class="n">frames</span> 73 <span class="bp">self</span><span class="o">.</span><span class="n">__tags</span> <span class="o">=</span> <span class="p">[]</span> 74 75 <span class="nd">@property</span> 76 <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 77 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__name</span> 78 79 <span class="nd">@name</span><span class="o">.</span><span class="n">setter</span> 80 <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">a_name</span><span class="p">):</span> 81 <span class="bp">self</span><span class="o">.</span><span class="n">__name</span> <span class="o">=</span> <span class="n">a_name</span> 82 83 <span class="nd">@property</span> 84 <span class="k">def</span> <span class="nf">global_frames</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 85 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__global_frames</span> 74 86 75 87 <div class="viewcode-block" id="AmmosContainer.add_tag"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosContainer.AmmosContainer.add_tag">[docs]</a> <span class="k">def</span> <span class="nf">add_tag</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span> 76 <span class="bp">self</span><span class="o">.</span><span class="n"> tags</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tag</span><span class="p">)</span></div>88 <span class="bp">self</span><span class="o">.</span><span class="n">__tags</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tag</span><span class="p">)</span></div> 77 89 78 90 <div class="viewcode-block" id="AmmosContainer.add_frame"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosContainer.AmmosContainer.add_frame">[docs]</a> <span class="k">def</span> <span class="nf">add_frame</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">frame</span><span class="p">):</span> 79 <span class="bp">self</span><span class="o">.</span><span class="n"> global_frames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span></div>91 <span class="bp">self</span><span class="o">.</span><span class="n">__global_frames</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span></div> 80 92 81 93 <div class="viewcode-block" id="AmmosContainer.size"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosContainer.AmmosContainer.size">[docs]</a> <span class="k">def</span> <span class="nf">size</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 82 <span class=" nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">global_frames</span><span class="p">)</span></div>94 <span class="k">return</span> <span class="nb">sum</span><span class="p">([</span><span class="n">each</span><span class="o">.</span><span class="n">global_frame_header</span><span class="o">.</span><span class="n">frame_length</span> <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">__global_frames</span><span class="p">])</span></div> 83 95 84 96 <div class="viewcode-block" id="AmmosContainer.frequencies"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosContainer.AmmosContainer.frequencies">[docs]</a> <span class="k">def</span> <span class="nf">frequencies</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 85 <span class="k">return</span> <span class="nb">set</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">frame</span><span class="p">:</span> <span class="n">frame</span><span class="o">.</span><span class="n">global_frame_body</span><span class="o">.</span><span class="n">data_header</span><span class="o">.</span><span class="n">frequency</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n"> global_frames</span><span class="p">)))</span></div>97 <span class="k">return</span> <span class="nb">set</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">frame</span><span class="p">:</span> <span class="n">frame</span><span class="o">.</span><span class="n">global_frame_body</span><span class="o">.</span><span class="n">data_header</span><span class="o">.</span><span class="n">frequency</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">__global_frames</span><span class="p">)))</span></div> 86 98 87 99 <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 88 <span class="n">start_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n"> global_frames</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">global_frame_body</span><span class="o">.</span><span class="n">data_header</span><span class="o">.</span><span class="n">timestamp</span>89 <span class="n">end_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n"> global_frames</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">global_frame_body</span><span class="o">.</span><span class="n">data_header</span><span class="o">.</span><span class="n">timestamp</span>100 <span class="n">start_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__global_frames</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">global_frame_body</span><span class="o">.</span><span class="n">data_header</span><span class="o">.</span><span class="n">timestamp</span> 101 <span class="n">end_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__global_frames</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">global_frame_body</span><span class="o">.</span><span class="n">data_header</span><span class="o">.</span><span class="n">timestamp</span> 90 102 91 <span class="n">frq</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n"> global_frames</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">global_frame_body</span><span class="o">.</span><span class="n">data_header</span><span class="o">.</span><span class="n">frequency</span><span class="p">)</span>103 <span class="n">frq</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__global_frames</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">global_frame_body</span><span class="o">.</span><span class="n">data_header</span><span class="o">.</span><span class="n">frequency</span><span class="p">)</span> 92 104 93 105 <span class="k">return</span> <span class="p">(</span><span class="s2">"Start time: "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">start_time</span><span class="p">)</span> <span class="o">+</span> 94 <span class="s2">"</span><span class="se">\n</span><span class="s2">End time : "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">end_time</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">Frequencies: "</span> <span class="o">+</span> <span class="n">frq</span><span class="p">)</span></div> 106 <span class="s2">"</span><span class="se">\n</span><span class="s2">End time : "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">end_time</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">Frequencies: "</span> <span class="o">+</span> <span class="n">frq</span><span class="p">)</span> 107 108 <div class="viewcode-block" id="AmmosContainer.data_only"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosContainer.AmmosContainer.data_only">[docs]</a> <span class="k">def</span> <span class="nf">data_only</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 109 <span class="k">return</span> <span class="p">[</span><span class="n">each</span><span class="o">.</span><span class="n">global_frame_body</span><span class="o">.</span><span class="n">data_body</span><span class="o">.</span><span class="n">data</span> <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">__global_frames</span><span class="p">]</span></div></div> 95 110 </pre></div> 96 111 … … 101 116 <p> 102 117 © Copyright 2022, KIDZg. 103 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4. 4.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> .118 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4.5.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> . 104 119 (Revision ) 105 120 </p> -
doc/html/_modules/ammosreader/AmmosExtendedAudioDataHeader.html
reab48d0 r299c79c 64 64 65 65 <h1>Source code for ammosreader.AmmosExtendedAudioDataHeader</h1><div class="highlight"><pre> 66 <span></span><span class="kn">import</span> <span class="nn">struct</span> 67 <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> 66 <span></span><span class="sd">"""I provide an Ammos extended data header for audio data frames."""</span> 67 68 <span class="kn">import</span> <span class="nn">struct</span> 68 69 <span class="kn">from</span> <span class="nn">ammosreader.AmmosAudioDataHeader</span> <span class="kn">import</span> <span class="n">AmmosAudioDataHeader</span> 69 70 70 71 71 <div class="viewcode-block" id="AmmosExtendedAudioDataHeader"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader">[docs]</a><span class="k">class</span> <span class="nc">AmmosExtendedAudioDataHeader</span><span class="p">():</span> 72 <div class="viewcode-block" id="AmmosExtendedAudioDataHeader"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader">[docs]</a><span class="k">class</span> <span class="nc">AmmosExtendedAudioDataHeader</span><span class="p">:</span> 73 74 <span class="n">HEADER_SIZE</span> <span class="o">=</span> <span class="mi">44</span> <span class="c1"># 11 words</span> 72 75 73 76 <div class="viewcode-block" id="AmmosExtendedAudioDataHeader.from_bytes"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader.from_bytes">[docs]</a> <span class="nd">@classmethod</span> 74 77 <span class="k">def</span> <span class="nf">from_bytes</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">):</span> 75 <span class="n">standard_header</span> <span class="o">=</span> <span class="n">AmmosAudioDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="nb">bytes</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">36</span><span class="p">])</span> 76 <span class="n">extended_header_elements</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'Q'</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">[</span><span class="mi">36</span><span class="p">:])</span> 78 <span class="sd">"""I return a new AMMOS extended data header for audio frames built from given bytes."""</span> 79 <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o">==</span> <span class="bp">cls</span><span class="o">.</span><span class="n">HEADER_SIZE</span> 80 <span class="n">standard_header</span> <span class="o">=</span> <span class="n">AmmosAudioDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="nb">bytes</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="n">AmmosAudioDataHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span><span class="p">])</span> 81 <span class="n">extended_header_elements</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'<Q'</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">[</span><span class="n">AmmosAudioDataHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span><span class="p">:])</span> 77 82 <span class="n">timestamp</span> <span class="o">=</span> <span class="n">extended_header_elements</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> 78 83 <span class="n">sample_rate</span> <span class="o">=</span> <span class="n">standard_header</span><span class="o">.</span><span class="n">sample_rate</span> … … 81 86 <span class="n">demod_bandwidth</span> <span class="o">=</span> <span class="n">standard_header</span><span class="o">.</span><span class="n">demod_bandwidth</span> 82 87 <span class="n">demod_type</span> <span class="o">=</span> <span class="n">standard_header</span><span class="o">.</span><span class="n">demod_type</span> 83 <span class="n"> sample_count</span> <span class="o">=</span> <span class="n">standard_header</span><span class="o">.</span><span class="n">sample_count</span>84 <span class="n"> channel_count</span> <span class="o">=</span> <span class="n">standard_header</span><span class="o">.</span><span class="n">channel_count</span>88 <span class="n">number_of_samples</span> <span class="o">=</span> <span class="n">standard_header</span><span class="o">.</span><span class="n">number_of_samples</span> 89 <span class="n">number_of_channels</span> <span class="o">=</span> <span class="n">standard_header</span><span class="o">.</span><span class="n">number_of_channels</span> 85 90 <span class="n">sample_size</span> <span class="o">=</span> <span class="n">standard_header</span><span class="o">.</span><span class="n">sample_size</span> 86 91 <span class="k">return</span> <span class="n">AmmosExtendedAudioDataHeader</span><span class="p">(</span><span class="n">sample_rate</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">frequency</span><span class="p">,</span> <span class="n">demod_bandwidth</span><span class="p">,</span> <span class="n">demod_type</span><span class="p">,</span> 87 <span class="n"> sample_count</span><span class="p">,</span> <span class="n">channel_count</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">,</span> <span class="n">timestamp</span><span class="p">)</span></div>92 <span class="n">number_of_samples</span><span class="p">,</span> <span class="n">number_of_channels</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">,</span> <span class="n">timestamp</span><span class="p">)</span></div> 88 93 89 94 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sample_rate</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">frequency</span><span class="p">,</span> <span class="n">demod_bandwidth</span><span class="p">,</span> <span class="n">demod_type</span><span class="p">,</span> 90 <span class="n">sample_count</span><span class="p">,</span> <span class="n">channel_count</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">,</span> <span class="n">timestamp</span><span class="p">):</span> 95 <span class="n">number_of_samples</span><span class="p">,</span> <span class="n">number_of_channels</span><span class="p">,</span> <span class="n">sample_size</span><span class="p">,</span> <span class="n">timestamp</span><span class="p">):</span> 96 <span class="sd">"""I return a new AMMOS extended data header for audio frames built from given parameters."""</span> 91 97 <span class="bp">self</span><span class="o">.</span><span class="n">sample_rate</span> <span class="o">=</span> <span class="n">sample_rate</span> 92 98 <span class="bp">self</span><span class="o">.</span><span class="n">status</span> <span class="o">=</span> <span class="n">status</span> … … 94 100 <span class="bp">self</span><span class="o">.</span><span class="n">demod_bandwidth</span> <span class="o">=</span> <span class="n">demod_bandwidth</span> 95 101 <span class="bp">self</span><span class="o">.</span><span class="n">demod_type</span> <span class="o">=</span> <span class="n">demod_type</span> 96 <span class="bp">self</span><span class="o">.</span><span class="n"> sample_count</span> <span class="o">=</span> <span class="n">sample_count</span>97 <span class="bp">self</span><span class="o">.</span><span class="n"> channel_count</span> <span class="o">=</span> <span class="n">channel_count</span>102 <span class="bp">self</span><span class="o">.</span><span class="n">number_of_samples</span> <span class="o">=</span> <span class="n">number_of_samples</span> 103 <span class="bp">self</span><span class="o">.</span><span class="n">number_of_channels</span> <span class="o">=</span> <span class="n">number_of_channels</span> 98 104 <span class="bp">self</span><span class="o">.</span><span class="n">sample_size</span> <span class="o">=</span> <span class="n">sample_size</span> 99 105 <span class="bp">self</span><span class="o">.</span><span class="n">timestamp</span> <span class="o">=</span> <span class="n">timestamp</span></div> -
doc/html/_modules/ammosreader/AmmosExtendedIFDataHeader.html
reab48d0 r299c79c 70 70 71 71 <div class="viewcode-block" id="AmmosExtendedIFDataHeader"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader">[docs]</a><span class="k">class</span> <span class="nc">AmmosExtendedIFDataHeader</span><span class="p">():</span> 72 <span class="sd">"""I implement an Ammos extended data header for IF data frames."""</span> 73 74 <span class="n">HEADER_SIZE</span> <span class="o">=</span> <span class="mi">76</span> 72 75 73 76 <div class="viewcode-block" id="AmmosExtendedIFDataHeader.from_bytes"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader.from_bytes">[docs]</a> <span class="nd">@classmethod</span> 74 77 <span class="k">def</span> <span class="nf">from_bytes</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">):</span> 75 <span class="n">standard_header</span> <span class="o">=</span> <span class="n">AmmosIFDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="nb">bytes</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">56</span><span class="p">])</span> 76 <span class="n">extended_header_elements</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'QQI'</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">[</span><span class="mi">56</span><span class="p">:</span><span class="mi">76</span><span class="p">])</span> 78 <span class="sd">"""I return an AMMOS extended data header from given bytes."""</span> 79 <span class="n">standard_header</span> <span class="o">=</span> <span class="n">AmmosIFDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="nb">bytes</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="n">AmmosIFDataHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span><span class="p">])</span> 80 <span class="n">extended_header_elements</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'<QQI'</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">[</span><span class="n">AmmosIFDataHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span><span class="p">:</span><span class="bp">cls</span><span class="o">.</span><span class="n">HEADER_SIZE</span><span class="p">])</span> 77 81 <span class="n">block_count</span> <span class="o">=</span> <span class="n">standard_header</span><span class="o">.</span><span class="n">block_count</span> 78 82 <span class="n">block_length</span> <span class="o">=</span> <span class="n">standard_header</span><span class="o">.</span><span class="n">block_length</span> … … 99 103 <span class="n">bandwidth</span><span class="p">,</span> <span class="n">sample_rate</span><span class="p">,</span> <span class="n">interpolation</span><span class="p">,</span> <span class="n">decimation</span><span class="p">,</span> <span class="n">voltage_ref</span><span class="p">,</span> <span class="n">stream_start</span><span class="p">,</span> <span class="n">sample_counter</span><span class="p">,</span> 100 104 <span class="n">antenna_correction</span><span class="p">):</span> 101 105 <span class="sd">"""I create a new instance of myself using the above parameters."""</span> 102 106 <span class="bp">self</span><span class="o">.</span><span class="n">size</span> <span class="o">=</span> <span class="n">size</span> 103 107 <span class="bp">self</span><span class="o">.</span><span class="n">block_count</span> <span class="o">=</span> <span class="n">block_count</span> … … 129 133 <span class="s2">"Stream start:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">stream_start</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> 130 134 <span class="s2">"Sample counter:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sample_counter</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> 131 <span class="s2">"Antenna correction:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">antenna_correction</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> 132 <span class="p">)</span> 133 135 <span class="s2">"Antenna correction:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">antenna_correction</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> 134 136 <span class="k">return</span> <span class="n">output</span></div> 135 137 </pre></div> -
doc/html/_modules/ammosreader/AmmosGlobalFrameBody.html
reab48d0 r299c79c 64 64 65 65 <h1>Source code for ammosreader.AmmosGlobalFrameBody</h1><div class="highlight"><pre> 66 < div class="viewcode-block" id="AmmosGlobalFrameBody"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody">[docs]</a><span></span><span class="k">class</span> <span class="nc">AmmosGlobalFrameBody</span><span class="p">():</span>66 <span></span><span class="sd">"""I provide an AMMOS global frame body."""</span> 67 67 68 <div class="viewcode-block" id="AmmosGlobalFrameBody"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody">[docs]</a><span class="k">class</span> <span class="nc">AmmosGlobalFrameBody</span><span class="p">():</span> 69 <span class="sd">"""</span> 70 <span class="sd"> I implement an AMMOS global frame body.</span> 71 72 <span class="sd"> AMMOS frames can store data of various types.</span> 73 <span class="sd"> The data is described in the data header.</span> 74 <span class="sd"> The raw data is then stored in the data body.</span> 75 <span class="sd"> """</span> 68 76 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data_header</span><span class="p">,</span> <span class="n">data_body</span><span class="p">):</span> 69 <span class="bp">self</span><span class="o">.</span><span class="n">data_header</span> <span class="o">=</span> <span class="n">data_header</span> 70 <span class="bp">self</span><span class="o">.</span><span class="n">data_body</span> <span class="o">=</span> <span class="n">data_body</span> 77 <span class="bp">self</span><span class="o">.</span><span class="n">__data_header</span> <span class="o">=</span> <span class="n">data_header</span> 78 <span class="bp">self</span><span class="o">.</span><span class="n">__data_body</span> <span class="o">=</span> <span class="n">data_body</span> 79 80 <span class="nd">@property</span> 81 <span class="k">def</span> <span class="nf">data_header</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 82 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__data_header</span> 83 84 <span class="nd">@data_header</span><span class="o">.</span><span class="n">setter</span> 85 <span class="k">def</span> <span class="nf">data_header</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">a_data_header</span><span class="p">):</span> 86 <span class="bp">self</span><span class="o">.</span><span class="n">__data_header</span> <span class="o">=</span> <span class="n">a_data_header</span> 87 88 <span class="nd">@property</span> 89 <span class="k">def</span> <span class="nf">data_body</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 90 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__data_body</span> 91 92 <span class="nd">@data_body</span><span class="o">.</span><span class="n">setter</span> 93 <span class="k">def</span> <span class="nf">data_body</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data_bytes</span><span class="p">):</span> 94 <span class="bp">self</span><span class="o">.</span><span class="n">__data_body</span> <span class="o">=</span> <span class="n">data_bytes</span> 71 95 72 96 <div class="viewcode-block" id="AmmosGlobalFrameBody.data_bytes_only"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody.data_bytes_only">[docs]</a> <span class="k">def</span> <span class="nf">data_bytes_only</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 73 97 74 <span class="n">byte_string</span> <span class="o">=</span> <span class="s 2">""</span>98 <span class="n">byte_string</span> <span class="o">=</span> <span class="sa">b</span><span class="s2">""</span> 75 99 76 100 <span class="k">for</span> <span class="n">each_block</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_body</span><span class="p">:</span> … … 78 102 <span class="nb">print</span><span class="p">(</span><span class="s2">"Block is nil"</span><span class="p">)</span> 79 103 80 <span class="n">byte_string</span> <span class="o">+=</span> <span class="n">each_block</span><span class="o">.</span><span class="n"> if_data</span>104 <span class="n">byte_string</span> <span class="o">+=</span> <span class="n">each_block</span><span class="o">.</span><span class="n">data</span> 81 105 82 106 <span class="k">return</span> <span class="n">byte_string</span></div></div> -
doc/html/_modules/ammosreader/AmmosGlobalFrameHeader.html
reab48d0 r299c79c 74 74 <span class="k">def</span> <span class="nf">from_bytes</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">):</span> 75 75 76 <span class="n">elements</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">' 4s4s4s4s4s4s'</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">)</span>76 <span class="n">elements</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'<4s4s4s4s4s4s'</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">)</span> 77 77 78 78 <span class="n">magic_word</span> <span class="o">=</span> <span class="n">elements</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">hex</span><span class="p">()</span> … … 93 93 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">magic_word</span><span class="p">,</span> <span class="n">frame_length</span><span class="p">,</span> <span class="n">running_frame_number</span><span class="p">,</span> <span class="n">frame_type</span><span class="p">,</span> <span class="n">data_header_length</span><span class="p">,</span> <span class="n">reserved</span><span class="p">):</span> 94 94 95 <span class="k">if</span> <span class="n">magic_word</span> <span class="o">!=</span> <span class=" bp">self</span><span class="o">.</span><span class="n">MAGIC_WORD</span><span class="p">:</span>95 <span class="k">if</span> <span class="n">magic_word</span> <span class="o">!=</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">MAGIC_WORD</span><span class="p">:</span> 96 96 <span class="nb">print</span><span class="p">(</span><span class="s2">"Wrong magic word"</span><span class="p">)</span> 97 97 <span class="bp">self</span><span class="o">.</span><span class="n">magic_word</span> <span class="o">=</span> <span class="n">magic_word</span> 98 <span class="k">return</span> <span class="kc">None</span>99 98 <span class="k">else</span><span class="p">:</span> 100 99 <span class="bp">self</span><span class="o">.</span><span class="n">magic_word</span> <span class="o">=</span> <span class="n">magic_word</span> -
doc/html/_modules/ammosreader/AmmosIFDataBlock.html
reab48d0 r299c79c 64 64 65 65 <h1>Source code for ammosreader.AmmosIFDataBlock</h1><div class="highlight"><pre> 66 <div class="viewcode-block" id="AmmosIFDataBlock"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFDataBlock.AmmosIFDataBlock">[docs]</a><span></span><span class="k">class</span> <span class="nc">AmmosIFDataBlock</span><span class="p"> ():</span>66 <div class="viewcode-block" id="AmmosIFDataBlock"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFDataBlock.AmmosIFDataBlock">[docs]</a><span></span><span class="k">class</span> <span class="nc">AmmosIFDataBlock</span><span class="p">:</span> 67 67 68 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">if_datablock_header</span><span class="p">,</span> <span class="n">if_data</span><span class="p">):</span> 69 <span class="bp">self</span><span class="o">.</span><span class="n">if_datablock_header</span> <span class="o">=</span> <span class="n">if_datablock_header</span> 70 <span class="bp">self</span><span class="o">.</span><span class="n">if_data</span> <span class="o">=</span> <span class="n">if_data</span></div> 68 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">header</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span> 69 <span class="bp">self</span><span class="o">.</span><span class="n">__header</span> <span class="o">=</span> <span class="n">header</span> 70 <span class="bp">self</span><span class="o">.</span><span class="n">__data</span> <span class="o">=</span> <span class="n">data</span> 71 72 <span class="nd">@property</span> 73 <span class="k">def</span> <span class="nf">header</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 74 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__header</span> 75 76 <span class="nd">@property</span> 77 <span class="k">def</span> <span class="nf">data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 78 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__data</span></div> 71 79 </pre></div> 72 80 -
doc/html/_modules/ammosreader/AmmosIFDataHeader.html
reab48d0 r299c79c 64 64 65 65 <h1>Source code for ammosreader.AmmosIFDataHeader</h1><div class="highlight"><pre> 66 <span></span><span class="kn">import</span> <span class="nn">struct</span> 66 <span></span><span class="sd">"""I provide a Ammos data header for IF data frames."""</span> 67 68 <span class="kn">import</span> <span class="nn">struct</span> 67 69 <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> 68 70 69 71 70 72 <div class="viewcode-block" id="AmmosIFDataHeader"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFDataHeader.AmmosIFDataHeader">[docs]</a><span class="k">class</span> <span class="nc">AmmosIFDataHeader</span><span class="p">():</span> 73 <span class="sd">"""I implement an Ammos data header for IF data frames."""</span> 74 75 <span class="n">HEADER_SIZE</span> <span class="o">=</span> <span class="mi">56</span> 71 76 72 77 <div class="viewcode-block" id="AmmosIFDataHeader.from_bytes"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFDataHeader.AmmosIFDataHeader.from_bytes">[docs]</a> <span class="nd">@classmethod</span> 73 78 <span class="k">def</span> <span class="nf">from_bytes</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">):</span> 79 <span class="sd">"""I return an AMMOS data header from given bytes."""</span> 80 <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o">==</span> <span class="bp">cls</span><span class="o">.</span><span class="n">HEADER_SIZE</span> 74 81 <span class="n">elements</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'<IIQIIIQIIIIi'</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">)</span> 75 82 <span class="n">block_count</span> <span class="o">=</span> <span class="n">elements</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> … … 92 99 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">block_count</span><span class="p">,</span> <span class="n">block_length</span><span class="p">,</span> <span class="n">timestamp</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">source_id</span><span class="p">,</span> <span class="n">source_state</span><span class="p">,</span> <span class="n">frequency</span><span class="p">,</span> 93 100 <span class="n">bandwidth</span><span class="p">,</span> <span class="n">sample_rate</span><span class="p">,</span> <span class="n">interpolation</span><span class="p">,</span> <span class="n">decimation</span><span class="p">,</span> <span class="n">voltage_ref</span><span class="p">):</span> 101 <span class="sd">"""I create a new instance of myself using the above parameters."""</span> 94 102 <span class="bp">self</span><span class="o">.</span><span class="n">block_count</span> <span class="o">=</span> <span class="n">block_count</span> 95 103 <span class="bp">self</span><span class="o">.</span><span class="n">block_length</span> <span class="o">=</span> <span class="n">block_length</span> … … 104 112 <span class="bp">self</span><span class="o">.</span><span class="n">decimation</span> <span class="o">=</span> <span class="n">decimation</span> 105 113 <span class="bp">self</span><span class="o">.</span><span class="n">voltage_ref</span> <span class="o">=</span> <span class="n">voltage_ref</span> 106 107 <div class="viewcode-block" id="AmmosIFDataHeader.header_size"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFDataHeader.AmmosIFDataHeader.header_size">[docs]</a> <span class="k">def</span> <span class="nf">header_size</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>108 <span class="k">return</span> <span class="mi">56</span></div>109 114 110 115 <span class="k">def</span> <span class="nf">__str_</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -
doc/html/_modules/ammosreader/AmmosIFReader.html
reab48d0 r299c79c 64 64 65 65 <h1>Source code for ammosreader.AmmosIFReader</h1><div class="highlight"><pre> 66 <span></span><span class=" kn">import</span> <span class="nn">math</span>67 <span class="kn">import</span> <span class="nn"> os</span>66 <span></span><span class="sd">"""I provide a specialized Ammos Reader for IF data."""</span> 67 <span class="kn">import</span> <span class="nn">logging</span> 68 68 69 <span class="kn">from</span> <span class="nn">ammosreader.AbstractAmmosReader</span> <span class="kn">import</span> <span class="n">AbstractAmmosReader</span> 69 70 <span class="kn">from</span> <span class="nn">ammosreader.AmmosGlobalFrameBody</span> <span class="kn">import</span> <span class="n">AmmosGlobalFrameBody</span> 70 71 <span class="kn">from</span> <span class="nn">ammosreader.AmmosIFDataHeader</span> <span class="kn">import</span> <span class="n">AmmosIFDataHeader</span> 71 72 <span class="kn">from</span> <span class="nn">ammosreader.AmmosExtendedIFDataHeader</span> <span class="kn">import</span> <span class="n">AmmosExtendedIFDataHeader</span> 72 <span class="kn">from</span> <span class="nn">ammosreader.AmmosGlobalFrameHeader</span> <span class="kn">import</span> <span class="n">AmmosGlobalFrameHeader</span> 73 <span class="kn">from</span> <span class="nn">ammosreader.AmmosSingleFrame</span> <span class="kn">import</span> <span class="n">AmmosSingleFrame</span> 73 <span class="kn">from</span> <span class="nn">ammosreader.AmmosIFDataBody</span> <span class="kn">import</span> <span class="n">AmmosIFDataBody</span> 74 74 <span class="kn">from</span> <span class="nn">ammosreader.AmmosIFDataBlock</span> <span class="kn">import</span> <span class="n">AmmosIFDataBlock</span> 75 <span class="kn">from</span> <span class="nn">ammosreader.Ammos Container</span> <span class="kn">import</span> <span class="n">AmmosContainer</span>75 <span class="kn">from</span> <span class="nn">ammosreader.AmmosIFDataBlockHeader</span> <span class="kn">import</span> <span class="n">AmmosIFDataBlockHeader</span> 76 76 77 77 78 <div class="viewcode-block" id="AmmosIFReader"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader">[docs]</a><span class="k">class</span> <span class="nc">AmmosIFReader</span><span class="p">():</span> 78 <div class="viewcode-block" id="AmmosIFReader"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader">[docs]</a><span class="k">class</span> <span class="nc">AmmosIFReader</span><span class="p">(</span><span class="n">AbstractAmmosReader</span><span class="p">):</span> 79 <span class="sd">"""I read the IF data embedded in an R&S AMMOS recording."""</span> 79 80 80 81 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">):</span> 81 82 <span class="bp">self</span><span class="o">.</span><span class="n">file_name</span> <span class="o">=</span> <span class="n">file_name</span> 83 <span class="bp">self</span><span class="o">.</span><span class="n">file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">file_name</span><span class="p">,</span> <span class="s2">"rb"</span><span class="p">)</span> 84 <span class="bp">self</span><span class="o">.</span><span class="n">file_size</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">getsize</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">file_name</span><span class="p">)</span> 85 86 <span class="bp">self</span><span class="o">.</span><span class="n">container</span> <span class="o">=</span> <span class="n">AmmosContainer</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">file_name</span><span class="p">,</span> <span class="p">[])</span> 87 88 <span class="bp">self</span><span class="o">.</span><span class="n">tags</span> <span class="o">=</span> <span class="p">[]</span> 89 90 <div class="viewcode-block" id="AmmosIFReader.rewind_to_start"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.rewind_to_start">[docs]</a> <span class="k">def</span> <span class="nf">rewind_to_start</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 91 <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">seek</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span></div> 92 93 <div class="viewcode-block" id="AmmosIFReader.add_tag"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.add_tag">[docs]</a> <span class="k">def</span> <span class="nf">add_tag</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">tag</span><span class="p">):</span> 94 <span class="bp">self</span><span class="o">.</span><span class="n">tags</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tag</span><span class="p">)</span></div> 95 96 <div class="viewcode-block" id="AmmosIFReader.read_all_frames_left"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_all_frames_left">[docs]</a> <span class="k">def</span> <span class="nf">read_all_frames_left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 97 98 <span class="n">frames_read</span> <span class="o">=</span> <span class="mi">0</span> 99 100 <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> 101 <span class="nb">print</span><span class="p">(</span><span class="s2">"Reading single frame"</span><span class="p">,</span> <span class="n">frames_read</span><span class="p">,</span> <span class="s1">'...'</span><span class="p">)</span> 102 <span class="n">current_frame</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_single_frame</span><span class="p">()</span> 103 <span class="k">if</span> <span class="n">current_frame</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> 104 <span class="n">frames_read</span> <span class="o">+=</span> <span class="mi">1</span> 105 <span class="bp">self</span><span class="o">.</span><span class="n">container</span><span class="o">.</span><span class="n">add_frame</span><span class="p">(</span><span class="n">current_frame</span><span class="p">)</span> 106 <span class="k">if</span> <span class="n">frames_read</span> <span class="o">%</span> <span class="mi">10000</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> 107 <span class="nb">print</span><span class="p">(</span><span class="s2">"#"</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span> 108 <span class="k">else</span><span class="p">:</span> 109 <span class="nb">print</span><span class="p">(</span><span class="s2">"Frame:"</span><span class="p">,</span> <span class="n">frames_read</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span> <span class="s2">" incomplete"</span><span class="p">)</span> 110 <span class="k">break</span> 111 112 <span class="nb">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">container</span><span class="o">.</span><span class="n">global_frames</span><span class="p">),</span> <span class="s2">"frames read"</span><span class="p">)</span></div> 113 114 <div class="viewcode-block" id="AmmosIFReader.read_next_global_frame_header"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_header">[docs]</a> <span class="k">def</span> <span class="nf">read_next_global_frame_header</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 115 <span class="nb">bytes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">24</span><span class="p">)</span> 116 <span class="nb">print</span><span class="p">(</span><span class="s2">"Reading next global frame header"</span><span class="p">)</span> 117 <span class="k">if</span> <span class="p">((</span><span class="ow">not</span> <span class="nb">bytes</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o"><</span> <span class="mi">24</span><span class="p">)):</span> 118 <span class="nb">print</span><span class="p">(</span><span class="s2">"Can not read all 24 bytes of global frame header"</span><span class="p">)</span> 119 <span class="k">return</span> <span class="kc">None</span> 120 121 <span class="k">return</span> <span class="n">AmmosGlobalFrameHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span></div> 82 <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">file_name</span><span class="p">)</span> 122 83 123 84 <div class="viewcode-block" id="AmmosIFReader.read_next_global_frame_body_data_header"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_body_data_header">[docs]</a> <span class="k">def</span> <span class="nf">read_next_global_frame_body_data_header</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 124 85 125 <span class="n b">bytes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">56</span><span class="p">)</span>86 <span class="n">header_size</span> <span class="o">=</span> <span class="n">AmmosIFDataHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span> 126 87 127 <span class="c1"># print("\nReading global frame body standard data header\n")</span> 128 <span class="k">if</span> <span class="p">((</span><span class="ow">not</span> <span class="nb">bytes</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o"><</span> <span class="mi">56</span><span class="p">)):</span> 129 <span class="nb">print</span><span class="p">(</span><span class="s2">"Can not read all 56 bytes of global frame body data header"</span><span class="p">)</span> 88 <span class="nb">bytes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ammos_file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">header_size</span><span class="p">)</span> 89 90 <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Reading global frame body standard data header</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> 91 <span class="k">if</span> <span class="p">((</span><span class="ow">not</span> <span class="nb">bytes</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o"><</span> <span class="n">header_size</span><span class="p">)):</span> 92 <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Can not read all </span><span class="si">%s</span><span class="s2"> bytes of global frame body data header"</span><span class="p">,</span> <span class="n">header_size</span><span class="p">)</span> 93 <span class="k">return</span> <span class="kc">None</span> 94 <span class="k">return</span> <span class="n">AmmosIFDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span></div> 95 96 <div class="viewcode-block" id="AmmosIFReader.read_next_global_frame_body_extended_data_header"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_body_extended_data_header">[docs]</a> <span class="k">def</span> <span class="nf">read_next_global_frame_body_extended_data_header</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 97 <span class="sd">"""</span> 98 <span class="sd"> I return the next global frame body extended data header from current position in file.</span> 99 100 <span class="sd"> :return: the next Ammos Extended IF data header or None if incomplete</span> 101 <span class="sd"> :rtype: AmmosExtendedIFDataHeader</span> 102 <span class="sd"> """</span> 103 <span class="n">header_size</span> <span class="o">=</span> <span class="n">AmmosExtendedIFDataHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span> 104 105 <span class="nb">bytes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ammos_file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">header_size</span><span class="p">)</span> 106 107 <span class="n">logging</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Reading global frame body extended data header</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> 108 <span class="k">if</span> <span class="p">((</span><span class="ow">not</span> <span class="nb">bytes</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o"><</span> <span class="n">header_size</span><span class="p">)):</span> 109 <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Can not read all </span><span class="si">%s</span><span class="s2"> bytes of global frame extended data header"</span><span class="p">,</span> <span class="n">header_size</span><span class="p">)</span> 110 <span class="k">return</span> <span class="kc">None</span> 111 <span class="k">return</span> <span class="n">AmmosExtendedIFDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span></div> 112 113 <div class="viewcode-block" id="AmmosIFReader.read_next_if_data_body"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_if_data_body">[docs]</a> <span class="k">def</span> <span class="nf">read_next_if_data_body</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">number_of_data_blocks</span><span class="p">,</span> <span class="n">data_length</span><span class="p">):</span> 114 <span class="sd">"""</span> 115 <span class="sd"> I return the next data body read from current position in file.</span> 116 117 <span class="sd"> :param number_of_data_blocks: the number of data blocks inside the body</span> 118 <span class="sd"> :type number_of_data_blocks: int</span> 119 120 <span class="sd"> :param data_length: the length of the raw data inside a single block</span> 121 <span class="sd"> :type data_length: int</span> 122 <span class="sd"> """</span> 123 <span class="n">header_size</span> <span class="o">=</span> <span class="n">AmmosIFDataBlockHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span> 124 125 <span class="n">data_body</span> <span class="o">=</span> <span class="n">AmmosIFDataBody</span><span class="p">()</span> 126 127 <span class="n">block_length</span> <span class="o">=</span> <span class="n">header_size</span> <span class="o">+</span> <span class="n">data_length</span> 128 129 <span class="n">total</span> <span class="o">=</span> <span class="n">number_of_data_blocks</span><span class="o">*</span><span class="n">block_length</span> 130 131 <span class="n">byte_string</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ammos_file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">block_length</span><span class="p">)</span> 132 133 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">byte_string</span><span class="p">)</span> <span class="o">!=</span> <span class="n">total</span><span class="p">:</span> 134 <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Can not read all </span><span class="si">%s</span><span class="s2"> bytes of data body"</span><span class="p">,</span> <span class="n">total</span><span class="p">)</span> 130 135 <span class="k">return</span> <span class="kc">None</span> 131 136 132 <span class="n">data_header</span> <span class="o">=</span> <span class="n">AmmosIFDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> 133 <span class="c1"># print("Data header", data_header)</span> 134 <span class="k">return</span> <span class="n">data_header</span></div> 137 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">number_of_data_blocks</span><span class="p">):</span> 138 <span class="n">result</span> <span class="o">=</span> <span class="n">byte_string</span><span class="p">[</span><span class="n">i</span><span class="o">*</span><span class="n">block_length</span><span class="p">:(</span><span class="n">i</span><span class="o">*</span><span class="n">block_length</span><span class="o">+</span><span class="n">block_length</span><span class="p">)]</span> 139 <span class="n">data_body</span><span class="o">.</span><span class="n">add_data_block</span><span class="p">(</span><span class="n">AmmosIFDataBlock</span><span class="p">(</span><span class="n">AmmosIFDataBlockHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="n">result</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="n">header_size</span><span class="p">]),</span> 140 <span class="n">result</span><span class="p">[</span><span class="n">header_size</span><span class="p">:]))</span> 135 141 136 <div class="viewcode-block" id="AmmosIFReader.read_next_global_frame_body_extended_data_header"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_body_extended_data_header">[docs]</a> <span class="k">def</span> <span class="nf">read_next_global_frame_body_extended_data_header</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>142 <span class="k">return</span> <span class="n">data_body</span></div> 137 143 138 <span class="nb">bytes</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">76</span><span class="p">)</span> 139 <span class="c1"># print("\nReading global frame body extended data header\n")</span> 144 <div class="viewcode-block" id="AmmosIFReader.read_next_global_frame_body"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_body">[docs]</a> <span class="k">def</span> <span class="nf">read_next_global_frame_body</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data_header_length</span><span class="p">):</span> 145 <span class="sd">"""</span> 146 <span class="sd"> I return the next global frame body read from current position in file.</span> 140 147 141 <span class="k">if</span> <span class="p">((</span><span class="ow">not</span> <span class="nb">bytes</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> <span class="o"><</span> <span class="mi">76</span><span class="p">)):</span> 142 <span class="nb">print</span><span class="p">(</span><span class="s2">"Can not read all "</span><span class="p">,</span> <span class="mi">76</span><span class="p">,</span> <span class="s2">"bytes of global frame extended data header"</span><span class="p">)</span> 143 <span class="k">return</span> <span class="kc">None</span> 144 <span class="n">extended_data_header</span> <span class="o">=</span> <span class="n">AmmosExtendedIFDataHeader</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="nb">bytes</span><span class="p">)</span> 145 <span class="c1"># print("Extended data header", extended_data_header)</span> 146 <span class="k">return</span> <span class="n">extended_data_header</span></div> 147 148 <div class="viewcode-block" id="AmmosIFReader.read_next_if_data_blocks"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_if_data_blocks">[docs]</a> <span class="k">def</span> <span class="nf">read_next_if_data_blocks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">length</span><span class="p">):</span> 149 150 <span class="c1"># FIXME: Describe the parameters better</span> 151 152 <span class="n">data_blocks</span> <span class="o">=</span> <span class="p">[]</span> 153 154 <span class="n">block_length</span> <span class="o">=</span> <span class="mi">4</span> <span class="o">+</span> <span class="n">length</span> 155 156 <span class="n">total</span> <span class="o">=</span> <span class="n">n</span><span class="o">*</span><span class="n">block_length</span> 157 158 <span class="n">byte_string</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">block_length</span><span class="p">)</span> 159 160 <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">byte_string</span><span class="p">)</span> <span class="o">!=</span> <span class="n">total</span><span class="p">:</span> 161 <span class="nb">print</span><span class="p">(</span><span class="s2">"Can not read all"</span><span class="p">,</span> <span class="n">total</span><span class="p">,</span> <span class="s2">"bytes of data body"</span><span class="p">)</span> 162 <span class="k">return</span> <span class="kc">None</span> 163 164 <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span> 165 <span class="n">result</span> <span class="o">=</span> <span class="n">byte_string</span><span class="p">[</span><span class="n">i</span><span class="o">*</span><span class="n">block_length</span><span class="p">:(</span><span class="n">i</span><span class="o">*</span><span class="n">block_length</span><span class="o">+</span><span class="n">block_length</span><span class="p">)]</span> 166 <span class="n">data_blocks</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">AmmosIFDataBlock</span><span class="p">(</span><span class="n">result</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="p">],</span> <span class="n">result</span><span class="p">[</span><span class="mi">4</span><span class="p">:]))</span> 167 168 <span class="k">return</span> <span class="n">data_blocks</span></div> 169 170 <div class="viewcode-block" id="AmmosIFReader.read_next_global_frame_body"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_body">[docs]</a> <span class="k">def</span> <span class="nf">read_next_global_frame_body</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">global_frame_header</span><span class="p">):</span> 171 148 <span class="sd"> :param data_header_length: the length of the data header</span> 149 <span class="sd"> :type data_header_length: int</span> 150 <span class="sd"> """</span> 172 151 <span class="n">if_data_header</span> <span class="o">=</span> <span class="kc">None</span> 173 152 174 <span class="k">if</span> <span class="n"> global_frame_header</span><span class="o">.</span><span class="n">data_header_length</span> <span class="o">==</span> <span class="mi">56</span><span class="p">:</span>153 <span class="k">if</span> <span class="n">data_header_length</span> <span class="o">==</span> <span class="n">AmmosIFDataHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span><span class="p">:</span> 175 154 <span class="n">if_data_header</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_global_frame_body_data_header</span><span class="p">()</span> 176 <span class="k"> else</span><span class="p">:</span>155 <span class="k">if</span> <span class="n">data_header_length</span> <span class="o">==</span> <span class="n">AmmosExtendedIFDataHeader</span><span class="o">.</span><span class="n">HEADER_SIZE</span><span class="p">:</span> 177 156 <span class="n">if_data_header</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_global_frame_body_extended_data_header</span><span class="p">()</span> 178 157 179 158 <span class="k">if</span> <span class="n">if_data_header</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> 180 <span class="n b">print</span><span class="p">(</span><span class="s2">"Data header missing"</span><span class="p">)</span>159 <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Data header missing"</span><span class="p">)</span> 181 160 <span class="k">return</span> <span class="kc">None</span> 182 161 183 <span class="n">if_data_body</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_if_data_b locks</span><span class="p">(</span><span class="n">if_data_header</span><span class="o">.</span><span class="n">block_count</span><span class="p">,</span> <span class="n">if_data_header</span><span class="o">.</span><span class="n">block_length</span><span class="p">)</span>162 <span class="n">if_data_body</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_if_data_body</span><span class="p">(</span><span class="n">if_data_header</span><span class="o">.</span><span class="n">block_count</span><span class="p">,</span> <span class="n">if_data_header</span><span class="o">.</span><span class="n">block_length</span><span class="p">)</span> 184 163 185 164 <span class="k">if</span> <span class="n">if_data_body</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> 186 <span class="n b">print</span><span class="p">(</span><span class="s2">"Data body missing"</span><span class="p">)</span>165 <span class="n">logging</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Data body missing"</span><span class="p">)</span> 187 166 <span class="k">return</span> <span class="kc">None</span> 188 167 189 168 <span class="k">return</span> <span class="n">AmmosGlobalFrameBody</span><span class="p">(</span><span class="n">if_data_header</span><span class="p">,</span> <span class="n">if_data_body</span><span class="p">)</span></div> 190 169 191 <div class="viewcode-block" id="AmmosIFReader.read_next_single_frame"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_single_frame">[docs]</a> <span class="k">def</span> <span class="nf">read_next_single_frame</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 192 193 <span class="n">global_frame_header</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_global_frame_header</span><span class="p">()</span> 194 195 <span class="nb">print</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Reading next global frame header</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="n">global_frame_header</span><span class="p">)</span> 196 <span class="c1"># print("File pointer", self.file.tell())</span> 197 198 <span class="k">if</span> <span class="n">global_frame_header</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> 199 <span class="nb">print</span><span class="p">(</span><span class="s2">"Global frame header missing"</span><span class="p">)</span> 200 <span class="k">return</span> <span class="kc">None</span> 201 202 <span class="k">if</span> <span class="n">global_frame_header</span><span class="o">.</span><span class="n">data_header_length</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> 203 <span class="nb">print</span><span class="p">(</span><span class="s2">"Data header length empty"</span><span class="p">)</span> 204 <span class="k">return</span> <span class="kc">None</span> 205 206 <span class="k">if</span> <span class="n">global_frame_header</span><span class="o">.</span><span class="n">frame_type</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> 207 208 <span class="n">global_frame_body</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">read_next_global_frame_body</span><span class="p">(</span><span class="n">global_frame_header</span><span class="p">)</span> 209 <span class="k">if</span> <span class="n">global_frame_body</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> 210 <span class="k">return</span> <span class="kc">None</span> 211 212 <span class="k">else</span><span class="p">:</span> 213 <span class="nb">print</span><span class="p">(</span><span class="s2">"Unsupported frame type"</span><span class="p">,</span> <span class="n">global_frame_header</span><span class="o">.</span><span class="n">frame_type</span><span class="p">,</span> <span class="s2">"found"</span><span class="p">)</span> 214 <span class="k">return</span> <span class="kc">None</span> 215 216 <span class="k">return</span> <span class="n">AmmosSingleFrame</span><span class="p">(</span><span class="n">global_frame_header</span><span class="p">,</span> <span class="n">global_frame_body</span><span class="p">)</span></div></div> 170 <div class="viewcode-block" id="AmmosIFReader.data"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.data">[docs]</a> <span class="k">def</span> <span class="nf">data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 171 <span class="k">return</span> <span class="sa">b</span><span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">each</span><span class="o">.</span><span class="n">global_frame_body</span><span class="o">.</span><span class="n">data_body</span><span class="o">.</span><span class="n">data</span> <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">container</span><span class="o">.</span><span class="n">global_frames</span><span class="p">])</span></div></div> 217 172 </pre></div> 218 173 -
doc/html/_modules/ammosreader/AmmosSingleFrame.html
reab48d0 r299c79c 67 67 68 68 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">global_frame_header</span><span class="p">,</span> <span class="n">global_frame_body</span><span class="p">):</span> 69 <span class="bp">self</span><span class="o">.</span><span class="n">global_frame_header</span> <span class="o">=</span> <span class="n">global_frame_header</span> 70 <span class="bp">self</span><span class="o">.</span><span class="n">global_frame_body</span> <span class="o">=</span> <span class="n">global_frame_body</span> 69 <span class="bp">self</span><span class="o">.</span><span class="n">__global_frame_header</span> <span class="o">=</span> <span class="n">global_frame_header</span> 70 <span class="bp">self</span><span class="o">.</span><span class="n">__global_frame_body</span> <span class="o">=</span> <span class="n">global_frame_body</span> 71 72 <span class="nd">@property</span> 73 <span class="k">def</span> <span class="nf">global_frame_header</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 74 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__global_frame_header</span> 75 76 <span class="nd">@property</span> 77 <span class="k">def</span> <span class="nf">global_frame_body</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 78 <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">__global_frame_body</span> 71 79 72 80 <div class="viewcode-block" id="AmmosSingleFrame.data"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.AmmosSingleFrame.AmmosSingleFrame.data">[docs]</a> <span class="k">def</span> <span class="nf">data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> … … 83 91 <span class="s2">"Global frame header</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> 84 92 <span class="s2">"-------------------</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> 85 <span class="s2">"Frame ty oe:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">global_frame_header</span><span class="o">.</span><span class="n">frame_type</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span>93 <span class="s2">"Frame type:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">global_frame_header</span><span class="o">.</span><span class="n">frame_type</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> 86 94 <span class="s2">"Frame count:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">global_frame_header</span><span class="o">.</span><span class="n">running_frame_number</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> 87 95 <span class="s2">"Data header length:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">global_frame_header</span><span class="o">.</span><span class="n">data_header_length</span><span class="p">)</span> <span class="o">+</span> <span class="s2">" bytes</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> -
doc/html/_modules/ammosreader/PDW.html
reab48d0 r299c79c 64 64 65 65 <h1>Source code for ammosreader.PDW</h1><div class="highlight"><pre> 66 <span></span><span class="kn">import</span> <span class="nn">struct</span> 66 <span></span><span class="sd">"""I store the information of a single PDW block."""</span> 67 68 <span class="kn">import</span> <span class="nn">struct</span> 67 69 <span class="kn">import</span> <span class="nn">math</span> 68 70 <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> 69 70 <span class="c1"># TODO: Use BitArray module in future versions</span>71 71 72 72 … … 76 76 77 77 <span class="sd"> .. automethod:: __init__</span> 78 79 78 <span class="sd"> """</span> 80 79 81 80 <div class="viewcode-block" id="PDW.from_bytes"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PDW.PDW.from_bytes">[docs]</a> <span class="nd">@classmethod</span> 82 81 <span class="k">def</span> <span class="nf">from_bytes</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">byte_string</span><span class="p">):</span> 83 84 82 <span class="sd">"""</span> 85 86 <span class="sd"> I create an instance of class PDW from data body (8 * 32 bits)</span> 83 <span class="sd"> I create an instance of class PDW from data body (8 * 32 bits).</span> 87 84 88 85 <span class="sd"> :param byte_string: a byte string containing a single data body read from a ppdw file</span> … … 91 88 <span class="sd"> :return: an instance of class PDW with attributes set according to the data of a data body</span> 92 89 <span class="sd"> :rtype: PDW</span> 93 94 90 <span class="sd"> """</span> 95 96 91 <span class="k">assert</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">byte_string</span><span class="p">)</span> <span class="o">==</span> <span class="mi">32</span><span class="p">)</span> 97 92 98 <span class="n">parts</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">' Q4s4s4s4s4s4s'</span><span class="p">,</span> <span class="n">byte_string</span><span class="p">)</span>93 <span class="n">parts</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="s1">'<Q4s4s4s4s4s4s'</span><span class="p">,</span> <span class="n">byte_string</span><span class="p">)</span> 99 94 <span class="n">nanoseconds</span> <span class="o">=</span> <span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> 100 <span class="n">time_of_arrival</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">datetime64</span><span class="p">(</span><span class="n">nanoseconds</span><span class="p">,</span> <span class="s1">'ns'</span><span class="p">)</span> <span class="c1">#datetime.datetime.utcfromtimestamp(seconds / 1000000000)</span>95 <span class="n">time_of_arrival</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">datetime64</span><span class="p">(</span><span class="n">nanoseconds</span><span class="p">,</span> <span class="s1">'ns'</span><span class="p">)</span> 101 96 102 97 <span class="n">third_entry</span> <span class="o">=</span> <span class="nb">bin</span><span class="p">(</span><span class="nb">int</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="n">parts</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">byteorder</span><span class="o">=</span><span class="s1">'little'</span><span class="p">))</span> … … 159 154 <span class="n">pulse_level_or_pulse_field_strength</span><span class="p">,</span> <span class="n">region_of_interest</span><span class="p">,</span> <span class="n">azimuth_confidence</span><span class="p">,</span> <span class="n">modulation</span><span class="p">,</span> 160 155 <span class="n">sector</span><span class="p">,</span> <span class="n">polarity</span><span class="p">,</span> <span class="n">df_quality</span><span class="p">,</span> <span class="n">elevation</span><span class="p">,</span> <span class="n">azimuth</span><span class="p">,</span> <span class="n">channel</span><span class="p">):</span> 161 162 <span class="sd">"""</span>156 <span class="sa">r</span><span class="sd">"""</span> 157 <span class="sd"> I return an instance of an Pulse Data word.</span> 163 158 164 159 <span class="sd"> :param time_of_arrival: nanoseconds since 1970-01-01 00:00:00</span> … … 207 202 <span class="sd"> :return: An instance of class PDW with attributes set according to the data of a data body</span> 208 203 <span class="sd"> :rtype: PDW</span> 209 210 204 <span class="sd"> """</span> 211 212 <span class="bp">self</span><span class="o">.</span><span class="n">time_of_arrival</span> <span class="o">=</span> <span class="n">time_of_arrival</span> 205 <span class="bp">self</span><span class="o">.</span><span class="n">time_of_arrival</span> <span class="o">=</span> <span class="n">time_of_arrival</span> <span class="c1">#</span> 213 206 <span class="bp">self</span><span class="o">.</span><span class="n">pdw_format_identifier</span> <span class="o">=</span> <span class="n">pdw_format_identifier</span> 214 <span class="bp">self</span><span class="o">.</span><span class="n">center_frequency</span> <span class="o">=</span> <span class="n">center_frequency</span> 215 <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span> <span class="o">=</span> <span class="n">is_valid</span> 216 <span class="bp">self</span><span class="o">.</span><span class="n">is_pulse</span> <span class="o">=</span> <span class="n">is_pulse</span> 217 <span class="bp">self</span><span class="o">.</span><span class="n">level_unit</span> <span class="o">=</span> <span class="n">level_unit</span> 207 <span class="bp">self</span><span class="o">.</span><span class="n">center_frequency</span> <span class="o">=</span> <span class="n">center_frequency</span> <span class="c1">#</span> 208 <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span> <span class="o">=</span> <span class="n">is_valid</span> <span class="c1">#</span> 209 <span class="bp">self</span><span class="o">.</span><span class="n">is_pulse</span> <span class="o">=</span> <span class="n">is_pulse</span> <span class="c1">#</span> 210 <span class="bp">self</span><span class="o">.</span><span class="n">level_unit</span> <span class="o">=</span> <span class="n">level_unit</span> <span class="c1">#</span> 218 211 <span class="bp">self</span><span class="o">.</span><span class="n">signal_start_missing</span> <span class="o">=</span> <span class="n">signal_start_missing</span> 219 212 <span class="bp">self</span><span class="o">.</span><span class="n">signal_end_missing</span> <span class="o">=</span> <span class="n">signal_end_missing</span> 220 <span class="bp">self</span><span class="o">.</span><span class="n">pulse_width</span> <span class="o">=</span> <span class="n">pulse_width</span> 221 <span class="bp">self</span><span class="o">.</span><span class="n">frequency_shift_or_bandwidth</span> <span class="o">=</span> <span class="n">frequency_shift_or_bandwidth</span> 222 <span class="bp">self</span><span class="o">.</span><span class="n">pulse_level_or_pulse_field_strength</span> <span class="o">=</span> <span class="n">pulse_level_or_pulse_field_strength</span> 213 <span class="bp">self</span><span class="o">.</span><span class="n">pulse_width</span> <span class="o">=</span> <span class="n">pulse_width</span> <span class="c1">#</span> 214 <span class="bp">self</span><span class="o">.</span><span class="n">frequency_shift_or_bandwidth</span> <span class="o">=</span> <span class="n">frequency_shift_or_bandwidth</span> <span class="c1">#</span> 215 <span class="bp">self</span><span class="o">.</span><span class="n">pulse_level_or_pulse_field_strength</span> <span class="o">=</span> <span class="n">pulse_level_or_pulse_field_strength</span> <span class="c1">#</span> 223 216 <span class="bp">self</span><span class="o">.</span><span class="n">region_of_interest</span> <span class="o">=</span> <span class="n">region_of_interest</span> 224 217 <span class="bp">self</span><span class="o">.</span><span class="n">azimuth_confidence</span> <span class="o">=</span> <span class="n">azimuth_confidence</span> 225 <span class="bp">self</span><span class="o">.</span><span class="n">modulation</span> <span class="o">=</span> <span class="n">modulation</span> 218 <span class="bp">self</span><span class="o">.</span><span class="n">modulation</span> <span class="o">=</span> <span class="n">modulation</span> <span class="c1">#</span> 226 219 <span class="bp">self</span><span class="o">.</span><span class="n">sector</span> <span class="o">=</span> <span class="n">sector</span> 227 220 <span class="bp">self</span><span class="o">.</span><span class="n">polarity</span> <span class="o">=</span> <span class="n">polarity</span> 228 <span class="bp">self</span><span class="o">.</span><span class="n">df_quality</span> <span class="o">=</span> <span class="n">df_quality</span> 229 <span class="bp">self</span><span class="o">.</span><span class="n">elevation</span> <span class="o">=</span> <span class="n">elevation</span> 221 <span class="bp">self</span><span class="o">.</span><span class="n">df_quality</span> <span class="o">=</span> <span class="n">df_quality</span> <span class="c1">#</span> 222 <span class="bp">self</span><span class="o">.</span><span class="n">elevation</span> <span class="o">=</span> <span class="n">elevation</span> <span class="c1">#</span> 230 223 <span class="bp">self</span><span class="o">.</span><span class="n">azimuth</span> <span class="o">=</span> <span class="n">azimuth</span> 231 <span class="bp">self</span><span class="o">.</span><span class="n">channel</span> <span class="o">=</span> <span class="n">channel</span> </div>224 <span class="bp">self</span><span class="o">.</span><span class="n">channel</span> <span class="o">=</span> <span class="n">channel</span> <span class="c1">#</span></div> 232 225 233 226 <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 227 <span class="sd">"""</span> 228 <span class="sd"> I return the string representation of myself.</span> 229 230 <span class="sd"> :rtype: str</span> 231 <span class="sd"> """</span> 234 232 <span class="n">output</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"Time of arrival: "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">time_of_arrival</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> 235 233 <span class="s2">"PDW Format identifier: "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pdw_format_identifier</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> … … 287 285 <span class="n">output</span> <span class="o">+=</span> <span class="s2">"Channel: "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">channel</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> 288 286 289 <span class="k">return</span> <span class="n">output</span></div> 290 287 <span class="k">return</span> <span class="n">output</span> 288 289 <div class="viewcode-block" id="PDW.to_json"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PDW.PDW.to_json">[docs]</a> <span class="k">def</span> <span class="nf">to_json</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 290 <span class="k">return</span> <span class="p">{</span><span class="s1">'TIMEOFARRIVAL'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_of_arrival</span><span class="o">.</span><span class="n">item</span><span class="p">(),</span> 291 <span class="s1">'CENTERFREQUENCY'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">center_frequency</span><span class="p">,</span> 292 <span class="s1">'VALID'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_valid</span><span class="p">,</span> 293 <span class="s1">'PULSE'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_pulse</span><span class="p">,</span> 294 <span class="s1">'PULSEWIDTH'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">pulse_width</span><span class="p">,</span> 295 <span class="s1">'LEVELUNIT'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">level_unit</span><span class="p">,</span> 296 <span class="s1">'FREQUENCYSHIFTORBANDWIDTH'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">frequency_shift_or_bandwidth</span><span class="p">,</span> 297 <span class="s1">'PULSELEVELORFIELDSTRENGTH'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">pulse_level_or_pulse_field_strength</span><span class="p">,</span> 298 <span class="s1">'MODULATION'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">modulation</span><span class="p">,</span> 299 <span class="s1">'ELEVATION'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">elevation</span><span class="p">,</span> 300 <span class="s1">'AZIMUTH'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">azimuth</span><span class="p">,</span> 301 <span class="s1">'CHANNEL'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">channel</span> 302 <span class="p">}</span></div></div> 291 303 292 304 <span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">'__main__'</span><span class="p">:</span> -
doc/html/_modules/ammosreader/PPDWContainer.html
reab48d0 r299c79c 64 64 65 65 <h1>Source code for ammosreader.PPDWContainer</h1><div class="highlight"><pre> 66 <div class="viewcode-block" id="PPDWContainer"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PPDWContainer.PPDWContainer">[docs]</a><span></span><span class="k">class</span> <span class="nc">PPDWContainer</span><span class="p">():</span> 66 <span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> 67 <span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">datetime</span> 67 68 69 70 <div class="viewcode-block" id="PPDWContainer"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PPDWContainer.PPDWContainer">[docs]</a><span class="k">class</span> <span class="nc">PPDWContainer</span><span class="p">():</span> 68 71 <span class="sd">"""</span> 69 70 72 <span class="sd"> I store multiple signals imported from one or more .ppdw files</span> 71 72 73 <span class="sd"> .. automethod:: __init__</span> 73 74 74 <span class="sd"> """</span> 75 75 76 <div class="viewcode-block" id="PPDWContainer.__init__"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.__init__">[docs]</a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">signals</span><span class="p">):</span>76 <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">signals</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> 77 77 78 <span class="bp">self</span><span class="o">.</span><span class="n">signals</span> <span class="o">=</span> <span class="n">signals</span></div></div> 78 <span class="k">if</span> <span class="n">signals</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> 79 <span class="bp">self</span><span class="o">.</span><span class="n">signals</span> <span class="o">=</span> <span class="p">[]</span> 80 <span class="k">else</span><span class="p">:</span> 81 <span class="bp">self</span><span class="o">.</span><span class="n">signals</span> <span class="o">=</span> <span class="n">signals</span> 79 82 83 <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 84 <span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">"Number of pulses:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">signals</span><span class="p">)),</span> 85 <span class="s2">"Start time:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">start_time</span><span class="p">()),</span> 86 <span class="s2">"End time:"</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">end_time</span><span class="p">())])</span> 87 88 <div class="viewcode-block" id="PPDWContainer.add"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.add">[docs]</a> <span class="k">def</span> <span class="nf">add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">a_pdw</span><span class="p">):</span> 89 <span class="bp">self</span><span class="o">.</span><span class="n">signals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">a_pdw</span><span class="p">)</span></div> 90 91 <div class="viewcode-block" id="PPDWContainer.julian_date_string"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.julian_date_string">[docs]</a> <span class="k">def</span> <span class="nf">julian_date_string</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 92 <span class="n">ts</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">start_time</span><span class="p">()</span> <span class="o">-</span> <span class="n">np</span><span class="o">.</span><span class="n">datetime64</span><span class="p">(</span><span class="s1">'1970-01-01T00:00:00'</span><span class="p">))</span> <span class="o">/</span> <span class="n">np</span><span class="o">.</span><span class="n">timedelta64</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="s1">'s'</span><span class="p">)</span> 93 <span class="n">time_tuple</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">utcfromtimestamp</span><span class="p">(</span><span class="n">ts</span><span class="p">)</span><span class="o">.</span><span class="n">timetuple</span><span class="p">()</span> 94 <span class="k">return</span> <span class="nb">str</span><span class="p">(</span><span class="n">time_tuple</span><span class="o">.</span><span class="n">tm_year</span><span class="p">)[</span><span class="mi">2</span><span class="p">:]</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">time_tuple</span><span class="o">.</span><span class="n">tm_yday</span><span class="p">)</span><span class="o">.</span><span class="n">zfill</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span></div> 95 96 <div class="viewcode-block" id="PPDWContainer.center_frequencies"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.center_frequencies">[docs]</a> <span class="k">def</span> <span class="nf">center_frequencies</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 97 <span class="k">return</span> <span class="nb">list</span><span class="p">({</span><span class="n">each</span><span class="o">.</span><span class="n">center_frequency</span> <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">signals</span><span class="p">})</span></div> 98 99 <div class="viewcode-block" id="PPDWContainer.channels"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.channels">[docs]</a> <span class="k">def</span> <span class="nf">channels</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 100 <span class="k">return</span> <span class="nb">list</span><span class="p">({</span><span class="n">each</span><span class="o">.</span><span class="n">channel</span> <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">signals</span><span class="p">})</span></div> 101 102 <div class="viewcode-block" id="PPDWContainer.modulations"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.modulations">[docs]</a> <span class="k">def</span> <span class="nf">modulations</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 103 <span class="k">return</span> <span class="nb">list</span><span class="p">({</span><span class="n">each</span><span class="o">.</span><span class="n">modulation</span> <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">signals</span><span class="p">})</span></div> 104 105 <div class="viewcode-block" id="PPDWContainer.bandwidths"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.bandwidths">[docs]</a> <span class="k">def</span> <span class="nf">bandwidths</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 106 <span class="k">return</span> <span class="nb">list</span><span class="p">({</span><span class="n">each</span><span class="o">.</span><span class="n">frequency_shift_or_bandwidth</span> <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">signals</span><span class="p">})</span></div> 107 108 <div class="viewcode-block" id="PPDWContainer.start_time"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.start_time">[docs]</a> <span class="k">def</span> <span class="nf">start_time</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 109 <span class="k">return</span> <span class="nb">min</span><span class="p">([</span><span class="n">each</span><span class="o">.</span><span class="n">time_of_arrival</span> <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">signals</span><span class="p">])</span></div> 110 111 <div class="viewcode-block" id="PPDWContainer.end_time"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.end_time">[docs]</a> <span class="k">def</span> <span class="nf">end_time</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 112 <span class="k">return</span> <span class="nb">max</span><span class="p">([</span><span class="n">each</span><span class="o">.</span><span class="n">time_of_arrival</span> <span class="k">for</span> <span class="n">each</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">signals</span><span class="p">])</span></div> 113 114 <div class="viewcode-block" id="PPDWContainer.to_json"><a class="viewcode-back" href="../../ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.to_json">[docs]</a> <span class="k">def</span> <span class="nf">to_json</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 115 <span class="k">return</span> <span class="p">{</span><span class="s1">'JULIANDATE'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">julian_date_string</span><span class="p">(),</span> 116 <span class="s1">'STARTTIME'</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">start_time</span><span class="p">()),</span> 117 <span class="s1">'ENDTIME'</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">end_time</span><span class="p">()),</span> 118 <span class="c1"># 'CENTERFREQUENCIES': self.center_frequencies(),</span> 119 <span class="s1">'CHANNELS'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">channels</span><span class="p">()</span> 120 <span class="c1"># 'MODULATIONS': self.modulations(),</span> 121 <span class="c1"># 'BANDWIDTHS': self.bandwidths()</span> 122 <span class="p">}</span></div></div> 80 123 81 124 <span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">'__main__'</span><span class="p">:</span> -
doc/html/_modules/index.html
reab48d0 r299c79c 86 86 <p> 87 87 © Copyright 2022, KIDZg. 88 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4. 4.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> .88 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4.5.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> . 89 89 (Revision ) 90 90 </p> -
doc/html/_static/doctools.js
reab48d0 r299c79c 155 155 this.highlightSearchWords(); 156 156 this.initIndexTable(); 157 if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { 158 this.initOnKeyListeners(); 159 } 157 this.initOnKeyListeners(); 160 158 }, 161 159 … … 270 268 }, 271 269 270 /** 271 * helper function to focus on search bar 272 */ 273 focusSearchBar : function() { 274 $('input[name=q]').first().focus(); 275 }, 276 272 277 /** 273 278 * make the url absolute … … 292 297 293 298 initOnKeyListeners: function() { 299 // only install a listener if it is really needed 300 if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && 301 !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) 302 return; 303 294 304 $(document).keydown(function(event) { 295 305 var activeElementType = document.activeElement.tagName; 296 306 // don't navigate when in search box, textarea, dropdown or button 297 307 if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' 298 && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey 299 && !event.shiftKey) { 300 switch (event.keyCode) { 301 case 37: // left 302 var prevHref = $('link[rel="prev"]').prop('href'); 303 if (prevHref) { 304 window.location.href = prevHref; 305 return false; 306 } 307 break; 308 case 39: // right 309 var nextHref = $('link[rel="next"]').prop('href'); 310 if (nextHref) { 311 window.location.href = nextHref; 312 return false; 313 } 314 break; 308 && activeElementType !== 'BUTTON') { 309 if (event.altKey || event.ctrlKey || event.metaKey) 310 return; 311 312 if (!event.shiftKey) { 313 switch (event.key) { 314 case 'ArrowLeft': 315 if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) 316 break; 317 var prevHref = $('link[rel="prev"]').prop('href'); 318 if (prevHref) { 319 window.location.href = prevHref; 320 return false; 321 } 322 break; 323 case 'ArrowRight': 324 if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) 325 break; 326 var nextHref = $('link[rel="next"]').prop('href'); 327 if (nextHref) { 328 window.location.href = nextHref; 329 return false; 330 } 331 break; 332 case 'Escape': 333 if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) 334 break; 335 Documentation.hideSearchWords(); 336 return false; 337 } 338 } 339 340 // some keyboard layouts may need Shift to get / 341 switch (event.key) { 342 case '/': 343 if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) 344 break; 345 Documentation.focusSearchBar(); 346 return false; 315 347 } 316 348 } -
doc/html/_static/documentation_options.js
reab48d0 r299c79c 9 9 HAS_SOURCE: true, 10 10 SOURCELINK_SUFFIX: '.txt', 11 NAVIGATION_WITH_KEYS: false 11 NAVIGATION_WITH_KEYS: false, 12 SHOW_SEARCH_SUMMARY: true, 13 ENABLE_SEARCH_SHORTCUTS: true, 12 14 }; -
doc/html/_static/searchtools.js
reab48d0 r299c79c 173 173 // stem the word 174 174 var word = stemmer.stemWord(tmp[i].toLowerCase()); 175 // prevent stemmer from cutting word smaller than two chars176 if(word.length < 3 && tmp[i].length >= 3) {177 word = tmp[i];178 }179 175 var toAppend; 180 176 // select the correct list … … 277 273 displayNextItem(); 278 274 }, 5); 279 } else if (DOCUMENTATION_OPTIONS. HAS_SOURCE) {275 } else if (DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY) { 280 276 $.ajax({url: requestUrl, 281 277 dataType: "text", … … 294 290 }}); 295 291 } else { 296 // no source available,just display title292 // just display title 297 293 Search.output.append(listItem); 298 294 setTimeout(function() { -
doc/html/ammosreader.html
reab48d0 r299c79c 96 96 <section id="module-ammosreader.AmmosAudioDataHeader"> 97 97 <span id="ammosreader-ammosaudiodataheader-module"></span><h2>ammosreader.AmmosAudioDataHeader module<a class="headerlink" href="#module-ammosreader.AmmosAudioDataHeader" title="Permalink to this headline">¶</a></h2> 98 <p>I provide an AMMOS data header for audio data frames.</p> 98 99 <dl class="py class"> 99 100 <dt class="sig sig-object py" id="ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader"> 100 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosAudioDataHeader.</span></span><span class="sig-name descname"><span class="pre">AmmosAudioDataHeader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sample_rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">status</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">frequency</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">demod_bandwidth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">demod_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_count</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel_count</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_size</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioDataHeader.html#AmmosAudioDataHeader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader" title="Permalink to this definition">¶</a></dt> 101 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 101 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosAudioDataHeader.</span></span><span class="sig-name descname"><span class="pre">AmmosAudioDataHeader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sample_rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">status</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">frequency</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">demod_bandwidth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">demod_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">number_of_samples</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">number_of_channels</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_size</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioDataHeader.html#AmmosAudioDataHeader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader" title="Permalink to this definition">¶</a></dt> 102 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 103 <p>I implement an AMMOS data header for audio data frames.</p> 104 <dl class="py attribute"> 105 <dt class="sig sig-object py" id="ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader.HEADER_SIZE"> 106 <span class="sig-name descname"><span class="pre">HEADER_SIZE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">36</span></em><a class="headerlink" href="#ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader.HEADER_SIZE" title="Permalink to this definition">¶</a></dt> 107 <dd></dd></dl> 108 102 109 <dl class="py method"> 103 110 <dt class="sig sig-object py" id="ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader.from_bytes"> 104 111 <em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_bytes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">bytes</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioDataHeader.html#AmmosAudioDataHeader.from_bytes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader.from_bytes" title="Permalink to this definition">¶</a></dt> 105 <dd></dd></dl> 106 107 </dd></dl> 108 109 <dl class="py class"> 110 <dt class="sig sig-object py" id="ammosreader.AmmosAudioDataHeader.AmmosAudioDemodType"> 111 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosAudioDataHeader.</span></span><span class="sig-name descname"><span class="pre">AmmosAudioDemodType</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">demod_type</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioDataHeader.html#AmmosAudioDemodType"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioDataHeader.AmmosAudioDemodType" title="Permalink to this definition">¶</a></dt> 112 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 113 <dl class="py property"> 114 <dt class="sig sig-object py" id="ammosreader.AmmosAudioDataHeader.AmmosAudioDemodType.mapping"> 115 <em class="property"><span class="pre">class</span><span class="w"> </span><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">mapping</span></span><a class="headerlink" href="#ammosreader.AmmosAudioDataHeader.AmmosAudioDemodType.mapping" title="Permalink to this definition">¶</a></dt> 116 <dd><p>dict() -> new empty dictionary 117 dict(mapping) -> new dictionary initialized from a mapping object’s</p> 118 <blockquote> 119 <div><p>(key, value) pairs</p> 120 </div></blockquote> 121 <dl> 122 <dt>dict(iterable) -> new dictionary initialized as if via:</dt><dd><p>d = {} 123 for k, v in iterable:</p> 124 <blockquote> 125 <div><p>d[k] = v</p> 126 </div></blockquote> 127 </dd> 128 <dt>dict(<a href="#id1"><span class="problematic" id="id2">**</span></a>kwargs) -> new dictionary initialized with the name=value pairs</dt><dd><p>in the keyword argument list. For example: dict(one=1, two=2)</p> 129 </dd> 130 </dl> 112 <dd><p>I return an AMMOS data header from given bytes.</p> 131 113 </dd></dl> 132 114 … … 136 118 <section id="module-ammosreader.AmmosAudioReader"> 137 119 <span id="ammosreader-ammosaudioreader-module"></span><h2>ammosreader.AmmosAudioReader module<a class="headerlink" href="#module-ammosreader.AmmosAudioReader" title="Permalink to this headline">¶</a></h2> 138 <p>I p arse an R&S AMMOS recording.</p>120 <p>I provide a specialized Ammos Reader for audio data.</p> 139 121 <dl class="py class"> 140 122 <dt class="sig sig-object py" id="ammosreader.AmmosAudioReader.AmmosAudioReader"> 141 123 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosAudioReader.</span></span><span class="sig-name descname"><span class="pre">AmmosAudioReader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">file_name</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioReader.html#AmmosAudioReader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader" title="Permalink to this definition">¶</a></dt> 142 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre"> object</span></code></p>124 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">ammosreader.AbstractAmmosReader.AbstractAmmosReader</span></code></p> 143 125 <p>I read the audio data embedded in an R&S AMMOS recording.</p> 144 <dl class="py attribute"> 145 <dt class="sig sig-object py" id="ammosreader.AmmosAudioReader.AmmosAudioReader.EXTENDED_AUDIO_DATA_HEADER_SIZE"> 146 <span class="sig-name descname"><span class="pre">EXTENDED_AUDIO_DATA_HEADER_SIZE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">44</span></em><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.EXTENDED_AUDIO_DATA_HEADER_SIZE" title="Permalink to this definition">¶</a></dt> 147 <dd></dd></dl> 148 149 <dl class="py attribute"> 150 <dt class="sig sig-object py" id="ammosreader.AmmosAudioReader.AmmosAudioReader.GLOBAL_HEADER_SIZE"> 151 <span class="sig-name descname"><span class="pre">GLOBAL_HEADER_SIZE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">24</span></em><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.GLOBAL_HEADER_SIZE" title="Permalink to this definition">¶</a></dt> 152 <dd></dd></dl> 153 154 <dl class="py attribute"> 155 <dt class="sig sig-object py" id="ammosreader.AmmosAudioReader.AmmosAudioReader.STANDARD_AUDIO_DATA_HEADER_SIZE"> 156 <span class="sig-name descname"><span class="pre">STANDARD_AUDIO_DATA_HEADER_SIZE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">36</span></em><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.STANDARD_AUDIO_DATA_HEADER_SIZE" title="Permalink to this definition">¶</a></dt> 157 <dd></dd></dl> 158 159 <dl class="py method"> 160 <dt class="sig sig-object py" id="ammosreader.AmmosAudioReader.AmmosAudioReader.add_tag"> 161 <span class="sig-name descname"><span class="pre">add_tag</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tag</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioReader.html#AmmosAudioReader.add_tag"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.add_tag" title="Permalink to this definition">¶</a></dt> 162 <dd><p>I add a tag to my tag list.</p> 163 <dl class="field-list simple"> 164 <dt class="field-odd">Parameters</dt> 165 <dd class="field-odd"><p><strong>tag</strong> (<em>dict</em>) – The tag to add to my tag list</p> 166 </dd> 167 </dl> 168 </dd></dl> 169 170 <dl class="py method"> 171 <dt class="sig sig-object py" id="ammosreader.AmmosAudioReader.AmmosAudioReader.read_all_frames_left"> 172 <span class="sig-name descname"><span class="pre">read_all_frames_left</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioReader.html#AmmosAudioReader.read_all_frames_left"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.read_all_frames_left" title="Permalink to this definition">¶</a></dt> 173 <dd><p>I read all remaining frames into my container until end of file is reached.</p> 174 <dl class="field-list simple"> 175 <dt class="field-odd">Returns</dt> 176 <dd class="field-odd"><p>a container containing all frames read</p> 126 <dl class="py method"> 127 <dt class="sig sig-object py" id="ammosreader.AmmosAudioReader.AmmosAudioReader.pcm_for_channel"> 128 <span class="sig-name descname"><span class="pre">pcm_for_channel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">a_channel</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioReader.html#AmmosAudioReader.pcm_for_channel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.pcm_for_channel" title="Permalink to this definition">¶</a></dt> 129 <dd><p>I return the raw pcm audio data for a given channel.</p> 130 <dl class="field-list simple"> 131 <dt class="field-odd">Parameters</dt> 132 <dd class="field-odd"><p><strong>a_channel</strong> (<em>int</em>) – the channel I have to extract</p> 177 133 </dd> 178 134 <dt class="field-even">Return type</dt> 179 <dd class="field-even"><p> <a class="reference internal" href="#ammosreader.AmmosContainer.AmmosContainer" title="ammosreader.AmmosContainer.AmmosContainer">AmmosContainer</a></p>135 <dd class="field-even"><p>bytes</p> 180 136 </dd> 181 137 </dl> … … 184 140 <dl class="py method"> 185 141 <dt class="sig sig-object py" id="ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_audio_data_body"> 186 <span class="sig-name descname"><span class="pre">read_next_audio_data_body</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre"> sample_count</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel_count</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_size</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioReader.html#AmmosAudioReader.read_next_audio_data_body"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_audio_data_body" title="Permalink to this definition">¶</a></dt>142 <span class="sig-name descname"><span class="pre">read_next_audio_data_body</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">number_of_samples</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">number_of_channels</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_size</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioReader.html#AmmosAudioReader.read_next_audio_data_body"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_audio_data_body" title="Permalink to this definition">¶</a></dt> 187 143 <dd><p>I return the next audio data read from current position in file.</p> 188 144 <dl class="field-list simple"> 189 145 <dt class="field-odd">Parameters</dt> 190 146 <dd class="field-odd"><ul class="simple"> 191 <li><p><strong> sample_count</strong> (<em>int</em>) – the number of samples per channel inside data body</p></li>192 <li><p><strong> channel_count</strong> (<em>int</em>) – number of channels (e.g. mono, stereo or even more)</p></li>147 <li><p><strong>number_of_samples</strong> (<em>int</em>) – the number of samples per channel inside data body</p></li> 148 <li><p><strong>number_of_channels</strong> (<em>int</em>) – number of channels (e.g. mono, stereo or even more)</p></li> 193 149 <li><p><strong>sample_size</strong> (<em>int</em>) – sample size in bytes (1, 2 or 4 bytes)</p></li> 194 150 </ul> … … 205 161 <dl class="py method"> 206 162 <dt class="sig sig-object py" id="ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_global_frame_body"> 207 <span class="sig-name descname"><span class="pre">read_next_global_frame_body</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">global_frame_header</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioReader.html#AmmosAudioReader.read_next_global_frame_body"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_global_frame_body" title="Permalink to this definition">¶</a></dt> 208 <dd></dd></dl> 163 <span class="sig-name descname"><span class="pre">read_next_global_frame_body</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data_header_length</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioReader.html#AmmosAudioReader.read_next_global_frame_body"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_global_frame_body" title="Permalink to this definition">¶</a></dt> 164 <dd><p>I return the next global frame body read from current position in file.</p> 165 <dl class="field-list simple"> 166 <dt class="field-odd">Parameters</dt> 167 <dd class="field-odd"><p><strong>global_frame_header</strong> – </p> 168 </dd> 169 </dl> 170 </dd></dl> 209 171 210 172 <dl class="py method"> … … 239 201 </dd></dl> 240 202 241 <dl class="py method">242 <dt class="sig sig-object py" id="ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_global_frame_header">243 <span class="sig-name descname"><span class="pre">read_next_global_frame_header</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioReader.html#AmmosAudioReader.read_next_global_frame_header"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_global_frame_header" title="Permalink to this definition">¶</a></dt>244 <dd><p>I return the next global frame header read from current position in file.</p>245 <dl class="field-list simple">246 <dt class="field-odd">Returns</dt>247 <dd class="field-odd"><p>the next global frame header or None if incomplete</p>248 </dd>249 <dt class="field-even">Return type</dt>250 <dd class="field-even"><p><a class="reference internal" href="#ammosreader.AmmosGlobalFrameHeader.AmmosGlobalFrameHeader" title="ammosreader.AmmosGlobalFrameHeader.AmmosGlobalFrameHeader">AmmosGlobalFrameHeader</a></p>251 </dd>252 </dl>253 </dd></dl>254 255 <dl class="py method">256 <dt class="sig sig-object py" id="ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_single_frame">257 <span class="sig-name descname"><span class="pre">read_next_single_frame</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioReader.html#AmmosAudioReader.read_next_single_frame"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_single_frame" title="Permalink to this definition">¶</a></dt>258 <dd></dd></dl>259 260 <dl class="py method">261 <dt class="sig sig-object py" id="ammosreader.AmmosAudioReader.AmmosAudioReader.rewind_to_start">262 <span class="sig-name descname"><span class="pre">rewind_to_start</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioReader.html#AmmosAudioReader.rewind_to_start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioReader.AmmosAudioReader.rewind_to_start" title="Permalink to this definition">¶</a></dt>263 <dd><p>I set the file pointer to the beginning of the file for the next operation.</p>264 </dd></dl>265 266 203 </dd></dl> 267 204 … … 269 206 <section id="module-ammosreader.AmmosAudioSocketReader"> 270 207 <span id="ammosreader-ammosaudiosocketreader-module"></span><h2>ammosreader.AmmosAudioSocketReader module<a class="headerlink" href="#module-ammosreader.AmmosAudioSocketReader" title="Permalink to this headline">¶</a></h2> 208 <p>I read a Ammos datastream from a socket.</p> 271 209 <dl class="py class"> 272 210 <dt class="sig sig-object py" id="ammosreader.AmmosAudioSocketReader.AmmosAudioSocketReader"> 273 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosAudioSocketReader.</span></span><span class="sig-name descname"><span class="pre">AmmosAudioSocketReader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">socket</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">socket.socket</span></span></em> <span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioSocketReader.html#AmmosAudioSocketReader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioSocketReader.AmmosAudioSocketReader" title="Permalink to this definition">¶</a></dt>211 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosAudioSocketReader.</span></span><span class="sig-name descname"><span class="pre">AmmosAudioSocketReader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">socket</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">socket.socket</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">debug</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosAudioSocketReader.html#AmmosAudioSocketReader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioSocketReader.AmmosAudioSocketReader" title="Permalink to this definition">¶</a></dt> 274 212 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 275 213 <dl class="py method"> 276 214 <dt class="sig sig-object py" id="ammosreader.AmmosAudioSocketReader.AmmosAudioSocketReader.read_next_frame"> 277 <span class="sig-name descname"><span class="pre">read_next_frame</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">bytearray</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="_modules/ammosreader/AmmosAudioSocketReader.html#AmmosAudioSocketReader.read_next_frame"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioSocketReader.AmmosAudioSocketReader.read_next_frame" title="Permalink to this definition">¶</a></dt> 278 <dd><p>reads the next ammos audio frame</p> 279 <dl class="field-list simple"> 280 <dt class="field-odd">Returns</dt> 281 <dd class="field-odd"><p>contains the audio data and the sample rate</p> 282 </dd> 283 <dt class="field-even">Return type</dt> 284 <dd class="field-even"><p>tuple[bytearray, int]</p> 215 <span class="sig-name descname"><span class="pre">read_next_frame</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">numpy.ndarray</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="_modules/ammosreader/AmmosAudioSocketReader.html#AmmosAudioSocketReader.read_next_frame"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosAudioSocketReader.AmmosAudioSocketReader.read_next_frame" title="Permalink to this definition">¶</a></dt> 216 <dd><p>Reads the next ammos audio frame from socket</p> 217 <dl class="field-list simple"> 218 <dt class="field-odd">Raises</dt> 219 <dd class="field-odd"><p><strong>TimeoutError</strong> – Raisees TimeoutError if the socket does not serve data anymore</p> 220 </dd> 221 <dt class="field-even">Returns</dt> 222 <dd class="field-even"><p>Contains the audio data and the sample rate</p> 223 </dd> 224 <dt class="field-odd">Return type</dt> 225 <dd class="field-odd"><p>tuple[np.ndarray, int]</p> 285 226 </dd> 286 227 </dl> … … 308 249 309 250 <dl class="py method"> 251 <dt class="sig sig-object py" id="ammosreader.AmmosContainer.AmmosContainer.data_only"> 252 <span class="sig-name descname"><span class="pre">data_only</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosContainer.html#AmmosContainer.data_only"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosContainer.AmmosContainer.data_only" title="Permalink to this definition">¶</a></dt> 253 <dd></dd></dl> 254 255 <dl class="py method"> 310 256 <dt class="sig sig-object py" id="ammosreader.AmmosContainer.AmmosContainer.frequencies"> 311 257 <span class="sig-name descname"><span class="pre">frequencies</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosContainer.html#AmmosContainer.frequencies"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosContainer.AmmosContainer.frequencies" title="Permalink to this definition">¶</a></dt> 312 258 <dd></dd></dl> 313 259 260 <dl class="py property"> 261 <dt class="sig sig-object py" id="ammosreader.AmmosContainer.AmmosContainer.global_frames"> 262 <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">global_frames</span></span><a class="headerlink" href="#ammosreader.AmmosContainer.AmmosContainer.global_frames" title="Permalink to this definition">¶</a></dt> 263 <dd></dd></dl> 264 265 <dl class="py property"> 266 <dt class="sig sig-object py" id="ammosreader.AmmosContainer.AmmosContainer.name"> 267 <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">name</span></span><a class="headerlink" href="#ammosreader.AmmosContainer.AmmosContainer.name" title="Permalink to this definition">¶</a></dt> 268 <dd></dd></dl> 269 314 270 <dl class="py method"> 315 271 <dt class="sig sig-object py" id="ammosreader.AmmosContainer.AmmosContainer.size"> … … 322 278 <section id="module-ammosreader.AmmosExtendedAudioDataHeader"> 323 279 <span id="ammosreader-ammosextendedaudiodataheader-module"></span><h2>ammosreader.AmmosExtendedAudioDataHeader module<a class="headerlink" href="#module-ammosreader.AmmosExtendedAudioDataHeader" title="Permalink to this headline">¶</a></h2> 280 <p>I provide an Ammos extended data header for audio data frames.</p> 324 281 <dl class="py class"> 325 282 <dt class="sig sig-object py" id="ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader"> 326 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosExtendedAudioDataHeader.</span></span><span class="sig-name descname"><span class="pre">AmmosExtendedAudioDataHeader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sample_rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">status</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">frequency</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">demod_bandwidth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">demod_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_count</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel_count</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_size</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timestamp</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosExtendedAudioDataHeader.html#AmmosExtendedAudioDataHeader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader" title="Permalink to this definition">¶</a></dt> 327 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 283 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosExtendedAudioDataHeader.</span></span><span class="sig-name descname"><span class="pre">AmmosExtendedAudioDataHeader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sample_rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">status</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">frequency</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">demod_bandwidth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">demod_type</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">number_of_samples</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">number_of_channels</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_size</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timestamp</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosExtendedAudioDataHeader.html#AmmosExtendedAudioDataHeader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader" title="Permalink to this definition">¶</a></dt> 284 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 285 <dl class="py attribute"> 286 <dt class="sig sig-object py" id="ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader.HEADER_SIZE"> 287 <span class="sig-name descname"><span class="pre">HEADER_SIZE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">44</span></em><a class="headerlink" href="#ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader.HEADER_SIZE" title="Permalink to this definition">¶</a></dt> 288 <dd></dd></dl> 289 328 290 <dl class="py method"> 329 291 <dt class="sig sig-object py" id="ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader.from_bytes"> 330 292 <em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_bytes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">bytes</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosExtendedAudioDataHeader.html#AmmosExtendedAudioDataHeader.from_bytes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader.from_bytes" title="Permalink to this definition">¶</a></dt> 331 <dd></dd></dl> 293 <dd><p>I return a new AMMOS extended data header for audio frames built from given bytes.</p> 294 </dd></dl> 332 295 333 296 </dd></dl> … … 340 303 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosExtendedIFDataHeader.</span></span><span class="sig-name descname"><span class="pre">AmmosExtendedIFDataHeader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">size</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">block_count</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">block_length</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timestamp</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">status</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source_state</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">frequency</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bandwidth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">interpolation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">decimation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">voltage_ref</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">stream_start</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_counter</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">antenna_correction</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosExtendedIFDataHeader.html#AmmosExtendedIFDataHeader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader" title="Permalink to this definition">¶</a></dt> 341 304 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 305 <p>I implement an Ammos extended data header for IF data frames.</p> 306 <dl class="py attribute"> 307 <dt class="sig sig-object py" id="ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader.HEADER_SIZE"> 308 <span class="sig-name descname"><span class="pre">HEADER_SIZE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">76</span></em><a class="headerlink" href="#ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader.HEADER_SIZE" title="Permalink to this definition">¶</a></dt> 309 <dd></dd></dl> 310 342 311 <dl class="py method"> 343 312 <dt class="sig sig-object py" id="ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader.from_bytes"> 344 313 <em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_bytes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">bytes</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosExtendedIFDataHeader.html#AmmosExtendedIFDataHeader.from_bytes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader.from_bytes" title="Permalink to this definition">¶</a></dt> 345 <dd></dd></dl> 314 <dd><p>I return an AMMOS extended data header from given bytes.</p> 315 </dd></dl> 346 316 347 317 </dd></dl> … … 350 320 <section id="module-ammosreader.AmmosGlobalFrameBody"> 351 321 <span id="ammosreader-ammosglobalframebody-module"></span><h2>ammosreader.AmmosGlobalFrameBody module<a class="headerlink" href="#module-ammosreader.AmmosGlobalFrameBody" title="Permalink to this headline">¶</a></h2> 322 <p>I provide an AMMOS global frame body.</p> 352 323 <dl class="py class"> 353 324 <dt class="sig sig-object py" id="ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody"> 354 325 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosGlobalFrameBody.</span></span><span class="sig-name descname"><span class="pre">AmmosGlobalFrameBody</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data_header</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data_body</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosGlobalFrameBody.html#AmmosGlobalFrameBody"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody" title="Permalink to this definition">¶</a></dt> 355 326 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 327 <p>I implement an AMMOS global frame body.</p> 328 <p>AMMOS frames can store data of various types. 329 The data is described in the data header. 330 The raw data is then stored in the data body.</p> 331 <dl class="py property"> 332 <dt class="sig sig-object py" id="ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody.data_body"> 333 <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">data_body</span></span><a class="headerlink" href="#ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody.data_body" title="Permalink to this definition">¶</a></dt> 334 <dd></dd></dl> 335 356 336 <dl class="py method"> 357 337 <dt class="sig sig-object py" id="ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody.data_bytes_only"> 358 338 <span class="sig-name descname"><span class="pre">data_bytes_only</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosGlobalFrameBody.html#AmmosGlobalFrameBody.data_bytes_only"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody.data_bytes_only" title="Permalink to this definition">¶</a></dt> 339 <dd></dd></dl> 340 341 <dl class="py property"> 342 <dt class="sig sig-object py" id="ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody.data_header"> 343 <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">data_header</span></span><a class="headerlink" href="#ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody.data_header" title="Permalink to this definition">¶</a></dt> 359 344 <dd></dd></dl> 360 345 … … 390 375 <dl class="py class"> 391 376 <dt class="sig sig-object py" id="ammosreader.AmmosIFDataBlock.AmmosIFDataBlock"> 392 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosIFDataBlock.</span></span><span class="sig-name descname"><span class="pre">AmmosIFDataBlock</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">if_datablock_header</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">if_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFDataBlock.html#AmmosIFDataBlock"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFDataBlock.AmmosIFDataBlock" title="Permalink to this definition">¶</a></dt> 393 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 377 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosIFDataBlock.</span></span><span class="sig-name descname"><span class="pre">AmmosIFDataBlock</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">header</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFDataBlock.html#AmmosIFDataBlock"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFDataBlock.AmmosIFDataBlock" title="Permalink to this definition">¶</a></dt> 378 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 379 <dl class="py property"> 380 <dt class="sig sig-object py" id="ammosreader.AmmosIFDataBlock.AmmosIFDataBlock.data"> 381 <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">data</span></span><a class="headerlink" href="#ammosreader.AmmosIFDataBlock.AmmosIFDataBlock.data" title="Permalink to this definition">¶</a></dt> 382 <dd></dd></dl> 383 384 <dl class="py property"> 385 <dt class="sig sig-object py" id="ammosreader.AmmosIFDataBlock.AmmosIFDataBlock.header"> 386 <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">header</span></span><a class="headerlink" href="#ammosreader.AmmosIFDataBlock.AmmosIFDataBlock.header" title="Permalink to this definition">¶</a></dt> 387 <dd></dd></dl> 388 394 389 </dd></dl> 395 390 … … 397 392 <section id="module-ammosreader.AmmosIFDataHeader"> 398 393 <span id="ammosreader-ammosifdataheader-module"></span><h2>ammosreader.AmmosIFDataHeader module<a class="headerlink" href="#module-ammosreader.AmmosIFDataHeader" title="Permalink to this headline">¶</a></h2> 394 <p>I provide a Ammos data header for IF data frames.</p> 399 395 <dl class="py class"> 400 396 <dt class="sig sig-object py" id="ammosreader.AmmosIFDataHeader.AmmosIFDataHeader"> 401 397 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosIFDataHeader.</span></span><span class="sig-name descname"><span class="pre">AmmosIFDataHeader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">block_count</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">block_length</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timestamp</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">status</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source_id</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source_state</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">frequency</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bandwidth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">interpolation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">decimation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">voltage_ref</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFDataHeader.html#AmmosIFDataHeader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFDataHeader.AmmosIFDataHeader" title="Permalink to this definition">¶</a></dt> 402 398 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 399 <p>I implement an Ammos data header for IF data frames.</p> 400 <dl class="py attribute"> 401 <dt class="sig sig-object py" id="ammosreader.AmmosIFDataHeader.AmmosIFDataHeader.HEADER_SIZE"> 402 <span class="sig-name descname"><span class="pre">HEADER_SIZE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">56</span></em><a class="headerlink" href="#ammosreader.AmmosIFDataHeader.AmmosIFDataHeader.HEADER_SIZE" title="Permalink to this definition">¶</a></dt> 403 <dd></dd></dl> 404 403 405 <dl class="py method"> 404 406 <dt class="sig sig-object py" id="ammosreader.AmmosIFDataHeader.AmmosIFDataHeader.from_bytes"> 405 407 <em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_bytes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">bytes</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFDataHeader.html#AmmosIFDataHeader.from_bytes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFDataHeader.AmmosIFDataHeader.from_bytes" title="Permalink to this definition">¶</a></dt> 406 <dd></dd></dl> 407 408 <dl class="py method"> 409 <dt class="sig sig-object py" id="ammosreader.AmmosIFDataHeader.AmmosIFDataHeader.header_size"> 410 <span class="sig-name descname"><span class="pre">header_size</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFDataHeader.html#AmmosIFDataHeader.header_size"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFDataHeader.AmmosIFDataHeader.header_size" title="Permalink to this definition">¶</a></dt> 411 <dd></dd></dl> 408 <dd><p>I return an AMMOS data header from given bytes.</p> 409 </dd></dl> 412 410 413 411 </dd></dl> … … 416 414 <section id="module-ammosreader.AmmosIFReader"> 417 415 <span id="ammosreader-ammosifreader-module"></span><h2>ammosreader.AmmosIFReader module<a class="headerlink" href="#module-ammosreader.AmmosIFReader" title="Permalink to this headline">¶</a></h2> 416 <p>I provide a specialized Ammos Reader for IF data.</p> 418 417 <dl class="py class"> 419 418 <dt class="sig sig-object py" id="ammosreader.AmmosIFReader.AmmosIFReader"> 420 419 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.AmmosIFReader.</span></span><span class="sig-name descname"><span class="pre">AmmosIFReader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">file_name</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFReader.html#AmmosIFReader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFReader.AmmosIFReader" title="Permalink to this definition">¶</a></dt> 421 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 422 <dl class="py method"> 423 <dt class="sig sig-object py" id="ammosreader.AmmosIFReader.AmmosIFReader.add_tag"> 424 <span class="sig-name descname"><span class="pre">add_tag</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tag</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFReader.html#AmmosIFReader.add_tag"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFReader.AmmosIFReader.add_tag" title="Permalink to this definition">¶</a></dt> 425 <dd></dd></dl> 426 427 <dl class="py method"> 428 <dt class="sig sig-object py" id="ammosreader.AmmosIFReader.AmmosIFReader.read_all_frames_left"> 429 <span class="sig-name descname"><span class="pre">read_all_frames_left</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFReader.html#AmmosIFReader.read_all_frames_left"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFReader.AmmosIFReader.read_all_frames_left" title="Permalink to this definition">¶</a></dt> 420 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">ammosreader.AbstractAmmosReader.AbstractAmmosReader</span></code></p> 421 <p>I read the IF data embedded in an R&S AMMOS recording.</p> 422 <dl class="py method"> 423 <dt class="sig sig-object py" id="ammosreader.AmmosIFReader.AmmosIFReader.data"> 424 <span class="sig-name descname"><span class="pre">data</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFReader.html#AmmosIFReader.data"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFReader.AmmosIFReader.data" title="Permalink to this definition">¶</a></dt> 430 425 <dd></dd></dl> 431 426 432 427 <dl class="py method"> 433 428 <dt class="sig sig-object py" id="ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_body"> 434 <span class="sig-name descname"><span class="pre">read_next_global_frame_body</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">global_frame_header</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFReader.html#AmmosIFReader.read_next_global_frame_body"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_body" title="Permalink to this definition">¶</a></dt> 435 <dd></dd></dl> 429 <span class="sig-name descname"><span class="pre">read_next_global_frame_body</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data_header_length</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFReader.html#AmmosIFReader.read_next_global_frame_body"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_body" title="Permalink to this definition">¶</a></dt> 430 <dd><p>I return the next global frame body read from current position in file.</p> 431 <dl class="field-list simple"> 432 <dt class="field-odd">Parameters</dt> 433 <dd class="field-odd"><p><strong>data_header_length</strong> (<em>int</em>) – the length of the data header</p> 434 </dd> 435 </dl> 436 </dd></dl> 436 437 437 438 <dl class="py method"> … … 443 444 <dt class="sig sig-object py" id="ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_body_extended_data_header"> 444 445 <span class="sig-name descname"><span class="pre">read_next_global_frame_body_extended_data_header</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFReader.html#AmmosIFReader.read_next_global_frame_body_extended_data_header"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_body_extended_data_header" title="Permalink to this definition">¶</a></dt> 445 <dd></dd></dl> 446 447 <dl class="py method"> 448 <dt class="sig sig-object py" id="ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_header"> 449 <span class="sig-name descname"><span class="pre">read_next_global_frame_header</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFReader.html#AmmosIFReader.read_next_global_frame_header"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_header" title="Permalink to this definition">¶</a></dt> 450 <dd></dd></dl> 451 452 <dl class="py method"> 453 <dt class="sig sig-object py" id="ammosreader.AmmosIFReader.AmmosIFReader.read_next_if_data_blocks"> 454 <span class="sig-name descname"><span class="pre">read_next_if_data_blocks</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">n</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">length</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFReader.html#AmmosIFReader.read_next_if_data_blocks"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFReader.AmmosIFReader.read_next_if_data_blocks" title="Permalink to this definition">¶</a></dt> 455 <dd></dd></dl> 456 457 <dl class="py method"> 458 <dt class="sig sig-object py" id="ammosreader.AmmosIFReader.AmmosIFReader.read_next_single_frame"> 459 <span class="sig-name descname"><span class="pre">read_next_single_frame</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFReader.html#AmmosIFReader.read_next_single_frame"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFReader.AmmosIFReader.read_next_single_frame" title="Permalink to this definition">¶</a></dt> 460 <dd></dd></dl> 461 462 <dl class="py method"> 463 <dt class="sig sig-object py" id="ammosreader.AmmosIFReader.AmmosIFReader.rewind_to_start"> 464 <span class="sig-name descname"><span class="pre">rewind_to_start</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFReader.html#AmmosIFReader.rewind_to_start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFReader.AmmosIFReader.rewind_to_start" title="Permalink to this definition">¶</a></dt> 465 <dd></dd></dl> 446 <dd><p>I return the next global frame body extended data header from current position in file.</p> 447 <dl class="field-list simple"> 448 <dt class="field-odd">Returns</dt> 449 <dd class="field-odd"><p>the next Ammos Extended IF data header or None if incomplete</p> 450 </dd> 451 <dt class="field-even">Return type</dt> 452 <dd class="field-even"><p><a class="reference internal" href="#ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader" title="ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader">AmmosExtendedIFDataHeader</a></p> 453 </dd> 454 </dl> 455 </dd></dl> 456 457 <dl class="py method"> 458 <dt class="sig sig-object py" id="ammosreader.AmmosIFReader.AmmosIFReader.read_next_if_data_body"> 459 <span class="sig-name descname"><span class="pre">read_next_if_data_body</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">number_of_data_blocks</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data_length</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/AmmosIFReader.html#AmmosIFReader.read_next_if_data_body"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.AmmosIFReader.AmmosIFReader.read_next_if_data_body" title="Permalink to this definition">¶</a></dt> 460 <dd><p>I return the next data body read from current position in file.</p> 461 <dl class="field-list simple"> 462 <dt class="field-odd">Parameters</dt> 463 <dd class="field-odd"><ul class="simple"> 464 <li><p><strong>number_of_data_blocks</strong> (<em>int</em>) – the number of data blocks inside the body</p></li> 465 <li><p><strong>data_length</strong> (<em>int</em>) – the length of the raw data inside a single block</p></li> 466 </ul> 467 </dd> 468 </dl> 469 </dd></dl> 466 470 467 471 </dd></dl> … … 479 483 <dd></dd></dl> 480 484 485 <dl class="py property"> 486 <dt class="sig sig-object py" id="ammosreader.AmmosSingleFrame.AmmosSingleFrame.global_frame_body"> 487 <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">global_frame_body</span></span><a class="headerlink" href="#ammosreader.AmmosSingleFrame.AmmosSingleFrame.global_frame_body" title="Permalink to this definition">¶</a></dt> 488 <dd></dd></dl> 489 490 <dl class="py property"> 491 <dt class="sig sig-object py" id="ammosreader.AmmosSingleFrame.AmmosSingleFrame.global_frame_header"> 492 <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">global_frame_header</span></span><a class="headerlink" href="#ammosreader.AmmosSingleFrame.AmmosSingleFrame.global_frame_header" title="Permalink to this definition">¶</a></dt> 493 <dd></dd></dl> 494 481 495 <dl class="py method"> 482 496 <dt class="sig sig-object py" id="ammosreader.AmmosSingleFrame.AmmosSingleFrame.size_correct"> … … 503 517 <section id="module-ammosreader.PDW"> 504 518 <span id="ammosreader-pdw-module"></span><h2>ammosreader.PDW module<a class="headerlink" href="#module-ammosreader.PDW" title="Permalink to this headline">¶</a></h2> 519 <p>I store the information of a single PDW block.</p> 505 520 <dl class="py class"> 506 521 <dt class="sig sig-object py" id="ammosreader.PDW.PDW"> … … 511 526 <dt class="sig sig-object py" id="ammosreader.PDW.PDW.__init__"> 512 527 <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">time_of_arrival</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pdw_format_identifier</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">center_frequency</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_valid</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">is_pulse</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">level_unit</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">signal_start_missing</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">signal_end_missing</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pulse_width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">frequency_shift_or_bandwidth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pulse_level_or_pulse_field_strength</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">region_of_interest</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">azimuth_confidence</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">modulation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sector</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">polarity</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">df_quality</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">elevation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">azimuth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PDW.html#PDW.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PDW.PDW.__init__" title="Permalink to this definition">¶</a></dt> 513 <dd><dl class="field-list simple"> 528 <dd><p>I return an instance of an Pulse Data word.</p> 529 <dl class="field-list simple"> 514 530 <dt class="field-odd">Parameters</dt> 515 531 <dd class="field-odd"><ul class="simple"> … … 524 540 <li><p><strong>pulse_width</strong> (<em>Integer</em>) – pulse width in nanoseconds - Zero if no valid pulse detected</p></li> 525 541 <li><p><strong>frequency_shift_or_bandwidth</strong> (<em>Integer</em>) – Value in KHz - Value set to 1048575 means Unknown</p></li> 526 <li><p><strong>pulse_level_or_pulse_field_strength</strong> (<em>Float</em>) – Pulse level or Pulse Field Strength depending on level_unit 542 <li><p><strong>pulse_level_or_pulse_field_strength</strong> (<em>Float</em>) – Pulse level or Pulse Field Strength depending on level_unit (-200.0…200.0) in 0.1 steps / minus 204.8 means no valid level detected</p></li> 527 543 <li><p><strong>region_of_interest</strong> (<em>Boolean</em>) – Marks if signal is from region of interest</p></li> 528 544 <li><p><strong>azimuth_confidence</strong> (<em>Float</em>) – degree in steps of 0.1 (0.0-6.2) / 6.3 means confidence unknown</p></li> … … 531 547 <li><p><strong>polarity</strong> (<em>String</em>) – Horizontal, Vertical, Clockwise, Counter clockwise</p></li> 532 548 <li><p><strong>df_quality</strong> (<em>Integer</em>) – Direction finding quality in percent (0-100) - Zero means unknown</p></li> 533 <li><p><strong>elevation</strong> (<em>Float</em>) – elevation of incoming signal (from -90 to 90 degree) in steps of 0.1 degree minus 102.4 means unknown</p></li> 534 <li><p><strong>azimuth</strong> (<em>Float</em>) – azimuth of incoming signal (from 0 to 359.9 degree) in steps of 0.1 degree plus 409.5 means unknown</p></li> 535 <li><p><strong>channel</strong> (<em>Integer</em>) – detecting channel (0-16) - Zero means unknown</p></li> 549 <li><p><strong>elevation</strong> – elevation of incoming signal (from -90 to 90 degree) in steps of 0.1 degree </p></li> 536 550 </ul> 537 551 </dd> 552 </dl> 553 <p>minus 102.4 means unknown 554 :type elevation: Float 555 :param azimuth: azimuth of incoming signal (from 0 to 359.9 degree) in steps of 0.1 degree plus 409.5 means unknown 556 :type azimuth: Float 557 :param channel: detecting channel (0-16) - Zero means unknown 558 :type channel: Integer 559 :return: An instance of class PDW with attributes set according to the data of a data body 560 :rtype: PDW</p> 561 </dd></dl> 562 563 <dl class="py method"> 564 <dt class="sig sig-object py" id="ammosreader.PDW.PDW.from_bytes"> 565 <em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_bytes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">byte_string</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PDW.html#PDW.from_bytes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PDW.PDW.from_bytes" title="Permalink to this definition">¶</a></dt> 566 <dd><p>I create an instance of class PDW from data body (8 * 32 bits).</p> 567 <dl class="field-list simple"> 568 <dt class="field-odd">Parameters</dt> 569 <dd class="field-odd"><p><strong>byte_string</strong> (<em>byte string</em>) – a byte string containing a single data body read from a ppdw file</p> 570 </dd> 538 571 <dt class="field-even">Returns</dt> 539 <dd class="field-even"><p> An instance of class PDW with attributes set according to the data of a data body</p>572 <dd class="field-even"><p>an instance of class PDW with attributes set according to the data of a data body</p> 540 573 </dd> 541 574 <dt class="field-odd">Return type</dt> … … 546 579 547 580 <dl class="py method"> 548 <dt class="sig sig-object py" id="ammosreader.PDW.PDW.from_bytes"> 549 <em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_bytes</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">byte_string</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PDW.html#PDW.from_bytes"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PDW.PDW.from_bytes" title="Permalink to this definition">¶</a></dt> 550 <dd><p>I create an instance of class PDW from data body (8 * 32 bits)</p> 551 <dl class="field-list simple"> 552 <dt class="field-odd">Parameters</dt> 553 <dd class="field-odd"><p><strong>byte_string</strong> (<em>byte string</em>) – a byte string containing a single data body read from a ppdw file</p> 554 </dd> 555 <dt class="field-even">Returns</dt> 556 <dd class="field-even"><p>an instance of class PDW with attributes set according to the data of a data body</p> 557 </dd> 558 <dt class="field-odd">Return type</dt> 559 <dd class="field-odd"><p><a class="reference internal" href="#ammosreader.PDW.PDW" title="ammosreader.PDW.PDW">PDW</a></p> 560 </dd> 561 </dl> 562 </dd></dl> 581 <dt class="sig sig-object py" id="ammosreader.PDW.PDW.to_json"> 582 <span class="sig-name descname"><span class="pre">to_json</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PDW.html#PDW.to_json"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PDW.PDW.to_json" title="Permalink to this definition">¶</a></dt> 583 <dd></dd></dl> 563 584 564 585 </dd></dl> … … 569 590 <dl class="py class"> 570 591 <dt class="sig sig-object py" id="ammosreader.PPDWContainer.PPDWContainer"> 571 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.PPDWContainer.</span></span><span class="sig-name descname"><span class="pre">PPDWContainer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">signals</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PPDWContainer.html#PPDWContainer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PPDWContainer.PPDWContainer" title="Permalink to this definition">¶</a></dt> 572 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 573 <p>I store multiple signals imported from one or more .ppdw files</p> 574 <dl class="py method"> 575 <dt class="sig sig-object py" id="ammosreader.PPDWContainer.PPDWContainer.__init__"> 576 <span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">signals</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PPDWContainer.html#PPDWContainer.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PPDWContainer.PPDWContainer.__init__" title="Permalink to this definition">¶</a></dt> 592 <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">ammosreader.PPDWContainer.</span></span><span class="sig-name descname"><span class="pre">PPDWContainer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">signals</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PPDWContainer.html#PPDWContainer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PPDWContainer.PPDWContainer" title="Permalink to this definition">¶</a></dt> 593 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p> 594 <p>I store multiple signals imported from one or more .ppdw files 595 .. automethod:: __init__</p> 596 <dl class="py method"> 597 <dt class="sig sig-object py" id="ammosreader.PPDWContainer.PPDWContainer.add"> 598 <span class="sig-name descname"><span class="pre">add</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">a_pdw</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PPDWContainer.html#PPDWContainer.add"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PPDWContainer.PPDWContainer.add" title="Permalink to this definition">¶</a></dt> 599 <dd></dd></dl> 600 601 <dl class="py method"> 602 <dt class="sig sig-object py" id="ammosreader.PPDWContainer.PPDWContainer.bandwidths"> 603 <span class="sig-name descname"><span class="pre">bandwidths</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PPDWContainer.html#PPDWContainer.bandwidths"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PPDWContainer.PPDWContainer.bandwidths" title="Permalink to this definition">¶</a></dt> 604 <dd></dd></dl> 605 606 <dl class="py method"> 607 <dt class="sig sig-object py" id="ammosreader.PPDWContainer.PPDWContainer.center_frequencies"> 608 <span class="sig-name descname"><span class="pre">center_frequencies</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PPDWContainer.html#PPDWContainer.center_frequencies"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PPDWContainer.PPDWContainer.center_frequencies" title="Permalink to this definition">¶</a></dt> 609 <dd></dd></dl> 610 611 <dl class="py method"> 612 <dt class="sig sig-object py" id="ammosreader.PPDWContainer.PPDWContainer.channels"> 613 <span class="sig-name descname"><span class="pre">channels</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PPDWContainer.html#PPDWContainer.channels"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PPDWContainer.PPDWContainer.channels" title="Permalink to this definition">¶</a></dt> 614 <dd></dd></dl> 615 616 <dl class="py method"> 617 <dt class="sig sig-object py" id="ammosreader.PPDWContainer.PPDWContainer.end_time"> 618 <span class="sig-name descname"><span class="pre">end_time</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PPDWContainer.html#PPDWContainer.end_time"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PPDWContainer.PPDWContainer.end_time" title="Permalink to this definition">¶</a></dt> 619 <dd></dd></dl> 620 621 <dl class="py method"> 622 <dt class="sig sig-object py" id="ammosreader.PPDWContainer.PPDWContainer.julian_date_string"> 623 <span class="sig-name descname"><span class="pre">julian_date_string</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PPDWContainer.html#PPDWContainer.julian_date_string"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PPDWContainer.PPDWContainer.julian_date_string" title="Permalink to this definition">¶</a></dt> 624 <dd></dd></dl> 625 626 <dl class="py method"> 627 <dt class="sig sig-object py" id="ammosreader.PPDWContainer.PPDWContainer.modulations"> 628 <span class="sig-name descname"><span class="pre">modulations</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PPDWContainer.html#PPDWContainer.modulations"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PPDWContainer.PPDWContainer.modulations" title="Permalink to this definition">¶</a></dt> 629 <dd></dd></dl> 630 631 <dl class="py method"> 632 <dt class="sig sig-object py" id="ammosreader.PPDWContainer.PPDWContainer.start_time"> 633 <span class="sig-name descname"><span class="pre">start_time</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PPDWContainer.html#PPDWContainer.start_time"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PPDWContainer.PPDWContainer.start_time" title="Permalink to this definition">¶</a></dt> 634 <dd></dd></dl> 635 636 <dl class="py method"> 637 <dt class="sig sig-object py" id="ammosreader.PPDWContainer.PPDWContainer.to_json"> 638 <span class="sig-name descname"><span class="pre">to_json</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/ammosreader/PPDWContainer.html#PPDWContainer.to_json"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#ammosreader.PPDWContainer.PPDWContainer.to_json" title="Permalink to this definition">¶</a></dt> 577 639 <dd></dd></dl> 578 640 … … 592 654 <p> 593 655 © Copyright 2022, KIDZg. 594 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4. 4.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> .656 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4.5.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> . 595 657 (Revision ) 596 658 </p> -
doc/html/genindex.html
reab48d0 r299c79c 71 71 <a href="#_"><strong>_</strong></a> 72 72 | <a href="#A"><strong>A</strong></a> 73 | <a href="#B"><strong>B</strong></a> 74 | <a href="#C"><strong>C</strong></a> 73 75 | <a href="#D"><strong>D</strong></a> 74 76 | <a href="#E"><strong>E</strong></a> … … 77 79 | <a href="#H"><strong>H</strong></a> 78 80 | <a href="#I"><strong>I</strong></a> 81 | <a href="#J"><strong>J</strong></a> 79 82 | <a href="#M"><strong>M</strong></a> 83 | <a href="#N"><strong>N</strong></a> 80 84 | <a href="#P"><strong>P</strong></a> 81 85 | <a href="#R"><strong>R</strong></a> 82 86 | <a href="#S"><strong>S</strong></a> 87 | <a href="#T"><strong>T</strong></a> 83 88 84 89 </div> … … 87 92 <td style="width: 33%; vertical-align: top;"><ul> 88 93 <li><a href="ammosreader.html#ammosreader.PDW.PDW.__init__">__init__() (ammosreader.PDW.PDW method)</a> 89 90 <ul> 91 <li><a href="ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.__init__">(ammosreader.PPDWContainer.PPDWContainer method)</a> 92 </li> 93 </ul></li> 94 </li> 94 95 </ul></td> 95 96 </tr></table> … … 98 99 <table style="width: 100%" class="indextable genindextable"><tr> 99 100 <td style="width: 33%; vertical-align: top;"><ul> 101 <li><a href="ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.add">add() (ammosreader.PPDWContainer.PPDWContainer method)</a> 102 </li> 100 103 <li><a href="ammosreader.html#ammosreader.AmmosContainer.AmmosContainer.add_frame">add_frame() (ammosreader.AmmosContainer.AmmosContainer method)</a> 101 104 </li> 102 <li><a href="ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.add_tag">add_tag() (ammosreader.AmmosAudioReader.AmmosAudioReader method)</a> 103 104 <ul> 105 <li><a href="ammosreader.html#ammosreader.AmmosContainer.AmmosContainer.add_tag">(ammosreader.AmmosContainer.AmmosContainer method)</a> 106 </li> 107 <li><a href="ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.add_tag">(ammosreader.AmmosIFReader.AmmosIFReader method)</a> 108 </li> 109 </ul></li> 105 <li><a href="ammosreader.html#ammosreader.AmmosContainer.AmmosContainer.add_tag">add_tag() (ammosreader.AmmosContainer.AmmosContainer method)</a> 106 </li> 110 107 <li><a href="ammosreader.html#ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader">AmmosAudioDataHeader (class in ammosreader.AmmosAudioDataHeader)</a> 111 108 </li> 112 <li><a href="ammosreader.html#ammosreader.AmmosAudioDataHeader.AmmosAudioDemodType">AmmosAudioDemodType (class in ammosreader.AmmosAudioDataHeader)</a>113 </li>114 109 <li><a href="ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader">AmmosAudioReader (class in ammosreader.AmmosAudioReader)</a> 115 110 </li> … … 160 155 </li> 161 156 </ul></li> 162 </ul></td>163 <td style="width: 33%; vertical-align: top;"><ul>164 157 <li> 165 158 ammosreader.AmmosContainer … … 169 162 </li> 170 163 </ul></li> 164 </ul></td> 165 <td style="width: 33%; vertical-align: top;"><ul> 171 166 <li> 172 167 ammosreader.AmmosExtendedAudioDataHeader … … 251 246 </tr></table> 252 247 248 <h2 id="B">B</h2> 249 <table style="width: 100%" class="indextable genindextable"><tr> 250 <td style="width: 33%; vertical-align: top;"><ul> 251 <li><a href="ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.bandwidths">bandwidths() (ammosreader.PPDWContainer.PPDWContainer method)</a> 252 </li> 253 </ul></td> 254 </tr></table> 255 256 <h2 id="C">C</h2> 257 <table style="width: 100%" class="indextable genindextable"><tr> 258 <td style="width: 33%; vertical-align: top;"><ul> 259 <li><a href="ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.center_frequencies">center_frequencies() (ammosreader.PPDWContainer.PPDWContainer method)</a> 260 </li> 261 </ul></td> 262 <td style="width: 33%; vertical-align: top;"><ul> 263 <li><a href="ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.channels">channels() (ammosreader.PPDWContainer.PPDWContainer method)</a> 264 </li> 265 </ul></td> 266 </tr></table> 267 253 268 <h2 id="D">D</h2> 254 269 <table style="width: 100%" class="indextable genindextable"><tr> 255 270 <td style="width: 33%; vertical-align: top;"><ul> 256 <li><a href="ammosreader.html#ammosreader.AmmosSingleFrame.AmmosSingleFrame.data">data() (ammosreader.AmmosSingleFrame.AmmosSingleFrame method)</a> 257 </li> 258 </ul></td> 259 <td style="width: 33%; vertical-align: top;"><ul> 271 <li><a href="ammosreader.html#ammosreader.AmmosIFDataBlock.AmmosIFDataBlock.data">data (ammosreader.AmmosIFDataBlock.AmmosIFDataBlock property)</a> 272 </li> 273 <li><a href="ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.data">data() (ammosreader.AmmosIFReader.AmmosIFReader method)</a> 274 275 <ul> 276 <li><a href="ammosreader.html#ammosreader.AmmosSingleFrame.AmmosSingleFrame.data">(ammosreader.AmmosSingleFrame.AmmosSingleFrame method)</a> 277 </li> 278 </ul></li> 279 </ul></td> 280 <td style="width: 33%; vertical-align: top;"><ul> 281 <li><a href="ammosreader.html#ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody.data_body">data_body (ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody property)</a> 282 </li> 260 283 <li><a href="ammosreader.html#ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody.data_bytes_only">data_bytes_only() (ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody method)</a> 261 284 </li> 285 <li><a href="ammosreader.html#ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody.data_header">data_header (ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody property)</a> 286 </li> 287 <li><a href="ammosreader.html#ammosreader.AmmosContainer.AmmosContainer.data_only">data_only() (ammosreader.AmmosContainer.AmmosContainer method)</a> 288 </li> 262 289 </ul></td> 263 290 </tr></table> … … 266 293 <table style="width: 100%" class="indextable genindextable"><tr> 267 294 <td style="width: 33%; vertical-align: top;"><ul> 268 <li><a href="ammosreader.html#ammosreader. AmmosAudioReader.AmmosAudioReader.EXTENDED_AUDIO_DATA_HEADER_SIZE">EXTENDED_AUDIO_DATA_HEADER_SIZE (ammosreader.AmmosAudioReader.AmmosAudioReader attribute)</a>295 <li><a href="ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.end_time">end_time() (ammosreader.PPDWContainer.PPDWContainer method)</a> 269 296 </li> 270 297 </ul></td> … … 298 325 <table style="width: 100%" class="indextable genindextable"><tr> 299 326 <td style="width: 33%; vertical-align: top;"><ul> 300 <li><a href="ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.GLOBAL_HEADER_SIZE">GLOBAL_HEADER_SIZE (ammosreader.AmmosAudioReader.AmmosAudioReader attribute)</a> 327 <li><a href="ammosreader.html#ammosreader.AmmosSingleFrame.AmmosSingleFrame.global_frame_body">global_frame_body (ammosreader.AmmosSingleFrame.AmmosSingleFrame property)</a> 328 </li> 329 </ul></td> 330 <td style="width: 33%; vertical-align: top;"><ul> 331 <li><a href="ammosreader.html#ammosreader.AmmosSingleFrame.AmmosSingleFrame.global_frame_header">global_frame_header (ammosreader.AmmosSingleFrame.AmmosSingleFrame property)</a> 332 </li> 333 <li><a href="ammosreader.html#ammosreader.AmmosContainer.AmmosContainer.global_frames">global_frames (ammosreader.AmmosContainer.AmmosContainer property)</a> 301 334 </li> 302 335 </ul></td> … … 306 339 <table style="width: 100%" class="indextable genindextable"><tr> 307 340 <td style="width: 33%; vertical-align: top;"><ul> 308 <li><a href="ammosreader.html#ammosreader.AmmosIFDataHeader.AmmosIFDataHeader.header_size">header_size() (ammosreader.AmmosIFDataHeader.AmmosIFDataHeader method)</a> 309 </li> 341 <li><a href="ammosreader.html#ammosreader.AmmosIFDataBlock.AmmosIFDataBlock.header">header (ammosreader.AmmosIFDataBlock.AmmosIFDataBlock property)</a> 342 </li> 343 <li><a href="ammosreader.html#ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader.HEADER_SIZE">HEADER_SIZE (ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader attribute)</a> 344 345 <ul> 346 <li><a href="ammosreader.html#ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader.HEADER_SIZE">(ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader attribute)</a> 347 </li> 348 <li><a href="ammosreader.html#ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader.HEADER_SIZE">(ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader attribute)</a> 349 </li> 350 <li><a href="ammosreader.html#ammosreader.AmmosIFDataHeader.AmmosIFDataHeader.HEADER_SIZE">(ammosreader.AmmosIFDataHeader.AmmosIFDataHeader attribute)</a> 351 </li> 352 </ul></li> 310 353 </ul></td> 311 354 </tr></table> … … 319 362 </tr></table> 320 363 364 <h2 id="J">J</h2> 365 <table style="width: 100%" class="indextable genindextable"><tr> 366 <td style="width: 33%; vertical-align: top;"><ul> 367 <li><a href="ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.julian_date_string">julian_date_string() (ammosreader.PPDWContainer.PPDWContainer method)</a> 368 </li> 369 </ul></td> 370 </tr></table> 371 321 372 <h2 id="M">M</h2> 322 373 <table style="width: 100%" class="indextable genindextable"><tr> … … 324 375 <li><a href="ammosreader.html#ammosreader.AmmosGlobalFrameHeader.AmmosGlobalFrameHeader.MAGIC_WORD">MAGIC_WORD (ammosreader.AmmosGlobalFrameHeader.AmmosGlobalFrameHeader attribute)</a> 325 376 </li> 326 <li><a href="ammosreader.html#ammosreader. AmmosAudioDataHeader.AmmosAudioDemodType.mapping">mapping (ammosreader.AmmosAudioDataHeader.AmmosAudioDemodType property)</a>377 <li><a href="ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.modulations">modulations() (ammosreader.PPDWContainer.PPDWContainer method)</a> 327 378 </li> 328 379 <li> … … 366 417 </tr></table> 367 418 419 <h2 id="N">N</h2> 420 <table style="width: 100%" class="indextable genindextable"><tr> 421 <td style="width: 33%; vertical-align: top;"><ul> 422 <li><a href="ammosreader.html#ammosreader.AmmosContainer.AmmosContainer.name">name (ammosreader.AmmosContainer.AmmosContainer property)</a> 423 </li> 424 </ul></td> 425 </tr></table> 426 368 427 <h2 id="P">P</h2> 369 428 <table style="width: 100%" class="indextable genindextable"><tr> 370 429 <td style="width: 33%; vertical-align: top;"><ul> 430 <li><a href="ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.pcm_for_channel">pcm_for_channel() (ammosreader.AmmosAudioReader.AmmosAudioReader method)</a> 431 </li> 432 </ul></td> 433 <td style="width: 33%; vertical-align: top;"><ul> 371 434 <li><a href="ammosreader.html#ammosreader.PDW.PDW">PDW (class in ammosreader.PDW)</a> 372 435 </li> 373 </ul></td>374 <td style="width: 33%; vertical-align: top;"><ul>375 436 <li><a href="ammosreader.html#ammosreader.PPDWContainer.PPDWContainer">PPDWContainer (class in ammosreader.PPDWContainer)</a> 376 437 </li> … … 381 442 <table style="width: 100%" class="indextable genindextable"><tr> 382 443 <td style="width: 33%; vertical-align: top;"><ul> 383 <li><a href="ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_all_frames_left">read_all_frames_left() (ammosreader.AmmosAudioReader.AmmosAudioReader method)</a>384 385 <ul>386 <li><a href="ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_all_frames_left">(ammosreader.AmmosIFReader.AmmosIFReader method)</a>387 </li>388 </ul></li>389 444 <li><a href="ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_audio_data_body">read_next_audio_data_body() (ammosreader.AmmosAudioReader.AmmosAudioReader method)</a> 390 445 </li> … … 397 452 </li> 398 453 </ul></li> 454 </ul></td> 455 <td style="width: 33%; vertical-align: top;"><ul> 399 456 <li><a href="ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_global_frame_body_data_header">read_next_global_frame_body_data_header() (ammosreader.AmmosAudioReader.AmmosAudioReader method)</a> 400 457 … … 403 460 </li> 404 461 </ul></li> 405 </ul></td>406 <td style="width: 33%; vertical-align: top;"><ul>407 462 <li><a href="ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_global_frame_body_extended_data_header">read_next_global_frame_body_extended_data_header() (ammosreader.AmmosAudioReader.AmmosAudioReader method)</a> 408 463 … … 411 466 </li> 412 467 </ul></li> 413 <li><a href="ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_global_frame_header">read_next_global_frame_header() (ammosreader.AmmosAudioReader.AmmosAudioReader method)</a> 414 415 <ul> 416 <li><a href="ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_global_frame_header">(ammosreader.AmmosIFReader.AmmosIFReader method)</a> 417 </li> 418 </ul></li> 419 <li><a href="ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_if_data_blocks">read_next_if_data_blocks() (ammosreader.AmmosIFReader.AmmosIFReader method)</a> 420 </li> 421 <li><a href="ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.read_next_single_frame">read_next_single_frame() (ammosreader.AmmosAudioReader.AmmosAudioReader method)</a> 422 423 <ul> 424 <li><a href="ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_single_frame">(ammosreader.AmmosIFReader.AmmosIFReader method)</a> 425 </li> 426 </ul></li> 427 <li><a href="ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.rewind_to_start">rewind_to_start() (ammosreader.AmmosAudioReader.AmmosAudioReader method)</a> 428 429 <ul> 430 <li><a href="ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.rewind_to_start">(ammosreader.AmmosIFReader.AmmosIFReader method)</a> 431 </li> 432 </ul></li> 468 <li><a href="ammosreader.html#ammosreader.AmmosIFReader.AmmosIFReader.read_next_if_data_body">read_next_if_data_body() (ammosreader.AmmosIFReader.AmmosIFReader method)</a> 469 </li> 433 470 </ul></td> 434 471 </tr></table> … … 447 484 <li><a href="ammosreader.html#ammosreader.AmmosSingleFrame.AmmosSingleFrame.size_correct">size_correct() (ammosreader.AmmosSingleFrame.AmmosSingleFrame method)</a> 448 485 </li> 449 <li><a href="ammosreader.html#ammosreader.AmmosAudioReader.AmmosAudioReader.STANDARD_AUDIO_DATA_HEADER_SIZE">STANDARD_AUDIO_DATA_HEADER_SIZE (ammosreader.AmmosAudioReader.AmmosAudioReader attribute)</a> 450 </li> 486 <li><a href="ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.start_time">start_time() (ammosreader.PPDWContainer.PPDWContainer method)</a> 487 </li> 488 </ul></td> 489 </tr></table> 490 491 <h2 id="T">T</h2> 492 <table style="width: 100%" class="indextable genindextable"><tr> 493 <td style="width: 33%; vertical-align: top;"><ul> 494 <li><a href="ammosreader.html#ammosreader.PDW.PDW.to_json">to_json() (ammosreader.PDW.PDW method)</a> 495 496 <ul> 497 <li><a href="ammosreader.html#ammosreader.PPDWContainer.PPDWContainer.to_json">(ammosreader.PPDWContainer.PPDWContainer method)</a> 498 </li> 499 </ul></li> 451 500 </ul></td> 452 501 </tr></table> … … 460 509 <p> 461 510 © Copyright 2022, KIDZg. 462 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4. 4.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> .511 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4.5.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> . 463 512 (Revision ) 464 513 </p> -
doc/html/index.html
reab48d0 r299c79c 105 105 <p> 106 106 © Copyright 2022, KIDZg. 107 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4. 4.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> .107 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4.5.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> . 108 108 (Revision ) 109 109 </p> -
doc/html/modules.html
reab48d0 r299c79c 103 103 <p> 104 104 © Copyright 2022, KIDZg. 105 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4. 4.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> .105 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4.5.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> . 106 106 (Revision ) 107 107 </p> -
doc/html/py-modindex.html
reab48d0 r299c79c 166 166 <p> 167 167 © Copyright 2022, KIDZg. 168 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4. 4.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> .168 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4.5.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> . 169 169 (Revision ) 170 170 </p> -
doc/html/search.html
reab48d0 r299c79c 93 93 <p> 94 94 © Copyright 2022, KIDZg. 95 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4. 4.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> .95 Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 4.5.0 <a href="https://github.com/mga-sphinx/sphinx_adc_theme">ADC Theme</a> . 96 96 (Revision ) 97 97 </p> -
doc/html/searchindex.js
reab48d0 r299c79c 1 Search.setIndex({docnames:["ammosreader","index","modules"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp": 4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["ammosreader.rst","index.rst","modules.rst"],objects:{"":[[0,0,0,"-","ammosreader"]],"ammosreader.AmmosAudioDataHeader":[[0,1,1,"","AmmosAudioDataHeader"],[0,1,1,"","AmmosAudioDemodType"]],"ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader":[[0,2,1,"","from_bytes"]],"ammosreader.AmmosAudioDataHeader.AmmosAudioDemodType":[[0,3,1,"","mapping"]],"ammosreader.AmmosAudioReader":[[0,1,1,"","AmmosAudioReader"]],"ammosreader.AmmosAudioReader.AmmosAudioReader":[[0,4,1,"","EXTENDED_AUDIO_DATA_HEADER_SIZE"],[0,4,1,"","GLOBAL_HEADER_SIZE"],[0,4,1,"","STANDARD_AUDIO_DATA_HEADER_SIZE"],[0,2,1,"","add_tag"],[0,2,1,"","read_all_frames_left"],[0,2,1,"","read_next_audio_data_body"],[0,2,1,"","read_next_global_frame_body"],[0,2,1,"","read_next_global_frame_body_data_header"],[0,2,1,"","read_next_global_frame_body_extended_data_header"],[0,2,1,"","read_next_global_frame_header"],[0,2,1,"","read_next_single_frame"],[0,2,1,"","rewind_to_start"]],"ammosreader.AmmosAudioSocketReader":[[0,1,1,"","AmmosAudioSocketReader"]],"ammosreader.AmmosAudioSocketReader.AmmosAudioSocketReader":[[0,2,1,"","read_next_frame"]],"ammosreader.AmmosContainer":[[0,1,1,"","AmmosContainer"]],"ammosreader.AmmosContainer.AmmosContainer":[[0,2,1,"","add_frame"],[0,2,1,"","add_tag"],[0,2,1,"","frequencies"],[0,2,1,"","size"]],"ammosreader.AmmosExtendedAudioDataHeader":[[0,1,1,"","AmmosExtendedAudioDataHeader"]],"ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader":[[0,2,1,"","from_bytes"]],"ammosreader.AmmosExtendedIFDataHeader":[[0,1,1,"","AmmosExtendedIFDataHeader"]],"ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader":[[0,2,1,"","from_bytes"]],"ammosreader.AmmosGlobalFrameBody":[[0,1,1,"","AmmosGlobalFrameBody"]],"ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody":[[0,2,1,"","data_bytes_only"]],"ammosreader.AmmosGlobalFrameHeader":[[0,1,1,"","AmmosGlobalFrameHeader"]],"ammosreader.AmmosGlobalFrameHeader.AmmosGlobalFrameHeader":[[0,4,1,"","MAGIC_WORD"],[0,2,1,"","from_bytes"],[0,2,1,"","size"]],"ammosreader.AmmosIFDataBlock":[[0,1,1,"","AmmosIFDataBlock"]],"ammosreader.AmmosIFDataHeader":[[0,1,1,"","AmmosIFDataHeader"]],"ammosreader.AmmosIFDataHeader.AmmosIFDataHeader":[[0,2,1,"","from_bytes"],[0,2,1,"","header_size"]],"ammosreader.AmmosIFReader":[[0,1,1,"","AmmosIFReader"]],"ammosreader.AmmosIFReader.AmmosIFReader":[[0,2,1,"","add_tag"],[0,2,1,"","read_all_frames_left"],[0,2,1,"","read_next_global_frame_body"],[0,2,1,"","read_next_global_frame_body_data_header"],[0,2,1,"","read_next_global_frame_body_extended_data_header"],[0,2,1,"","read_next_global_frame_header"],[0,2,1,"","read_next_if_data_blocks"],[0,2,1,"","read_next_single_frame"],[0,2,1,"","rewind_to_start"]],"ammosreader.AmmosSingleFrame":[[0,1,1,"","AmmosSingleFrame"]],"ammosreader.AmmosSingleFrame.AmmosSingleFrame":[[0,2,1,"","data"],[0,2,1,"","size_correct"]],"ammosreader.IQDWTXBlock":[[0,1,1,"","IQDWTXBLOCK"]],"ammosreader.IQDWTXBlock.IQDWTXBLOCK":[[0,2,1,"","from_bytes"]],"ammosreader.PDW":[[0,1,1,"","PDW"]],"ammosreader.PDW.PDW":[[0,2,1,"","__init__"],[0,2,1,"","from_bytes"]],"ammosreader.PPDWContainer":[[0,1,1,"","PPDWContainer"]],"ammosreader.PPDWContainer.PPDWContainer":[[0,2,1,"","__init__"]],ammosreader:[[0,0,0,"-","AmmosAudioDataHeader"],[0,0,0,"-","AmmosAudioReader"],[0,0,0,"-","AmmosAudioSocketReader"],[0,0,0,"-","AmmosContainer"],[0,0,0,"-","AmmosExtendedAudioDataHeader"],[0,0,0,"-","AmmosExtendedIFDataHeader"],[0,0,0,"-","AmmosGlobalFrameBody"],[0,0,0,"-","AmmosGlobalFrameHeader"],[0,0,0,"-","AmmosIFDataBlock"],[0,0,0,"-","AmmosIFDataHeader"],[0,0,0,"-","AmmosIFReader"],[0,0,0,"-","AmmosSingleFrame"],[0,0,0,"-","IQDWTXBlock"],[0,0,0,"-","PDW"],[0,0,0,"-","PPDWContainer"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","property","Python property"],"4":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:property","4":"py:attribute"},terms:{"0":0,"00":0,"01":0,"1":0,"100":0,"102":0,"1048575":0,"15":0,"16":0,"1970":0,"2":0,"200":0,"204":0,"24":0,"3":0,"32":0,"359":0,"36":0,"4":0,"409":0,"44":0,"5":0,"6":0,"726574fb":0,"8":0,"9":0,"90":0,"boolean":0,"byte":0,"class":0,"db\u00b5v":0,"float":0,"import":0,"int":0,"new":0,"return":0,For:0,The:0,__init__:0,access:0,accord:0,add:0,add_fram:0,add_tag:0,after:0,all:0,ammo:0,ammosaudiodatahead:[1,2],ammosaudiodemodtyp:0,ammosaudioread:[1,2],ammosaudiosocketread:[1,2],ammoscontain:[1,2],ammosextendedaudiodatahead:[1,2],ammosextendedifdatahead:[1,2],ammosglobalframebodi:[1,2],ammosglobalframehead:[1,2],ammosifdatablock:[1,2],ammosifdatahead:[1,2],ammosifread:[1,2],ammossinglefram:[1,2],an:0,antenna:0,antenna_correct:0,argument:0,arriv:0,attribut:0,audio:0,azimuth:0,azimuth_confid:0,bandwidth:0,base:0,befor:0,begin:0,bit:0,block:0,block_count:0,block_length:0,bodi:0,byte_str:0,bytearrai:0,center:0,center_frequ:0,channel:0,channel_count:0,classmethod:0,clockwis:0,code:0,confid:0,contain:0,content:[1,2],continu:0,counter:0,creat:0,current:0,d:0,data:0,data_bodi:0,data_bytes_onli:0,data_head:0,data_header_length:0,data_header_s:0,decim:0,degre:0,demod_bandwidth:0,demod_typ:0,depend:0,detect:0,df_qualiti:0,dict:0,dictionari:0,direct:0,e:0,elev:0,embed:0,empti:0,end:0,etc:0,even:0,exampl:0,extend:0,extended_audio_data_header_s:0,field:0,file:0,file_nam:0,find:0,flag:0,fm:0,format:0,frame:0,frame_length:0,frame_typ:0,frequenc:0,frequency_shift_or_bandwidth:0,from:0,from_byt:0,g:0,global:0,global_frame_bodi:0,global_frame_head:0,global_header_s:0,header:0,header_s:0,horizont:0,i:0,if_data:0,if_datablock_head:0,incom:0,incomplet:0,inform:0,initi:0,insid:0,instanc:0,integ:0,interest:0,interpol:0,iq:0,iqdwtxblock:[1,2],is_puls:0,is_valid:0,iter:0,k:0,kei:0,keyword:0,khz:0,kwarg:0,length:0,level:0,level_unit:0,list:0,m:0,magic_word:0,map:0,mark:0,mean:0,minu:0,modul:[1,2],mono:0,more:0,multipl:0,my:0,n:0,name:0,nanosecond:0,next:0,none:0,number:0,object:0,one:0,oper:0,packag:[1,2],pair:0,paramet:0,pars:0,pdw:[1,2],pdw_format:0,pdw_format_identifi:0,per:0,percent:0,plu:0,pointer:0,polar:0,posit:0,ppdw:0,ppdwcontain:[1,2],properti:0,psk:0,puls:0,pulse_level_or_pulse_field_strength:0,pulse_width:0,qualiti:0,r:0,rate:0,reach:0,read:0,read_all_frames_left:0,read_next_audio_data_bodi:0,read_next_fram:0,read_next_global_frame_bodi:0,read_next_global_frame_body_data_head:0,read_next_global_frame_body_extended_data_head:0,read_next_global_frame_head:0,read_next_if_data_block:0,read_next_single_fram:0,record:0,refer:0,region:0,region_of_interest:0,remain:0,reserv:0,rewind_to_start:0,running_frame_numb:0,s:0,sampl:0,sample_count:0,sample_r:0,sample_s:0,sector:0,set:0,signal:0,signal_end_miss:0,signal_start_miss:0,sinc:0,singl:0,size:0,size_correct:0,socket:0,sourc:0,source_id:0,source_st:0,standard_audio_data_header_s:0,start:0,statu:0,step:0,stereo:0,stop:0,store:0,stream_start:0,strength:0,string:0,submodul:[1,2],tag:0,time:0,time_of_arriv:0,timestamp:0,tupl:0,two:0,type:0,unknown:0,until:0,v:0,valid:0,valu:0,vertic:0,via:0,voltage_ref:0,wai:0,wave:0,width:0,zero:0},titles:["ammosreader package","ammosreader","ammosreader"],titleterms:{ammosaudiodatahead:0,ammosaudioread:0,ammosaudiosocketread:0,ammoscontain:0,ammosextendedaudiodatahead:0,ammosextendedifdatahead:0,ammosglobalframebodi:0,ammosglobalframehead:0,ammosifdatablock:0,ammosifdatahead:0,ammosifread:0,ammosread:[0,1,2],ammossinglefram:0,content:0,iqdwtxblock:0,modul:0,packag:0,pdw:0,ppdwcontain:0,submodul:0}})1 Search.setIndex({docnames:["ammosreader","index","modules"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":5,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["ammosreader.rst","index.rst","modules.rst"],objects:{"":[[0,0,0,"-","ammosreader"]],"ammosreader.AmmosAudioDataHeader":[[0,1,1,"","AmmosAudioDataHeader"]],"ammosreader.AmmosAudioDataHeader.AmmosAudioDataHeader":[[0,2,1,"","HEADER_SIZE"],[0,3,1,"","from_bytes"]],"ammosreader.AmmosAudioReader":[[0,1,1,"","AmmosAudioReader"]],"ammosreader.AmmosAudioReader.AmmosAudioReader":[[0,3,1,"","pcm_for_channel"],[0,3,1,"","read_next_audio_data_body"],[0,3,1,"","read_next_global_frame_body"],[0,3,1,"","read_next_global_frame_body_data_header"],[0,3,1,"","read_next_global_frame_body_extended_data_header"]],"ammosreader.AmmosAudioSocketReader":[[0,1,1,"","AmmosAudioSocketReader"]],"ammosreader.AmmosAudioSocketReader.AmmosAudioSocketReader":[[0,3,1,"","read_next_frame"]],"ammosreader.AmmosContainer":[[0,1,1,"","AmmosContainer"]],"ammosreader.AmmosContainer.AmmosContainer":[[0,3,1,"","add_frame"],[0,3,1,"","add_tag"],[0,3,1,"","data_only"],[0,3,1,"","frequencies"],[0,4,1,"","global_frames"],[0,4,1,"","name"],[0,3,1,"","size"]],"ammosreader.AmmosExtendedAudioDataHeader":[[0,1,1,"","AmmosExtendedAudioDataHeader"]],"ammosreader.AmmosExtendedAudioDataHeader.AmmosExtendedAudioDataHeader":[[0,2,1,"","HEADER_SIZE"],[0,3,1,"","from_bytes"]],"ammosreader.AmmosExtendedIFDataHeader":[[0,1,1,"","AmmosExtendedIFDataHeader"]],"ammosreader.AmmosExtendedIFDataHeader.AmmosExtendedIFDataHeader":[[0,2,1,"","HEADER_SIZE"],[0,3,1,"","from_bytes"]],"ammosreader.AmmosGlobalFrameBody":[[0,1,1,"","AmmosGlobalFrameBody"]],"ammosreader.AmmosGlobalFrameBody.AmmosGlobalFrameBody":[[0,4,1,"","data_body"],[0,3,1,"","data_bytes_only"],[0,4,1,"","data_header"]],"ammosreader.AmmosGlobalFrameHeader":[[0,1,1,"","AmmosGlobalFrameHeader"]],"ammosreader.AmmosGlobalFrameHeader.AmmosGlobalFrameHeader":[[0,2,1,"","MAGIC_WORD"],[0,3,1,"","from_bytes"],[0,3,1,"","size"]],"ammosreader.AmmosIFDataBlock":[[0,1,1,"","AmmosIFDataBlock"]],"ammosreader.AmmosIFDataBlock.AmmosIFDataBlock":[[0,4,1,"","data"],[0,4,1,"","header"]],"ammosreader.AmmosIFDataHeader":[[0,1,1,"","AmmosIFDataHeader"]],"ammosreader.AmmosIFDataHeader.AmmosIFDataHeader":[[0,2,1,"","HEADER_SIZE"],[0,3,1,"","from_bytes"]],"ammosreader.AmmosIFReader":[[0,1,1,"","AmmosIFReader"]],"ammosreader.AmmosIFReader.AmmosIFReader":[[0,3,1,"","data"],[0,3,1,"","read_next_global_frame_body"],[0,3,1,"","read_next_global_frame_body_data_header"],[0,3,1,"","read_next_global_frame_body_extended_data_header"],[0,3,1,"","read_next_if_data_body"]],"ammosreader.AmmosSingleFrame":[[0,1,1,"","AmmosSingleFrame"]],"ammosreader.AmmosSingleFrame.AmmosSingleFrame":[[0,3,1,"","data"],[0,4,1,"","global_frame_body"],[0,4,1,"","global_frame_header"],[0,3,1,"","size_correct"]],"ammosreader.IQDWTXBlock":[[0,1,1,"","IQDWTXBLOCK"]],"ammosreader.IQDWTXBlock.IQDWTXBLOCK":[[0,3,1,"","from_bytes"]],"ammosreader.PDW":[[0,1,1,"","PDW"]],"ammosreader.PDW.PDW":[[0,3,1,"","__init__"],[0,3,1,"","from_bytes"],[0,3,1,"","to_json"]],"ammosreader.PPDWContainer":[[0,1,1,"","PPDWContainer"]],"ammosreader.PPDWContainer.PPDWContainer":[[0,3,1,"","add"],[0,3,1,"","bandwidths"],[0,3,1,"","center_frequencies"],[0,3,1,"","channels"],[0,3,1,"","end_time"],[0,3,1,"","julian_date_string"],[0,3,1,"","modulations"],[0,3,1,"","start_time"],[0,3,1,"","to_json"]],ammosreader:[[0,0,0,"-","AmmosAudioDataHeader"],[0,0,0,"-","AmmosAudioReader"],[0,0,0,"-","AmmosAudioSocketReader"],[0,0,0,"-","AmmosContainer"],[0,0,0,"-","AmmosExtendedAudioDataHeader"],[0,0,0,"-","AmmosExtendedIFDataHeader"],[0,0,0,"-","AmmosGlobalFrameBody"],[0,0,0,"-","AmmosGlobalFrameHeader"],[0,0,0,"-","AmmosIFDataBlock"],[0,0,0,"-","AmmosIFDataHeader"],[0,0,0,"-","AmmosIFReader"],[0,0,0,"-","AmmosSingleFrame"],[0,0,0,"-","IQDWTXBlock"],[0,0,0,"-","PDW"],[0,0,0,"-","PPDWContainer"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","method","Python method"],"4":["py","property","Python property"]},objtypes:{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:method","4":"py:property"},terms:{"0":0,"00":0,"01":0,"1":0,"100":0,"102":0,"1048575":0,"15":0,"16":0,"1970":0,"2":0,"200":0,"204":0,"3":0,"32":0,"359":0,"36":0,"4":0,"409":0,"44":0,"5":0,"56":0,"6":0,"726574fb":0,"76":0,"8":0,"9":0,"90":0,"boolean":0,"byte":0,"class":0,"db\u00b5v":0,"float":0,"import":0,"int":0,"new":0,"return":0,"true":0,IF:0,The:0,__init__:0,a_channel:0,a_pdw:0,abstractammosread:0,access:0,accord:0,add:0,add_fram:0,add_tag:0,after:0,ammo:0,ammosaudiodatahead:[1,2],ammosaudioread:[1,2],ammosaudiosocketread:[1,2],ammoscontain:[1,2],ammosextendedaudiodatahead:[1,2],ammosextendedifdatahead:[1,2],ammosglobalframebodi:[1,2],ammosglobalframehead:[1,2],ammosifdatablock:[1,2],ammosifdatahead:[1,2],ammosifread:[1,2],ammossinglefram:[1,2],an:0,antenna:0,antenna_correct:0,anymor:0,arriv:0,attribut:0,audio:0,automethod:0,azimuth:0,azimuth_confid:0,bandwidth:0,base:0,befor:0,bit:0,block:0,block_count:0,block_length:0,bodi:0,built:0,byte_str:0,can:0,center:0,center_frequ:0,channel:0,classmethod:0,clockwis:0,code:0,confid:0,contain:0,content:[1,2],continu:0,counter:0,creat:0,current:0,data:0,data_bodi:0,data_bytes_onli:0,data_head:0,data_header_length:0,data_header_s:0,data_length:0,data_onli:0,datastream:0,debug:0,decim:0,degre:0,demod_bandwidth:0,demod_typ:0,depend:0,describ:0,detect:0,df_qualiti:0,direct:0,doe:0,e:0,elev:0,embed:0,end_tim:0,etc:0,even:0,extend:0,extract:0,field:0,file:0,file_nam:0,find:0,flag:0,fm:0,format:0,frame:0,frame_length:0,frame_typ:0,frequenc:0,frequency_shift_or_bandwidth:0,from:0,from_byt:0,g:0,given:0,global:0,global_fram:0,global_frame_bodi:0,global_frame_head:0,have:0,header:0,header_s:0,horizont:0,i:0,implement:0,incom:0,incomplet:0,inform:0,insid:0,instanc:0,integ:0,interest:0,interpol:0,iq:0,iqdwtxblock:[1,2],is_puls:0,is_valid:0,julian_date_str:0,khz:0,length:0,level:0,level_unit:0,m:0,magic_word:0,mark:0,mean:0,minu:0,modul:[1,2],mono:0,more:0,multipl:0,name:0,nanosecond:0,ndarrai:0,next:0,none:0,np:0,number:0,number_of_channel:0,number_of_data_block:0,number_of_sampl:0,numpi:0,object:0,one:0,packag:[1,2],param:0,paramet:0,pcm:0,pcm_for_channel:0,pdw:[1,2],pdw_format:0,pdw_format_identifi:0,per:0,percent:0,plu:0,polar:0,posit:0,ppdw:0,ppdwcontain:[1,2],properti:0,provid:0,psk:0,puls:0,pulse_level_or_pulse_field_strength:0,pulse_width:0,qualiti:0,r:0,rais:0,raise:0,rate:0,raw:0,read:0,read_next_audio_data_bodi:0,read_next_fram:0,read_next_global_frame_bodi:0,read_next_global_frame_body_data_head:0,read_next_global_frame_body_extended_data_head:0,read_next_if_data_bodi:0,reader:0,record:0,refer:0,region:0,region_of_interest:0,reserv:0,rtype:0,running_frame_numb:0,s:0,sampl:0,sample_count:0,sample_r:0,sample_s:0,sector:0,serv:0,set:0,signal:0,signal_end_miss:0,signal_start_miss:0,sinc:0,singl:0,size:0,size_correct:0,socket:0,sourc:0,source_id:0,source_st:0,special:0,start:0,start_tim:0,statu:0,step:0,stereo:0,stop:0,store:0,stream_start:0,strength:0,string:0,submodul:[1,2],tag:0,time:0,time_of_arriv:0,timeouterror:0,timestamp:0,to_json:0,tupl:0,type:0,unknown:0,valid:0,valu:0,variou:0,vertic:0,voltage_ref:0,wai:0,wave:0,width:0,word:0,zero:0},titles:["ammosreader package","ammosreader","ammosreader"],titleterms:{ammosaudiodatahead:0,ammosaudioread:0,ammosaudiosocketread:0,ammoscontain:0,ammosextendedaudiodatahead:0,ammosextendedifdatahead:0,ammosglobalframebodi:0,ammosglobalframehead:0,ammosifdatablock:0,ammosifdatahead:0,ammosifread:0,ammosread:[0,1,2],ammossinglefram:0,content:0,iqdwtxblock:0,modul:0,packag:0,pdw:0,ppdwcontain:0,submodul:0}})
Note:
See TracChangeset
for help on using the changeset viewer.