Commit Graph

920 Commits

Author SHA1 Message Date
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
Jared Boone
f09d803e61 Use correct SDC card present function.
Was using the LLD function directly -- no!
2016-04-10 17:29:14 -07:00
Jared Boone
9e1b88d85f Enable FATFS fast seek feature.
Handy when appending to large baseband files.
2016-04-10 17:27:36 -07:00
Jared Boone
4ac2c540c9 Disable SDC "nice waiting" for performance.
Quick test indicates 4.5% better average write performance. No change in reads.
2016-04-10 17:24:28 -07:00
Jared Boone
0cb923be6d Add SD card debug view.
Bus and card configuration data, write and read testing.
2016-04-10 17:16:39 -07:00
Jared Boone
12939a0f82 Support larger SDC LLD transactions
Use chained DMA buffers -- limit is now 16Kbytes, adjustable by LPC_SDC_SDIO_DESCRIPTOR_COUNT. More descriptors require more stack.
2016-04-10 17:15:59 -07:00
Jared Boone
f76750e55b Add LFSR random number generator.
Used for SD card write/read testing, maybe other stuff eventually?
2016-04-10 16:30:28 -07:00
Jared Boone
0a9d7ec8d8 Add File::open_for_reading().
Barf.
2016-04-10 15:56:34 -07:00
Jared Boone
38ba02a68f Change File::open to File::open_for_writing.
Not thrilled about the File API right now...
2016-04-10 15:55:01 -07:00
Jared Boone
df6593ac91 SDC: Remove commented code 2016-04-09 21:34:28 -07:00
Jared Boone
34963c7f37 SDC: Auto-off clock when no transfer. 2016-04-09 21:33:46 -07:00
Jared Boone
f8d496d9d1 Remove cpu_clock.* -- unused.
ClockManager does all that stuff.
2016-04-09 21:33:12 -07:00
Jared Boone
b35a8c4501 Add TPMS signal_type. 2016-04-06 17:04:40 -07:00
Jared Boone
635b1fd4c3 Extract TPMS packet stuff to separate files. 2016-04-06 17:01:54 -07:00
Jared Boone
b7c0efbb64 Add ERT commodity type. 2016-04-06 16:16:10 -07:00
Jared Boone
6571ef0c11 Prevent alternate MessageQueue constructors. 2016-02-27 21:20:16 -08:00
Jared Boone
0fae1488c4 Hide most of MessageQueue functions. 2016-02-27 21:19:51 -08:00
Jared Boone
bf348cf30a Move message handling loops to MessageQueue. 2016-02-27 21:07:11 -08:00
Jared Boone
eb294c8e1c Add chDbgPanic for unhandled exceptions. 2016-02-27 12:05:29 -08:00
Jared Boone
6101ca36cd Use unique_ptr for baseband_buffer. 2016-02-23 20:21:32 -08:00
Jared Boone
3493b7d1b7 Hide BasebandThread::baseband_processor. 2016-02-23 19:56:55 -08:00
Jared Boone
a1b9f4aa1b Simplify, generalize, share int16_t taps copy function.
Also prevents compiler loop unrolling in non-critical code, for code size improvement.
2016-02-23 15:04:20 -08:00
Jared Boone
9c11fdf80c Explicit std::function nullptr checks.
Eliminates std::function check which tries to "_ZSt25__throw_bad_function_callv", along with 816 bytes of extra code, including some locale/wlocale/moneypunct nonsense.
2016-02-23 13:30:41 -08:00