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
435824e9b5
Clean up buffer_t constructors.
2015-11-20 11:21:31 -08:00
Jared Boone
d96379dc9c
Remove extra semicolons.
2015-11-20 11:11:14 -08:00
Jared Boone
600a983d5c
Clean up complex<int16_t> -> complex<float> casting.
2015-11-20 11:01:41 -08:00
Jared Boone
85e984ed3b
Clean up complex<int8_t> -> complex<float> casting.
2015-11-19 12:42:35 -08:00
Jared Boone
060da5d227
Add ChannelDecimator decimate by 2 and no-shift options.
2015-11-19 12:24:20 -08:00
Jared Boone
ccd64f3cd9
Add function for c8->c16 decimate by two without fs/4 shift.
2015-11-19 12:20:20 -08:00
Jared Boone
8967f0eaa1
Move common matchers to PacketBuilder.
2015-11-16 10:33:50 -08:00
Jared Boone
9900c29283
Deepen BitPattern and BitHistory to 64 bits.
2015-11-16 10:33:08 -08:00
Jared Boone
4d6877ab15
Extract FieldReader to separate header so it can be reused.
2015-11-16 10:31:36 -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
1770dff522
Finish object-izing Baseband and RSSI threads.
2015-11-11 10:54:36 -08:00
Jared Boone
4f82524e77
Another default constructor.
2015-11-11 10:30:35 -08:00
Jared Boone
d9106b6f44
Start object-ization of RSSI thread.
2015-11-11 10:11:37 -08:00
Jared Boone
19c89def75
Start to object-ize the baseband thread function.
2015-11-11 10:02:06 -08:00
Jared Boone
2c64454172
More constructor style clean-up.
2015-11-11 09:35:28 -08:00
Jared Boone
d02698a6de
Apparent bug where min/max aren't initialized from value inside the buffer bounds.
...
The fix is less than ideal, it assumes that an incoming buffer length is always >= 1.
2015-11-11 09:30:15 -08:00
Jared Boone
ebf103363c
Constructor style clean-up.
2015-11-11 09:16:20 -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
6cdef7026d
Remove spectrum window-presum due to lack of code RAM.
2015-11-10 15:16:27 -08:00
Jared Boone
e6351ca066
Improve comment accuracy.
2015-11-10 15:11:19 -08:00
Jared Boone
99871dcb84
Move a few member variables to stack/constants.
2015-11-10 15:10:52 -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
111a5f10c0
Add some baseband constructors.
...
Some of them I think I took out earlier...
2015-11-10 14:04:50 -08:00
Jared Boone
add6171410
Move BasebandStatistics from heap to stack.
2015-11-10 13:59:17 -08:00
Jared Boone
0789d50fdf
Rework BitHistory, BitPattern, PacketBuilder.
...
Templatize PacketBuilder to optionally bit unstuff, and have flexible packet termination behavior.
2015-11-09 14:38:09 -08:00
Jared Boone
0b522abbc1
Rename AIS packet handler variables for consistency with spec.
2015-11-09 14:35:06 -08:00
Jared Boone
850c847bbf
Trap attempts to register more than one message handler at a time.
2015-11-09 11:57: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
85383e488b
std::fma not necessary with proper compiler options.
...
std::fma isn't available on Ubuntu 15.04 arm-gcc, apparently. Hence my reviewing this code...
2015-11-08 16:33:32 -08:00
Jared Boone
5dcca89172
FSKProcessor: remove separate channel filter.
...
RRC filter alone will do the trick!
2015-11-07 14:10:44 -08:00
Jared Boone
fc037c739a
Comment about correct MatchedFilter usage.
...
Because the filter expects a combined translate/rotate and low-pass filter in the taps, the taps must be a multiple of the translate sinusoid period.
2015-11-07 11:27:31 -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
a366b3ac4f
CRC class.
...
Has some more efficient code, commented out because I was having trouble getting it to work. However, it may have been due to the particular data I was trying to decode and CRC-validate.
2015-11-06 13:49:59 -08:00
Jared Boone
ae225e8c3b
Further MatchedFilter optimization using algebraic identities and stuff.
...
Can't stop premature optimization!!!
2015-11-06 09:40:05 -08:00
Jared Boone
100761481e
Fix inaccurate comment.
2015-11-06 09:40:05 -08:00
Jared Boone
3d5c8056d9
Premature optimization of MatchedFilter::shift_by_decimation_factor().
2015-11-06 09:40:05 -08:00
Jared Boone
4afcc83873
Mark MatchedFilter::is_new_decimation_cycle() as const.
2015-11-06 09:40:05 -08:00
Jared Boone
3c33e20156
Rename MatchedFilter::decimation_factor.
2015-11-06 09:40:05 -08:00
Jared Boone
7a59823211
Stop computing channel spectrum during FSK demod.
...
Data is unused, as screen is displaying decoded packets.
2015-11-06 09:40:05 -08:00
Jared Boone
ddd34793a6
Default constructors and configure methods for baseband classes.
2015-11-06 09:40:05 -08:00
Jared Boone
5236a858d0
Change Field.read to const.
2015-11-06 09:40:04 -08:00
Jared Boone
a33aa26bf5
Change header guard name.
2015-11-06 09:40:04 -08:00
Jared Boone
51df92a05a
Rename baseband_ais -> ais_baseband.
...
So that ais_baseband and ais_application filenames can be sorted near each other.
2015-11-06 09:40:04 -08:00
Jared Boone
26c23dc8a0
Use new FIR decimation in FSK demodulator.
...
Reduces FIR calculation effort when output samples are skipped at FIR filter, not after.
2015-11-06 09:40:04 -08:00
Jared Boone
86b068be62
Early calculation to reduce pressure on registers.
2015-11-06 09:40:04 -08:00
Jared Boone
a074e7d8d8
Remove commented code.
2015-11-06 09:40:04 -08:00
Jared Boone
424c0eac3f
FIRAndDecimateBy2Complex: expose decimation_factor, bring work function into class.
2015-11-06 09:40:04 -08:00
Jared Boone
cde15e4271
Generalize fir_and_decimate_by_2_complex_fast.
...
Permit decimation_factors other than 2.
Permit tap counts != 64 (but still must be multiple of 8).
Half the amount of tap memory required.
Performance is significantly degraded due to greater flexibility -- most likely due to separate sample buffer shift phase, instead of performing shift during output sample calculation.
2015-11-06 09:40:04 -08:00
Jared Boone
be78ed657f
Remove taps_count template arg for FIRAndDecimateBy2Complex.
...
Use heap to allocate samples and taps buffers, so filters of different lengths can be supported.
2015-11-06 09:40:04 -08:00