Commit Graph

100 Commits

Author SHA1 Message Date
Georgi Gerganov
bd10489d02 cmake : install headers (close #82) 2023-01-15 09:59:59 +02:00
Georgi Gerganov
d02960259b ref #77 : add MT protocols to ggwave.js + new API for setting freqStart 2022-09-10 17:57:37 +03:00
Georgi Gerganov
649f73fd60 arduino : fix bug in the Reed-Solomon code that causes crashes on some MCUs
The issue was first reported here:

https://github.com/ggerganov/ggwave-arduino/issues/1

We were incorrectly reading the "log" array in RS::gf::pow() function.

It is surprising how this code even worked on the other microcontrollers.
Probably we have been reading bogus values, so I expect the performance of
the transmissions to improve after this change.
2022-09-03 15:40:40 +03:00
Georgi Gerganov
ef182eacbd ggwave, ref #54 : add compile-time macro for disabling internal logging 2022-07-17 17:53:47 +03:00
Georgi Gerganov
a29fb485e1 ggwave : update tests 2022-07-12 23:52:33 +03:00
Georgi Gerganov
0ab93dfad3 ggwave : add filter function
Currently support the following filter:

- Hann window
- Hamming window
- First-order high-pass
2022-07-12 22:31:15 +03:00
Georgi Gerganov
d3d096ec2d spectrogram : remove old FFT algorithm
Reuse the one embedded within ggwave through a static function
2022-07-11 18:31:56 +03:00
Georgi Gerganov
cd8c47ea11 ggwave : reduce memory for fixed payload + fix bug in decoding 2022-07-04 21:18:20 +03:00
Georgi Gerganov
9cea484135 ggwave : add DSS tests + improve enums 2022-07-04 21:18:20 +03:00
Georgi Gerganov
c4947d75d7 ggwave : add DSS test + remove OperatingMode enum 2022-07-04 21:18:20 +03:00
Georgi Gerganov
ca84180f22 ggwave : add default constructor 2022-07-04 21:18:20 +03:00
Georgi Gerganov
4a21ad667c ggwave : add default constructor 2022-07-04 21:18:20 +03:00
Georgi Gerganov
bb187b0800 ggwave : zero-out the heap memory upon allocation 2022-07-04 21:18:20 +03:00
Georgi Gerganov
7918594b96 arduino : updating examples + fix memory alignment issue for rp2040 2022-07-04 21:18:20 +03:00
Georgi Gerganov
68367c2d09 ggwave : optimize memory footprint even more 2022-07-04 21:18:20 +03:00
Georgi Gerganov
535392d41f ggwave : remove <initializer_list> 2022-07-04 21:18:20 +03:00
Georgi Gerganov
f7d9e90078 remove-stl : update arduino tx examples 2022-07-04 21:18:20 +03:00
Georgi Gerganov
456fc7a886 remove-stl : almost complete - only <initializer_list> remains 2022-07-04 21:18:20 +03:00
Georgi Gerganov
e6d458e482 remove-stl : no longer using std::vector
However, the processing became ~4 times slower !?
2022-07-04 21:18:20 +03:00
Georgi Gerganov
4794508e04 remove-stl : prepare migration to ggvector 2022-07-04 21:18:20 +03:00
Georgi Gerganov
d916ad332b remove-stl : start removing stl completely 2022-07-04 21:18:20 +03:00
Georgi Gerganov
82f6274a55 arduino : update the examples for Tx and Rx 2022-07-04 21:18:20 +03:00
Georgi Gerganov
7c5b614c16 ggwave : big refactoring / renaming 2022-07-04 21:18:20 +03:00
Georgi Gerganov
05f1b4750b ggwave : significantly speed-up fixed-length decoding on Arduino 2022-07-04 21:18:20 +03:00
Georgi Gerganov
1e41795fd3 ggwave : minor rename 2022-07-04 21:18:20 +03:00
Georgi Gerganov
f5e08d921b ggwave : various improvements
- faster FFT implementation
- built-in Direct Sequence Spread option
- remove <map> dependency from implementation
- update arduino-rx example
2022-07-04 21:18:20 +03:00
Georgi Gerganov
f4020f63f9 ggwave : switch from uint8_t -> uint16_t for fixed length decoding
uint8_t does not work so well for some reason. Probably we lose
precission, although it's not obvious why
2022-07-04 21:18:20 +03:00
Georgi Gerganov
676163cc65 ggwave : remove <map> header dependency 2022-07-04 21:18:20 +03:00
Georgi Gerganov
4f94634611 ggwave : remove <functional> header dependency 2022-07-04 21:18:20 +03:00
Georgi Gerganov
c272d79429 ggwave : remove <chrono> and <memory> headers 2022-07-04 21:18:20 +03:00
Georgi Gerganov
8a89e3fd50 examples : remove ggwave-mod
No longer needed since the core ggwave lib now supports mono-tone
protocols
2022-07-04 21:18:20 +03:00
Georgi Gerganov
d752410c9c arduino-rx : generate Tx response 2022-07-04 21:18:20 +03:00
Georgi Gerganov
3c1afa9892 ggwave : reduce memory usage for fixed length decoding 2022-07-04 21:18:20 +03:00
Georgi Gerganov
069169f700 ggwave : add mono-tone protocols 2022-07-04 21:18:20 +03:00
Georgi Gerganov
83b9a55bd7 ggwave : do not compute Tx amplitudes when Tx only tones 2022-07-04 21:18:20 +03:00
Georgi Gerganov
3f9b100687 ggwave : compute Tx amplitudes always 2022-07-04 21:18:20 +03:00
Georgi Gerganov
cf7f474938 ggwave : add option to only generate tones on Tx 2022-07-04 21:18:20 +03:00
Georgi Gerganov
2eb5f8dadf ggwave : reduce memory allocations on Tx 2022-07-04 21:18:20 +03:00
Georgi Gerganov
5578a62b88 ggwave : remove unused ampl i16 Tx buffer 2022-07-04 21:18:20 +03:00
Georgi Gerganov
7a0c1681b1 ecc : reduce memory allocations in reed-solomon lib 2022-07-04 21:18:20 +03:00
Georgi Gerganov
481cc4f7e2 wip : pimpled Tx and moved resampler inside GGWave 2022-07-04 21:18:20 +03:00
Georgi Gerganov
f4027d619f wip : pimpled Rx 2022-07-04 21:18:20 +03:00
Georgi Gerganov
6bbe8ecec3 wip : refactoring 2022-07-04 21:18:20 +03:00
Georgi Gerganov
05955a3ffa wip 2022-07-04 21:18:20 +03:00
Georgi Gerganov
7c2312d784 wip 2022-07-04 21:18:20 +03:00
Georgi Gerganov
5b709ed3d3 ggwave, waver : minor compile warning fixes 2022-02-05 13:18:52 +02:00
Georgi Gerganov
bbacdbcc96 c-api : add toggleRxProtocol() (#60)
This function allows to enable/disable Rx protocols during the decoding
process. This is useful when the Tx/Rx protocol is known in advance.
2021-11-22 21:29:26 +02:00
Georgi Gerganov
43bf2f17e1 ggwave : fix out-of-bounds access in ggwave_decode (#53)
Also, provide a memory-safe overload called ggwave_ndecode()
The overload takes an extra parameter that specifies the size of
the output buffer and thus limits the size of the Rx payload that can be
decoded and stored.
2021-09-21 07:07:12 +03:00
Georgi Gerganov
9cf2d476b8 Add interface for changing ggwave's internal logging (#52)
* ggwave : add interface for changing ggwave's internal logging

Using GGWave::setLogFile() it is now possible to change the log file
used internally by ggwave, or disable it all together.

* ggwave : add comments about thread-safety of setLogFile
2021-09-21 06:48:16 +03:00
Georgi Gerganov
d73b18426b ggwave : fix python build on Windows 2021-07-03 11:45:18 +03:00