Jared Boone
ee3a77f32c
Center RegistersWidget painting.
2015-12-14 11:47:43 -08:00
Jared Boone
56c3167156
Move RegistersWidget/Views methods to .cpp.
2015-12-14 11:30:24 -08:00
Jared Boone
2ee072aa7b
Invert register number column colors in RegistersWidget.
2015-12-14 11:24:48 -08:00
Jared Boone
a340cbb74b
Make NavigationView an implicit first argument to any instance pushed onto nav stack.
2015-12-14 11:18:59 -08:00
Jared Boone
0828c66b8a
Move default constructor to .hpp.
2015-12-14 11:12:12 -08:00
Jared Boone
969d9bd070
Use std::unique_ptr inside NavigationView.
2015-12-14 11:11:49 -08:00
Jared Boone
18c4672ba2
Clean up navigation stack alloc/delete sequence.
2015-12-14 10:52:08 -08:00
Jared Boone
97f29f8336
Clean up UI navigation push constructor scheme.
2015-12-14 10:22:42 -08:00
Jared Boone
a1aa6ecdbf
Eliminate per-device Views and RegisterWidgets, virtual methods.
...
Nice code size improvement, despite supporting three device register sets instead of just one.
2015-12-13 21:28:39 -08:00
Jared Boone
a0fbfcf6a2
Consolidate code and improve reuse between RegistersWidgets.
2015-12-13 13:22:09 -08:00
Jared Boone
94805285e2
Remove RegisterMap accessors.
2015-12-13 13:20:22 -08:00
Jared Boone
2fe1285c11
Un-inline register read/write functions.
2015-12-13 13:18:37 -08:00
Jared Boone
041e211841
Expose register read functions.
2015-12-13 13:18:05 -08:00
Jared Boone
74aa2112f4
Add Si5351C register view, make more space in all register views.
2015-12-13 12:34:51 -08:00
Jared Boone
5df1665994
Class divider comments.
2015-12-13 11:50:55 -08:00
Jared Boone
32108a8229
Field for register set name was too narrow.
2015-12-13 11:50:31 -08:00
Jared Boone
c7d49eb190
Expose MAX2837 registers, show registers in debug view.
2015-12-13 11:50:06 -08:00
Jared Boone
a6fbd1c5ef
Make DebugRFFCView into generic RegistersView.
2015-12-13 11:48:39 -08:00
Jared Boone
b058d609eb
Move packet timestamping into baseband.
...
Now reads the RTC peripheral at the end of each received packet.
TODO: Improve resolution to milliseconds or better.
TODO: Work back from end of packet to compute timestamp for beginning of packet.
TODO: Reuse ChibiOS RTC code, which isn't used now because ChibiOS on M0 core is responsible for RTC configuration, and including ChibiOS RTC API on M4 will also try to initialize/manage the peripheral.
2015-12-12 11:37:30 -08:00
Jared Boone
ca7e0f1e20
Remove #include of ChibiOS test.h.
...
Would be appropriate if writing a test case project. Someday...
2015-12-10 18:28:19 -08:00
Jared Boone
83bf2a9a36
Tweak BasebandConfiguration constructors to avoid surprise type conversions.
2015-12-10 14:40:48 -08:00
Jared Boone
4d52f73f6a
Move Manchester to common/.
2015-12-10 11:28:18 -08:00
Jared Boone
eb1402764e
Move ERT packet type to its rightful place.
...
No longer mixed up with Message types.
2015-12-08 16:19:27 -08:00
Jared Boone
7de187e267
Move ERT, AIS packet code to common/.
2015-12-08 16:08:20 -08:00
Jared Boone
2e81d1f5b7
Separate ERT packet and UI code.
2015-12-08 16:04:48 -08:00
Jared Boone
644d3837ff
Consolidate AIS Packet types.
2015-12-08 15:54:35 -08:00
Jared Boone
3e0acc9988
AIS-related namespace cleanup.
2015-12-08 15:53:17 -08:00
Jared Boone
37d7d5b273
Separate AIS packet and formatting code from app code.
2015-12-08 15:49:20 -08:00
Jared Boone
218d81fc60
Rename all the app .cpp/.hpp to have app name first.
...
Larger refactoring of filenames and namespaces imminent!
2015-12-08 15:28:33 -08:00
Jared Boone
d0d97e92cb
Rename ::Packet to baseband::Packet. Remove IPC packet types.
2015-12-08 15:15:51 -08:00
Jared Boone
280acfd227
First commit of AIS data scroller.
...
It's weird and buggy right now, but I think I can make it work sensibly.
2015-12-08 14:16:36 -08:00
Jared Boone
90a7327cd5
Clean up FieldReader and BitRemap types.
2015-12-08 14:15:15 -08:00
Jared Boone
31fdf026f2
constexpr a bunch of stuff.
2015-12-08 13:47:52 -08:00
Jared Boone
0c1c0da8a5
AIS: More simplifying of packet length/validation code.
2015-12-08 13:38:40 -08:00
Jared Boone
af74daf092
AIS Packet refactor, consolidating duplicate packet length code.
2015-12-08 11:14:00 -08:00
Jared Boone
7cded79b59
Clean up CRC class/interface, make more like boost::crc_basic.
2015-12-08 10:35:54 -08:00
Jared Boone
c38beb70e5
Only show ERT packets that pass CRC check.
2015-12-07 15:35:24 -08:00
Jared Boone
b61ed7dce2
Clean up ERT CRC code, add IDM CRC checking.
2015-12-07 15:32:26 -08:00
Jared Boone
ee1eadce5b
Fix incorrect ERT packet length().
...
Was returning number of symbols before Manchester decoding. Oops.
2015-12-07 15:31:42 -08:00
Jared Boone
f1b45d4e7f
Reinstate logging of ERT packets.
2015-12-07 15:31:01 -08:00
Jared Boone
bd33e652ea
Abstract packet type/implementation details.
2015-12-07 12:35:05 -08:00
Jared Boone
b9ea7fa786
ERT CRC checking for SCM packets.
...
IDM coming as soon as I can address packet truncation...
2015-12-07 12:27:09 -08:00
Jared Boone
1c01f54717
Widen ERT baseband filter to 2.5MHz.
...
It appears this will not negatively impact the noise floor vs. benefit of receiving additional channels (0.2MHz spacing).
2015-12-07 09:59:41 -08:00
Jared Boone
b9643dc988
Clean up ERT packet type notation.
...
Still not great, but at least repeated code is reduced.
2015-12-06 15:47:04 -08:00
Jared Boone
9e004d4754
Move ERT packet type determination earlier.
...
It'll eventually move into baseband.
2015-12-06 15:36:23 -08:00
Jared Boone
2a55030d4e
Use ert::Packet for basic packet decoding.
2015-12-06 15:32:21 -08:00
Jared Boone
51026609ce
ert::Packet parser.
2015-12-06 15:31:17 -08:00
Jared Boone
5cfd44a546
Manchester decoded symbol operator| for accessing bit value.
2015-12-06 15:22:52 -08:00
Jared Boone
85ac3fa4ac
Show selected item at bottom of visible list even if it should be off-screen.
...
Not convinced this is the most intuitive approach, but it's better than before.
2015-12-06 09:50:53 -08:00
Jared Boone
0f23736253
Whoops, don't match selected_key inside draw_entry.
2015-12-05 20:25:05 -08:00
Jared Boone
c4ad2ffe1b
Extract AIS RecentEntry painting into separate method.
...
Small steps in a larger refactor, and better selected-item-scrolls-off-the-bottom behavior.
2015-12-05 20:15:30 -08:00
Jared Boone
8fce9378cc
Extract entry list truncation.
2015-12-05 19:52:12 -08:00
Jared Boone
9791d64b50
AISView RecentEntry UI selection by encoder.
2015-12-05 14:24:41 -08:00
Jared Boone
27684069c5
Track when AISView has focus.
2015-12-05 14:23:53 -08:00
Jared Boone
1c191bcd4f
Rename AISView::log to on_packet.
2015-12-05 14:22:35 -08:00
Jared Boone
64b9bfa35f
Make MMSI-formatting function.
...
Only render nine digits, left zero pad.
2015-12-03 22:09:06 -08:00
Jared Boone
fbd077e91d
Restore receiver mode when View is displayed.
...
Needs refactor because on_modulation_changed() doesn't change the modulation so much as the "app" or receiver mode.
2015-12-03 20:54:18 -08:00
Jared Boone
2a2e65abad
Reserve length of AIS packet text std::string.
2015-12-03 20:34:30 -08:00
Jared Boone
3644bfd983
AISView displays list of most recent packets -- MMSI and name or call sign.
...
Formerly scrolling console of packets.
2015-12-03 20:34:02 -08:00
Jared Boone
0cad2847f8
LogFile pass references to reduce code size a bit.
...
Apparently the compiler isn't optimizing away copies in places I thought it would.
2015-12-03 14:08:06 -08:00
Jared Boone
bb3cb6f080
Push packet timestamping earlier in packet handling.
...
Ideally, it'd get pushed back into baseband, and baseband would correct for the length of the packet (based on preamble/access code match timestamp minus preamble/access code duration) to give the exact time the packet started.
2015-12-03 14:04:20 -08:00
Jared Boone
0909cdb31e
AIS: Add MMSI type.
2015-12-02 22:39:05 -08:00
Jared Boone
ad22eab3d2
Fix ERT console lack of CRLF.
2015-12-02 14:12:35 -08:00
Jared Boone
bfcd25d857
LogFile puts timestamp before entry, CRLF after.
2015-12-02 14:05:25 -08:00
Jared Boone
76845c4335
Extract to_string_* functions from ui_widget.
2015-12-02 13:38:17 -08:00
Jared Boone
d8c59e2ce2
Zero pad years < 1000 to four digits.
2015-12-02 13:23:29 -08:00
Jared Boone
b8ee19f8e6
AIS: Large refactor to separate packet decode from UI/log formatting.
2015-12-02 12:16:39 -08:00
Jared Boone
4baf2a06f2
Move ais_baseband code to app_ais.
2015-12-02 09:31:14 -08:00
Jared Boone
57aed55cc7
Extract LogFile, add (dumb) logging to ERT, AIS apps.
2015-12-01 22:39:27 -08:00
Jared Boone
29f2d0e50a
Move app_spectrum_analysis.hpp code to .cpp.
2015-12-01 22:07:17 -08:00
Jared Boone
d15afc9f7d
Move app_analog_audio.hpp code to .cpp.
2015-12-01 22:04:04 -08:00
Jared Boone
11e8456da0
Move app_ert.hpp code to .cpp.
2015-12-01 21:59:47 -08:00
Jared Boone
4c3b557064
Move app_tpms.hpp code to .cpp.
2015-12-01 21:53:28 -08:00
Jared Boone
61dc25e132
Move more Manchester code from .hpp to .cpp.
2015-12-01 21:47:21 -08:00
Jared Boone
1aa1286ec1
Push app_ais.hpp code into .cpp.
2015-12-01 21:44:13 -08:00
Jared Boone
ac2b62a8a7
Extract "apps".
2015-12-01 21:30:52 -08:00
Jared Boone
519f8cfebc
Extract Manchester decoder, formatter.
2015-12-01 21:28:53 -08:00
Jared Boone
9a5655ad0e
Removed extra methods.
2015-12-01 21:27:51 -08:00
Jared Boone
eb10532931
Remove SD card statuc handler in ReceiverView.
...
Wasn't doing anything useful, and probably won't.
2015-12-01 21:27:14 -08:00
Jared Boone
e9bf500bfc
Move ReceiverMode enum to receiver_model.hpp
2015-12-01 21:00:31 -08:00
Jared Boone
74d6518ea1
Rename AudioModel, AudioView to Analog*.
2015-12-01 20:55:36 -08:00
Jared Boone
c1d59b644d
Move baseband configuration to receiver mode classes.
...
Factor out the terrible switch() and clean up redundant code.
2015-12-01 20:25:57 -08:00
Jared Boone
c0db15f3e5
Replace receiver mode ordinals with enum.
2015-12-01 19:52:48 -08:00
Jared Boone
f15716a06b
Move TPMS logging to file into TPMSModel class.
2015-12-01 17:42:52 -08:00
Jared Boone
f49cdfdd99
Refactor digital mode handlers into Model and View classes.
2015-12-01 17:29:54 -08:00
Jared Boone
ec977ccd05
Implement console "\n" -> crlf() behavior.
2015-12-01 17:28:22 -08:00
Jared Boone
32319ddf9f
Manchester decoder bounds checking.
...
Return error symbol if reading past source data.
2015-12-01 16:05:23 -08:00
Jared Boone
8461b0c94e
Manchester formatting to next largest length in nibbles.
...
Prior code insisted on next largest byte, for no good reason.
2015-12-01 15:50:07 -08:00
Jared Boone
c657ee3558
Clean up handling of bool -> int.
...
C++ standard says false -> 0, true -> 1.
2015-12-01 15:45:59 -08:00
Jared Boone
641b972b3e
Type and name clean-up of Manchester formatter.
2015-12-01 15:41:51 -08:00
Jared Boone
7b9ba696e5
Reserve strings length before formatting Manchester data.
2015-12-01 15:36:09 -08:00
Jared Boone
810c65dd9c
Return Manchester formatted output in struct.
2015-12-01 15:31:59 -08:00
Jared Boone
d75f601b54
Manchester decoder into separate class.
...
Now operates directly on data, doesn't make a new pair of data/error bitsets.
2015-12-01 12:05:42 -08:00
Jared Boone
426295b93e
Remove unnecessary Manchester decode operation.
2015-12-01 11:50:29 -08:00
Jared Boone
82ff45860e
Add basic ERT (OOK) utility meter reception.
...
Extracted the Manchester formatting function for use in ERT, now also returns an indication of bits in error.
2015-12-01 11:24:48 -08:00
Jared Boone
0c36a74351
Add SD card status view to receiver UI.
2015-12-01 10:45:34 -08:00
Jared Boone
c70d95dcbe
Remove SDCardStatusMessage, replace with Signal, extract to separate files.
2015-12-01 10:38:35 -08:00
Jared Boone
600295f0db
Add Signal for callbacks within a process (code executing on one core).
2015-12-01 10:27:46 -08:00
Jared Boone
42104d217a
Broaden SD card status detail in message.
2015-11-29 15:50:58 -08:00
Jared Boone
5928086fd9
Simplify SD card mount status code.
2015-11-29 15:37:24 -08:00
Jared Boone
77199fb3dd
Add sdcDisconnect() to avoid HackRF mode entry crash if SD card is connected.
2015-11-13 10:55:52 -08:00
Jared Boone
6f09cf21f8
Move sdcStop() call to have symmetry with sdcStart().
2015-11-13 10:55:08 -08:00
Jared Boone
0a9da7a1d3
Store tuned frequency and modulation characteristics in TPMS log.
2015-11-11 11:56:50 -08:00
Jared Boone
8e4e33f74e
Don't show TPMS Manchester errors on LCD, truncate data to not wrap.
2015-11-11 11:56:20 -08:00
Jared Boone
19f352fa13
Log TPMS Manchester encoding errors.
2015-11-11 11:19:17 -08:00
Jared Boone
db416fd670
Basic TPMS logging to a SD card file.
2015-11-10 15:31:46 -08:00
Jared Boone
ed585d2c15
Enable FatFs string functions.
2015-11-10 15:30:43 -08:00
Jared Boone
987ea3555d
SD card detection and filesystem mounting.
2015-11-10 15:24:42 -08:00
Jared Boone
9f6c495fef
Add TPMS initial demodulator implementation.
...
Right now, 2FSK, 19200 baud, +/-38400Hz deviation. No effort is made to check CRC/checksums or decode packets.
2015-11-10 15:19:56 -08:00
Jared Boone
791b2a9762
Remove now-unused FSKConfiguration message.
2015-11-10 15:07:20 -08:00
Jared Boone
981c2fbfbd
Complete FSKProcessor's trip to being AISProcessor.
2015-11-10 15:04:38 -08:00
Jared Boone
47a3ffb15a
Insulate ui::Context a bit from its clients.
...
Add accessor methods.
2015-11-09 11:56:40 -08:00
Jared Boone
9e694ce836
AIS decoding and really bad UI.
...
The decoder needs a serious refactoring/decoupling.
The UI just dumps bits of the received packets into a console window, whcih scrolls too quickly in an AIS-dense area with a good antenna.
2015-11-06 13:53:04 -08:00
Jared Boone
be94c9fa9b
Switching between waterfall and console mode.
...
Also remove an unused Console constructor.
2015-11-06 09:40:03 -08:00
Jared Boone
d0f35cf89d
Rework spectrum/console UI clearing and resetting.
2015-11-06 09:40:03 -08:00
Jared Boone
f82fd1f8d7
Tease apart utility.hpp, other header dependencies.
...
Trying to get a host-testable FSK demodulator, and finding a lot of M4- and ChibiOS-specific code is getting included. Boo.
2015-11-06 09:40:03 -08:00
Jared Boone
57db6a6367
Ignore more initial bits of AIS training sequence.
2015-11-06 09:40:01 -08:00
Jared Boone
37b1d7cf2f
Remove payload_length from PacketBuilder, etc.
2015-11-06 09:40:01 -08:00
Jared Boone
6499de39bf
Shorten AIS packet to expected data + FCS length.
2015-11-06 09:40:00 -08:00
Jared Boone
bd76f0e13b
Note to try different -mcpu= for LPC43xx Cortex-M0.
2015-11-06 09:40:00 -08:00
Jared Boone
e9f28f9ef3
Provide configuration of symbol unstuffing.
2015-11-06 09:40:00 -08:00
Jared Boone
31ff13f1c0
Un-const Message in message handler interfaces.
...
I want to modify in place the messages that are received. Naughty, but oh well.
2015-11-06 09:39:59 -08:00
Jared Boone
5469a3a31d
Get ui::Console to a working state.
2015-11-06 09:39:59 -08:00
Jared Boone
8f7e26b5c1
Break out BasebandStatsView, add main, RSSI threads.
2015-10-14 10:59:32 -07:00
Jared Boone
aa733b1b61
Remove FSK from receiver menu. It doesn't do anything (yet).
2015-09-02 18:55:00 -07:00
Jared Boone
f91f17b9fb
Increase touch sensitivity a bit.
2015-09-02 18:48:51 -07:00
Jared Boone
9a3454d695
Touch code cleanup, stop scanning when no touch.
...
No need to change voltages on touch panel when no touch is detected. This should reduce noise a bit.
2015-09-02 18:48:38 -07:00
Jared Boone
f1ca3fe5bb
Switch RFFC5072, MAX2837 back to 40MHz reference.
...
Turns out the MAX2837 can't tune the necessary range when given a 50MHz reference. Oops.
2015-09-02 17:45:19 -07:00
Jared Boone
687e627dae
Mechanism to clear waterfall when switching modulations.
2015-09-01 21:04:27 -07:00
Jared Boone
d4c85bd786
Move receiver "back" button to separate row.
2015-09-01 20:38:59 -07:00
Jared Boone
24e398ca62
Add HackRF mode explanation text.
2015-09-01 20:23:11 -07:00
Jared Boone
b13081696d
Simplify MessageQueue pop() usage.
2015-08-27 14:35:17 -07:00
Jared Boone
d8b3b4cb6b
Check queue empty only once when reading messages.
...
There was a second is_empty() call hidden in the pop() call, so the while(condition) was redundant.
2015-08-27 14:27:29 -07:00
Jared Boone
5d9079f87f
Stop streaming when changing baseband configuration.
...
Without, the baseband would get confused.
2015-08-27 14:07:15 -07:00
Jared Boone
e751e10e45
Add wideband spectrum processor.
2015-08-27 13:57:31 -07:00
Jared Boone
4974774f82
Simplify PLL math when correcting for PPM.
2015-08-25 17:56:03 -07:00
Jared Boone
98773cb62a
Make GIT_REVISION value available within code.
...
Addresses issue #59 .
No idea what it'll do if the commit is also tagged as a release...
2015-08-25 16:33:52 -07:00
Jared Boone
8f326e2d8e
Use PPB correction to adjust clock generator XTAL PLLA frequency.
...
Addresses issue #40 .
2015-08-24 12:11:33 -07:00
Jared Boone
fe7dcdc613
Function to adjust clock generator XTAL PLL frequency.
...
Needed to switch PLLA to operate in fractional mode.
2015-08-24 12:09:11 -07:00
Jared Boone
11561659b4
Reset the M0 after the M4 is running HackRF firmware.
2015-08-20 20:26:36 -07:00
Jared Boone
690c3c98db
Add Shutdown message, plumbing to send and handle.
2015-08-20 18:03:49 -07:00
Jared Boone
2efbd337bd
Provide a way to exit application event loop.
2015-08-20 17:56:47 -07:00
Jared Boone
1c3e45917c
Rework to make use of declared memory map regions.
2015-08-20 17:11:08 -07:00
Jared Boone
4126f1ab1f
Change IPC to exchange data, not pointers.
2015-08-20 13:13:12 -07:00
Jared Boone
f99016d78f
Tweak cast to C++ style.
2015-08-15 15:40:55 -07:00
Clayton Smith
25c2e612c0
Fix a narrowing conversion warning.
2015-08-15 17:56:30 -04:00
Jared Boone
f2cabadf60
Review application initialization order.
...
Group related things together.
2015-08-14 22:28:28 -07:00
Jared Boone
49b91d9c5d
Move event loop into EventDispatcher.
2015-08-14 22:01:20 -07:00
Jared Boone
d5ebb9ef1e
Remove more dead code and comments.
2015-08-14 21:58:54 -07:00
Jared Boone
aa801ada60
Move code comments to project Wiki.
2015-08-14 21:54:03 -07:00