Jared Boone
eeb4645242
Move lots of capture_thread code to .cpp.
2016-05-02 12:50:49 -07:00
Jared Boone
697df07501
Move Writer implementations to ui_record_view.cpp.
2016-05-02 12:34:42 -07:00
Jared Boone
97af4585b0
Missing #includes.
2016-05-02 12:26:53 -07:00
Jared Boone
2e6230e29c
Rearrange UI code RecordView::start() to keep consistent in failure.
2016-05-02 11:55:53 -07:00
Jared Boone
3f36d8b7bf
Push record file type support into RecordView.
2016-05-02 11:44:37 -07:00
Jared Boone
68faccfd10
Update Writer default destructor syntax.
2016-05-02 11:22:14 -07:00
Jared Boone
fa8105266c
WAVFileWriter saves WAV files!
2016-05-01 11:31:20 -07:00
Jared Boone
80f94cbc29
Add File seek support.
2016-05-01 11:29:44 -07:00
Jared Boone
c5cae1034e
Forgot virtual destructor on interface class.
...
So my Files weren't getting closed properly!
2016-05-01 11:29:19 -07:00
Jared Boone
0445a842db
Rename args on Writer interface.
2016-05-01 11:07:50 -07:00
Jared Boone
2be105853e
Shrink CaptureThread stack, undid earlier increase.
...
Moved File into Writer abstraction, passed in now, not created on stack.
2016-04-30 16:55:52 -07:00
Jared Boone
6a17be1f2c
Abstract CaptureThread target class into Writer, implement RawFileWriter.
2016-04-30 16:34:50 -07:00
Jared Boone
b5fbab8e29
Pass a File into CaptureThread.
...
Groundwork for having a general output-stream interface.
2016-04-30 16:26:49 -07:00
Jared Boone
a2a2de9a23
Increase CaptureThread stack, now that File is created in new thread.
2016-04-30 15:13:54 -07:00
Jared Boone
0d6103916d
Converge File object with std::fstream. Simplify LogFile.
...
LogFile no longer watches SD card presence and tries to open/close files dynamically.
2016-04-30 15:09:34 -07:00
Jared Boone
4d6fccd8ea
Extract RecordView from AnalogAudioApp, CaptureApp.
2016-04-30 13:56:54 -07:00
Jared Boone
24192b4043
Capture: Write simple metadata for baseband and audio files.
...
Will probably turn the audio metadata file into .wav data, eventually.
2016-04-30 11:25:04 -07:00
Jared Boone
a6d41547a0
Make CaptureAppView capture functions same as AnalogAudioView.
2016-04-30 11:09:39 -07:00
Jared Boone
18e40562b5
Oops, 128K is not enough.
2016-04-29 11:27:31 -07:00
Jared Boone
12b8a1b2a9
Change next-file naming functions to work on filename stems.
...
This paves the way for writing metadata files with similar prefixes, and avoids confusing numbering of capture files with different extensions (e.g. BAD_0000.S16 and BBD_0000.S8).
2016-04-29 11:27:12 -07:00
Jared Boone
dc8c34487f
Speed dropped_percent() common case, ensure dropped>0 returns >0%.
2016-04-27 12:16:37 -07:00
Jared Boone
be9f3362da
Display percent of data dropped during capture to SD card.
2016-04-27 12:07:31 -07:00
Jared Boone
6ee886b90e
Expose capture state to the UI.
2016-04-27 12:06:47 -07:00
Jared Boone
a72a3489cf
Expose percent of data dropped during capture.
2016-04-27 12:04:02 -07:00
Jared Boone
11d15ec5b5
Add second tick handler for CaptureThread.
2016-04-27 12:03:43 -07:00
Jared Boone
8188b44439
Add Signal for per-second tick callbacks.
2016-04-27 12:02:17 -07:00
Jared Boone
7430e31578
Extract CaptureConfig from StreamOutput to CaptureThread.
...
So capture stats can be exposed by CaptureThread.
2016-04-27 10:56:50 -07:00
Jared Boone
75159fcc00
Use static StreamOutput::fifo for accessor methods.
2016-04-27 10:52:11 -07:00
Jared Boone
dc1ba7e6f3
Move CaptureThread::write_size into run().
2016-04-27 10:44:44 -07:00
Jared Boone
1789868b8a
Track bytes from baseband and dropped when entering capture FIFO.
2016-04-27 10:40:50 -07:00
Jared Boone
d63136c52e
Remove unused StreamInput::written().
2016-04-27 10:32:29 -07:00
Jared Boone
d2cf129fd5
Retain CaptureConfig pointer in StreamInput.
2016-04-27 10:32:06 -07:00
Jared Boone
3e08318012
Pass CaptureConfig to StreamInput as pointer.
2016-04-27 10:31:37 -07:00
Jared Boone
ca5dadab93
Set CaptureThread::thread to null after thread is released.
...
Was having a timing problem where ISR was still trying to signal thread after thread was nulled.
2016-04-27 10:13:50 -07:00
Jared Boone
4a348e2c6c
Revise CaptureThread loop to not get stuck if SD write speed too slow.
2016-04-27 10:12:21 -07:00
Jared Boone
91ee2dbb67
Move FIFO and write size to CaptureConfig structure.
...
Now configured from baseband, where write size and appropriate FIFO size is known.
2016-04-26 22:26:30 -07:00
Jared Boone
01fc6b9bc9
Remove redundant values in I2C struct.
2016-04-26 16:17:53 -07:00
Jared Boone
93ecf9ef82
Remove unused ldscript.
2016-04-26 16:16:04 -07:00
Jared Boone
0662196905
Fix audio codec I2C reliability for some HackRF units.
2016-04-26 13:06:46 -07:00
Jared Boone
ed3ac5249f
Move MessageQueue::signal into .cpp file.
2016-04-23 22:00:27 -07:00
Jared Boone
c585f3d4ea
Rename EVT_FIFO_HIGHWATER -> EVT_MASK_CAPTURE_THREAD.
2016-04-23 17:30:55 -07:00
Jared Boone
3103e9b80e
Remove unused EventDispatcher::thread_record.
2016-04-23 17:26:54 -07:00
Jared Boone
d5e21ce972
Use CaptureConfig to share state between cores.
...
Remove awful FIFO_HACK.
TODO: Lots of repeated code...
TODO: Capture thread is signalled too frequently.
2016-04-23 15:07:44 -07:00
Jared Boone
67eb62ec12
Provide AudioOutput::set_stream().
...
Assign when wanting to capture audio stream.
2016-04-23 14:55:59 -07:00
Jared Boone
7436dea51a
Add CaptureConfig structure and message.
2016-04-23 14:54:15 -07:00
Jared Boone
8b8b394792
Hide FIFO hack inside StreamOutput.
...
First step in a long refactor and evolution of the capture code.
2016-04-22 16:21:31 -07:00
Jared Boone
adf573be20
Add simple record UI to audio app.
2016-04-22 12:30:02 -07:00
Jared Boone
a6538bc48b
Rename AudioThread -> CaptureThread.
...
...since it's doing baseband capturing too, and doesn't really know what kind of data it's moving.
2016-04-22 12:15:51 -07:00
Jared Boone
b8196ee2be
Rename capture UI record objects and functions.
2016-04-22 12:08:01 -07:00
Jared Boone
f2453dd639
Consolidate bitmaps for reuse.
2016-04-22 11:57:46 -07:00
Jared Boone
27a1423309
De-constexpr a few UI constructors.
...
Because it was silly.
2016-04-22 11:18:35 -07:00
Jared Boone
61b5faf8b5
Clean up AnalogAudioView::on_show_options_modulation().
2016-04-22 10:22:47 -07:00
Jared Boone
760c73a7be
Move field.set_style()s after all participating widgets' styles are reset.
2016-04-22 10:16:42 -07:00
Jared Boone
c650536934
Hide remove_widget() in set_options_widget().
2016-04-22 10:01:17 -07:00
Jared Boone
051a63a222
Fix and clean up calculation of filter passband in capture mode.
2016-04-21 11:55:03 -07:00
Jared Boone
28ca45326d
Fix capture mode baseband_fs value.
2016-04-21 11:54:39 -07:00
Jared Boone
09a39f780a
Show capture file name.
2016-04-21 11:45:57 -07:00
Jared Boone
ee51d7fa67
Make room in capture mode for other controls.
2016-04-21 11:45:37 -07:00
Jared Boone
857fba6309
Change justification of spectrum right tick label.
2016-04-21 11:36:07 -07:00
Jared Boone
e4b86d149c
Change file recording behavior to create new file instead of appending.
2016-04-20 10:24:39 -07:00
Jared Boone
f38fca168e
Use sequential file naming for baseband capture files.
2016-04-20 10:23:59 -07:00
Jared Boone
9d635b3fcf
Use sequential file naming for audio recording.
2016-04-20 10:22:50 -07:00
Jared Boone
1c544a663b
Use automatic file naming for screen capture .png files.
2016-04-20 10:22:05 -07:00
Jared Boone
f49d04fe7a
Functions to select next filename based on matching pattern.
...
Used for capture, audio, screenshot file naming.
2016-04-20 09:57:17 -07:00
Jared Boone
7492984144
Add filesystem directory enumeration.
...
Borrow API from std::filesystem -- Boost and C++17.
2016-04-20 09:56:35 -07:00
Jared Boone
8119980370
Widen capture mode sampling rate, baseband filter.
2016-04-20 09:54:19 -07:00
Jared Boone
6de2df7c99
Enable FatFs f_findfirst, f_findnext.
2016-04-19 11:57:22 -07:00
Jared Boone
75cf0c2f4e
Update ffconf.h
...
Had to change codepage to 437 due to deprication of prior codepage 1252.
2016-04-19 10:09:17 -07:00
Jared Boone
95361b0036
Rename ffconf.h -> ffconf_template.h
...
To avoid #include problems with ffconf.h inside individual firmware executable projects.
2016-04-19 09:52:38 -07:00
Jared Boone
94c81528c1
FatFs update to R0.11a.
2016-04-19 09:51:31 -07:00
Jared Boone
ec75c00da2
Add capture mode waterfall.
2016-04-13 11:09:18 -07:00
Jared Boone
2201a9e95f
Change capture start/stop to toggle image button.
2016-04-12 11:37:58 -07:00
Jared Boone
cee5417a4a
Capture UI basic controls.
...
Tuning, LNA/VGA gain, second IF and "channel" RSSI. Use ReceiverModel, so that audio receiver parameters come across for quicker capture configuration.
2016-04-12 10:56:00 -07:00
Jared Boone
60a0d5c469
Capture mode channel stats
2016-04-12 10:51:20 -07:00
Jared Boone
10b28429e4
Add show-options event for VGAGainField.
2016-04-12 10:49:07 -07:00
Jared Boone
3e8b097588
Extract VGAGainField.
2016-04-12 10:48:24 -07:00
Jared Boone
e85503cd81
Nascent support for OOK TPMS transponders.
...
Apparently, Subaru and GMC. No CRC or other validation, no attempt to interpret packet contents yet.
2016-04-11 11:53:17 -07:00
Jared Boone
dc16aa478f
OOK slicer, clock recovery classes.
2016-04-11 11:50:03 -07:00
Jared Boone
40df73b923
Start/stop control of baseband capture.
2016-04-11 11:22:35 -07:00
Jared Boone
5558ca60d7
Enlarge capture buffers -- inter-core FIFO, SDC
2016-04-11 11:00:47 -07:00
Jared Boone
743dc9f542
Rough implementation of capture mode
2016-04-11 10:59:55 -07:00
Jared Boone
9eefd56410
StreamInput: notify other core every fourth of FIFO written.
2016-04-11 10:20:19 -07:00
Jared Boone
a5c2143ca8
Signal M0 when stream FIFO has another "chunk".
2016-04-11 10:20:19 -07:00
Jared Boone
4a1d3b14a1
Open AudioThread file on new thread.
...
Opening it in constructor was causing UI pauses.
2016-04-11 10:20:19 -07:00
Jared Boone
03dfd2b48e
...and more AudioThread cleanup.
2016-04-11 10:20:19 -07:00
Jared Boone
14d1b5fd72
Further AudioThread cleanup.
2016-04-11 10:20:19 -07:00
Jared Boone
feeb5bff6f
Move AudioThread con/destruction to proper places.
2016-04-11 10:20:19 -07:00
Jared Boone
08f4542954
Marginal attempt to simplify stream write loop.
2016-04-11 10:20:19 -07:00
Jared Boone
fc8bb635a6
Consider an incomplete write as an error.
2016-04-11 10:20:19 -07:00
Jared Boone
ba3c9dd8d1
Insist on writing stream data in buffer-sized blocks.
...
Maintaining alignment improves SD card write performance significantly.
2016-04-11 10:20:19 -07:00
Jared Boone
0d8971cd7d
Use size of provided buffer for stream write.
2016-04-11 10:20:19 -07:00
Jared Boone
b3e2e89e51
Create audio recording thread in the right place.
...
Was always creating, finding a timing issue when switching baseband modes, would freeze, probably due to a dangling pointer. TODO: Make stream recording setup synchronous.
2016-04-11 10:20:19 -07:00
Jared Boone
56e448d355
Track StreamInput bytes written
2016-04-11 10:20:19 -07:00
Jared Boone
8e14d2f4e8
Signal SD card write thread from M4 event.
2016-04-11 10:20:19 -07:00
Jared Boone
daa2f7aed0
Drain write FIFO, don't read just one block.
2016-04-11 10:20:19 -07:00
Jared Boone
aca19ae997
Factor out SD card write size.
2016-04-11 10:20:19 -07:00
Jared Boone
f94938db8e
De-template FIFO.
2016-04-11 10:20:19 -07:00
Jared Boone
59f1a32566
Semi-naive audio recording to SD card.
2016-04-11 10:20:19 -07:00
Jared Boone
c01f2d82e1
Move TPMS taps to dsp_fir_taps.hpp.
...
Will soon use in proc_record.cpp.
2016-04-11 10:18:31 -07:00
Jared Boone
1682f4700d
Move SDC CCLK to 25MHz
...
If your card can't hack it, get a new card.
2016-04-10 17:30:12 -07:00